@nocobase/plugin-ai 2.2.0-beta.7 → 2.2.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/ai/docs/nocobase/api/app/env.md +28 -1
  2. package/dist/ai/docs/nocobase/api/cli/config/delete.md +9 -6
  3. package/dist/ai/docs/nocobase/api/cli/config/get.md +8 -6
  4. package/dist/ai/docs/nocobase/api/cli/config/index.md +40 -26
  5. package/dist/ai/docs/nocobase/api/cli/config/set.md +15 -8
  6. package/dist/ai/docs/nocobase/api/cli/env/auth.md +53 -5
  7. package/dist/ai/docs/nocobase/api/cli/self/check.md +19 -2
  8. package/dist/ai/docs/nocobase/api/cli/self/index.md +1 -1
  9. package/dist/ai/docs/nocobase/api/cli/self/update.md +17 -3
  10. package/dist/ai/docs/nocobase/file-manager/field-attachment.md +6 -0
  11. package/dist/ai/docs/nocobase/file-manager/file-preview/index.md +3 -12
  12. package/dist/ai/docs/nocobase/file-manager/storage/aliyun-oss.md +9 -0
  13. package/dist/ai/docs/nocobase/file-manager/storage/amazon-s3.md +9 -0
  14. package/dist/ai/docs/nocobase/file-manager/storage/index.md +23 -0
  15. package/dist/ai/docs/nocobase/file-manager/storage/local.md +9 -0
  16. package/dist/ai/docs/nocobase/file-manager/storage/migrate-to-s3-pro.md +269 -0
  17. package/dist/ai/docs/nocobase/file-manager/storage/tencent-cos.md +9 -0
  18. package/dist/ai/docs/nocobase/get-started/installation/docker-caddy.mdx +175 -0
  19. package/dist/ai/docs/nocobase/get-started/installation/docker-nginx.mdx +176 -0
  20. package/dist/ai/docs/nocobase/get-started/installation/docker.mdx +94 -1
  21. package/dist/ai/docs/nocobase/get-started/installation/env.md +14 -4
  22. package/dist/ai/docs/nocobase/nocobase-cli/installation/cli.md +2 -0
  23. package/dist/ai/docs/nocobase/ops-management/version-control/index.md +1 -0
  24. package/dist/client/559.9f97ebcdb0bd6231.js +10 -0
  25. package/dist/client/{604.de96f3ec4d471afd.js → 604.89c674f35b52b4ef.js} +1 -1
  26. package/dist/client/index.js +3 -3
  27. package/dist/client/llm-providers/mistral/ModelSettings.d.ts +10 -0
  28. package/dist/client/llm-providers/mistral/index.d.ts +10 -0
  29. package/dist/client/llm-services/utils.d.ts +5 -0
  30. package/dist/externalVersion.js +16 -16
  31. package/dist/locale/en-US.json +1 -0
  32. package/dist/locale/zh-CN.json +1 -0
  33. package/dist/node_modules/@langchain/mistralai/LICENSE +21 -0
  34. package/dist/node_modules/@langchain/mistralai/dist/_virtual/rolldown_runtime.cjs +25 -0
  35. package/dist/node_modules/@langchain/mistralai/dist/chat_models.cjs +859 -0
  36. package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.cts +541 -0
  37. package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.ts +541 -0
  38. package/dist/node_modules/@langchain/mistralai/dist/chat_models.js +857 -0
  39. package/dist/node_modules/@langchain/mistralai/dist/embeddings.cjs +140 -0
  40. package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.cts +116 -0
  41. package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.ts +116 -0
  42. package/dist/node_modules/@langchain/mistralai/dist/embeddings.js +139 -0
  43. package/dist/node_modules/@langchain/mistralai/dist/index.cjs +21 -0
  44. package/dist/node_modules/@langchain/mistralai/dist/index.d.cts +4 -0
  45. package/dist/node_modules/@langchain/mistralai/dist/index.d.ts +4 -0
  46. package/dist/node_modules/@langchain/mistralai/dist/index.js +5 -0
  47. package/dist/node_modules/@langchain/mistralai/dist/llms.cjs +275 -0
  48. package/dist/node_modules/@langchain/mistralai/dist/llms.d.cts +147 -0
  49. package/dist/node_modules/@langchain/mistralai/dist/llms.d.ts +147 -0
  50. package/dist/node_modules/@langchain/mistralai/dist/llms.js +274 -0
  51. package/dist/node_modules/@langchain/mistralai/dist/utils.cjs +61 -0
  52. package/dist/node_modules/@langchain/mistralai/dist/utils.js +59 -0
  53. package/dist/node_modules/@langchain/mistralai/package.json +1 -0
  54. package/dist/node_modules/@langchain/xai/dist/index.cjs +2 -2
  55. package/dist/node_modules/@langchain/xai/package.json +1 -1
  56. package/dist/node_modules/fs-extra/package.json +1 -1
  57. package/dist/node_modules/jsonrepair/package.json +1 -1
  58. package/dist/node_modules/just-bash/package.json +1 -1
  59. package/dist/node_modules/nodejs-snowflake/package.json +1 -1
  60. package/dist/node_modules/openai/package.json +1 -1
  61. package/dist/node_modules/zod/package.json +1 -1
  62. package/dist/server/ai-employees/ai-employee.js +19 -6
  63. package/dist/server/ai-employees/checkpoints/cleaner.d.ts +2 -0
  64. package/dist/server/ai-employees/checkpoints/cleaner.js +11 -1
  65. package/dist/server/ai-employees/middleware/conversation.d.ts +2 -0
  66. package/dist/server/ai-employees/middleware/conversation.js +2 -1
  67. package/dist/server/ai-employees/middleware/index.d.ts +1 -0
  68. package/dist/server/ai-employees/middleware/index.js +2 -0
  69. package/dist/server/ai-employees/middleware/tool-call-sanitizer.d.ts +16 -0
  70. package/dist/server/ai-employees/middleware/tool-call-sanitizer.js +90 -0
  71. package/dist/server/ai-employees/tool-call-sanitizer.d.ts +26 -0
  72. package/dist/server/ai-employees/tool-call-sanitizer.js +84 -0
  73. package/dist/server/ai-employees/utils.d.ts +3 -1
  74. package/dist/server/ai-employees/utils.js +16 -2
  75. package/dist/server/llm-providers/mistral.d.ts +62 -0
  76. package/dist/server/llm-providers/mistral.js +265 -0
  77. package/dist/server/llm-providers/provider.d.ts +6 -2
  78. package/dist/server/llm-providers/provider.js +27 -14
  79. package/dist/server/plugin.js +2 -0
  80. package/dist/server/workflow/nodes/employee/index.js +92 -46
  81. package/dist/server/workflow/nodes/employee/tools.js +8 -1
  82. package/package.json +3 -2
  83. package/dist/client/559.a0f2f1cc2be3c039.js +0 -10
