diff --git a/THIRD_PARTY_LICENSES.md b/THIRD_PARTY_LICENSES.md index 55f07b785d..fa9df0ab4f 100644 --- a/THIRD_PARTY_LICENSES.md +++ b/THIRD_PARTY_LICENSES.md @@ -3,7 +3,7 @@ https://www.npmjs.com/package/generate-license-file The following npm package may be included in this product: - - pdfjs-dist@4.9.155 + - pdfjs-dist@4.10.38 This package contains the following license: @@ -1098,9 +1098,11 @@ Apache License The following npm packages may be included in this product: + - @grpc/grpc-js@1.12.5 + - @grpc/proto-loader@0.7.13 - detect-libc@2.0.3 - - docker-modem@5.0.3 - - dockerode@4.0.2 + - docker-modem@5.0.5 + - dockerode@4.0.3 These packages each contain the following license: @@ -2828,7 +2830,7 @@ The following npm packages may be included in this product: - @types/node-fetch@2.6.12 - @types/node@16.9.1 - @types/node@18.19.69 - - @types/node@22.10.4 + - @types/node@22.10.5 - @types/turndown@5.0.5 - @types/uuid@9.0.8 - @types/yauzl@2.10.3 @@ -6909,6 +6911,7 @@ THE SOFTWARE. The following npm packages may be included in this product: + - lodash.camelcase@4.3.0 - lodash.get@4.4.2 - lodash.includes@4.3.0 - lodash.isinteger@4.0.4 @@ -8754,6 +8757,36 @@ SOFTWARE. ----------- +The following npm package may be included in this product: + + - @js-sdsl/ordered-map@4.4.2 + +This package contains the following license: + +MIT License + +Copyright (c) 2021 Zilong Yao + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + The following npm package may be included in this product: - simple-xml-to-json@1.2.3 @@ -8906,7 +8939,7 @@ SOFTWARE. The following npm package may be included in this product: - - fast-content-type-parse@2.0.0 + - fast-content-type-parse@2.0.1 This package contains the following license: @@ -8969,7 +9002,7 @@ SOFTWARE. The following npm package may be included in this product: - - @modelcontextprotocol/sdk@1.0.4 + - @modelcontextprotocol/sdk@1.1.0 This package contains the following license: @@ -10410,7 +10443,7 @@ THE SOFTWARE. The following npm packages may be included in this product: - @octokit/auth-token@5.1.1 - - @octokit/core@6.1.2 + - @octokit/core@6.1.3 - @octokit/request-error@6.1.6 These packages each contain the following license: @@ -10627,6 +10660,7 @@ THE SOFTWARE. The following npm packages may be included in this product: + - uuid@10.0.0 - uuid@8.3.2 - uuid@9.0.1 diff --git a/docs/package.json b/docs/package.json index f0695e8e76..8ea329dc06 100644 --- a/docs/package.json +++ b/docs/package.json @@ -22,11 +22,11 @@ "devDependencies": { "@astrojs/check": "^0.9.4", "@astrojs/starlight": "^0.30.3", - "astro": "^5.1.1", + "astro": "^5.1.2", "rehype-mermaid": "^3.0.0", "starlight-blog": "^0.16.1", "starlight-links-validator": "^0.14.1", - "starlight-package-managers": "^0.8.1", + "starlight-package-managers": "^0.9.0", "typescript": "5.7.2", "zx": "^8.3.0" } diff --git a/docs/yarn.lock b/docs/yarn.lock index 0321c6565c..0d8570a362 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -918,61 +918,61 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz#c82f04a09ba481e13857d6f2516e072aaa51b7f4" integrity sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg== -"@shikijs/core@1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.25.1.tgz#77d5af5e759c7b12abb00785a8e2ef64fe949b2f" - integrity sha512-0j5k3ZkLTQViOuNzPVyWGoW1zgH3kiFdUT/JOCkTm7TU74mz+dF+NID+YoiCBzHQxgsDpcGYPjKDJRcuVLSt4A== - dependencies: - "@shikijs/engine-javascript" "1.25.1" - "@shikijs/engine-oniguruma" "1.25.1" - "@shikijs/types" "1.25.1" - "@shikijs/vscode-textmate" "^9.3.1" +"@shikijs/core@1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.26.1.tgz#ba7399bee73148575277780c9fe4df656d582a65" + integrity sha512-yeo7sG+WZQblKPclUOKRPwkv1PyoHYkJ4gP9DzhFJbTdueKR7wYTI1vfF/bFi1NTgc545yG/DzvVhZgueVOXMA== + dependencies: + "@shikijs/engine-javascript" "1.26.1" + "@shikijs/engine-oniguruma" "1.26.1" + "@shikijs/types" "1.26.1" + "@shikijs/vscode-textmate" "^10.0.1" "@types/hast" "^3.0.4" hast-util-to-html "^9.0.4" -"@shikijs/engine-javascript@1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-1.25.1.tgz#ebae27e6949a9d3aa46a86b596a762933db4a2ea" - integrity sha512-zQ7UWKnRCfD/Q1M+XOSyjsbhpE0qv8LUnmn82HYCeOsgAHgUZGEDIQ63bbuK3kU5sQg+2CtI+dPfOqD/mjSY9w== +"@shikijs/engine-javascript@1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-1.26.1.tgz#0881250e4a39a52b49cb50600f41bb19e429dcdb" + integrity sha512-CRhA0b8CaSLxS0E9A4Bzcb3LKBNpykfo9F85ozlNyArxjo2NkijtiwrJZ6eHa+NT5I9Kox2IXVdjUsP4dilsmw== dependencies: - "@shikijs/types" "1.25.1" - "@shikijs/vscode-textmate" "^9.3.1" + "@shikijs/types" "1.26.1" + "@shikijs/vscode-textmate" "^10.0.1" oniguruma-to-es "0.10.0" -"@shikijs/engine-oniguruma@1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-1.25.1.tgz#537221149f47fd71f64a503203c4bd3fd037fa02" - integrity sha512-iKPMh3H+0USHtWfZ1irfMTH6tGmIUFSnqt3E2K8BgI1VEsqiPh0RYkG2WTwzNiM1/WHN4FzYx/nrKR7PDHiRyw== +"@shikijs/engine-oniguruma@1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-1.26.1.tgz#f9de733e2473e693b3d10bff32bb9761746c1d71" + integrity sha512-F5XuxN1HljLuvfXv7d+mlTkV7XukC1cawdtOo+7pKgPD83CAB1Sf8uHqP3PK0u7njFH0ZhoXE1r+0JzEgAQ+kg== dependencies: - "@shikijs/types" "1.25.1" - "@shikijs/vscode-textmate" "^9.3.1" + "@shikijs/types" "1.26.1" + "@shikijs/vscode-textmate" "^10.0.1" -"@shikijs/langs@1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-1.25.1.tgz#1c0b7822d41929351b31409d2932952495a4fae3" - integrity sha512-hdYjq9aRJplAzGe2qF51PR9IDgEoyGb4IkXvr3Ts6lEdg4Z8M/kdknKRo2EIuv3IR/aKkJXTlBQRM+wr3t20Ew== +"@shikijs/langs@1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-1.26.1.tgz#5365530e04715b21e40242eb331291712bdf7306" + integrity sha512-oz/TQiIqZejEIZbGtn68hbJijAOTtYH4TMMSWkWYozwqdpKR3EXgILneQy26WItmJjp3xVspHdiUxUCws4gtuw== dependencies: - "@shikijs/types" "1.25.1" + "@shikijs/types" "1.26.1" -"@shikijs/themes@1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-1.25.1.tgz#7b38ad054632521e883bcf44fb96181151dea5a9" - integrity sha512-JO0lDn4LgGqg5QKvgich5ScUmC2okK+LxM9a3iLUH7YMeI2c8UGXThuJv6sZduS7pdJbYQHPrvWq9t/V4GhpbQ== +"@shikijs/themes@1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-1.26.1.tgz#6f6ee538dc1383b8a971464c5cecda06b1a6db0d" + integrity sha512-JDxVn+z+wgLCiUhBGx2OQrLCkKZQGzNH3nAxFir4PjUcYiyD8Jdms9izyxIogYmSwmoPTatFTdzyrRKbKlSfPA== dependencies: - "@shikijs/types" "1.25.1" + "@shikijs/types" "1.26.1" -"@shikijs/types@1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-1.25.1.tgz#b080fc9e2622b0e4b2ec0ff4bc0628a37f7fc102" - integrity sha512-dceqFUoO95eY4tpOj3OGq8wE8EgJ4ey6Me1HQEu5UbwIYszFndEll/bjlB8Kp9wl4fx3uM7n4+y9XCYuDBmcXA== +"@shikijs/types@1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-1.26.1.tgz#b5ece69e21000f53d65d15ddae33d9ad9c3763ad" + integrity sha512-d4B00TKKAMaHuFYgRf3L0gwtvqpW4hVdVwKcZYbBfAAQXspgkbWqnFfuFl3MDH6gLbsubOcr+prcnsqah3ny7Q== dependencies: - "@shikijs/vscode-textmate" "^9.3.1" + "@shikijs/vscode-textmate" "^10.0.1" "@types/hast" "^3.0.4" -"@shikijs/vscode-textmate@^9.3.1": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-9.3.1.tgz#afda31f8f42cab70a26f3603f52eae3f1c35d2f7" - integrity sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g== +"@shikijs/vscode-textmate@^10.0.1": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.1.tgz#d06d45b67ac5e9b0088e3f67ebd3f25c6c3d711a" + integrity sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg== "@types/acorn@^4.0.0": version "4.0.6" @@ -1272,9 +1272,9 @@ "@types/unist" "*" "@types/node@*", "@types/node@>=20": - version "22.10.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.4.tgz#da36bebcc4b124f3d62bfde1cd1dafd7763949c1" - integrity sha512-99l6wv4HEzBQhvaU/UGoeBoCK61SCROQaCCGyQSgX2tEQ3rKkNZ2S7CEWnS/4s1LV+8ODdK21UeyR1fHP2mXug== + version "22.10.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.5.tgz#95af89a3fb74a2bb41ef9927f206e6472026e48b" + integrity sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ== dependencies: undici-types "~6.20.0" @@ -1495,7 +1495,7 @@ astro-remote@^0.3.3: marked-smartypants "^1.1.6" ultrahtml "^1.5.3" -astro@^5.1.1: +astro@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/astro/-/astro-5.1.2.tgz#6ced3ff8b04adf4602bbf28dceeddb2043deaf20" integrity sha512-+U5lXPEJZ6cQx0botGbPhzN6XGWRgDtXgy/RUkpTmUj18LW6pbzYo0O0k3hFWOazlI039bZ+4P2e/oSNlKzm0Q== @@ -2706,9 +2706,9 @@ hast-util-select@^6.0.2: zwitch "^2.0.0" hast-util-to-estree@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz#f2afe5e869ddf0cf690c75f9fc699f3180b51b19" - integrity sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw== + version "3.1.1" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.1.tgz#b7f0b247d9f62127bb5db34e3a86c93d17279071" + integrity sha512-IWtwwmPskfSmma9RpzCappDUitC8t5jhAynHhc1m2+5trOgsrp7txscUSavc5Ic8PATyAjfrCK1wgtxh2cICVQ== dependencies: "@types/estree" "^1.0.0" "@types/estree-jsx" "^1.0.0" @@ -2723,7 +2723,7 @@ hast-util-to-estree@^3.0.0: mdast-util-mdxjs-esm "^2.0.0" property-information "^6.0.0" space-separated-tokens "^2.0.0" - style-to-object "^0.4.0" + style-to-object "^1.0.0" unist-util-position "^5.0.0" zwitch "^2.0.0" @@ -2852,11 +2852,6 @@ import-meta-resolve@^4.1.0: resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== -inline-style-parser@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" - integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== - inline-style-parser@0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz#f4af5fe72e612839fcd453d989a586566d695f22" @@ -3168,9 +3163,9 @@ mdast-util-directive@^3.0.0: unist-util-visit-parents "^6.0.0" mdast-util-find-and-replace@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz#a6fc7b62f0994e973490e45262e4bc07607b04e0" - integrity sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz#70a3174c894e14df722abf43bc250cbae44b11df" + integrity sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg== dependencies: "@types/mdast" "^4.0.0" escape-string-regexp "^5.0.0" @@ -4486,17 +4481,17 @@ sharp@^0.33.3: "@img/sharp-win32-x64" "0.33.5" shiki@^1.22.2, shiki@^1.23.1: - version "1.25.1" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.25.1.tgz#0f3907b0f9deebadfb6a1f248804d8791522d7e3" - integrity sha512-/1boRvNYwRW3GLG9Y6dXdnZ/Ha+J5T/5y3hV7TGQUcDSBM185D3FCbXlz2eTGNKG2iWCbWqo+P0yhGKZ4/CUrw== - dependencies: - "@shikijs/core" "1.25.1" - "@shikijs/engine-javascript" "1.25.1" - "@shikijs/engine-oniguruma" "1.25.1" - "@shikijs/langs" "1.25.1" - "@shikijs/themes" "1.25.1" - "@shikijs/types" "1.25.1" - "@shikijs/vscode-textmate" "^9.3.1" + version "1.26.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.26.1.tgz#eedb5f192a4d980a3e8bdd850ee390eef05cc386" + integrity sha512-Gqg6DSTk3wYqaZ5OaYtzjcdxcBvX5kCy24yvRJEgjT5U+WHlmqCThLuBUx0juyxQBi+6ug53IGeuQS07DWwpcw== + dependencies: + "@shikijs/core" "1.26.1" + "@shikijs/engine-javascript" "1.26.1" + "@shikijs/engine-oniguruma" "1.26.1" + "@shikijs/langs" "1.26.1" + "@shikijs/themes" "1.26.1" + "@shikijs/types" "1.26.1" + "@shikijs/vscode-textmate" "^10.0.1" "@types/hast" "^3.0.4" simple-swizzle@^0.2.2: @@ -4574,10 +4569,10 @@ starlight-links-validator@^0.14.1: picomatch "^4.0.2" unist-util-visit "^5.0.0" -starlight-package-managers@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/starlight-package-managers/-/starlight-package-managers-0.8.1.tgz#62c5327481f2f3856f70e1a54ea67dd8fdeb9755" - integrity sha512-a+zGIOdbN7B4T/VaszuvW8585Aau4LSU8HlVCmBCJJwxkrGAUC9lRya4y0md5tOAFyW/gfhUNJZM8qqyMNTe7Q== +starlight-package-managers@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/starlight-package-managers/-/starlight-package-managers-0.9.0.tgz#7c78aeb87124ced9f8918c40f72de8bf9bb1e644" + integrity sha512-iDChnj8hCUYH2s5hFMnpEiCYHUAuVivh2jvFgFJvUmViEEOdA24ZXrUhQhA/qg2KULCgn17F2cKWf3vhvIcl0w== stream-replace-string@^2.0.0: version "2.0.0" @@ -4634,13 +4629,6 @@ strnum@^1.0.5: resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== -style-to-object@^0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.4.tgz#266e3dfd56391a7eefb7770423612d043c3f33ec" - integrity sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg== - dependencies: - inline-style-parser "0.1.1" - style-to-object@^1.0.0: version "1.0.8" resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.8.tgz#67a29bca47eaa587db18118d68f9d95955e81292" diff --git a/packages/cli/package.json b/packages/cli/package.json index 6655205786..6a568cba50 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -53,12 +53,12 @@ "@anthropic-ai/sdk": "^0.33.1", "@azure/identity": "^4.5.0", "@inquirer/prompts": "^7.2.1", - "@modelcontextprotocol/sdk": "^1.0.4", + "@modelcontextprotocol/sdk": "^1.1.0", "@octokit/plugin-paginate-rest": "^11.3.6", "@octokit/plugin-retry": "^7.1.2", "@octokit/plugin-throttling": "^9.3.2", "@octokit/rest": "^21.0.2", - "dockerode": "^4.0.2", + "dockerode": "^4.0.3", "es-toolkit": "^1.31.0", "gpt-tokenizer": "^2.8.1", "html-to-text": "^9.0.5", @@ -95,7 +95,7 @@ "@types/dockerode": "^3.3.32", "@types/fs-extra": "^11.0.4", "@types/memorystream": "^0.3.4", - "@types/node": "^22.10.2", + "@types/node": "^22.10.5", "@types/papaparse": "^5.3.15", "@types/prompts": "^2.4.9", "@types/replace-ext": "^2.0.2", @@ -111,7 +111,7 @@ "memorystream": "^0.3.1", "node-sarif-builder": "^3.2.0", "octokit": "^4.0.3", - "openai": "^4.77.0", + "openai": "^4.77.3", "pretty-bytes": "^6.1.1", "replace-ext": "^2.0.0", "ws": "^8.18.0", diff --git a/packages/cli/src/run.ts b/packages/cli/src/run.ts index 769288c8f9..aa261ad078 100644 --- a/packages/cli/src/run.ts +++ b/packages/cli/src/run.ts @@ -141,6 +141,7 @@ export async function runScriptInternal( TraceOptions & CancellationOptions & { cli?: boolean + workspaceFiles?: WorkspaceFile[] infoCb?: (partialResponse: { text: string }) => void partialCb?: (progress: ChatCompletionsProgressReport) => void } @@ -148,6 +149,7 @@ export async function runScriptInternal( const { trace = new MarkdownTrace(), infoCb, partialCb } = options || {} let result: GenerationResult + const workspaceFiles = options.workspaceFiles const excludedFiles = options.excludedFiles const excludeGitIgnore = !!options.excludeGitIgnore const out = options.out @@ -261,6 +263,7 @@ export async function runScriptInternal( if (!script) throw new Error(`script ${scriptId} not found`) const fragment: Fragment = { files: Array.from(resolvedFiles), + workspaceFiles, } const vars = Array.isArray(options.vars) ? parseOptionsVars(options.vars, process.env) diff --git a/packages/cli/src/server.ts b/packages/cli/src/server.ts index e83f4ebcfd..2f11bd557d 100644 --- a/packages/cli/src/server.ts +++ b/packages/cli/src/server.ts @@ -428,35 +428,35 @@ export async function startServer(options: { // Create an HTTP server to handle basic requests. const httpServer = http.createServer(async (req, res) => { - const { url } = req + const { url, method } = req const route = url?.replace(/\?.*$/, "") res.setHeader("Cache-Control", "no-store") - if (route === "/") { + if (method === "GET" && route === "/") { res.setHeader("Content-Type", "text/html") res.setHeader("Cache-Control", "no-store") res.statusCode = 200 const filePath = join(__dirname, "index.html") const stream = createReadStream(filePath) stream.pipe(res) - } else if (route === "/built/markdown.css") { + } else if (method === "GET" && route === "/built/markdown.css") { res.setHeader("Content-Type", "text/css") res.statusCode = 200 const filePath = join(__dirname, "markdown.css") const stream = createReadStream(filePath) stream.pipe(res) - } else if (route === "/built/web.mjs") { + } else if (method === "GET" && route === "/built/web.mjs") { res.setHeader("Content-Type", "application/javascript") res.statusCode = 200 const filePath = join(__dirname, "web.mjs") const stream = createReadStream(filePath) stream.pipe(res) - } else if (route === "/built/web.mjs.map") { + } else if (method === "GET" && route === "/built/web.mjs.map") { res.setHeader("Content-Type", "text/json") res.statusCode = 200 const filePath = join(__dirname, "web.mjs.map") const stream = createReadStream(filePath) stream.pipe(res) - } else if (route === "/favicon.svg") { + } else if (method === "GET" && route === "/favicon.svg") { res.setHeader("Content-Type", "image/svg+xml") res.statusCode = 200 const filePath = join(__dirname, "favicon.svg") @@ -471,12 +471,14 @@ export async function startServer(options: { return } let response: ResponseStatus - if (route === "/api/version") response = serverVersion() - else if (route === "/api/scripts") { + if (method === "GET" && route === "/api/version") + response = serverVersion() + else if (method === "GET" && route === "/api/scripts") { response = await scriptList() - } else if (route === "/api/env") { + } else if (method === "GET" && route === "/api/env") { response = await serverEnv() } + if (response === undefined) { console.debug(`404: ${url}`) res.statusCode = 404 diff --git a/packages/core/package.json b/packages/core/package.json index 8f06d913c3..f5a08a33b3 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -24,11 +24,12 @@ "@elastic/micro-jq": "^1.8.0", "@huggingface/jinja": "^0.3.2", "@huggingface/transformers": "^3.2.4", - "@modelcontextprotocol/sdk": "^1.0.4", + "@modelcontextprotocol/sdk": "^1.1.0", "@octokit/plugin-paginate-rest": "^11.3.6", "@octokit/plugin-retry": "^7.1.2", "@octokit/plugin-throttling": "^9.3.2", "@octokit/rest": "^21.0.2", + "@smithy/util-base64": "^3.0.0", "@tidyjs/tidy": "^2.5.2", "@types/diff": "^6.0.0", "@types/html-escaper": "^3.0.2", @@ -38,7 +39,7 @@ "@types/json-schema-generator": "^2.0.3", "@types/mime-types": "^2.1.4", "@types/mustache": "^4.2.5", - "@types/node": "^22.10.2", + "@types/node": "^22.10.5", "@types/object-inspect": "^1.13.0", "@types/semver": "^7.5.8", "@types/shell-quote": "^1.7.5", @@ -60,7 +61,7 @@ "html-to-text": "^9.0.5", "https-proxy-agent": "^7.0.6", "ignore": "^7.0.0", - "inflection": "^3.0.0", + "inflection": "^3.0.1", "ini": "^5.0.0", "jimp": "^1.6.0", "json-schema-generator": "^2.0.6", @@ -75,7 +76,7 @@ "minisearch": "^7.1.1", "mustache": "^4.2.0", "object-inspect": "^1.13.3", - "openai": "^4.77.0", + "openai": "^4.77.3", "p-limit": "^6.2.0", "parse-diff": "^0.11.1", "prettier": "^3.4.2", diff --git a/packages/core/src/base64.ts b/packages/core/src/base64.ts new file mode 100644 index 0000000000..f22be805ca --- /dev/null +++ b/packages/core/src/base64.ts @@ -0,0 +1,4 @@ +import { fromBase64 as _fromBase64, toBase64 as _toBase64 } from "@smithy/util-base64"; + +export const fromBase64 = _fromBase64; +export const toBase64 = _toBase64; \ No newline at end of file diff --git a/packages/core/src/binary.ts b/packages/core/src/binary.ts new file mode 100644 index 0000000000..387fbbe07e --- /dev/null +++ b/packages/core/src/binary.ts @@ -0,0 +1,47 @@ +import { DOCX_MIME_TYPE, PDF_MIME_TYPE, XLSX_MIME_TYPE } from "./constants" + +/** + * Determines if a given MIME type is binary. + * Checks against common and additional specified binary types. + * @param mimeType - The MIME type to check. + * @returns boolean - True if the MIME type is binary, otherwise false. + */ +export function isBinaryMimeType(mimeType: string) { + return ( + /^(image|audio|video)\//.test(mimeType) || // Common binary types + BINARY_MIME_TYPES.includes(mimeType) // Additional specified binary types + ) +} + +// List of known binary MIME types +const BINARY_MIME_TYPES = [ + // Documents + "application/pdf", + "application/msword", + "application/vnd.ms-excel", + "application/vnd.ms-powerpoint", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document", // .docx + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", // .xlsx + "application/vnd.openxmlformats-officedocument.presentationml.presentation", // .pptx + + // Archives + "application/zip", + "application/x-rar-compressed", + "application/x-7z-compressed", + "application/x-tar", + "application/x-bzip", + "application/x-bzip2", + "application/x-gzip", + + // Executables and binaries + "application/octet-stream", // General binary type (often default for unknown binary files) + "application/x-msdownload", // Executables + "application/x-shockwave-flash", // SWF + "application/java-archive", // JAR (Java) + + // Others + "application/vnd.google-earth.kml+xml", // KML (though XML based, often treated as binary in context of HTTP) + "application/vnd.android.package-archive", // APK (Android package) + "application/x-iso9660-image", // ISO images + "application/vnd.apple.installer+xml", // Apple Installer Package (though XML, often handled as binary) +] \ No newline at end of file diff --git a/packages/core/src/file.ts b/packages/core/src/file.ts index 5ddd110280..9c4d04bad1 100644 --- a/packages/core/src/file.ts +++ b/packages/core/src/file.ts @@ -7,10 +7,10 @@ import { DOCXTryParse } from "./docx" import { readText } from "./fs" import { lookupMime } from "./mime" -import { isBinaryMimeType } from "./parser" +import { isBinaryMimeType } from "./binary" import { createFetch } from "./fetch" import { fileTypeFromBuffer } from "file-type" -import { toBase64 } from "./util" +import { fromBase64, toBase64 } from "./base64" import { host } from "./host" import { TraceOptions } from "./trace" import { parsePdf } from "./pdf" @@ -18,9 +18,12 @@ import { XLSXParse } from "./xlsx" import { CSVToMarkdown, CSVTryParse } from "./csv" import { CSV_REGEX, + DOCX_MIME_TYPE, DOCX_REGEX, HTTPS_REGEX, + PDF_MIME_TYPE, PDF_REGEX, + XLSX_MIME_TYPE, XLSX_REGEX, } from "./constants" import { UrlAdapter, defaultUrlAdapters } from "./urlAdapters" @@ -37,8 +40,23 @@ export async function resolveFileContent( options?: TraceOptions ) { const { trace } = options || {} - const { filename } = file + // decode known files + if (file.encoding === "base64") { + const bytes = fromBase64(file.content) + if (file.type === PDF_MIME_TYPE) { + const { content } = await parsePdf(bytes, options) + delete file.encoding + file.content = content + } else if (file.type === XLSX_MIME_TYPE) { + const sheets = await XLSXParse(bytes) + delete file.encoding + file.content = JSON.stringify(sheets, null, 2) + } + return file + } + + const { filename } = file // If file content is already available or filename is missing, return the file as is. if (file.content) return file if (!filename) return file @@ -68,32 +86,43 @@ export async function resolveFileContent( trace?.itemValue(`status`, `${resp.status}, ${resp.statusText}`) // Set file content based on response and adapter type - if (resp.ok) + if (resp.ok) { + file.type = resp.headers.get("Content-Type") file.content = adapter?.contentType === "application/json" ? adapter.adapter(await resp.json()) : await resp.text() + } } // Handle PDF files else if (PDF_REGEX.test(filename)) { const { content } = await parsePdf(filename, options) + file.type = PDF_MIME_TYPE file.content = content } // Handle DOCX files else if (DOCX_REGEX.test(filename)) { + file.type = DOCX_MIME_TYPE file.content = await DOCXTryParse(filename, options) } // Handle XLSX files else if (XLSX_REGEX.test(filename)) { const bytes = await host.readFile(filename) const sheets = await XLSXParse(bytes) + file.type = XLSX_MIME_TYPE file.content = JSON.stringify(sheets, null, 2) } // Handle other file types else { - const mime = lookupMime(filename) + const mime = file.type || lookupMime(filename) const isBinary = isBinaryMimeType(mime) + file.type = mime if (!isBinary) file.content = await readText(filename) + else { + const bytes: Uint8Array = await host.readFile(filename) + file.encoding = "base64" + file.content = toBase64(bytes) + } } return file diff --git a/packages/core/src/generation.ts b/packages/core/src/generation.ts index cd53f3f57e..13f0ff27c9 100644 --- a/packages/core/src/generation.ts +++ b/packages/core/src/generation.ts @@ -11,6 +11,7 @@ import { GenerationStats } from "./usage" // Represents a code fragment with associated files export interface Fragment { files: string[] // Array of file paths or names + workspaceFiles?: WorkspaceFile[] // Array of workspace files } // Options for configuring the generation process, extending multiple other options diff --git a/packages/core/src/parser.ts b/packages/core/src/parser.ts index 2f087b8c3d..e549c5418f 100644 --- a/packages/core/src/parser.ts +++ b/packages/core/src/parser.ts @@ -22,52 +22,6 @@ export function stringToPos(str: string): CharPosition { return [str.replace(/[^\n]/g, "").length, str.replace(/[^]*\n/, "").length] } -/** - * Determines if a given MIME type is binary. - * Checks against common and additional specified binary types. - * @param mimeType - The MIME type to check. - * @returns boolean - True if the MIME type is binary, otherwise false. - */ -export function isBinaryMimeType(mimeType: string) { - return ( - /^(image|audio|video)\//.test(mimeType) || // Common binary types - BINARY_MIME_TYPES.includes(mimeType) // Additional specified binary types - ) -} - -// List of known binary MIME types -const BINARY_MIME_TYPES = [ - // Documents - PDF_MIME_TYPE, - "application/msword", - "application/vnd.ms-excel", - "application/vnd.ms-powerpoint", - DOCX_MIME_TYPE, // .docx - XLSX_MIME_TYPE, // .xlsx - "application/vnd.openxmlformats-officedocument.presentationml.presentation", // .pptx - - // Archives - "application/zip", - "application/x-rar-compressed", - "application/x-7z-compressed", - "application/x-tar", - "application/x-bzip", - "application/x-bzip2", - "application/x-gzip", - - // Executables and binaries - "application/octet-stream", // General binary type (often default for unknown binary files) - "application/x-msdownload", // Executables - "application/x-shockwave-flash", // SWF - "application/java-archive", // JAR (Java) - - // Others - "application/vnd.google-earth.kml+xml", // KML (though XML based, often treated as binary in context of HTTP) - "application/vnd.android.package-archive", // APK (Android package) - "application/x-iso9660-image", // ISO images - "application/vnd.apple.installer+xml", // Apple Installer Package (though XML, often handled as binary) -] - /** * Parses a project based on provided script files. * Initializes a project, reads scripts, and updates with parsed templates. diff --git a/packages/core/src/pdf.ts b/packages/core/src/pdf.ts index 5641083f11..9e30e6fe49 100644 --- a/packages/core/src/pdf.ts +++ b/packages/core/src/pdf.ts @@ -222,11 +222,17 @@ function PDFPagesToString(pages: PDFPage[]) { * @returns A promise resolving to the parsed pages and concatenated content */ export async function parsePdf( - filename: string, + filenameOrBuffer: string | Uint8Array, options?: ParsePDFOptions & TraceOptions ): Promise<{ pages: PDFPage[]; content: string }> { const { filter } = options || {} - let { pages, ok } = await PDFTryParse(filename, undefined, options) + const filename = + typeof filenameOrBuffer === "string" ? filenameOrBuffer : undefined + const bytes = + typeof filenameOrBuffer === "string" + ? undefined + : (filenameOrBuffer as Uint8Array) + let { pages, ok } = await PDFTryParse(filename, bytes, options) if (!ok) return { pages: [], content: "" } // Apply filter if provided diff --git a/packages/core/src/promptrunner.ts b/packages/core/src/promptrunner.ts index f91b740425..0d46370f0a 100644 --- a/packages/core/src/promptrunner.ts +++ b/packages/core/src/promptrunner.ts @@ -24,7 +24,7 @@ import { resolveLanguageModel } from "./lm" * @param project The project context. * @param trace The markdown trace for logging. * @param template The prompt script template. - * @param frag The fragment containing files and metadata. + * @param fragment The fragment containing files and metadata. * @param vars The user-provided variables. * @returns An object containing resolved variables. */ @@ -32,15 +32,14 @@ async function resolveExpansionVars( project: Project, trace: MarkdownTrace, template: PromptScript, - frag: Fragment, + fragment: Fragment, vars: Record<string, string | number | boolean | object> ) { const root = runtimeHost.projectFolder() const files: WorkspaceFile[] = [] - const fr = frag const templateFiles = arrayify(template.files) - const referenceFiles = fr.files.slice(0) + const referenceFiles = fragment.files.slice(0) const filenames = await expandFiles( referenceFiles?.length ? referenceFiles : templateFiles ) @@ -54,6 +53,14 @@ async function resolveExpansionVars( files.push(file) } + if (fragment.workspaceFiles?.length) + for (const wf of fragment.workspaceFiles) { + if (!files.find((f) => f.filename === wf.filename)) { + await resolveFileContent(wf) + files.push(wf) + } + } + // Parse and obtain attributes from prompt parameters const attrs = parsePromptParameters(project, template, vars) const secrets: Record<string, string> = {} diff --git a/packages/core/src/types/prompt_template.d.ts b/packages/core/src/types/prompt_template.d.ts index 6f23f4bbfe..bc36749c78 100644 --- a/packages/core/src/types/prompt_template.d.ts +++ b/packages/core/src/types/prompt_template.d.ts @@ -539,6 +539,16 @@ interface WorkspaceFile { */ filename: string + /** + * Content mime-type if known + */ + type?: string + + /** + * Encoding of the content + */ + encoding?: 'base64' + /** * Content of the file. */ diff --git a/packages/core/src/util.ts b/packages/core/src/util.ts index 97b7f3378f..5e1037b9ad 100644 --- a/packages/core/src/util.ts +++ b/packages/core/src/util.ts @@ -133,34 +133,6 @@ export function utf8Decode(buf: Uint8Array) { return host.createUTF8Decoder().decode(buf) } -// this will take lower 8 bits from each character -export function stringToUint8Array(input: string) { - const len = input.length - const res = new Uint8Array(len) - for (let i = 0; i < len; ++i) res[i] = input.charCodeAt(i) & 0xff - return res -} - -export function uint8ArrayToString(input: ArrayLike<number>) { - const len = input.length - let res = "" - for (let i = 0; i < len; ++i) res += String.fromCharCode(input[i]) - return res -} - -declare var Buffer: any -export function fromBase64(encoded: string): Uint8Array { - if (typeof Buffer == "function" && typeof Buffer.from == "function") - return new Uint8Array(Buffer.from(encoded, "base64")) - else return stringToUint8Array(atob(encoded)) -} - -export function toBase64(data: Uint8Array): string { - if (typeof Buffer == "function" && typeof Buffer.from == "function") - return Buffer.from(data).toString("base64") - else return btoa(uint8ArrayToString(data)) -} - export function dotGenaiscriptPath(...segments: string[]) { return host.resolvePath( host.projectFolder(), diff --git a/packages/core/src/zip.ts b/packages/core/src/zip.ts index b7ee22cd67..adbc96ec53 100644 --- a/packages/core/src/zip.ts +++ b/packages/core/src/zip.ts @@ -1,8 +1,9 @@ import { unzipSync } from "fflate" import { lookupMime } from "./mime" -import { isBinaryMimeType } from "./parser" +import { isBinaryMimeType } from "./binary" import { host } from "./host" import { isGlobMatch } from "./glob" +import { toBase64 } from "./base64" export async function unzip( data: Uint8Array, @@ -20,7 +21,11 @@ export async function unzip( return Object.entries(res).map(([filename, data]) => { const mime = lookupMime(filename) if (isBinaryMimeType(mime)) - return <WorkspaceFile>{ filename } // TODO bytes support + return <WorkspaceFile>{ + filename, + encoding: "base64", + content: toBase64(data), + } // bytes support else return <WorkspaceFile>{ filename, content: decoder.decode(data) } }) } diff --git a/packages/sample/package.json b/packages/sample/package.json index 8f277bc602..2194c9a2d3 100644 --- a/packages/sample/package.json +++ b/packages/sample/package.json @@ -21,7 +21,7 @@ "@azure/identity": "^4.5.0", "@azure/storage-blob": "^12.26.0", "@huggingface/transformers": "^3.2.4", - "@modelcontextprotocol/sdk": "^1.0.4", + "@modelcontextprotocol/sdk": "^1.1.0", "@tidyjs/tidy": "^2.5.2", "p-all": "^5.0.0", "vectorstore": "^0.0.4", diff --git a/packages/web/package.json b/packages/web/package.json index 5c6db74636..f1bdf00368 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -14,7 +14,7 @@ "@types/marked": "^6.0.0", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", - "@vscode-elements/elements": "^1.9.0", + "@vscode-elements/elements": "^1.9.1", "@vscode-elements/react-elements": "^0.8.0", "@vscode-elements/webview-playground": "^1.3.0", "clsx": "^2.1.1", diff --git a/packages/web/src/App.tsx b/packages/web/src/App.tsx index d76a06947b..74f2e18f98 100644 --- a/packages/web/src/App.tsx +++ b/packages/web/src/App.tsx @@ -53,6 +53,8 @@ import prettyBytes from "pretty-bytes" import { renderMessagesToMarkdown } from "../../core/src/chatrender" import { stringify as YAMLStringify } from "yaml" import { fenceMD } from "../../core/src/mkmd" +import { isBinaryMimeType } from "../../core/src/binary" +import { toBase64 } from "../../core/src/base64" const urlParams = new URLSearchParams(window.location.hash) const apiKey = urlParams.get("api-key") @@ -92,6 +94,7 @@ class RunClient extends EventTarget { constructor( readonly script: string, readonly files: string[], + readonly workspaceFiles: WorkspaceFile[], readonly options: any ) { super() @@ -109,7 +112,10 @@ class RunClient extends EventTarget { runId: this.runId, script, files: this.files, - options: this.options, + options: { + ...(this.options || {}), + workspaceFiles: this.workspaceFiles, + }, } satisfies PromptScriptStart) ) }, @@ -323,7 +329,13 @@ const RunnerContext = createContext<{ } | null>(null) function RunnerProvider({ children }: { children: React.ReactNode }) { - const { scriptid, files = [], options, parameters } = useApi() + const { + scriptid, + files = [], + importedFiles = [], + options, + parameters, + } = useApi() const [runner, setRunner] = useState<RunClient | undefined>(undefined) useEffect(() => { @@ -331,12 +343,32 @@ function RunnerProvider({ children }: { children: React.ReactNode }) { setRunner(undefined) }, [scriptid]) - const run = () => { + const run = async () => { runner?.close() if (!scriptid) return - console.log(`run: start ${scriptid}`, { files, parameters, options }) - const client = new RunClient(scriptid, files.slice(0), { + console.log(`run: start ${scriptid}`, { + files, + importedFiles, + parameters, + options, + }) + const workspaceFiles = await Promise.all( + importedFiles.map(async (f) => { + const binary = isBinaryMimeType(f.type) + const buffer = binary + ? new Uint8Array(await f.arrayBuffer()) + : undefined + const content = buffer ? toBase64(buffer) : await f.text() + return { + filename: f.path || f.relativePath, + type: f.type, + encoding: binary ? "base64" : undefined, + content, + } satisfies WorkspaceFile + }) + ) + const client = new RunClient(scriptid, files.slice(0), workspaceFiles, { parameters, ...options, }) @@ -863,17 +895,6 @@ function toStringList(...token: (string | undefined | null)[]) { return md } -function ScriptFormHelper() { - const script = useScript() - return ( - <VscodeFormHelper> - {script - ? toStringList(script.title, script.description) - : `Select a GenAIScript to run`} - </VscodeFormHelper> - ) -} - function FilesDropZone() { const { acceptedFiles, isDragActive, getRootProps, getInputProps } = useDropzone() @@ -883,65 +904,46 @@ function FilesDropZone() { return ( <> - <VscodeFormContainer> - <VscodeFormGroup> - <VscodeLabel>Files</VscodeLabel> - <VscodeMultiSelect - onChange={(e) => { - e.preventDefault() - const target = e.target as HTMLSelectElement - const value = target.value as string - setImportedFiles( - acceptedFiles.filter((f) => f.path === value) - ) - }} - > - {acceptedFiles.map((file) => ( - <VscodeOption - key={file.path} - value={file.path} - selected - > - {file.name} ({prettyBytes(file.size)}) - </VscodeOption> - ))} - </VscodeMultiSelect> - </VscodeFormGroup> - <VscodeFormGroup - style={{ - cursor: "pointer", + <VscodeFormGroup> + <VscodeLabel>Files</VscodeLabel> + <VscodeMultiSelect + onChange={(e) => { + e.preventDefault() + const target = e.target as HTMLSelectElement + const value = target.value as string + setImportedFiles( + acceptedFiles.filter((f) => f.path === value) + ) }} - {...getRootProps({ className: "dropzone" })} > - <input {...getInputProps()} /> - <VscodeFormHelper> - {isDragActive - ? `Drop the files here ...` - : `Drag 'n' drop some files here, or click to select files`} - </VscodeFormHelper> - </VscodeFormGroup> - </VscodeFormContainer> + {acceptedFiles.map((file) => ( + <VscodeOption + key={file.path} + value={file.path} + selected + > + {file.name} ({prettyBytes(file.size)}) + </VscodeOption> + ))} + </VscodeMultiSelect> + </VscodeFormGroup> + <VscodeFormGroup + style={{ + cursor: "pointer", + }} + {...getRootProps({ className: "dropzone" })} + > + <input {...getInputProps()} /> + <VscodeFormHelper> + {isDragActive + ? `Drop the files here ...` + : `Drag 'n' drop some files here, or click to select files`} + </VscodeFormHelper> + </VscodeFormGroup> </> ) } -function FilesForm() { - const { files, importedFiles } = useApi() - - const n = (files?.length || 0) + (importedFiles?.length || 0) - return ( - <VscodeCollapsible title="Files"> - {n > 0 && ( - <VscodeBadge variant="counter" slot="decorations"> - {n} - </VscodeBadge> - )} - <GlobsForm /> - <FilesDropZone /> - </VscodeCollapsible> - ) -} - function GlobsForm() { const { files = [], setFiles } = useApi() return ( @@ -964,6 +966,7 @@ function GlobsForm() { function ScriptSelect() { const scripts = useScripts() const { scriptid, setScriptid } = useApi() + const script = useScript() return ( <VscodeFormGroup> @@ -972,6 +975,7 @@ function ScriptSelect() { </VscodeLabel> <VscodeSingleSelect value={scriptid} + required={true} combobox filter="fuzzy" onChange={(e) => { @@ -989,7 +993,11 @@ function ScriptSelect() { </VscodeOption> ))} </VscodeSingleSelect> - <ScriptFormHelper /> + {script && ( + <VscodeFormHelper> + {toStringList(script.title, script.description)} + </VscodeFormHelper> + )} </VscodeFormGroup> ) } @@ -999,6 +1007,7 @@ function ScriptForm() { <VscodeCollapsible open title="Script"> <VscodeFormContainer> <ScriptSelect /> + <FilesDropZone /> <RunButton /> </VscodeFormContainer> </VscodeCollapsible> @@ -1133,7 +1142,6 @@ function RunForm() { return ( <form onSubmit={handleSubmit}> <ScriptForm /> - <FilesForm /> <PromptParametersForm /> <ModelConnectionOptionsForm /> </form> diff --git a/slides/yarn.lock b/slides/yarn.lock index 9a9864f57c..cc8a2376e3 100644 --- a/slides/yarn.lock +++ b/slides/yarn.lock @@ -872,102 +872,102 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz#c82f04a09ba481e13857d6f2516e072aaa51b7f4" integrity sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg== -"@shikijs/core@1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.25.1.tgz#77d5af5e759c7b12abb00785a8e2ef64fe949b2f" - integrity sha512-0j5k3ZkLTQViOuNzPVyWGoW1zgH3kiFdUT/JOCkTm7TU74mz+dF+NID+YoiCBzHQxgsDpcGYPjKDJRcuVLSt4A== - dependencies: - "@shikijs/engine-javascript" "1.25.1" - "@shikijs/engine-oniguruma" "1.25.1" - "@shikijs/types" "1.25.1" - "@shikijs/vscode-textmate" "^9.3.1" +"@shikijs/core@1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.26.1.tgz#ba7399bee73148575277780c9fe4df656d582a65" + integrity sha512-yeo7sG+WZQblKPclUOKRPwkv1PyoHYkJ4gP9DzhFJbTdueKR7wYTI1vfF/bFi1NTgc545yG/DzvVhZgueVOXMA== + dependencies: + "@shikijs/engine-javascript" "1.26.1" + "@shikijs/engine-oniguruma" "1.26.1" + "@shikijs/types" "1.26.1" + "@shikijs/vscode-textmate" "^10.0.1" "@types/hast" "^3.0.4" hast-util-to-html "^9.0.4" -"@shikijs/engine-javascript@1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-1.25.1.tgz#ebae27e6949a9d3aa46a86b596a762933db4a2ea" - integrity sha512-zQ7UWKnRCfD/Q1M+XOSyjsbhpE0qv8LUnmn82HYCeOsgAHgUZGEDIQ63bbuK3kU5sQg+2CtI+dPfOqD/mjSY9w== +"@shikijs/engine-javascript@1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-1.26.1.tgz#0881250e4a39a52b49cb50600f41bb19e429dcdb" + integrity sha512-CRhA0b8CaSLxS0E9A4Bzcb3LKBNpykfo9F85ozlNyArxjo2NkijtiwrJZ6eHa+NT5I9Kox2IXVdjUsP4dilsmw== dependencies: - "@shikijs/types" "1.25.1" - "@shikijs/vscode-textmate" "^9.3.1" + "@shikijs/types" "1.26.1" + "@shikijs/vscode-textmate" "^10.0.1" oniguruma-to-es "0.10.0" -"@shikijs/engine-oniguruma@1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-1.25.1.tgz#537221149f47fd71f64a503203c4bd3fd037fa02" - integrity sha512-iKPMh3H+0USHtWfZ1irfMTH6tGmIUFSnqt3E2K8BgI1VEsqiPh0RYkG2WTwzNiM1/WHN4FzYx/nrKR7PDHiRyw== +"@shikijs/engine-oniguruma@1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-1.26.1.tgz#f9de733e2473e693b3d10bff32bb9761746c1d71" + integrity sha512-F5XuxN1HljLuvfXv7d+mlTkV7XukC1cawdtOo+7pKgPD83CAB1Sf8uHqP3PK0u7njFH0ZhoXE1r+0JzEgAQ+kg== dependencies: - "@shikijs/types" "1.25.1" - "@shikijs/vscode-textmate" "^9.3.1" + "@shikijs/types" "1.26.1" + "@shikijs/vscode-textmate" "^10.0.1" -"@shikijs/langs@1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-1.25.1.tgz#1c0b7822d41929351b31409d2932952495a4fae3" - integrity sha512-hdYjq9aRJplAzGe2qF51PR9IDgEoyGb4IkXvr3Ts6lEdg4Z8M/kdknKRo2EIuv3IR/aKkJXTlBQRM+wr3t20Ew== +"@shikijs/langs@1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-1.26.1.tgz#5365530e04715b21e40242eb331291712bdf7306" + integrity sha512-oz/TQiIqZejEIZbGtn68hbJijAOTtYH4TMMSWkWYozwqdpKR3EXgILneQy26WItmJjp3xVspHdiUxUCws4gtuw== dependencies: - "@shikijs/types" "1.25.1" + "@shikijs/types" "1.26.1" "@shikijs/markdown-it@^1.24.2": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/markdown-it/-/markdown-it-1.25.1.tgz#7f5e58d0fda82f54b6a7a2e8081116347c1533c5" - integrity sha512-KcZnJKitGvCKXhnVhOIxaobAp6TYe27M0uriWfLeCsOF4d4bkQ6dnwfJLEPtRV90tFqCZ+qzHbNrIc+ArroU9w== + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/markdown-it/-/markdown-it-1.26.1.tgz#62a196f1dd8238eba9b6ad85e95b102cb25e6878" + integrity sha512-+1WSmaD1ANN0x15ud4oMw5RFgFdyT0FpU9OoE7MUbiaU9+pRtAjIx0viTVsbhBzJEG1oVUBzK1Wc6Wz7toiTZg== dependencies: markdown-it "^14.1.0" - shiki "1.25.1" + shiki "1.26.1" "@shikijs/monaco@^1.24.2": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/monaco/-/monaco-1.25.1.tgz#00e4470a5f9aff5af53b385b1add9f315b679dbc" - integrity sha512-heWxO6vCu78ZGE2m62com4Ry/xiFcJiJtSwlaBYHlG3aCBZP3Qph2SVFkxRUPgQSuGr1LO5EhOclPBaNrr8MnA== + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/monaco/-/monaco-1.26.1.tgz#2c30aa570c6b178e4757a300b5c473eb0ed8a278" + integrity sha512-lwBbVrmGIXgyD9Kdv00Ds66I6E4/PORDyPQ2GplFzZOHGq3tLo2Z44WK4BQCBMoAft+OPjqZS0oOzZwEGYaXLA== dependencies: - "@shikijs/core" "1.25.1" - "@shikijs/types" "1.25.1" - "@shikijs/vscode-textmate" "^9.3.1" + "@shikijs/core" "1.26.1" + "@shikijs/types" "1.26.1" + "@shikijs/vscode-textmate" "^10.0.1" -"@shikijs/themes@1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-1.25.1.tgz#7b38ad054632521e883bcf44fb96181151dea5a9" - integrity sha512-JO0lDn4LgGqg5QKvgich5ScUmC2okK+LxM9a3iLUH7YMeI2c8UGXThuJv6sZduS7pdJbYQHPrvWq9t/V4GhpbQ== +"@shikijs/themes@1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-1.26.1.tgz#6f6ee538dc1383b8a971464c5cecda06b1a6db0d" + integrity sha512-JDxVn+z+wgLCiUhBGx2OQrLCkKZQGzNH3nAxFir4PjUcYiyD8Jdms9izyxIogYmSwmoPTatFTdzyrRKbKlSfPA== dependencies: - "@shikijs/types" "1.25.1" + "@shikijs/types" "1.26.1" "@shikijs/twoslash@", "@shikijs/twoslash@^1.24.2": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/twoslash/-/twoslash-1.25.1.tgz#97276af8de46547ca544c62947571d5fbec5cac2" - integrity sha512-nLfPRX4dsqZKJF0Lq+QKl1eyKRk5pBdRDwORozcv1q1F8OVOS5I8Rb3GoWd9BVv/nrWcpxg4rBT59JJ3MrqXDQ== + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/twoslash/-/twoslash-1.26.1.tgz#3f8b7658dcacddbbc357c13afbc8cb59ffa89aa7" + integrity sha512-jgRt6c6y+rXVfpcLIAY8luCKDiadhozrLS1+xjXA6WcZ/5wCAB2oj+ubue+14UZkg2yLJaH0X7N8N2J7/X1YJQ== dependencies: - "@shikijs/core" "1.25.1" - "@shikijs/types" "1.25.1" + "@shikijs/core" "1.26.1" + "@shikijs/types" "1.26.1" twoslash "^0.2.12" -"@shikijs/types@1.25.1": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-1.25.1.tgz#b080fc9e2622b0e4b2ec0ff4bc0628a37f7fc102" - integrity sha512-dceqFUoO95eY4tpOj3OGq8wE8EgJ4ey6Me1HQEu5UbwIYszFndEll/bjlB8Kp9wl4fx3uM7n4+y9XCYuDBmcXA== +"@shikijs/types@1.26.1": + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-1.26.1.tgz#b5ece69e21000f53d65d15ddae33d9ad9c3763ad" + integrity sha512-d4B00TKKAMaHuFYgRf3L0gwtvqpW4hVdVwKcZYbBfAAQXspgkbWqnFfuFl3MDH6gLbsubOcr+prcnsqah3ny7Q== dependencies: - "@shikijs/vscode-textmate" "^9.3.1" + "@shikijs/vscode-textmate" "^10.0.1" "@types/hast" "^3.0.4" "@shikijs/vitepress-twoslash@^1.24.2": - version "1.25.1" - resolved "https://registry.yarnpkg.com/@shikijs/vitepress-twoslash/-/vitepress-twoslash-1.25.1.tgz#50a3a0bfe150aea76e0db68c7604d55a1fdd59f6" - integrity sha512-f2MJWlk+nSZqXm+meFOCL7mItWSTMk/Y0Ytz5pUnwfZBHN5JO+LUOQT+Uhu3ONtiAHi3MdK0mrG2T5jOptHNUg== + version "1.26.1" + resolved "https://registry.yarnpkg.com/@shikijs/vitepress-twoslash/-/vitepress-twoslash-1.26.1.tgz#3606f6e2982b55e252da670dab1eca9ddbe7b0db" + integrity sha512-doNqlJ+oOkC98cgiJSFJ3T/RZMBTiutQ3xw8EB8Xr6Qbk1/5Tfg+eOpI/2h2HTHdEafC2jzkgWK/l7Te1u5aWA== dependencies: "@shikijs/twoslash" "" floating-vue "^5.2.2" mdast-util-from-markdown "^2.0.2" mdast-util-gfm "^3.0.0" mdast-util-to-hast "^13.2.0" - shiki "1.25.1" + shiki "1.26.1" twoslash "^0.2.12" twoslash-vue "^0.2.12" vue "^3.5.13" -"@shikijs/vscode-textmate@^9.3.1": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-9.3.1.tgz#afda31f8f42cab70a26f3603f52eae3f1c35d2f7" - integrity sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g== +"@shikijs/vscode-textmate@^10.0.1": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.1.tgz#d06d45b67ac5e9b0088e3f67ebd3f25c6c3d711a" + integrity sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg== "@sindresorhus/is@^5.2.0": version "5.6.0" @@ -1441,9 +1441,9 @@ integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== "@types/node@*", "@types/node@>=20": - version "22.10.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.4.tgz#da36bebcc4b124f3d62bfde1cd1dafd7763949c1" - integrity sha512-99l6wv4HEzBQhvaU/UGoeBoCK61SCROQaCCGyQSgX2tEQ3rKkNZ2S7CEWnS/4s1LV+8ODdK21UeyR1fHP2mXug== + version "22.10.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.5.tgz#95af89a3fb74a2bb41ef9927f206e6472026e48b" + integrity sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ== dependencies: undici-types "~6.20.0" @@ -3675,9 +3675,9 @@ marked@^13.0.2: integrity sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA== mdast-util-find-and-replace@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz#a6fc7b62f0994e973490e45262e4bc07607b04e0" - integrity sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz#70a3174c894e14df722abf43bc250cbae44b11df" + integrity sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg== dependencies: "@types/mdast" "^4.0.0" escape-string-regexp "^5.0.0" @@ -4680,18 +4680,18 @@ shiki-magic-move@^0.5.2: diff-match-patch-es "^0.1.1" ohash "^1.1.4" -shiki@1.25.1, shiki@^1.24.2: - version "1.25.1" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.25.1.tgz#0f3907b0f9deebadfb6a1f248804d8791522d7e3" - integrity sha512-/1boRvNYwRW3GLG9Y6dXdnZ/Ha+J5T/5y3hV7TGQUcDSBM185D3FCbXlz2eTGNKG2iWCbWqo+P0yhGKZ4/CUrw== - dependencies: - "@shikijs/core" "1.25.1" - "@shikijs/engine-javascript" "1.25.1" - "@shikijs/engine-oniguruma" "1.25.1" - "@shikijs/langs" "1.25.1" - "@shikijs/themes" "1.25.1" - "@shikijs/types" "1.25.1" - "@shikijs/vscode-textmate" "^9.3.1" +shiki@1.26.1, shiki@^1.24.2: + version "1.26.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.26.1.tgz#eedb5f192a4d980a3e8bdd850ee390eef05cc386" + integrity sha512-Gqg6DSTk3wYqaZ5OaYtzjcdxcBvX5kCy24yvRJEgjT5U+WHlmqCThLuBUx0juyxQBi+6ug53IGeuQS07DWwpcw== + dependencies: + "@shikijs/core" "1.26.1" + "@shikijs/engine-javascript" "1.26.1" + "@shikijs/engine-oniguruma" "1.26.1" + "@shikijs/langs" "1.26.1" + "@shikijs/themes" "1.26.1" + "@shikijs/types" "1.26.1" + "@shikijs/vscode-textmate" "^10.0.1" "@types/hast" "^3.0.4" signal-exit@^4.1.0: diff --git a/yarn.lock b/yarn.lock index b8bad4254d..ca36838944 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1159,6 +1159,24 @@ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz#8249de9b7e22fcb3ceb5e66090c30a1d5492b81a" integrity sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA== +"@grpc/grpc-js@^1.11.1": + version "1.12.5" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.12.5.tgz#0064a28fe9b1ec54ac27e1c9bf70720aa01285e8" + integrity sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA== + dependencies: + "@grpc/proto-loader" "^0.7.13" + "@js-sdsl/ordered-map" "^4.4.2" + +"@grpc/proto-loader@^0.7.13": + version "0.7.13" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf" + integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.5" + yargs "^17.7.2" + "@huggingface/jinja@^0.2.2": version "0.2.2" resolved "https://registry.yarnpkg.com/@huggingface/jinja/-/jinja-0.2.2.tgz#faeb205a9d6995089bef52655ddd8245d3190627" @@ -1741,6 +1759,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== +"@js-sdsl/ordered-map@^4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz#9299f82874bab9e4c7f9c48d865becbfe8d6907c" + integrity sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw== + "@lit-labs/ssr-dom-shim@^1.2.0": version "1.2.1" resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz#2f3a8f1d688935c704dbc89132394a41029acbb8" @@ -1804,10 +1827,10 @@ resolved "https://registry.yarnpkg.com/@mixmark-io/domino/-/domino-2.2.0.tgz#4e8ec69bf1afeb7a14f0628b7e2c0f35bdb336c3" integrity sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw== -"@modelcontextprotocol/sdk@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@modelcontextprotocol/sdk/-/sdk-1.0.4.tgz#34ad1edd3db7dd7154e782312dfb29d2d0c11d21" - integrity sha512-C+jw1lF6HSGzs7EZpzHbXfzz9rj9him4BaoumlTciW/IDDgIpweF/qiCWKlP02QKg5PPcgY6xY2WCt5y2tpYow== +"@modelcontextprotocol/sdk@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@modelcontextprotocol/sdk/-/sdk-1.1.0.tgz#9343ee9c53ac4138608572c2eb34db78752d8664" + integrity sha512-o5PIPz0vc1bJYXS0oLvRr8yUOzYtxEFL1rWP4aiO8qLslCksmbKhONy6CTpq0WPuIXUt2YuXoRtVA2EcLix3fw== dependencies: content-type "^1.0.5" raw-body "^3.0.0" @@ -1939,13 +1962,13 @@ universal-user-agent "^7.0.0" "@octokit/auth-oauth-device@^7.0.0", "@octokit/auth-oauth-device@^7.0.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-device/-/auth-oauth-device-7.1.1.tgz#7b4f8f97cbcadbe9894d48cde4406dbdef39875a" - integrity sha512-HWl8lYueHonuyjrKKIup/1tiy0xcmQCdq5ikvMO1YwkNNkxb6DXfrPjrMYItNLyCP/o2H87WuijuE+SlBTT8eg== + version "7.1.2" + resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-device/-/auth-oauth-device-7.1.2.tgz#bd79003e780467f18b0ccf4ad488151769edf41b" + integrity sha512-gTOIzDeV36OhVfxCl69FmvJix7tJIiU6dlxuzLVAzle7fYfO8UDyddr9B+o4CFQVaMBLMGZ9ak2CWMYcGeZnPw== dependencies: - "@octokit/oauth-methods" "^5.0.0" - "@octokit/request" "^9.0.0" - "@octokit/types" "^13.0.0" + "@octokit/oauth-methods" "^5.1.3" + "@octokit/request" "^9.1.4" + "@octokit/types" "^13.6.2" universal-user-agent "^7.0.0" "@octokit/auth-oauth-user@^5.0.1", "@octokit/auth-oauth-user@^5.1.0": @@ -1973,15 +1996,15 @@ "@octokit/types" "^13.0.0" "@octokit/core@^6.0.0", "@octokit/core@^6.1.2": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-6.1.2.tgz#20442d0a97c411612da206411e356014d1d1bd17" - integrity sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg== + version "6.1.3" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-6.1.3.tgz#280d3bb66c702297baac0a202219dd66611286e4" + integrity sha512-z+j7DixNnfpdToYsOutStDgeRzJSMnbj8T1C/oQjB6Aa+kRfNjs/Fn7W6c8bmlt6mfy3FkgeKBRnDjxQow5dow== dependencies: "@octokit/auth-token" "^5.0.0" - "@octokit/graphql" "^8.0.0" - "@octokit/request" "^9.0.0" - "@octokit/request-error" "^6.0.1" - "@octokit/types" "^13.0.0" + "@octokit/graphql" "^8.1.2" + "@octokit/request" "^9.1.4" + "@octokit/request-error" "^6.1.6" + "@octokit/types" "^13.6.2" before-after-hook "^3.0.2" universal-user-agent "^7.0.0" @@ -1993,7 +2016,7 @@ "@octokit/types" "^13.6.2" universal-user-agent "^7.0.2" -"@octokit/graphql@^8.0.0": +"@octokit/graphql@^8.1.2": version "8.1.2" resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-8.1.2.tgz#98b9072b22e0471b782d52ed0da08e2b2de52b17" integrity sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw== @@ -2021,7 +2044,7 @@ resolved "https://registry.yarnpkg.com/@octokit/oauth-authorization-url/-/oauth-authorization-url-7.1.1.tgz#0e17c2225eb66b58ec902d02b6f1315ffe9ff04b" integrity sha512-ooXV8GBSabSWyhLUowlMIVd9l1s2nsOGQdlP2SQ4LnkEsGXzeCvbSbCPdZThXhEFzleGPwbapT0Sb+YhXRyjCA== -"@octokit/oauth-methods@^5.0.0": +"@octokit/oauth-methods@^5.0.0", "@octokit/oauth-methods@^5.1.3": version "5.1.3" resolved "https://registry.yarnpkg.com/@octokit/oauth-methods/-/oauth-methods-5.1.3.tgz#d2083e7cfcc16f7c6c67141795a299538712eba8" integrity sha512-M+bDBi5H8FnH0xhCTg0m9hvcnppdDnxUqbZyOkxlLblKpLAR+eT2nbDPvJDp0eLrvJWA1I8OX0KHf/sBMQARRA== @@ -2895,9 +2918,9 @@ integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== "@types/aws-lambda@^8.10.83": - version "8.10.146" - resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.146.tgz#05f9968d8cd9719a0a86526baf889c25761f60b8" - integrity sha512-3BaDXYTh0e6UCJYL/jwV/3+GRslSc08toAiZSmleYtkAUyV5rtvdPYxrG/88uqvTuT6sb27WE9OS90ZNTIuQ0g== + version "8.10.147" + resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.147.tgz#dc5c89aa32f47a9b35e52c32630545c83afa6f2f" + integrity sha512-nD0Z9fNIZcxYX5Mai2CTmFD7wX7UldCkW2ezCF8D1T5hdiLsnTWDGRpfRYntU6VjTdLQjOvyszru7I1c1oCQew== "@types/d3-array@*": version "3.2.1" @@ -3291,10 +3314,10 @@ "@types/node" "*" form-data "^4.0.0" -"@types/node@*", "@types/node@>=13.7.0", "@types/node@>=20", "@types/node@^22.10.2": - version "22.10.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.4.tgz#da36bebcc4b124f3d62bfde1cd1dafd7763949c1" - integrity sha512-99l6wv4HEzBQhvaU/UGoeBoCK61SCROQaCCGyQSgX2tEQ3rKkNZ2S7CEWnS/4s1LV+8ODdK21UeyR1fHP2mXug== +"@types/node@*", "@types/node@>=13.7.0", "@types/node@>=20", "@types/node@^22.10.5": + version "22.10.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.5.tgz#95af89a3fb74a2bb41ef9927f206e6472026e48b" + integrity sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ== dependencies: undici-types "~6.20.0" @@ -3368,9 +3391,9 @@ integrity sha512-+UE8GAGRPbJVQDdxi16dgadcBfQ+KG2vgZhV1+3A1XmHbmwcdwhCUwIdy+d3pAGrbvgRoVSjeI9vOWyq376Yzw== "@types/ssh2@*": - version "1.15.1" - resolved "https://registry.yarnpkg.com/@types/ssh2/-/ssh2-1.15.1.tgz#4db4b6864abca09eb299fe5354fa591add412223" - integrity sha512-ZIbEqKAsi5gj35y4P4vkJYly642wIbY6PqoN0xiyQGshKUGXR9WQjF/iF9mXBQ8uBKy3ezfsCkcoHKhd0BzuDA== + version "1.15.3" + resolved "https://registry.yarnpkg.com/@types/ssh2/-/ssh2-1.15.3.tgz#dc67c0336d04e1f3b5ae500b0c1455676ab49193" + integrity sha512-pUhXytp7aRAj1AKCQpdKNKGb32e53MUGPu186U9cm8mbX6kxF0UcngI/RVoKvJTWdHqDFiNrSDiPR/JZWexcCQ== dependencies: "@types/node" "^18.11.18" @@ -3423,10 +3446,10 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.1.tgz#28fa185f67daaf7b7a1a8c1d445132c5d979f8bd" integrity sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA== -"@vscode-elements/elements@^1.8.0", "@vscode-elements/elements@^1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@vscode-elements/elements/-/elements-1.9.0.tgz#8b3b1366656a98446fa334a08e2268469c68a01f" - integrity sha512-OjoACdO2elyZ8qVxaClN/JUODejusYC1YVOU6ekHULdWuVoU1nAXRh31Smm89M+Z7UezaAH2mXIP9aZ3q4nnjA== +"@vscode-elements/elements@^1.8.0", "@vscode-elements/elements@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@vscode-elements/elements/-/elements-1.9.1.tgz#cc6d405a93577969b3f98fbc36b1d8eacd560c91" + integrity sha512-OqNqE6vD4gbmu8L5UBAHuiU/cclLDsEb1gikJvuzEY7jVQOU0jFR70gFdk/aQikWFcKzVMoXqgO+lIKPSK0IUw== dependencies: lit "^3.2.1" @@ -3814,9 +3837,9 @@ balanced-match@^1.0.0: integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== bare-events@^2.0.0, bare-events@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.5.0.tgz#305b511e262ffd8b9d5616b056464f8e1b3329cc" - integrity sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A== + version "2.5.1" + resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.5.1.tgz#052a96e3fc0e87cd9f226199d7f8a80cd87b6d21" + integrity sha512-Bw2PgKSrZ3uCuSV9WQ998c/GTJTd+9bWj97n7aDQMP8dP/exAZQlJeswPty0ISy+HZD+9Ex+C7CCnc9Q5QJFmQ== bare-fs@^2.1.1: version "2.3.5" @@ -4886,24 +4909,28 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -docker-modem@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-5.0.3.tgz#50c06f11285289f58112b5c4c4d89824541c41d0" - integrity sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg== +docker-modem@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-5.0.5.tgz#5c0d3fa3b4c778098d965be20c887c14fa995a2f" + integrity sha512-Cxw8uEcvNTRmsQuGqzzfiCnfGgf96tVJItLh8taOX0miTcIBALKH5TckCSuZbpbjP7uhAl81dOL9sxfa6HgCIg== dependencies: debug "^4.1.1" readable-stream "^3.5.0" split-ca "^1.0.1" ssh2 "^1.15.0" -dockerode@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-4.0.2.tgz#dedc8529a1db3ac46d186f5912389899bc309f7d" - integrity sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w== +dockerode@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-4.0.3.tgz#509227f46782302650447fd495d44b9e3b439e4f" + integrity sha512-QSXJFcBQNaGZO6U3qWW4B7p8yRIJn/dWmvL2AQWfO/bjptBBO6QYdVkYSYFz9qoivP2jsOHZfmXMAfrK0BMKyg== dependencies: "@balena/dockerignore" "^1.0.2" - docker-modem "^5.0.3" + "@grpc/grpc-js" "^1.11.1" + "@grpc/proto-loader" "^0.7.13" + docker-modem "^5.0.5" + protobufjs "^7.3.2" tar-fs "~2.0.1" + uuid "^10.0.0" dom-serializer@^2.0.0: version "2.0.0" @@ -5345,9 +5372,9 @@ extsprintf@^1.2.0: integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== fast-content-type-parse@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-content-type-parse/-/fast-content-type-parse-2.0.0.tgz#dea7bfd385e4f18e69f37d309431a4b48470fece" - integrity sha512-fCqg/6Sps8tqk8p+kqyKqYfOF0VjPNYrqpLiqNl0RBKmD80B080AJWVV6EkSkscjToNExcXg1+Mfzftrx6+iSA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz#c236124534ee2cb427c8d8e5ba35a4856947847b" + integrity sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -6222,7 +6249,7 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -inflection@^3.0.0: +inflection@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/inflection/-/inflection-3.0.1.tgz#b1ec2fb8ab0887725d29ad6934810011eb508fa0" integrity sha512-EpyF+TLa3xZPClbkp9pDJZtJFYPHouWuFYsfAQI8AfjnaPVOpmRV6GSzCs+QGelj2eZ7oQllcK23aI1vHhPVVg== @@ -6965,6 +6992,11 @@ lodash-es@4.17.21, lodash-es@^4.17.21: resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" @@ -7180,9 +7212,9 @@ mathjs@^14.0.1: typed-function "^4.2.1" mdast-util-find-and-replace@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz#a6fc7b62f0994e973490e45262e4bc07607b04e0" - integrity sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz#70a3174c894e14df722abf43bc250cbae44b11df" + integrity sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg== dependencies: "@types/mdast" "^4.0.0" escape-string-regexp "^5.0.0" @@ -8231,10 +8263,10 @@ openai@^3.2.1: axios "^0.26.0" form-data "^4.0.0" -openai@^4.77.0: - version "4.77.0" - resolved "https://registry.yarnpkg.com/openai/-/openai-4.77.0.tgz#228f2d43ffa79ae9d8b5d4155e965da82e5ac330" - integrity sha512-WWacavtns/7pCUkOWvQIjyOfcdr9X+9n9Vvb0zFeKVDAqwCMDHB+iSr24SVaBAhplvSG6JrRXFpcNM9gWhOGIw== +openai@^4.77.3: + version "4.77.3" + resolved "https://registry.yarnpkg.com/openai/-/openai-4.77.3.tgz#10f6906f2f737a98b656b745a6b710e595ba2e4d" + integrity sha512-wLDy4+KWHz31HRFMW2+9KQuVuT2QWhs0z94w1Gm1h2Ut9vIHr9/rHZggbykZEfyiaJRVgw8ZS9K6AylDWzvPYw== dependencies: "@types/node" "^18.11.18" "@types/node-fetch" "^2.6.4" @@ -8737,7 +8769,7 @@ protobufjs@^6.8.8: "@types/node" ">=13.7.0" long "^4.0.0" -protobufjs@^7.2.4: +protobufjs@^7.2.4, protobufjs@^7.2.5, protobufjs@^7.3.2: version "7.4.0" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.4.0.tgz#7efe324ce9b3b61c82aae5de810d287bc08a248a" integrity sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw== @@ -8988,13 +9020,15 @@ regenerator-runtime@^0.14.0: integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regexp.prototype.flags@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" - integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== + version "1.5.4" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" + integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" define-properties "^1.2.1" es-errors "^1.3.0" + get-proto "^1.0.1" + gopd "^1.2.0" set-function-name "^2.0.2" rehype-highlight@^7.0.1: @@ -10438,6 +10472,11 @@ util@^0.12.5: is-typed-array "^1.1.3" which-typed-array "^1.1.2" +uuid@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294" + integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ== + uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"