@@ -1 +1 @@
1
- {"name":"@langchain/xai","version":"1.3.19","description":"xAI integration for LangChain.js","author":"LangChain","license":"MIT","type":"module","engines":{"node":">=20"},"repository":{"type":"git","url":"git@github.com:langchain-ai/langchainjs.git"},"homepage":"https://github.com/langchain-ai/langchainjs/tree/main/libs/providers/langchain-xai/","dependencies":{"@langchain/openai":"1.4.7"},"peerDependencies":{"@langchain/core":"^1.0.0"},"devDependencies":{"@tsconfig/recommended":"^1.0.3","@vitest/coverage-v8":"^3.2.4","dotenv":"^17.4.0","dpdm":"^3.14.0","typescript":"~5.8.3","vitest":"^4.1.2","zod":"^3.25.76","@langchain/openai":"^1.4.7","@langchain/core":"^1.1.48","@langchain/standard-tests":"0.0.23","@langchain/tsconfig":"0.0.1"},"publishConfig":{"access":"public"},"main":"./dist/index.cjs","types":"./dist/index.d.cts","exports":{".":{"input":"./src/index.ts","require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"},"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./package.json":"./package.json"},"files":["dist/","CHANGELOG.md","README.md","LICENSE"],"module":"./dist/index.js","scripts":{"build":"turbo build:compile --filter @langchain/xai --output-logs new-only","build:compile":"tsdown","clean":"rm -rf .turbo dist/","test":"vitest run","test:watch":"vitest --watch","test:int":"vitest --mode int","test:standard:unit":"vitest --mode standard-unit","test:standard:int":"vitest --mode standard-int","test:standard":"pnpm test:standard:unit && pnpm test:standard:int","typegen":"pnpm run typegen:profiles","typegen:profiles":"pnpm --filter @langchain/model-profiles make --config profiles.toml"},"_lastModified":"2026-06-25T01:03:56.995Z"}
1
+ {"name":"@langchain/xai","version":"1.3.19","description":"xAI integration for LangChain.js","author":"LangChain","license":"MIT","type":"module","engines":{"node":">=20"},"repository":{"type":"git","url":"git@github.com:langchain-ai/langchainjs.git"},"homepage":"https://github.com/langchain-ai/langchainjs/tree/main/libs/providers/langchain-xai/","dependencies":{"@langchain/openai":"1.4.7"},"peerDependencies":{"@langchain/core":"^1.0.0"},"devDependencies":{"@tsconfig/recommended":"^1.0.3","@vitest/coverage-v8":"^3.2.4","dotenv":"^17.4.0","dpdm":"^3.14.0","typescript":"~5.8.3","vitest":"^4.1.2","zod":"^3.25.76","@langchain/openai":"^1.4.7","@langchain/core":"^1.1.48","@langchain/standard-tests":"0.0.23","@langchain/tsconfig":"0.0.1"},"publishConfig":{"access":"public"},"main":"./dist/index.cjs","types":"./dist/index.d.cts","exports":{".":{"input":"./src/index.ts","require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"},"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./package.json":"./package.json"},"files":["dist/","CHANGELOG.md","README.md","LICENSE"],"module":"./dist/index.js","scripts":{"build":"turbo build:compile --filter @langchain/xai --output-logs new-only","build:compile":"tsdown","clean":"rm -rf .turbo dist/","test":"vitest run","test:watch":"vitest --watch","test:int":"vitest --mode int","test:standard:unit":"vitest --mode standard-unit","test:standard:int":"vitest --mode standard-int","test:standard":"pnpm test:standard:unit && pnpm test:standard:int","typegen":"pnpm run typegen:profiles","typegen:profiles":"pnpm --filter @langchain/model-profiles make --config profiles.toml"},"_lastModified":"2026-07-06T02:56:44.943Z"}
@@ -1 +1 @@
1
- {"name":"fs-extra","version":"9.1.0","description":"fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as recursive mkdir, copy, and remove.","engines":{"node":">=10"},"homepage":"https://github.com/jprichardson/node-fs-extra","repository":{"type":"git","url":"https://github.com/jprichardson/node-fs-extra"},"keywords":["fs","file","file system","copy","directory","extra","mkdirp","mkdir","mkdirs","recursive","json","read","write","extra","delete","remove","touch","create","text","output","move","promise"],"author":"JP Richardson <jprichardson@gmail.com>","license":"MIT","dependencies":{"at-least-node":"^1.0.0","graceful-fs":"^4.2.0","jsonfile":"^6.0.1","universalify":"^2.0.0"},"devDependencies":{"coveralls":"^3.0.0","klaw":"^2.1.1","klaw-sync":"^3.0.2","minimist":"^1.1.1","mocha":"^5.0.5","nyc":"^15.0.0","proxyquire":"^2.0.1","read-dir-files":"^0.1.1","standard":"^14.1.0"},"main":"./lib/index.js","files":["lib/","!lib/**/__tests__/"],"scripts":{"full-ci":"npm run lint && npm run coverage","coverage":"nyc -r lcovonly npm run unit","coveralls":"coveralls < coverage/lcov.info","lint":"standard","test-find":"find ./lib/**/__tests__ -name *.test.js | xargs mocha","test":"npm run lint && npm run unit","unit":"node test.js"},"_lastModified":"2026-06-25T01:03:57.151Z"}
1
+ {"name":"fs-extra","version":"9.1.0","description":"fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as recursive mkdir, copy, and remove.","engines":{"node":">=10"},"homepage":"https://github.com/jprichardson/node-fs-extra","repository":{"type":"git","url":"https://github.com/jprichardson/node-fs-extra"},"keywords":["fs","file","file system","copy","directory","extra","mkdirp","mkdir","mkdirs","recursive","json","read","write","extra","delete","remove","touch","create","text","output","move","promise"],"author":"JP Richardson <jprichardson@gmail.com>","license":"MIT","dependencies":{"at-least-node":"^1.0.0","graceful-fs":"^4.2.0","jsonfile":"^6.0.1","universalify":"^2.0.0"},"devDependencies":{"coveralls":"^3.0.0","klaw":"^2.1.1","klaw-sync":"^3.0.2","minimist":"^1.1.1","mocha":"^5.0.5","nyc":"^15.0.0","proxyquire":"^2.0.1","read-dir-files":"^0.1.1","standard":"^14.1.0"},"main":"./lib/index.js","files":["lib/","!lib/**/__tests__/"],"scripts":{"full-ci":"npm run lint && npm run coverage","coverage":"nyc -r lcovonly npm run unit","coveralls":"coveralls < coverage/lcov.info","lint":"standard","test-find":"find ./lib/**/__tests__ -name *.test.js | xargs mocha","test":"npm run lint && npm run unit","unit":"node test.js"},"_lastModified":"2026-07-06T02:56:45.108Z"}
@@ -1 +1 @@
1
- {"name":"jsonrepair","version":"3.13.1","description":"Repair broken JSON documents","repository":{"type":"git","url":"https://github.com/josdejong/jsonrepair.git"},"type":"module","main":"lib/cjs/index.js","module":"lib/esm/index.js","browser":"lib/umd/jsonrepair.min.js","types":"lib/types/index.d.ts","sideEffects":false,"exports":{".":{"import":"./lib/esm/index.js","require":"./lib/cjs/index.js","types":"./lib/types/index.d.ts"},"./stream":{"import":"./lib/esm/stream.js","require":"./lib/cjs/stream.js","types":"./lib/types/stream.d.ts"}},"keywords":["simple","json","repair","fix","invalid","stream","streaming"],"bin":{"jsonrepair":"./bin/cli.js"},"scripts":{"test":"vitest watch src","test:it":"vitest run src","build":"npm-run-all build:**","build:clean":"del-cli lib","build:esm":"babel src --out-dir lib/esm --extensions \".ts\" --source-maps --config-file ./babel.config.json","build:cjs":"babel src --out-dir lib/cjs --extensions \".ts\" --source-maps --config-file ./babel-cjs.config.json && cpy tools/cjs lib/cjs --flat","build:umd":"rollup lib/esm/index.js --format umd --name JSONRepair --sourcemap --output.file lib/umd/jsonrepair.js && cpy tools/cjs/package.json lib/umd --flat","build:umd:min":"uglifyjs --compress --mangle --source-map --comments --output lib/umd/jsonrepair.min.js -- lib/umd/jsonrepair.js","build:types":"tsc --project tsconfig-types.json","build:validate":"vitest run test-lib","lint":"biome check","format":"biome check --write","benchmark":"npm run build:esm && node tools/benchmark/run.mjs","build-and-test":"npm run lint && npm run test:it && npm run build","release":"npm-run-all release:**","release:build-and-test":"npm run build-and-test","release:version":"standard-version","release:push":"git push && git push --tag","release:publish":"npm publish","release-dry-run":"npm run build-and-test && standard-version --dry-run","prepare":"husky"},"files":["README.md","LICENSE.md","lib"],"author":"Jos de Jong","license":"ISC","devDependencies":{"@babel/cli":"7.28.3","@babel/core":"7.28.4","@babel/plugin-transform-typescript":"7.28.0","@babel/preset-env":"7.28.3","@babel/preset-typescript":"7.27.1","@biomejs/biome":"2.2.4","@commitlint/cli":"19.8.1","@commitlint/config-conventional":"19.8.1","@types/node":"24.5.2","cpy-cli":"6.0.0","del-cli":"7.0.0","husky":"9.1.7","npm-run-all":"4.1.5","rollup":"4.51.0","standard-version":"9.5.0","tinybench":"5.0.1","ts-node":"10.9.2","typescript":"5.9.2","uglify-js":"3.19.3","vitest":"3.2.4"},"_lastModified":"2026-06-25T01:04:03.240Z"}
1
+ {"name":"jsonrepair","version":"3.13.1","description":"Repair broken JSON documents","repository":{"type":"git","url":"https://github.com/josdejong/jsonrepair.git"},"type":"module","main":"lib/cjs/index.js","module":"lib/esm/index.js","browser":"lib/umd/jsonrepair.min.js","types":"lib/types/index.d.ts","sideEffects":false,"exports":{".":{"import":"./lib/esm/index.js","require":"./lib/cjs/index.js","types":"./lib/types/index.d.ts"},"./stream":{"import":"./lib/esm/stream.js","require":"./lib/cjs/stream.js","types":"./lib/types/stream.d.ts"}},"keywords":["simple","json","repair","fix","invalid","stream","streaming"],"bin":{"jsonrepair":"./bin/cli.js"},"scripts":{"test":"vitest watch src","test:it":"vitest run src","build":"npm-run-all build:**","build:clean":"del-cli lib","build:esm":"babel src --out-dir lib/esm --extensions \".ts\" --source-maps --config-file ./babel.config.json","build:cjs":"babel src --out-dir lib/cjs --extensions \".ts\" --source-maps --config-file ./babel-cjs.config.json && cpy tools/cjs lib/cjs --flat","build:umd":"rollup lib/esm/index.js --format umd --name JSONRepair --sourcemap --output.file lib/umd/jsonrepair.js && cpy tools/cjs/package.json lib/umd --flat","build:umd:min":"uglifyjs --compress --mangle --source-map --comments --output lib/umd/jsonrepair.min.js -- lib/umd/jsonrepair.js","build:types":"tsc --project tsconfig-types.json","build:validate":"vitest run test-lib","lint":"biome check","format":"biome check --write","benchmark":"npm run build:esm && node tools/benchmark/run.mjs","build-and-test":"npm run lint && npm run test:it && npm run build","release":"npm-run-all release:**","release:build-and-test":"npm run build-and-test","release:version":"standard-version","release:push":"git push && git push --tag","release:publish":"npm publish","release-dry-run":"npm run build-and-test && standard-version --dry-run","prepare":"husky"},"files":["README.md","LICENSE.md","lib"],"author":"Jos de Jong","license":"ISC","devDependencies":{"@babel/cli":"7.28.3","@babel/core":"7.28.4","@babel/plugin-transform-typescript":"7.28.0","@babel/preset-env":"7.28.3","@babel/preset-typescript":"7.27.1","@biomejs/biome":"2.2.4","@commitlint/cli":"19.8.1","@commitlint/config-conventional":"19.8.1","@types/node":"24.5.2","cpy-cli":"6.0.0","del-cli":"7.0.0","husky":"9.1.7","npm-run-all":"4.1.5","rollup":"4.51.0","standard-version":"9.5.0","tinybench":"5.0.1","ts-node":"10.9.2","typescript":"5.9.2","uglify-js":"3.19.3","vitest":"3.2.4"},"_lastModified":"2026-07-06T02:56:50.892Z"}
@@ -1 +1 @@
1
- {"name":"just-bash","version":"2.14.3","description":"A simulated bash environment with virtual filesystem","repository":{"type":"git","url":"git+https://github.com/vercel-labs/just-bash.git"},"homepage":"https://github.com/vercel-labs/just-bash#readme","bugs":{"url":"https://github.com/vercel-labs/just-bash/issues"},"type":"module","main":"dist/bundle/index.js","types":"dist/index.d.ts","exports":{".":{"browser":"./dist/bundle/browser.js","require":{"types":"./dist/index.d.cts","default":"./dist/bundle/index.cjs"},"import":{"types":"./dist/index.d.ts","default":"./dist/bundle/index.js"}},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/bundle/browser.js"}},"files":["dist/bundle/","dist/bin/","dist/*.d.ts","dist/*.d.cts","dist/ast/*.d.ts","dist/commands/**/*.d.ts","dist/fs/**/*.d.ts","dist/interpreter/**/*.d.ts","dist/network/**/*.d.ts","dist/parser/*.d.ts","dist/sandbox/*.d.ts","dist/utils/*.d.ts","vendor/cpython-emscripten/","README.md","CHANGELOG.md","dist/AGENTS.md"],"bin":{"just-bash":"./dist/bin/just-bash.js","just-bash-shell":"./dist/bin/shell/shell.js"},"publishConfig":{"access":"public"},"keywords":[],"author":"Malte and Claude","license":"Apache-2.0","devDependencies":{"@types/ini":"^4.1.1","@types/node":"^25.0.3","@types/papaparse":"^5.5.2","@types/sprintf-js":"^1.1.4","@types/sql.js":"^1.4.9","@types/turndown":"^5.0.6","@vitest/coverage-v8":"^4.0.18","esbuild":"^0.27.2","fast-check":"^3.23.2","knip":"^5.41.1","typescript":"^5.9.3","vitest":"^4.0.16"},"dependencies":{"seek-bzip":"^2.0.0","diff":"^8.0.2","fast-xml-parser":"5.3.3","file-type":"^21.2.0","ini":"^6.0.0","minimatch":"^10.1.1","modern-tar":"^0.7.3","papaparse":"^5.5.3","quickjs-emscripten":"^0.32.0","re2js":"^1.2.1","smol-toml":"^1.6.0","sprintf-js":"^1.1.3","sql.js":"^1.13.0","turndown":"^7.2.2","yaml":"^2.8.2"},"optionalDependencies":{"@mongodb-js/zstd":"^7.0.0","node-liblzma":"^2.0.3"},"scripts":{"build":"rm -rf dist && tsc && pnpm build:lib && pnpm build:lib:cjs && pnpm build:browser && pnpm build:cli && pnpm build:shell && pnpm build:worker && pnpm build:clean && cp dist/index.d.ts dist/index.d.cts && sed '1,/^-->/d' AGENTS.npm.md > dist/AGENTS.md","build:clean":"find dist -name '*.test.js' -delete && find dist -name '*.test.d.ts' -delete","build:worker":"esbuild src/commands/python3/worker.ts --bundle --platform=node --format=esm --outfile=src/commands/python3/worker.js --external:../../../vendor/cpython-emscripten/* && cp src/commands/python3/worker.js dist/commands/python3/worker.js && mkdir -p dist/bin/chunks && cp src/commands/python3/worker.js dist/bin/chunks/worker.js && mkdir -p dist/bundle/chunks && cp src/commands/python3/worker.js dist/bundle/chunks/worker.js && esbuild src/commands/js-exec/js-exec-worker.ts --bundle --platform=node --format=esm --outfile=src/commands/js-exec/js-exec-worker.js --external:quickjs-emscripten && cp src/commands/js-exec/js-exec-worker.js dist/commands/js-exec/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bin/chunks/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bundle/chunks/js-exec-worker.js","build:lib":"esbuild dist/index.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bundle --chunk-names=chunks/[name]-[hash] --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","build:lib:cjs":"esbuild dist/index.js --bundle --platform=node --format=cjs --minify --outfile=dist/bundle/index.cjs --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","build:browser":"esbuild dist/browser.js --bundle --platform=browser --format=esm --minify --outfile=dist/bundle/browser.js --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:node:zlib --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip --define:__BROWSER__=true --alias:node:dns=./src/shims/browser-unsupported.js","build:cli":"esbuild dist/cli/just-bash.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bin --entry-names=[name] --chunk-names=chunks/[name]-[hash] --banner:js='#!/usr/bin/env node' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","build:shell":"esbuild dist/cli/shell.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bin/shell --entry-names=[name] --chunk-names=chunks/[name]-[hash] --banner:js='#!/usr/bin/env node' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","validate":"pnpm lint && pnpm knip && pnpm typecheck && pnpm build && pnpm check:worker-sync && pnpm test:run && pnpm test:wasm && pnpm test:dist","typecheck":"tsc --noEmit","lint":"pnpm lint:banned","check:worker-sync":"node scripts/check-worker-sync.js","lint:banned":"node scripts/check-banned-patterns.js","lint:fix":"pnpm --workspace-root lint:fix","knip":"knip","test":"vitest","test:run":"vitest run --exclude src/security/fuzzing/ --exclude src/commands/python3/ --exclude src/commands/sqlite3/ --exclude src/commands/js-exec/ --exclude src/agent-examples/python-scripting.test.ts","test:dist":"vitest run src/cli/just-bash.bundle.test.ts","test:unit":"vitest run --config vitest.unit.config.ts","test:wasm":"vitest run --config vitest.wasm.config.ts","test:comparison":"vitest run --config vitest.comparison.config.ts","test:comparison:record":"RECORD_FIXTURES=1 vitest run --config vitest.comparison.config.ts","test:coverage":"vitest run --coverage","test:coverage:unit":"vitest run --config vitest.unit.config.ts --coverage","test:fuzz":"vitest run src/security/fuzzing/","test:fuzz:long":"FUZZ_RUNS=10000 vitest run src/security/fuzzing/","shell":"npx tsx src/cli/shell.ts","dev:exec":"npx tsx src/cli/exec.ts"},"_lastModified":"2026-06-25T01:04:03.031Z"}
1
+ {"name":"just-bash","version":"2.14.3","description":"A simulated bash environment with virtual filesystem","repository":{"type":"git","url":"git+https://github.com/vercel-labs/just-bash.git"},"homepage":"https://github.com/vercel-labs/just-bash#readme","bugs":{"url":"https://github.com/vercel-labs/just-bash/issues"},"type":"module","main":"dist/bundle/index.js","types":"dist/index.d.ts","exports":{".":{"browser":"./dist/bundle/browser.js","require":{"types":"./dist/index.d.cts","default":"./dist/bundle/index.cjs"},"import":{"types":"./dist/index.d.ts","default":"./dist/bundle/index.js"}},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/bundle/browser.js"}},"files":["dist/bundle/","dist/bin/","dist/*.d.ts","dist/*.d.cts","dist/ast/*.d.ts","dist/commands/**/*.d.ts","dist/fs/**/*.d.ts","dist/interpreter/**/*.d.ts","dist/network/**/*.d.ts","dist/parser/*.d.ts","dist/sandbox/*.d.ts","dist/utils/*.d.ts","vendor/cpython-emscripten/","README.md","CHANGELOG.md","dist/AGENTS.md"],"bin":{"just-bash":"./dist/bin/just-bash.js","just-bash-shell":"./dist/bin/shell/shell.js"},"publishConfig":{"access":"public"},"keywords":[],"author":"Malte and Claude","license":"Apache-2.0","devDependencies":{"@types/ini":"^4.1.1","@types/node":"^25.0.3","@types/papaparse":"^5.5.2","@types/sprintf-js":"^1.1.4","@types/sql.js":"^1.4.9","@types/turndown":"^5.0.6","@vitest/coverage-v8":"^4.0.18","esbuild":"^0.27.2","fast-check":"^3.23.2","knip":"^5.41.1","typescript":"^5.9.3","vitest":"^4.0.16"},"dependencies":{"seek-bzip":"^2.0.0","diff":"^8.0.2","fast-xml-parser":"5.3.3","file-type":"^21.2.0","ini":"^6.0.0","minimatch":"^10.1.1","modern-tar":"^0.7.3","papaparse":"^5.5.3","quickjs-emscripten":"^0.32.0","re2js":"^1.2.1","smol-toml":"^1.6.0","sprintf-js":"^1.1.3","sql.js":"^1.13.0","turndown":"^7.2.2","yaml":"^2.8.2"},"optionalDependencies":{"@mongodb-js/zstd":"^7.0.0","node-liblzma":"^2.0.3"},"scripts":{"build":"rm -rf dist && tsc && pnpm build:lib && pnpm build:lib:cjs && pnpm build:browser && pnpm build:cli && pnpm build:shell && pnpm build:worker && pnpm build:clean && cp dist/index.d.ts dist/index.d.cts && sed '1,/^-->/d' AGENTS.npm.md > dist/AGENTS.md","build:clean":"find dist -name '*.test.js' -delete && find dist -name '*.test.d.ts' -delete","build:worker":"esbuild src/commands/python3/worker.ts --bundle --platform=node --format=esm --outfile=src/commands/python3/worker.js --external:../../../vendor/cpython-emscripten/* && cp src/commands/python3/worker.js dist/commands/python3/worker.js && mkdir -p dist/bin/chunks && cp src/commands/python3/worker.js dist/bin/chunks/worker.js && mkdir -p dist/bundle/chunks && cp src/commands/python3/worker.js dist/bundle/chunks/worker.js && esbuild src/commands/js-exec/js-exec-worker.ts --bundle --platform=node --format=esm --outfile=src/commands/js-exec/js-exec-worker.js --external:quickjs-emscripten && cp src/commands/js-exec/js-exec-worker.js dist/commands/js-exec/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bin/chunks/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bundle/chunks/js-exec-worker.js","build:lib":"esbuild dist/index.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bundle --chunk-names=chunks/[name]-[hash] --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","build:lib:cjs":"esbuild dist/index.js --bundle --platform=node --format=cjs --minify --outfile=dist/bundle/index.cjs --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","build:browser":"esbuild dist/browser.js --bundle --platform=browser --format=esm --minify --outfile=dist/bundle/browser.js --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:node:zlib --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip --define:__BROWSER__=true --alias:node:dns=./src/shims/browser-unsupported.js","build:cli":"esbuild dist/cli/just-bash.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bin --entry-names=[name] --chunk-names=chunks/[name]-[hash] --banner:js='#!/usr/bin/env node' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","build:shell":"esbuild dist/cli/shell.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bin/shell --entry-names=[name] --chunk-names=chunks/[name]-[hash] --banner:js='#!/usr/bin/env node' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","validate":"pnpm lint && pnpm knip && pnpm typecheck && pnpm build && pnpm check:worker-sync && pnpm test:run && pnpm test:wasm && pnpm test:dist","typecheck":"tsc --noEmit","lint":"pnpm lint:banned","check:worker-sync":"node scripts/check-worker-sync.js","lint:banned":"node scripts/check-banned-patterns.js","lint:fix":"pnpm --workspace-root lint:fix","knip":"knip","test":"vitest","test:run":"vitest run --exclude src/security/fuzzing/ --exclude src/commands/python3/ --exclude src/commands/sqlite3/ --exclude src/commands/js-exec/ --exclude src/agent-examples/python-scripting.test.ts","test:dist":"vitest run src/cli/just-bash.bundle.test.ts","test:unit":"vitest run --config vitest.unit.config.ts","test:wasm":"vitest run --config vitest.wasm.config.ts","test:comparison":"vitest run --config vitest.comparison.config.ts","test:comparison:record":"RECORD_FIXTURES=1 vitest run --config vitest.comparison.config.ts","test:coverage":"vitest run --coverage","test:coverage:unit":"vitest run --config vitest.unit.config.ts --coverage","test:fuzz":"vitest run src/security/fuzzing/","test:fuzz:long":"FUZZ_RUNS=10000 vitest run src/security/fuzzing/","shell":"npx tsx src/cli/shell.ts","dev:exec":"npx tsx src/cli/exec.ts"},"_lastModified":"2026-07-06T02:56:50.727Z"}
@@ -1 +1 @@
1
- {"name":"nodejs-snowflake","collaborators":["Utkarsh Srivastava <utkarsh@sagacious.dev>"],"description":"Generate time sortable 64 bits unique ids for distributed systems (inspired from twitter snowflake)","version":"2.0.1","license":"Apache 2.0","repository":{"type":"git","url":"https://github.com/utkarsh-pro/nodejs-snowflake.git"},"files":["nodejs_snowflake_bg.wasm","nodejs_snowflake.js","nodejs_snowflake.d.ts"],"main":"nodejs_snowflake.js","types":"nodejs_snowflake.d.ts","_lastModified":"2026-06-25T01:03:51.739Z"}
1
+ {"name":"nodejs-snowflake","collaborators":["Utkarsh Srivastava <utkarsh@sagacious.dev>"],"description":"Generate time sortable 64 bits unique ids for distributed systems (inspired from twitter snowflake)","version":"2.0.1","license":"Apache 2.0","repository":{"type":"git","url":"https://github.com/utkarsh-pro/nodejs-snowflake.git"},"files":["nodejs_snowflake_bg.wasm","nodejs_snowflake.js","nodejs_snowflake.d.ts"],"main":"nodejs_snowflake.js","types":"nodejs_snowflake.d.ts","_lastModified":"2026-07-06T02:56:31.820Z"}
@@ -1 +1 @@
1
- {"name":"openai","version":"6.39.1","description":"The official TypeScript library for the OpenAI API","author":"OpenAI <support@openai.com>","types":"./index.d.ts","main":"./index.js","type":"commonjs","repository":"github:openai/openai-node","license":"Apache-2.0","packageManager":"yarn@1.22.22","files":["**/*"],"private":false,"publishConfig":{"access":"public"},"scripts":{"test":"./scripts/test","build":"./scripts/build","format":"./scripts/format","tsn":"ts-node -r tsconfig-paths/register","lint":"./scripts/lint","fix":"./scripts/format"},"dependencies":{},"bin":{"openai":"bin/cli"},"overrides":{"minimatch":"^9.0.5"},"pnpm":{"overrides":{"minimatch":"^9.0.5"}},"resolutions":{"minimatch":"^9.0.5"},"exports":{".":{"require":{"types":"./index.d.ts","default":"./index.js"},"types":"./index.d.mts","default":"./index.mjs"},"./_vendor/*.mjs":{"default":"./_vendor/*.mjs"},"./_vendor/*.js":{"default":"./_vendor/*.js"},"./_vendor/*":{"import":"./_vendor/*.mjs","require":"./_vendor/*.js"},"./api-promise":{"import":"./api-promise.mjs","require":"./api-promise.js"},"./api-promise.js":{"default":"./api-promise.js"},"./api-promise.mjs":{"default":"./api-promise.mjs"},"./auth/*.mjs":{"default":"./auth/*.mjs"},"./auth/*.js":{"default":"./auth/*.js"},"./auth/*":{"import":"./auth/*.mjs","require":"./auth/*.js"},"./azure":{"import":"./azure.mjs","require":"./azure.js"},"./azure.js":{"default":"./azure.js"},"./azure.mjs":{"default":"./azure.mjs"},"./beta/*.mjs":{"default":"./beta/*.mjs"},"./beta/*.js":{"default":"./beta/*.js"},"./beta/*":{"import":"./beta/*.mjs","require":"./beta/*.js"},"./client":{"import":"./client.mjs","require":"./client.js"},"./client.js":{"default":"./client.js"},"./client.mjs":{"default":"./client.mjs"},"./core/*.mjs":{"default":"./core/*.mjs"},"./core/*.js":{"default":"./core/*.js"},"./core/*":{"import":"./core/*.mjs","require":"./core/*.js"},"./error":{"import":"./error.mjs","require":"./error.js"},"./error.js":{"default":"./error.js"},"./error.mjs":{"default":"./error.mjs"},"./helpers/*.mjs":{"default":"./helpers/*.mjs"},"./helpers/*.js":{"default":"./helpers/*.js"},"./helpers/*":{"import":"./helpers/*.mjs","require":"./helpers/*.js"},"./index":{"import":"./index.mjs","require":"./index.js"},"./index.js":{"default":"./index.js"},"./index.mjs":{"default":"./index.mjs"},"./lib/*.mjs":{"default":"./lib/*.mjs"},"./lib/*.js":{"default":"./lib/*.js"},"./lib/*":{"import":"./lib/*.mjs","require":"./lib/*.js"},"./pagination":{"import":"./pagination.mjs","require":"./pagination.js"},"./pagination.js":{"default":"./pagination.js"},"./pagination.mjs":{"default":"./pagination.mjs"},"./realtime/*.mjs":{"default":"./realtime/*.mjs"},"./realtime/*.js":{"default":"./realtime/*.js"},"./realtime/*":{"import":"./realtime/*.mjs","require":"./realtime/*.js"},"./resource":{"import":"./resource.mjs","require":"./resource.js"},"./resource.js":{"default":"./resource.js"},"./resource.mjs":{"default":"./resource.mjs"},"./resources/*.mjs":{"default":"./resources/*.mjs"},"./resources/*.js":{"default":"./resources/*.js"},"./resources/*":{"import":"./resources/*.mjs","require":"./resources/*.js"},"./resources":{"import":"./resources.mjs","require":"./resources.js"},"./resources.js":{"default":"./resources.js"},"./resources.mjs":{"default":"./resources.mjs"},"./streaming":{"import":"./streaming.mjs","require":"./streaming.js"},"./streaming.js":{"default":"./streaming.js"},"./streaming.mjs":{"default":"./streaming.mjs"},"./uploads":{"import":"./uploads.mjs","require":"./uploads.js"},"./uploads.js":{"default":"./uploads.js"},"./uploads.mjs":{"default":"./uploads.mjs"},"./version":{"import":"./version.mjs","require":"./version.js"},"./version.js":{"default":"./version.js"},"./version.mjs":{"default":"./version.mjs"}},"peerDependencies":{"ws":"^8.18.0","zod":"^3.25 || ^4.0"},"peerDependenciesMeta":{"ws":{"optional":true},"zod":{"optional":true}},"_lastModified":"2026-06-25T01:03:54.483Z"}
1
+ {"name":"openai","version":"6.39.1","description":"The official TypeScript library for the OpenAI API","author":"OpenAI <support@openai.com>","types":"./index.d.ts","main":"./index.js","type":"commonjs","repository":"github:openai/openai-node","license":"Apache-2.0","packageManager":"yarn@1.22.22","files":["**/*"],"private":false,"publishConfig":{"access":"public"},"scripts":{"test":"./scripts/test","build":"./scripts/build","format":"./scripts/format","tsn":"ts-node -r tsconfig-paths/register","lint":"./scripts/lint","fix":"./scripts/format"},"dependencies":{},"bin":{"openai":"bin/cli"},"overrides":{"minimatch":"^9.0.5"},"pnpm":{"overrides":{"minimatch":"^9.0.5"}},"resolutions":{"minimatch":"^9.0.5"},"exports":{".":{"require":{"types":"./index.d.ts","default":"./index.js"},"types":"./index.d.mts","default":"./index.mjs"},"./_vendor/*.mjs":{"default":"./_vendor/*.mjs"},"./_vendor/*.js":{"default":"./_vendor/*.js"},"./_vendor/*":{"import":"./_vendor/*.mjs","require":"./_vendor/*.js"},"./api-promise":{"import":"./api-promise.mjs","require":"./api-promise.js"},"./api-promise.js":{"default":"./api-promise.js"},"./api-promise.mjs":{"default":"./api-promise.mjs"},"./auth/*.mjs":{"default":"./auth/*.mjs"},"./auth/*.js":{"default":"./auth/*.js"},"./auth/*":{"import":"./auth/*.mjs","require":"./auth/*.js"},"./azure":{"import":"./azure.mjs","require":"./azure.js"},"./azure.js":{"default":"./azure.js"},"./azure.mjs":{"default":"./azure.mjs"},"./beta/*.mjs":{"default":"./beta/*.mjs"},"./beta/*.js":{"default":"./beta/*.js"},"./beta/*":{"import":"./beta/*.mjs","require":"./beta/*.js"},"./client":{"import":"./client.mjs","require":"./client.js"},"./client.js":{"default":"./client.js"},"./client.mjs":{"default":"./client.mjs"},"./core/*.mjs":{"default":"./core/*.mjs"},"./core/*.js":{"default":"./core/*.js"},"./core/*":{"import":"./core/*.mjs","require":"./core/*.js"},"./error":{"import":"./error.mjs","require":"./error.js"},"./error.js":{"default":"./error.js"},"./error.mjs":{"default":"./error.mjs"},"./helpers/*.mjs":{"default":"./helpers/*.mjs"},"./helpers/*.js":{"default":"./helpers/*.js"},"./helpers/*":{"import":"./helpers/*.mjs","require":"./helpers/*.js"},"./index":{"import":"./index.mjs","require":"./index.js"},"./index.js":{"default":"./index.js"},"./index.mjs":{"default":"./index.mjs"},"./lib/*.mjs":{"default":"./lib/*.mjs"},"./lib/*.js":{"default":"./lib/*.js"},"./lib/*":{"import":"./lib/*.mjs","require":"./lib/*.js"},"./pagination":{"import":"./pagination.mjs","require":"./pagination.js"},"./pagination.js":{"default":"./pagination.js"},"./pagination.mjs":{"default":"./pagination.mjs"},"./realtime/*.mjs":{"default":"./realtime/*.mjs"},"./realtime/*.js":{"default":"./realtime/*.js"},"./realtime/*":{"import":"./realtime/*.mjs","require":"./realtime/*.js"},"./resource":{"import":"./resource.mjs","require":"./resource.js"},"./resource.js":{"default":"./resource.js"},"./resource.mjs":{"default":"./resource.mjs"},"./resources/*.mjs":{"default":"./resources/*.mjs"},"./resources/*.js":{"default":"./resources/*.js"},"./resources/*":{"import":"./resources/*.mjs","require":"./resources/*.js"},"./resources":{"import":"./resources.mjs","require":"./resources.js"},"./resources.js":{"default":"./resources.js"},"./resources.mjs":{"default":"./resources.mjs"},"./streaming":{"import":"./streaming.mjs","require":"./streaming.js"},"./streaming.js":{"default":"./streaming.js"},"./streaming.mjs":{"default":"./streaming.mjs"},"./uploads":{"import":"./uploads.mjs","require":"./uploads.js"},"./uploads.js":{"default":"./uploads.js"},"./uploads.mjs":{"default":"./uploads.mjs"},"./version":{"import":"./version.mjs","require":"./version.js"},"./version.js":{"default":"./version.js"},"./version.mjs":{"default":"./version.mjs"}},"peerDependencies":{"ws":"^8.18.0","zod":"^3.25 || ^4.0"},"peerDependenciesMeta":{"ws":{"optional":true},"zod":{"optional":true}},"_lastModified":"2026-07-06T02:56:34.824Z"}
@@ -1 +1 @@
1
- {"name":"zod","version":"4.3.5","type":"module","license":"MIT","author":"Colin McDonnell <zod@colinhacks.com>","description":"TypeScript-first schema declaration and validation library with static type inference","homepage":"https://zod.dev","llms":"https://zod.dev/llms.txt","llmsFull":"https://zod.dev/llms-full.txt","mcpServer":"https://mcp.inkeep.com/zod/mcp","funding":"https://github.com/sponsors/colinhacks","sideEffects":false,"files":["src","**/*.js","**/*.mjs","**/*.cjs","**/*.d.ts","**/*.d.mts","**/*.d.cts","**/package.json"],"keywords":["typescript","schema","validation","type","inference"],"main":"./index.cjs","types":"./index.d.cts","module":"./index.js","zshy":{"exports":{"./package.json":"./package.json",".":"./src/index.ts","./mini":"./src/mini/index.ts","./locales":"./src/locales/index.ts","./v3":"./src/v3/index.ts","./v4":"./src/v4/index.ts","./v4-mini":"./src/v4-mini/index.ts","./v4/mini":"./src/v4/mini/index.ts","./v4/core":"./src/v4/core/index.ts","./v4/locales":"./src/v4/locales/index.ts","./v4/locales/*":"./src/v4/locales/*"},"conditions":{"@zod/source":"src"}},"exports":{"./package.json":"./package.json",".":{"@zod/source":"./src/index.ts","types":"./index.d.cts","import":"./index.js","require":"./index.cjs"},"./mini":{"@zod/source":"./src/mini/index.ts","types":"./mini/index.d.cts","import":"./mini/index.js","require":"./mini/index.cjs"},"./locales":{"@zod/source":"./src/locales/index.ts","types":"./locales/index.d.cts","import":"./locales/index.js","require":"./locales/index.cjs"},"./v3":{"@zod/source":"./src/v3/index.ts","types":"./v3/index.d.cts","import":"./v3/index.js","require":"./v3/index.cjs"},"./v4":{"@zod/source":"./src/v4/index.ts","types":"./v4/index.d.cts","import":"./v4/index.js","require":"./v4/index.cjs"},"./v4-mini":{"@zod/source":"./src/v4-mini/index.ts","types":"./v4-mini/index.d.cts","import":"./v4-mini/index.js","require":"./v4-mini/index.cjs"},"./v4/mini":{"@zod/source":"./src/v4/mini/index.ts","types":"./v4/mini/index.d.cts","import":"./v4/mini/index.js","require":"./v4/mini/index.cjs"},"./v4/core":{"@zod/source":"./src/v4/core/index.ts","types":"./v4/core/index.d.cts","import":"./v4/core/index.js","require":"./v4/core/index.cjs"},"./v4/locales":{"@zod/source":"./src/v4/locales/index.ts","types":"./v4/locales/index.d.cts","import":"./v4/locales/index.js","require":"./v4/locales/index.cjs"},"./v4/locales/*":{"@zod/source":"./src/v4/locales/*","types":"./v4/locales/*","import":"./v4/locales/*","require":"./v4/locales/*"}},"repository":{"type":"git","url":"git+https://github.com/colinhacks/zod.git"},"bugs":{"url":"https://github.com/colinhacks/zod/issues"},"support":{"backing":{"npm-funding":true}},"scripts":{"clean":"git clean -xdf . -e node_modules","build":"zshy --project tsconfig.build.json","postbuild":"tsx ../../scripts/write-stub-package-jsons.ts && pnpm biome check --write .","test:watch":"pnpm vitest","test":"pnpm vitest run","prepublishOnly":"tsx ../../scripts/check-versions.ts"},"_lastModified":"2026-06-25T01:03:52.663Z"}
1
+ {"name":"zod","version":"4.3.5","type":"module","license":"MIT","author":"Colin McDonnell <zod@colinhacks.com>","description":"TypeScript-first schema declaration and validation library with static type inference","homepage":"https://zod.dev","llms":"https://zod.dev/llms.txt","llmsFull":"https://zod.dev/llms-full.txt","mcpServer":"https://mcp.inkeep.com/zod/mcp","funding":"https://github.com/sponsors/colinhacks","sideEffects":false,"files":["src","**/*.js","**/*.mjs","**/*.cjs","**/*.d.ts","**/*.d.mts","**/*.d.cts","**/package.json"],"keywords":["typescript","schema","validation","type","inference"],"main":"./index.cjs","types":"./index.d.cts","module":"./index.js","zshy":{"exports":{"./package.json":"./package.json",".":"./src/index.ts","./mini":"./src/mini/index.ts","./locales":"./src/locales/index.ts","./v3":"./src/v3/index.ts","./v4":"./src/v4/index.ts","./v4-mini":"./src/v4-mini/index.ts","./v4/mini":"./src/v4/mini/index.ts","./v4/core":"./src/v4/core/index.ts","./v4/locales":"./src/v4/locales/index.ts","./v4/locales/*":"./src/v4/locales/*"},"conditions":{"@zod/source":"src"}},"exports":{"./package.json":"./package.json",".":{"@zod/source":"./src/index.ts","types":"./index.d.cts","import":"./index.js","require":"./index.cjs"},"./mini":{"@zod/source":"./src/mini/index.ts","types":"./mini/index.d.cts","import":"./mini/index.js","require":"./mini/index.cjs"},"./locales":{"@zod/source":"./src/locales/index.ts","types":"./locales/index.d.cts","import":"./locales/index.js","require":"./locales/index.cjs"},"./v3":{"@zod/source":"./src/v3/index.ts","types":"./v3/index.d.cts","import":"./v3/index.js","require":"./v3/index.cjs"},"./v4":{"@zod/source":"./src/v4/index.ts","types":"./v4/index.d.cts","import":"./v4/index.js","require":"./v4/index.cjs"},"./v4-mini":{"@zod/source":"./src/v4-mini/index.ts","types":"./v4-mini/index.d.cts","import":"./v4-mini/index.js","require":"./v4-mini/index.cjs"},"./v4/mini":{"@zod/source":"./src/v4/mini/index.ts","types":"./v4/mini/index.d.cts","import":"./v4/mini/index.js","require":"./v4/mini/index.cjs"},"./v4/core":{"@zod/source":"./src/v4/core/index.ts","types":"./v4/core/index.d.cts","import":"./v4/core/index.js","require":"./v4/core/index.cjs"},"./v4/locales":{"@zod/source":"./src/v4/locales/index.ts","types":"./v4/locales/index.d.cts","import":"./v4/locales/index.js","require":"./v4/locales/index.cjs"},"./v4/locales/*":{"@zod/source":"./src/v4/locales/*","types":"./v4/locales/*","import":"./v4/locales/*","require":"./v4/locales/*"}},"repository":{"type":"git","url":"git+https://github.com/colinhacks/zod.git"},"bugs":{"url":"https://github.com/colinhacks/zod/issues"},"support":{"backing":{"npm-funding":true}},"scripts":{"clean":"git clean -xdf . -e node_modules","build":"zshy --project tsconfig.build.json","postbuild":"tsx ../../scripts/write-stub-package-jsons.ts && pnpm biome check --write .","test:watch":"pnpm vitest","test":"pnpm vitest run","prepublishOnly":"tsx ../../scripts/check-versions.ts"},"_lastModified":"2026-07-06T02:56:32.822Z"}
@@ -54,6 +54,7 @@ var import_stream = require("@langchain/core/utils/stream");
54
54
  var import_utils2 = require("./utils");
55
55
  var import_base = require("@langchain/core/callbacks/base");
56
56
  var import_shared = require("../../ai/tools/sub-agents/shared");
57
+ var import_tool_call_sanitizer = require("./tool-call-sanitizer");
57
58
  class AIEmployee {
58
59
  sessionId;
59
60
  from = "main-agent";
@@ -157,7 +158,7 @@ class AIEmployee {
157
158
  historyMessages: [],
158
159
  tools,
159
160
  resolvedTools,
160
- middleware: await this.getMiddleware({ tools, baseToolNames, model, providerName, llmService }),
161
+ middleware: await this.getMiddleware({ tools, baseToolNames, model, providerName, provider, llmService }),
161
162
  config: void 0,
162
163
  state: void 0
163
164
  };
@@ -175,6 +176,7 @@ class AIEmployee {
175
176
  baseToolNames,
176
177
  model,
177
178
  providerName,
179
+ provider,
178
180
  llmService,
179
181
  messageId,
180
182
  agentThread
@@ -294,7 +296,7 @@ class AIEmployee {
294
296
  const { threadId } = await this.getCurrentThread();
295
297
  const invokeConfig = {
296
298
  context: { ctx: this.ctx, decisions: chatContext.decisions, ...context },
297
- recursionLimit: 100,
299
+ recursionLimit: 200,
298
300
  configurable: this.from === "main-agent" ? { thread_id: threadId } : void 0,
299
301
  writer,
300
302
  signal,
@@ -388,7 +390,7 @@ class AIEmployee {
388
390
  streamMode: ["updates", "messages", "custom"],
389
391
  configurable: this.from === "main-agent" ? { thread_id: threadId } : void 0,
390
392
  context: { ctx: this.ctx, decisions: chatContext.decisions },
391
- recursionLimit: 100,
393
+ recursionLimit: 200,
392
394
  ...config
393
395
  },
394
396
  state
@@ -411,6 +413,7 @@ class AIEmployee {
411
413
  const values = (0, import_utils2.convertAIMessage)({
412
414
  aiEmployee: this,
413
415
  providerName,
416
+ provider,
414
417
  llmService,
415
418
  model,
416
419
  aiMessage: gathered
@@ -1093,7 +1096,16 @@ If information is missing, clearly state it in the summary.</Important>`;
1093
1096
  role: "assistant",
1094
1097
  content,
1095
1098
  tool_calls: msg.toolCalls,
1096
- additional_kwargs: (_b = msg.metadata) == null ? void 0 : _b.additional_kwargs
1099
+ additional_kwargs: (0, import_tool_call_sanitizer.sanitizeAdditionalKwargsForToolCalls)((_b = msg.metadata) == null ? void 0 : _b.additional_kwargs, msg.toolCalls, {
1100
+ onDiscard: (info) => {
1101
+ var _a2;
1102
+ this.logger.warn("Discard malformed raw tool calls from AI message", {
1103
+ phase: "formatMessages",
1104
+ messageId: (_a2 = msg.metadata) == null ? void 0 : _a2.id,
1105
+ ...info
1106
+ });
1107
+ }
1108
+ }).additionalKwargs
1097
1109
  });
1098
1110
  }
1099
1111
  return formattedMessages;
@@ -1293,7 +1305,7 @@ If information is missing, clearly state it in the summary.</Important>`;
1293
1305
  return availableAIEmployees;
1294
1306
  }
1295
1307
  async getMiddleware(options) {
1296
- const { providerName, llmService, model, tools, baseToolNames, messageId, agentThread } = options;
1308
+ const { providerName, provider, llmService, model, tools, baseToolNames, messageId, agentThread } = options;
1297
1309
  const inWorkflow = await this.isInWorkflow();
1298
1310
  return [
1299
1311
  (0, import_middleware.skillToolBindingMiddleware)(this, {
@@ -1302,7 +1314,8 @@ If information is missing, clearly state it in the summary.</Important>`;
1302
1314
  (0, import_middleware.toolInteractionMiddleware)(this, tools),
1303
1315
  (0, import_middleware.toolCallStatusMiddleware)(this),
1304
1316
  ...inWorkflow ? [(0, import_middleware.workflowHistoryMiddleware)(this, this.db)] : [],
1305
- (0, import_middleware.conversationMiddleware)(this, { providerName, llmService, model, messageId, agentThread })
1317
+ (0, import_middleware.conversationMiddleware)(this, { providerName, provider, llmService, model, messageId, agentThread }),
1318
+ (0, import_middleware.toolCallSanitizerMiddleware)({ logger: this.logger })
1306
1319
  ];
1307
1320
  }
1308
1321
  async getCurrentThread() {
@@ -23,6 +23,8 @@ export declare class CheckpointCleaner {
23
23
  private getThreadIds;
24
24
  private get aiConversationsModel();
25
25
  private get aiMessagesModel();
26
+ private get aiMessagesMessageIdColumn();
27
+ private get isUnderscoredDatabase();
26
28
  private get sequelize();
27
29
  private get collectionManager();
28
30
  }
@@ -53,7 +53,10 @@ class CheckpointCleaner {
53
53
  }
54
54
  const sessionIds = outdatedConversations.map((conversation) => conversation.sessionId);
55
55
  const latestMessageRefs = await this.aiMessagesModel.findAll({
56
- attributes: ["sessionId", [this.sequelize.fn("MAX", this.sequelize.col("messageId")), "messageId"]],
56
+ attributes: [
57
+ "sessionId",
58
+ [this.sequelize.fn("MAX", this.sequelize.col(this.aiMessagesMessageIdColumn)), "messageId"]
59
+ ],
57
60
  where: {
58
61
  sessionId: {
59
62
  [import_database.Op.in]: sessionIds
@@ -127,6 +130,13 @@ class CheckpointCleaner {
127
130
  get aiMessagesModel() {
128
131
  return this.collectionManager.getCollection("aiMessages").model;
129
132
  }
133
+ get aiMessagesMessageIdColumn() {
134
+ var _a;
135
+ return ((_a = this.aiMessagesModel.rawAttributes.messageId) == null ? void 0 : _a.field) || (this.isUnderscoredDatabase ? "message_id" : "messageId");
136
+ }
137
+ get isUnderscoredDatabase() {
138
+ return this.collectionManager.db.options.underscored === true || process.env.DB_UNDERSCORED === "true";
139
+ }
130
140
  get sequelize() {
131
141
  return this.collectionManager.db.sequelize;
132
142
  }
@@ -8,8 +8,10 @@
8
8
  */
9
9
  import { AIEmployee } from '../ai-employee';
10
10
  import z from 'zod';
11
+ import { LLMProvider } from '../../llm-providers/provider';
11
12
  export declare const conversationMiddleware: (aiEmployee: AIEmployee, options: {
12
13
  providerName: string;
14
+ provider: LLMProvider;
13
15
  llmService?: string;
14
16
  model: string;
15
17
  messageId?: string;
@@ -43,10 +43,11 @@ var import_langchain = require("langchain");
43
43
  var import_zod = __toESM(require("zod"));
44
44
  var import_utils = require("../utils");
45
45
  const conversationMiddleware = (aiEmployee, options) => {
46
- const { providerName, llmService, model, messageId, agentThread } = options;
46
+ const { providerName, provider, llmService, model, messageId, agentThread } = options;
47
47
  const convertAIMessage = (aiMessage) => (0, import_utils.convertAIMessage)({
48
48
  aiEmployee,
49
49
  providerName,
50
+ provider,
50
51
  llmService,
51
52
  model,
52
53
  aiMessage
@@ -8,5 +8,6 @@
8
8
  */
9
9
  export * from './conversation';
10
10
  export * from './skill-tools';
11
+ export * from './tool-call-sanitizer';
11
12
  export * from './tools';
12
13
  export * from './workflow-history';
@@ -25,12 +25,14 @@ var middleware_exports = {};
25
25
  module.exports = __toCommonJS(middleware_exports);
26
26
  __reExport(middleware_exports, require("./conversation"), module.exports);
27
27
  __reExport(middleware_exports, require("./skill-tools"), module.exports);
28
+ __reExport(middleware_exports, require("./tool-call-sanitizer"), module.exports);
28
29
  __reExport(middleware_exports, require("./tools"), module.exports);
29
30
  __reExport(middleware_exports, require("./workflow-history"), module.exports);
30
31
  // Annotate the CommonJS export names for ESM import in node:
31
32
  0 && (module.exports = {
32
33
  ...require("./conversation"),
33
34
  ...require("./skill-tools"),
35
+ ...require("./tool-call-sanitizer"),
34
36
  ...require("./tools"),
35
37
  ...require("./workflow-history")
36
38
  });
@@ -0,0 +1,16 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+ type ToolCallSanitizerLogger = {
10
+ warn: (message: string, meta?: Record<string, unknown>) => void;
11
+ };
12
+ type ToolCallSanitizerMiddlewareOptions = {
13
+ logger?: ToolCallSanitizerLogger;
14
+ };
15
+ export declare const toolCallSanitizerMiddleware: (options?: ToolCallSanitizerMiddlewareOptions) => import("langchain/dist/agents/middleware/types.cjs").AgentMiddleware<never, undefined, unknown, readonly (import("@langchain/core/dist/tools").ClientTool | import("@langchain/core/dist/tools").ServerTool)[]>;
16
+ export {};
@@ -0,0 +1,90 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var tool_call_sanitizer_exports = {};
28
+ __export(tool_call_sanitizer_exports, {
29
+ toolCallSanitizerMiddleware: () => toolCallSanitizerMiddleware
30
+ });
31
+ module.exports = __toCommonJS(tool_call_sanitizer_exports);
32
+ var import_messages = require("@langchain/core/messages");
33
+ var import_langchain = require("langchain");
34
+ var import_tool_call_sanitizer = require("../tool-call-sanitizer");
35
+ const buildMessageUpdates = (messages, options, phase) => {
36
+ const updates = [];
37
+ for (const message of messages) {
38
+ if (!import_messages.AIMessage.isInstance(message) || !message.id) {
39
+ continue;
40
+ }
41
+ const sanitizedMessage = (0, import_tool_call_sanitizer.sanitizeLangChainAIMessage)(message, {
42
+ onDiscard: (info) => {
43
+ var _a, _b;
44
+ (_b = options.logger) == null ? void 0 : _b.warn("Discard malformed raw tool calls from AI message", {
45
+ phase,
46
+ messageId: message.id,
47
+ invalidToolCallCount: ((_a = message.invalid_tool_calls) == null ? void 0 : _a.length) ?? 0,
48
+ ...info
49
+ });
50
+ }
51
+ });
52
+ if (!sanitizedMessage) {
53
+ continue;
54
+ }
55
+ updates.push(
56
+ new import_messages.AIMessage({
57
+ id: sanitizedMessage.id,
58
+ content: sanitizedMessage.content,
59
+ name: sanitizedMessage.name,
60
+ additional_kwargs: sanitizedMessage.additional_kwargs,
61
+ response_metadata: sanitizedMessage.response_metadata,
62
+ tool_calls: sanitizedMessage.tool_calls,
63
+ invalid_tool_calls: sanitizedMessage.invalid_tool_calls,
64
+ usage_metadata: sanitizedMessage.usage_metadata
65
+ })
66
+ );
67
+ }
68
+ return updates;
69
+ };
70
+ const toolCallSanitizerMiddleware = (options = {}) => (0, import_langchain.createMiddleware)({
71
+ name: "ToolCallSanitizerMiddleware",
72
+ beforeModel: (state) => {
73
+ const updates = buildMessageUpdates(state.messages ?? [], options, "beforeModel");
74
+ if (!updates.length) {
75
+ return;
76
+ }
77
+ return { messages: updates };
78
+ },
79
+ afterModel: (state) => {
80
+ const updates = buildMessageUpdates(state.messages ?? [], options, "afterModel");
81
+ if (!updates.length) {
82
+ return;
83
+ }
84
+ return { messages: updates };
85
+ }
86
+ });
87
+ // Annotate the CommonJS export names for ESM import in node:
88
+ 0 && (module.exports = {
89
+ toolCallSanitizerMiddleware
90
+ });
@@ -0,0 +1,26 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+ import { AIMessage } from '@langchain/core/messages';
10
+ type AdditionalKwargs = Record<string, unknown>;
11
+ type DiscardedToolCallsInfo = {
12
+ rawToolCallCount: number;
13
+ parsedToolCallCount: number;
14
+ rawToolCallIds: string[];
15
+ rawToolCallNames: string[];
16
+ };
17
+ type SanitizeAdditionalKwargsOptions = {
18
+ onDiscard?: (info: DiscardedToolCallsInfo) => void;
19
+ };
20
+ type SanitizeAdditionalKwargsResult = {
21
+ changed: boolean;
22
+ additionalKwargs?: AdditionalKwargs;
23
+ };
24
+ export declare const sanitizeAdditionalKwargsForToolCalls: (additionalKwargs: AdditionalKwargs | undefined, parsedToolCalls?: unknown[] | null, options?: SanitizeAdditionalKwargsOptions) => SanitizeAdditionalKwargsResult;
25
+ export declare const sanitizeLangChainAIMessage: (message: AIMessage, options?: SanitizeAdditionalKwargsOptions) => AIMessage<import("@langchain/core/dist/messages/message").MessageStructure<import("@langchain/core/dist/messages/message").MessageToolSet>>;
26
+ export {};
@@ -0,0 +1,84 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var tool_call_sanitizer_exports = {};
28
+ __export(tool_call_sanitizer_exports, {
29
+ sanitizeAdditionalKwargsForToolCalls: () => sanitizeAdditionalKwargsForToolCalls,
30
+ sanitizeLangChainAIMessage: () => sanitizeLangChainAIMessage
31
+ });
32
+ module.exports = __toCommonJS(tool_call_sanitizer_exports);
33
+ const hasRawToolCalls = (additionalKwargs) => Array.isArray(additionalKwargs == null ? void 0 : additionalKwargs.tool_calls) && additionalKwargs.tool_calls.length > 0;
34
+ const hasParsedToolCalls = (toolCalls) => Array.isArray(toolCalls) && toolCalls.length > 0;
35
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
36
+ const collectRawToolCallValues = (toolCalls, key) => toolCalls.map((toolCall) => {
37
+ if (!isRecord(toolCall)) {
38
+ return null;
39
+ }
40
+ if (key === "name") {
41
+ const fn = toolCall.function;
42
+ if (isRecord(fn) && typeof fn.name === "string") {
43
+ return fn.name;
44
+ }
45
+ }
46
+ const value = toolCall[key];
47
+ return typeof value === "string" ? value : null;
48
+ }).filter((value) => Boolean(value));
49
+ const sanitizeAdditionalKwargsForToolCalls = (additionalKwargs, parsedToolCalls, options = {}) => {
50
+ var _a;
51
+ if (!hasRawToolCalls(additionalKwargs) || hasParsedToolCalls(parsedToolCalls)) {
52
+ return {
53
+ changed: false,
54
+ additionalKwargs
55
+ };
56
+ }
57
+ const rawToolCalls = additionalKwargs.tool_calls;
58
+ (_a = options.onDiscard) == null ? void 0 : _a.call(options, {
59
+ rawToolCallCount: rawToolCalls.length,
60
+ parsedToolCallCount: (parsedToolCalls == null ? void 0 : parsedToolCalls.length) ?? 0,
61
+ rawToolCallIds: collectRawToolCallValues(rawToolCalls, "id"),
62
+ rawToolCallNames: collectRawToolCallValues(rawToolCalls, "name")
63
+ });
64
+ const sanitized = { ...additionalKwargs };
65
+ delete sanitized.tool_calls;
66
+ return {
67
+ changed: true,
68
+ additionalKwargs: Object.keys(sanitized).length > 0 ? sanitized : void 0
69
+ };
70
+ };
71
+ const sanitizeLangChainAIMessage = (message, options = {}) => {
72
+ const sanitized = sanitizeAdditionalKwargsForToolCalls(message.additional_kwargs, message.tool_calls, options);
73
+ if (!sanitized.changed) {
74
+ return null;
75
+ }
76
+ message.additional_kwargs = sanitized.additionalKwargs ?? {};
77
+ message.lc_kwargs.additional_kwargs = message.additional_kwargs;
78
+ return message;
79
+ };
80
+ // Annotate the CommonJS export names for ESM import in node:
81
+ 0 && (module.exports = {
82
+ sanitizeAdditionalKwargsForToolCalls,
83
+ sanitizeLangChainAIMessage
84
+ });
@@ -9,9 +9,11 @@
9
9
  import { AIMessage, HumanMessage, ToolMessage } from 'langchain';
10
10
  import { AIMessageInput } from '../types';
11
11
  import { AIEmployee } from './ai-employee';
12
- export declare const convertAIMessage: ({ aiEmployee, providerName: provider, llmService, model, aiMessage, }: {
12
+ import { LLMProvider } from '../llm-providers/provider';
13
+ export declare const convertAIMessage: ({ aiEmployee, providerName: provider, provider: providerInstance, llmService, model, aiMessage, }: {
13
14
  aiEmployee: AIEmployee;
14
15
  providerName: string;
16
+ provider: LLMProvider;
15
17
  llmService?: string;
16
18
  model: string;
17
19
  aiMessage: AIMessage;
@@ -31,9 +31,11 @@ __export(utils_exports, {
31
31
  convertToolMessage: () => convertToolMessage
32
32
  });
33
33
  module.exports = __toCommonJS(utils_exports);
34
+ var import_tool_call_sanitizer = require("./tool-call-sanitizer");
34
35
  const convertAIMessage = ({
35
36
  aiEmployee,
36
37
  providerName: provider,
38
+ provider: providerInstance,
37
39
  llmService,
38
40
  model,
39
41
  aiMessage
@@ -89,9 +91,21 @@ const convertAIMessage = ({
89
91
  if (aiMessage.response_metadata) {
90
92
  values.metadata.response_metadata = aiMessage.response_metadata;
91
93
  }
92
- if (aiMessage.additional_kwargs) {
93
- values.metadata.additional_kwargs = aiMessage.additional_kwargs;
94
+ const additionalKwargs = (0, import_tool_call_sanitizer.sanitizeAdditionalKwargsForToolCalls)(aiMessage.additional_kwargs, toolCalls, {
95
+ onDiscard: (info) => {
96
+ var _a2, _b;
97
+ (_b = aiEmployee.logger) == null ? void 0 : _b.warn("Discard malformed raw tool calls from AI message", {
98
+ phase: "convertAIMessage",
99
+ messageId: aiMessage.id,
100
+ invalidToolCallCount: ((_a2 = aiMessage.invalid_tool_calls) == null ? void 0 : _a2.length) ?? 0,
101
+ ...info
102
+ });
103
+ }
104
+ }).additionalKwargs;
105
+ if (additionalKwargs) {
106
+ values.metadata.additional_kwargs = additionalKwargs;
94
107
  }
108
+ providerInstance.reshapeAIMessage({ aiMessage, values });
95
109
  return values;
96
110
  };
97
111
  const convertHumanMessage = ({