@ainative/cody-sdk 0.1.0
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.
- package/.github/logo.svg +3 -0
- package/CHANGELOG.md +2345 -0
- package/LICENSE +8 -0
- package/README.md +45 -0
- package/_vendor/partial-json-parser/parser.d.mts +3 -0
- package/_vendor/partial-json-parser/parser.d.mts.map +1 -0
- package/_vendor/partial-json-parser/parser.d.ts +3 -0
- package/_vendor/partial-json-parser/parser.d.ts.map +1 -0
- package/_vendor/partial-json-parser/parser.js +226 -0
- package/_vendor/partial-json-parser/parser.js.map +1 -0
- package/_vendor/partial-json-parser/parser.mjs +223 -0
- package/_vendor/partial-json-parser/parser.mjs.map +1 -0
- package/ainative.d.mts +32 -0
- package/ainative.d.mts.map +1 -0
- package/ainative.d.ts +32 -0
- package/ainative.d.ts.map +1 -0
- package/ainative.js +78 -0
- package/ainative.js.map +1 -0
- package/ainative.mjs +71 -0
- package/ainative.mjs.map +1 -0
- package/api-promise.d.mts +2 -0
- package/api-promise.d.mts.map +1 -0
- package/api-promise.d.ts +2 -0
- package/api-promise.d.ts.map +1 -0
- package/api-promise.js +6 -0
- package/api-promise.js.map +1 -0
- package/api-promise.mjs +2 -0
- package/api-promise.mjs.map +1 -0
- package/bin/cli +53 -0
- package/bin/migration-config.json +82 -0
- package/client.d.mts +247 -0
- package/client.d.mts.map +1 -0
- package/client.d.ts +247 -0
- package/client.d.ts.map +1 -0
- package/client.js +567 -0
- package/client.js.map +1 -0
- package/client.mjs +562 -0
- package/client.mjs.map +1 -0
- package/core/api-promise.d.mts +49 -0
- package/core/api-promise.d.mts.map +1 -0
- package/core/api-promise.d.ts +49 -0
- package/core/api-promise.d.ts.map +1 -0
- package/core/api-promise.js +76 -0
- package/core/api-promise.js.map +1 -0
- package/core/api-promise.mjs +72 -0
- package/core/api-promise.mjs.map +1 -0
- package/core/error.d.mts +50 -0
- package/core/error.d.mts.map +1 -0
- package/core/error.d.ts +50 -0
- package/core/error.d.ts.map +1 -0
- package/core/error.js +116 -0
- package/core/error.js.map +1 -0
- package/core/error.mjs +100 -0
- package/core/error.mjs.map +1 -0
- package/core/pagination.d.mts +105 -0
- package/core/pagination.d.mts.map +1 -0
- package/core/pagination.d.ts +105 -0
- package/core/pagination.d.ts.map +1 -0
- package/core/pagination.js +185 -0
- package/core/pagination.js.map +1 -0
- package/core/pagination.mjs +177 -0
- package/core/pagination.mjs.map +1 -0
- package/core/resource.d.mts +6 -0
- package/core/resource.d.mts.map +1 -0
- package/core/resource.d.ts +6 -0
- package/core/resource.d.ts.map +1 -0
- package/core/resource.js +11 -0
- package/core/resource.js.map +1 -0
- package/core/resource.mjs +7 -0
- package/core/resource.mjs.map +1 -0
- package/core/streaming.d.mts +33 -0
- package/core/streaming.d.mts.map +1 -0
- package/core/streaming.d.ts +33 -0
- package/core/streaming.d.ts.map +1 -0
- package/core/streaming.js +290 -0
- package/core/streaming.js.map +1 -0
- package/core/streaming.mjs +285 -0
- package/core/streaming.mjs.map +1 -0
- package/core/uploads.d.mts +3 -0
- package/core/uploads.d.mts.map +1 -0
- package/core/uploads.d.ts +3 -0
- package/core/uploads.d.ts.map +1 -0
- package/core/uploads.js +6 -0
- package/core/uploads.js.map +1 -0
- package/core/uploads.mjs +2 -0
- package/core/uploads.mjs.map +1 -0
- package/error.d.mts +2 -0
- package/error.d.mts.map +1 -0
- package/error.d.ts +2 -0
- package/error.d.ts.map +1 -0
- package/error.js +6 -0
- package/error.js.map +1 -0
- package/error.mjs +2 -0
- package/error.mjs.map +1 -0
- package/helpers/beta/json-schema.d.mts +31 -0
- package/helpers/beta/json-schema.d.mts.map +1 -0
- package/helpers/beta/json-schema.d.ts +31 -0
- package/helpers/beta/json-schema.d.ts.map +1 -0
- package/helpers/beta/json-schema.js +56 -0
- package/helpers/beta/json-schema.js.map +1 -0
- package/helpers/beta/json-schema.mjs +52 -0
- package/helpers/beta/json-schema.mjs.map +1 -0
- package/helpers/beta/mcp.d.mts +303 -0
- package/helpers/beta/mcp.d.mts.map +1 -0
- package/helpers/beta/mcp.d.ts +303 -0
- package/helpers/beta/mcp.d.ts.map +1 -0
- package/helpers/beta/mcp.js +419 -0
- package/helpers/beta/mcp.js.map +1 -0
- package/helpers/beta/mcp.mjs +406 -0
- package/helpers/beta/mcp.mjs.map +1 -0
- package/helpers/beta/memory.d.mts +11 -0
- package/helpers/beta/memory.d.mts.map +1 -0
- package/helpers/beta/memory.d.ts +11 -0
- package/helpers/beta/memory.d.ts.map +1 -0
- package/helpers/beta/memory.js +18 -0
- package/helpers/beta/memory.js.map +1 -0
- package/helpers/beta/memory.mjs +15 -0
- package/helpers/beta/memory.mjs.map +1 -0
- package/helpers/beta/zod.d.mts +27 -0
- package/helpers/beta/zod.d.mts.map +1 -0
- package/helpers/beta/zod.d.ts +27 -0
- package/helpers/beta/zod.d.ts.map +1 -0
- package/helpers/beta/zod.js +57 -0
- package/helpers/beta/zod.js.map +1 -0
- package/helpers/beta/zod.mjs +52 -0
- package/helpers/beta/zod.mjs.map +1 -0
- package/helpers/index.d.mts +3 -0
- package/helpers/index.d.mts.map +1 -0
- package/helpers/index.d.ts +3 -0
- package/helpers/index.d.ts.map +1 -0
- package/helpers/index.js +8 -0
- package/helpers/index.js.map +1 -0
- package/helpers/index.mjs +3 -0
- package/helpers/index.mjs.map +1 -0
- package/helpers/json-schema.d.mts +18 -0
- package/helpers/json-schema.d.mts.map +1 -0
- package/helpers/json-schema.d.ts +18 -0
- package/helpers/json-schema.d.ts.map +1 -0
- package/helpers/json-schema.js +37 -0
- package/helpers/json-schema.js.map +1 -0
- package/helpers/json-schema.mjs +34 -0
- package/helpers/json-schema.mjs.map +1 -0
- package/helpers/zod.d.mts +13 -0
- package/helpers/zod.d.mts.map +1 -0
- package/helpers/zod.d.ts +13 -0
- package/helpers/zod.d.ts.map +1 -0
- package/helpers/zod.js +47 -0
- package/helpers/zod.js.map +1 -0
- package/helpers/zod.mjs +43 -0
- package/helpers/zod.mjs.map +1 -0
- package/index.d.mts +9 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +9 -0
- package/index.d.ts.map +1 -0
- package/index.js +42 -0
- package/index.js.map +1 -0
- package/index.mjs +9 -0
- package/index.mjs.map +1 -0
- package/internal/builtin-types.d.mts +73 -0
- package/internal/builtin-types.d.mts.map +1 -0
- package/internal/builtin-types.d.ts +73 -0
- package/internal/builtin-types.d.ts.map +1 -0
- package/internal/builtin-types.js +4 -0
- package/internal/builtin-types.js.map +1 -0
- package/internal/builtin-types.mjs +3 -0
- package/internal/builtin-types.mjs.map +1 -0
- package/internal/constants.d.mts +5 -0
- package/internal/constants.d.mts.map +1 -0
- package/internal/constants.d.ts +5 -0
- package/internal/constants.d.ts.map +1 -0
- package/internal/constants.js +18 -0
- package/internal/constants.js.map +1 -0
- package/internal/constants.mjs +15 -0
- package/internal/constants.mjs.map +1 -0
- package/internal/decoders/jsonl.d.mts +10 -0
- package/internal/decoders/jsonl.d.mts.map +1 -0
- package/internal/decoders/jsonl.d.ts +10 -0
- package/internal/decoders/jsonl.d.ts.map +1 -0
- package/internal/decoders/jsonl.js +39 -0
- package/internal/decoders/jsonl.js.map +1 -0
- package/internal/decoders/jsonl.mjs +35 -0
- package/internal/decoders/jsonl.mjs.map +1 -0
- package/internal/decoders/line.d.mts +17 -0
- package/internal/decoders/line.d.mts.map +1 -0
- package/internal/decoders/line.d.ts +17 -0
- package/internal/decoders/line.d.ts.map +1 -0
- package/internal/decoders/line.js +113 -0
- package/internal/decoders/line.js.map +1 -0
- package/internal/decoders/line.mjs +108 -0
- package/internal/decoders/line.mjs.map +1 -0
- package/internal/detect-platform.d.mts +15 -0
- package/internal/detect-platform.d.mts.map +1 -0
- package/internal/detect-platform.d.ts +15 -0
- package/internal/detect-platform.d.ts.map +1 -0
- package/internal/detect-platform.js +162 -0
- package/internal/detect-platform.js.map +1 -0
- package/internal/detect-platform.mjs +157 -0
- package/internal/detect-platform.mjs.map +1 -0
- package/internal/errors.d.mts +3 -0
- package/internal/errors.d.mts.map +1 -0
- package/internal/errors.d.ts +3 -0
- package/internal/errors.d.ts.map +1 -0
- package/internal/errors.js +41 -0
- package/internal/errors.js.map +1 -0
- package/internal/errors.mjs +36 -0
- package/internal/errors.mjs.map +1 -0
- package/internal/headers.d.mts +22 -0
- package/internal/headers.d.mts.map +1 -0
- package/internal/headers.d.ts +22 -0
- package/internal/headers.d.ts.map +1 -0
- package/internal/headers.js +79 -0
- package/internal/headers.js.map +1 -0
- package/internal/headers.mjs +74 -0
- package/internal/headers.mjs.map +1 -0
- package/internal/parse.d.mts +17 -0
- package/internal/parse.d.mts.map +1 -0
- package/internal/parse.d.ts +17 -0
- package/internal/parse.d.ts.map +1 -0
- package/internal/parse.js +60 -0
- package/internal/parse.js.map +1 -0
- package/internal/parse.mjs +56 -0
- package/internal/parse.mjs.map +1 -0
- package/internal/request-options.d.mts +77 -0
- package/internal/request-options.d.mts.map +1 -0
- package/internal/request-options.d.ts +77 -0
- package/internal/request-options.d.ts.map +1 -0
- package/internal/request-options.js +14 -0
- package/internal/request-options.js.map +1 -0
- package/internal/request-options.mjs +10 -0
- package/internal/request-options.mjs.map +1 -0
- package/internal/shim-types.d.mts +17 -0
- package/internal/shim-types.d.mts.map +1 -0
- package/internal/shim-types.d.ts +17 -0
- package/internal/shim-types.d.ts.map +1 -0
- package/internal/shim-types.js +4 -0
- package/internal/shim-types.js.map +1 -0
- package/internal/shim-types.mjs +3 -0
- package/internal/shim-types.mjs.map +1 -0
- package/internal/shims.d.mts +20 -0
- package/internal/shims.d.mts.map +1 -0
- package/internal/shims.d.ts +20 -0
- package/internal/shims.d.ts.map +1 -0
- package/internal/shims.js +92 -0
- package/internal/shims.js.map +1 -0
- package/internal/shims.mjs +85 -0
- package/internal/shims.mjs.map +1 -0
- package/internal/stream-utils.d.mts +8 -0
- package/internal/stream-utils.d.mts.map +1 -0
- package/internal/stream-utils.d.ts +8 -0
- package/internal/stream-utils.d.ts.map +1 -0
- package/internal/stream-utils.js +38 -0
- package/internal/stream-utils.js.map +1 -0
- package/internal/stream-utils.mjs +35 -0
- package/internal/stream-utils.mjs.map +1 -0
- package/internal/to-file.d.mts +45 -0
- package/internal/to-file.d.mts.map +1 -0
- package/internal/to-file.d.ts +45 -0
- package/internal/to-file.d.ts.map +1 -0
- package/internal/to-file.js +96 -0
- package/internal/to-file.js.map +1 -0
- package/internal/to-file.mjs +93 -0
- package/internal/to-file.mjs.map +1 -0
- package/internal/tslib.js +81 -0
- package/internal/tslib.mjs +17 -0
- package/internal/types.d.mts +69 -0
- package/internal/types.d.mts.map +1 -0
- package/internal/types.d.ts +69 -0
- package/internal/types.d.ts.map +1 -0
- package/internal/types.js +4 -0
- package/internal/types.js.map +1 -0
- package/internal/types.mjs +3 -0
- package/internal/types.mjs.map +1 -0
- package/internal/uploads.d.mts +42 -0
- package/internal/uploads.d.mts.map +1 -0
- package/internal/uploads.d.ts +42 -0
- package/internal/uploads.d.ts.map +1 -0
- package/internal/uploads.js +145 -0
- package/internal/uploads.js.map +1 -0
- package/internal/uploads.mjs +135 -0
- package/internal/uploads.mjs.map +1 -0
- package/internal/utils/base64.d.mts +3 -0
- package/internal/utils/base64.d.mts.map +1 -0
- package/internal/utils/base64.d.ts +3 -0
- package/internal/utils/base64.d.ts.map +1 -0
- package/internal/utils/base64.js +38 -0
- package/internal/utils/base64.js.map +1 -0
- package/internal/utils/base64.mjs +33 -0
- package/internal/utils/base64.mjs.map +1 -0
- package/internal/utils/bytes.d.mts +4 -0
- package/internal/utils/bytes.d.mts.map +1 -0
- package/internal/utils/bytes.d.ts +4 -0
- package/internal/utils/bytes.d.ts.map +1 -0
- package/internal/utils/bytes.js +31 -0
- package/internal/utils/bytes.js.map +1 -0
- package/internal/utils/bytes.mjs +26 -0
- package/internal/utils/bytes.mjs.map +1 -0
- package/internal/utils/env.d.mts +9 -0
- package/internal/utils/env.d.mts.map +1 -0
- package/internal/utils/env.d.ts +9 -0
- package/internal/utils/env.d.ts.map +1 -0
- package/internal/utils/env.js +22 -0
- package/internal/utils/env.js.map +1 -0
- package/internal/utils/env.mjs +18 -0
- package/internal/utils/env.mjs.map +1 -0
- package/internal/utils/log.d.mts +37 -0
- package/internal/utils/log.d.mts.map +1 -0
- package/internal/utils/log.d.ts +37 -0
- package/internal/utils/log.d.ts.map +1 -0
- package/internal/utils/log.js +86 -0
- package/internal/utils/log.js.map +1 -0
- package/internal/utils/log.mjs +80 -0
- package/internal/utils/log.mjs.map +1 -0
- package/internal/utils/path.d.mts +15 -0
- package/internal/utils/path.d.mts.map +1 -0
- package/internal/utils/path.d.ts +15 -0
- package/internal/utils/path.d.ts.map +1 -0
- package/internal/utils/path.js +79 -0
- package/internal/utils/path.js.map +1 -0
- package/internal/utils/path.mjs +74 -0
- package/internal/utils/path.mjs.map +1 -0
- package/internal/utils/query.d.mts +5 -0
- package/internal/utils/query.d.mts.map +1 -0
- package/internal/utils/query.d.ts +5 -0
- package/internal/utils/query.d.ts.map +1 -0
- package/internal/utils/query.js +23 -0
- package/internal/utils/query.js.map +1 -0
- package/internal/utils/query.mjs +20 -0
- package/internal/utils/query.mjs.map +1 -0
- package/internal/utils/sleep.d.mts +2 -0
- package/internal/utils/sleep.d.mts.map +1 -0
- package/internal/utils/sleep.d.ts +2 -0
- package/internal/utils/sleep.d.ts.map +1 -0
- package/internal/utils/sleep.js +7 -0
- package/internal/utils/sleep.js.map +1 -0
- package/internal/utils/sleep.mjs +3 -0
- package/internal/utils/sleep.mjs.map +1 -0
- package/internal/utils/uuid.d.mts +5 -0
- package/internal/utils/uuid.d.mts.map +1 -0
- package/internal/utils/uuid.d.ts +5 -0
- package/internal/utils/uuid.d.ts.map +1 -0
- package/internal/utils/uuid.js +19 -0
- package/internal/utils/uuid.js.map +1 -0
- package/internal/utils/uuid.mjs +15 -0
- package/internal/utils/uuid.mjs.map +1 -0
- package/internal/utils/values.d.mts +19 -0
- package/internal/utils/values.d.mts.map +1 -0
- package/internal/utils/values.d.ts +19 -0
- package/internal/utils/values.d.ts.map +1 -0
- package/internal/utils/values.js +119 -0
- package/internal/utils/values.js.map +1 -0
- package/internal/utils/values.mjs +100 -0
- package/internal/utils/values.mjs.map +1 -0
- package/internal/utils.d.mts +8 -0
- package/internal/utils.d.mts.map +1 -0
- package/internal/utils.d.ts +8 -0
- package/internal/utils.d.ts.map +1 -0
- package/internal/utils.js +12 -0
- package/internal/utils.js.map +1 -0
- package/internal/utils.mjs +9 -0
- package/internal/utils.mjs.map +1 -0
- package/lib/BetaMessageStream.d.mts +122 -0
- package/lib/BetaMessageStream.d.mts.map +1 -0
- package/lib/BetaMessageStream.d.ts +122 -0
- package/lib/BetaMessageStream.d.ts.map +1 -0
- package/lib/BetaMessageStream.js +620 -0
- package/lib/BetaMessageStream.js.map +1 -0
- package/lib/BetaMessageStream.mjs +616 -0
- package/lib/BetaMessageStream.mjs.map +1 -0
- package/lib/MessageStream.d.mts +121 -0
- package/lib/MessageStream.d.mts.map +1 -0
- package/lib/MessageStream.d.ts +121 -0
- package/lib/MessageStream.d.ts.map +1 -0
- package/lib/MessageStream.js +595 -0
- package/lib/MessageStream.js.map +1 -0
- package/lib/MessageStream.mjs +591 -0
- package/lib/MessageStream.mjs.map +1 -0
- package/lib/beta-parser.d.mts +37 -0
- package/lib/beta-parser.d.mts.map +1 -0
- package/lib/beta-parser.d.ts +37 -0
- package/lib/beta-parser.d.ts.map +1 -0
- package/lib/beta-parser.js +79 -0
- package/lib/beta-parser.js.map +1 -0
- package/lib/beta-parser.mjs +75 -0
- package/lib/beta-parser.mjs.map +1 -0
- package/lib/parser.d.mts +32 -0
- package/lib/parser.d.mts.map +1 -0
- package/lib/parser.d.ts +32 -0
- package/lib/parser.d.ts.map +1 -0
- package/lib/parser.js +66 -0
- package/lib/parser.js.map +1 -0
- package/lib/parser.mjs +62 -0
- package/lib/parser.mjs.map +1 -0
- package/lib/stainless-helper-header.d.mts +34 -0
- package/lib/stainless-helper-header.d.mts.map +1 -0
- package/lib/stainless-helper-header.d.ts +34 -0
- package/lib/stainless-helper-header.d.ts.map +1 -0
- package/lib/stainless-helper-header.js +70 -0
- package/lib/stainless-helper-header.js.map +1 -0
- package/lib/stainless-helper-header.mjs +63 -0
- package/lib/stainless-helper-header.mjs.map +1 -0
- package/lib/tools/BetaRunnableTool.d.mts +12 -0
- package/lib/tools/BetaRunnableTool.d.mts.map +1 -0
- package/lib/tools/BetaRunnableTool.d.ts +12 -0
- package/lib/tools/BetaRunnableTool.d.ts.map +1 -0
- package/lib/tools/BetaRunnableTool.js +3 -0
- package/lib/tools/BetaRunnableTool.js.map +1 -0
- package/lib/tools/BetaRunnableTool.mjs +2 -0
- package/lib/tools/BetaRunnableTool.mjs.map +1 -0
- package/lib/tools/BetaToolRunner.d.mts +141 -0
- package/lib/tools/BetaToolRunner.d.mts.map +1 -0
- package/lib/tools/BetaToolRunner.d.ts +141 -0
- package/lib/tools/BetaToolRunner.d.ts.map +1 -0
- package/lib/tools/BetaToolRunner.js +381 -0
- package/lib/tools/BetaToolRunner.js.map +1 -0
- package/lib/tools/BetaToolRunner.mjs +377 -0
- package/lib/tools/BetaToolRunner.mjs.map +1 -0
- package/lib/tools/CompactionControl.d.mts +30 -0
- package/lib/tools/CompactionControl.d.mts.map +1 -0
- package/lib/tools/CompactionControl.d.ts +30 -0
- package/lib/tools/CompactionControl.d.ts.map +1 -0
- package/lib/tools/CompactionControl.js +28 -0
- package/lib/tools/CompactionControl.js.map +1 -0
- package/lib/tools/CompactionControl.mjs +25 -0
- package/lib/tools/CompactionControl.mjs.map +1 -0
- package/lib/tools/ToolError.d.mts +33 -0
- package/lib/tools/ToolError.d.mts.map +1 -0
- package/lib/tools/ToolError.d.ts +33 -0
- package/lib/tools/ToolError.d.ts.map +1 -0
- package/lib/tools/ToolError.js +42 -0
- package/lib/tools/ToolError.js.map +1 -0
- package/lib/tools/ToolError.mjs +38 -0
- package/lib/tools/ToolError.mjs.map +1 -0
- package/lib/tools/ToolRunner.d.mts +132 -0
- package/lib/tools/ToolRunner.d.mts.map +1 -0
- package/lib/tools/ToolRunner.d.ts +132 -0
- package/lib/tools/ToolRunner.d.ts.map +1 -0
- package/lib/tools/ToolRunner.js +294 -0
- package/lib/tools/ToolRunner.js.map +1 -0
- package/lib/tools/ToolRunner.mjs +290 -0
- package/lib/tools/ToolRunner.mjs.map +1 -0
- package/lib/transform-json-schema.d.mts +3 -0
- package/lib/transform-json-schema.d.mts.map +1 -0
- package/lib/transform-json-schema.d.ts +3 -0
- package/lib/transform-json-schema.d.ts.map +1 -0
- package/lib/transform-json-schema.js +114 -0
- package/lib/transform-json-schema.js.map +1 -0
- package/lib/transform-json-schema.mjs +111 -0
- package/lib/transform-json-schema.mjs.map +1 -0
- package/package.json +246 -0
- package/pagination.d.mts +2 -0
- package/pagination.d.mts.map +1 -0
- package/pagination.d.ts +2 -0
- package/pagination.d.ts.map +1 -0
- package/pagination.js +6 -0
- package/pagination.js.map +1 -0
- package/pagination.mjs +2 -0
- package/pagination.mjs.map +1 -0
- package/resource.d.mts +2 -0
- package/resource.d.mts.map +1 -0
- package/resource.d.ts +2 -0
- package/resource.d.ts.map +1 -0
- package/resource.js +6 -0
- package/resource.js.map +1 -0
- package/resource.mjs +2 -0
- package/resource.mjs.map +1 -0
- package/resources/beta/beta.d.mts +66 -0
- package/resources/beta/beta.d.mts.map +1 -0
- package/resources/beta/beta.d.ts +66 -0
- package/resources/beta/beta.d.ts.map +1 -0
- package/resources/beta/beta.js +29 -0
- package/resources/beta/beta.js.map +1 -0
- package/resources/beta/beta.mjs +24 -0
- package/resources/beta/beta.mjs.map +1 -0
- package/resources/beta/files.d.mts +151 -0
- package/resources/beta/files.d.mts.map +1 -0
- package/resources/beta/files.d.ts +151 -0
- package/resources/beta/files.d.ts.map +1 -0
- package/resources/beta/files.js +124 -0
- package/resources/beta/files.js.map +1 -0
- package/resources/beta/files.mjs +120 -0
- package/resources/beta/files.mjs.map +1 -0
- package/resources/beta/index.d.mts +6 -0
- package/resources/beta/index.d.mts.map +1 -0
- package/resources/beta/index.d.ts +6 -0
- package/resources/beta/index.d.ts.map +1 -0
- package/resources/beta/index.js +15 -0
- package/resources/beta/index.js.map +1 -0
- package/resources/beta/index.mjs +7 -0
- package/resources/beta/index.mjs.map +1 -0
- package/resources/beta/messages/batches.d.mts +646 -0
- package/resources/beta/messages/batches.d.mts.map +1 -0
- package/resources/beta/messages/batches.d.ts +646 -0
- package/resources/beta/messages/batches.d.ts.map +1 -0
- package/resources/beta/messages/batches.js +204 -0
- package/resources/beta/messages/batches.js.map +1 -0
- package/resources/beta/messages/batches.mjs +200 -0
- package/resources/beta/messages/batches.mjs.map +1 -0
- package/resources/beta/messages/index.d.mts +4 -0
- package/resources/beta/messages/index.d.mts.map +1 -0
- package/resources/beta/messages/index.d.ts +4 -0
- package/resources/beta/messages/index.d.ts.map +1 -0
- package/resources/beta/messages/index.js +12 -0
- package/resources/beta/messages/index.js.map +1 -0
- package/resources/beta/messages/index.mjs +5 -0
- package/resources/beta/messages/index.mjs.map +1 -0
- package/resources/beta/messages/messages.d.mts +2993 -0
- package/resources/beta/messages/messages.d.mts.map +1 -0
- package/resources/beta/messages/messages.d.ts +2993 -0
- package/resources/beta/messages/messages.d.ts.map +1 -0
- package/resources/beta/messages/messages.js +163 -0
- package/resources/beta/messages/messages.js.map +1 -0
- package/resources/beta/messages/messages.mjs +156 -0
- package/resources/beta/messages/messages.mjs.map +1 -0
- package/resources/beta/messages.d.mts +2 -0
- package/resources/beta/messages.d.mts.map +1 -0
- package/resources/beta/messages.d.ts +2 -0
- package/resources/beta/messages.d.ts.map +1 -0
- package/resources/beta/messages.js +6 -0
- package/resources/beta/messages.js.map +1 -0
- package/resources/beta/messages.mjs +3 -0
- package/resources/beta/messages.mjs.map +1 -0
- package/resources/beta/models.d.mts +208 -0
- package/resources/beta/models.d.mts.map +1 -0
- package/resources/beta/models.d.ts +208 -0
- package/resources/beta/models.d.ts.map +1 -0
- package/resources/beta/models.js +60 -0
- package/resources/beta/models.js.map +1 -0
- package/resources/beta/models.mjs +56 -0
- package/resources/beta/models.mjs.map +1 -0
- package/resources/beta/skills/index.d.mts +3 -0
- package/resources/beta/skills/index.d.mts.map +1 -0
- package/resources/beta/skills/index.d.ts +3 -0
- package/resources/beta/skills/index.d.ts.map +1 -0
- package/resources/beta/skills/index.js +9 -0
- package/resources/beta/skills/index.js.map +1 -0
- package/resources/beta/skills/index.mjs +4 -0
- package/resources/beta/skills/index.mjs.map +1 -0
- package/resources/beta/skills/skills.d.mts +249 -0
- package/resources/beta/skills/skills.d.mts.map +1 -0
- package/resources/beta/skills/skills.d.ts +249 -0
- package/resources/beta/skills/skills.d.ts.map +1 -0
- package/resources/beta/skills/skills.js +98 -0
- package/resources/beta/skills/skills.js.map +1 -0
- package/resources/beta/skills/skills.mjs +93 -0
- package/resources/beta/skills/skills.mjs.map +1 -0
- package/resources/beta/skills/versions.d.mts +257 -0
- package/resources/beta/skills/versions.d.mts.map +1 -0
- package/resources/beta/skills/versions.d.ts +257 -0
- package/resources/beta/skills/versions.d.ts.map +1 -0
- package/resources/beta/skills/versions.js +100 -0
- package/resources/beta/skills/versions.js.map +1 -0
- package/resources/beta/skills/versions.mjs +96 -0
- package/resources/beta/skills/versions.mjs.map +1 -0
- package/resources/beta/skills.d.mts +2 -0
- package/resources/beta/skills.d.mts.map +1 -0
- package/resources/beta/skills.d.ts +2 -0
- package/resources/beta/skills.d.ts.map +1 -0
- package/resources/beta/skills.js +6 -0
- package/resources/beta/skills.js.map +1 -0
- package/resources/beta/skills.mjs +3 -0
- package/resources/beta/skills.mjs.map +1 -0
- package/resources/beta.d.mts +2 -0
- package/resources/beta.d.mts.map +1 -0
- package/resources/beta.d.ts +2 -0
- package/resources/beta.d.ts.map +1 -0
- package/resources/beta.js +6 -0
- package/resources/beta.js.map +1 -0
- package/resources/beta.mjs +3 -0
- package/resources/beta.mjs.map +1 -0
- package/resources/completions.d.mts +182 -0
- package/resources/completions.d.mts.map +1 -0
- package/resources/completions.d.ts +182 -0
- package/resources/completions.d.ts.map +1 -0
- package/resources/completions.js +23 -0
- package/resources/completions.js.map +1 -0
- package/resources/completions.mjs +19 -0
- package/resources/completions.mjs.map +1 -0
- package/resources/index.d.mts +6 -0
- package/resources/index.d.mts.map +1 -0
- package/resources/index.d.ts +6 -0
- package/resources/index.d.ts.map +1 -0
- package/resources/index.js +15 -0
- package/resources/index.js.map +1 -0
- package/resources/index.mjs +7 -0
- package/resources/index.mjs.map +1 -0
- package/resources/messages/batches.d.mts +304 -0
- package/resources/messages/batches.d.mts.map +1 -0
- package/resources/messages/batches.d.ts +304 -0
- package/resources/messages/batches.d.ts.map +1 -0
- package/resources/messages/batches.js +153 -0
- package/resources/messages/batches.js.map +1 -0
- package/resources/messages/batches.mjs +149 -0
- package/resources/messages/batches.mjs.map +1 -0
- package/resources/messages/index.d.mts +3 -0
- package/resources/messages/index.d.mts.map +1 -0
- package/resources/messages/index.d.ts +3 -0
- package/resources/messages/index.d.ts.map +1 -0
- package/resources/messages/index.js +9 -0
- package/resources/messages/index.js.map +1 -0
- package/resources/messages/index.mjs +4 -0
- package/resources/messages/index.mjs.map +1 -0
- package/resources/messages/messages.d.mts +2285 -0
- package/resources/messages/messages.d.mts.map +1 -0
- package/resources/messages/messages.d.ts +2285 -0
- package/resources/messages/messages.d.ts.map +1 -0
- package/resources/messages/messages.js +128 -0
- package/resources/messages/messages.js.map +1 -0
- package/resources/messages/messages.mjs +123 -0
- package/resources/messages/messages.mjs.map +1 -0
- package/resources/messages.d.mts +2 -0
- package/resources/messages.d.mts.map +1 -0
- package/resources/messages.d.ts +2 -0
- package/resources/messages.d.ts.map +1 -0
- package/resources/messages.js +6 -0
- package/resources/messages.js.map +1 -0
- package/resources/messages.mjs +3 -0
- package/resources/messages.mjs.map +1 -0
- package/resources/models.d.mts +193 -0
- package/resources/models.d.mts.map +1 -0
- package/resources/models.d.ts +193 -0
- package/resources/models.d.ts.map +1 -0
- package/resources/models.js +45 -0
- package/resources/models.js.map +1 -0
- package/resources/models.mjs +41 -0
- package/resources/models.mjs.map +1 -0
- package/resources/shared.d.mts +44 -0
- package/resources/shared.d.mts.map +1 -0
- package/resources/shared.d.ts +44 -0
- package/resources/shared.d.ts.map +1 -0
- package/resources/shared.js +4 -0
- package/resources/shared.js.map +1 -0
- package/resources/shared.mjs +3 -0
- package/resources/shared.mjs.map +1 -0
- package/resources/top-level.d.mts +2 -0
- package/resources/top-level.d.mts.map +1 -0
- package/resources/top-level.d.ts +2 -0
- package/resources/top-level.d.ts.map +1 -0
- package/resources/top-level.js +4 -0
- package/resources/top-level.js.map +1 -0
- package/resources/top-level.mjs +3 -0
- package/resources/top-level.mjs.map +1 -0
- package/resources.d.mts +2 -0
- package/resources.d.mts.map +1 -0
- package/resources.d.ts +2 -0
- package/resources.d.ts.map +1 -0
- package/resources.js +5 -0
- package/resources.js.map +1 -0
- package/resources.mjs +2 -0
- package/resources.mjs.map +1 -0
- package/src/_vendor/partial-json-parser/README.md +3 -0
- package/src/_vendor/partial-json-parser/parser.ts +264 -0
- package/src/ainative.ts +85 -0
- package/src/api-promise.ts +2 -0
- package/src/client.ts +1326 -0
- package/src/core/README.md +3 -0
- package/src/core/api-promise.ts +101 -0
- package/src/core/error.ts +145 -0
- package/src/core/pagination.ts +331 -0
- package/src/core/resource.ts +11 -0
- package/src/core/streaming.ts +348 -0
- package/src/core/uploads.ts +2 -0
- package/src/error.ts +2 -0
- package/src/helpers/beta/json-schema.ts +75 -0
- package/src/helpers/beta/mcp.ts +624 -0
- package/src/helpers/beta/memory.ts +28 -0
- package/src/helpers/beta/zod.ts +72 -0
- package/src/helpers/index.ts +2 -0
- package/src/helpers/json-schema.ts +48 -0
- package/src/helpers/zod.ts +58 -0
- package/src/index.ts +40 -0
- package/src/internal/README.md +3 -0
- package/src/internal/builtin-types.ts +93 -0
- package/src/internal/constants.ts +15 -0
- package/src/internal/decoders/jsonl.ts +48 -0
- package/src/internal/decoders/line.ts +135 -0
- package/src/internal/detect-platform.ts +196 -0
- package/src/internal/errors.ts +33 -0
- package/src/internal/headers.ts +99 -0
- package/src/internal/parse.ts +90 -0
- package/src/internal/request-options.ts +93 -0
- package/src/internal/shim-types.ts +26 -0
- package/src/internal/shims.ts +107 -0
- package/src/internal/stream-utils.ts +32 -0
- package/src/internal/to-file.ts +159 -0
- package/src/internal/types.ts +95 -0
- package/src/internal/uploads.ts +204 -0
- package/src/internal/utils/base64.ts +40 -0
- package/src/internal/utils/bytes.ts +32 -0
- package/src/internal/utils/env.ts +18 -0
- package/src/internal/utils/log.ts +127 -0
- package/src/internal/utils/path.ts +88 -0
- package/src/internal/utils/query.ts +23 -0
- package/src/internal/utils/sleep.ts +3 -0
- package/src/internal/utils/uuid.ts +17 -0
- package/src/internal/utils/values.ts +112 -0
- package/src/internal/utils.ts +9 -0
- package/src/lib/.keep +4 -0
- package/src/lib/BetaMessageStream.ts +764 -0
- package/src/lib/MessageStream.ts +743 -0
- package/src/lib/beta-parser.ts +148 -0
- package/src/lib/parser.ts +125 -0
- package/src/lib/stainless-helper-header.ts +80 -0
- package/src/lib/tools/BetaRunnableTool.ts +40 -0
- package/src/lib/tools/BetaToolRunner.ts +494 -0
- package/src/lib/tools/CompactionControl.ts +57 -0
- package/src/lib/tools/ToolError.ts +47 -0
- package/src/lib/tools/ToolRunner.ts +381 -0
- package/src/lib/transform-json-schema.ts +124 -0
- package/src/pagination.ts +2 -0
- package/src/resource.ts +2 -0
- package/src/resources/beta/beta.ts +603 -0
- package/src/resources/beta/files.ts +261 -0
- package/src/resources/beta/index.ts +259 -0
- package/src/resources/beta/messages/batches.ts +827 -0
- package/src/resources/beta/messages/index.ts +229 -0
- package/src/resources/beta/messages/messages.ts +4372 -0
- package/src/resources/beta/messages.ts +3 -0
- package/src/resources/beta/models.ts +284 -0
- package/src/resources/beta/skills/index.ts +26 -0
- package/src/resources/beta/skills/skills.ts +384 -0
- package/src/resources/beta/skills/versions.ts +374 -0
- package/src/resources/beta/skills.ts +3 -0
- package/src/resources/beta.ts +3 -0
- package/src/resources/completions.ts +230 -0
- package/src/resources/index.ts +206 -0
- package/src/resources/messages/batches.ts +396 -0
- package/src/resources/messages/index.ts +189 -0
- package/src/resources/messages/messages.ts +3361 -0
- package/src/resources/messages.ts +3 -0
- package/src/resources/models.ts +269 -0
- package/src/resources/shared.ts +85 -0
- package/src/resources/top-level.ts +3 -0
- package/src/resources.ts +1 -0
- package/src/streaming.ts +2 -0
- package/src/tools/memory/node.ts +392 -0
- package/src/tsconfig.json +11 -0
- package/src/uploads.ts +2 -0
- package/src/version.ts +1 -0
- package/streaming.d.mts +2 -0
- package/streaming.d.mts.map +1 -0
- package/streaming.d.ts +2 -0
- package/streaming.d.ts.map +1 -0
- package/streaming.js +6 -0
- package/streaming.js.map +1 -0
- package/streaming.mjs +2 -0
- package/streaming.mjs.map +1 -0
- package/tools/memory/node.d.mts +18 -0
- package/tools/memory/node.d.mts.map +1 -0
- package/tools/memory/node.d.ts +18 -0
- package/tools/memory/node.d.ts.map +1 -0
- package/tools/memory/node.js +324 -0
- package/tools/memory/node.js.map +1 -0
- package/tools/memory/node.mjs +318 -0
- package/tools/memory/node.mjs.map +1 -0
- package/uploads.d.mts +2 -0
- package/uploads.d.mts.map +1 -0
- package/uploads.d.ts +2 -0
- package/uploads.d.ts.map +1 -0
- package/uploads.js +6 -0
- package/uploads.js.map +1 -0
- package/uploads.mjs +2 -0
- package/uploads.mjs.map +1 -0
- package/version.d.mts +2 -0
- package/version.d.mts.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +5 -0
- package/version.js.map +1 -0
- package/version.mjs +2 -0
- package/version.mjs.map +1 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
import { BetaRunnableTool } from './BetaRunnableTool';
|
|
2
|
+
import { ToolError } from './ToolError';
|
|
3
|
+
import { Anthropic } from '../..';
|
|
4
|
+
import { AnthropicError } from '../../core/error';
|
|
5
|
+
import { BetaMessage, BetaMessageParam, BetaToolUnion, MessageCreateParams } from '../../resources/beta';
|
|
6
|
+
import { BetaMessageStream } from '../BetaMessageStream';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Just Promise.withResolvers(), which is not available in all environments.
|
|
10
|
+
*/
|
|
11
|
+
function promiseWithResolvers<T>(): {
|
|
12
|
+
promise: Promise<T>;
|
|
13
|
+
resolve: (value: T) => void;
|
|
14
|
+
reject: (reason?: any) => void;
|
|
15
|
+
} {
|
|
16
|
+
let resolve: (value: T) => void;
|
|
17
|
+
let reject: (reason?: any) => void;
|
|
18
|
+
const promise = new Promise<T>((res, rej) => {
|
|
19
|
+
resolve = res;
|
|
20
|
+
reject = rej;
|
|
21
|
+
});
|
|
22
|
+
return { promise, resolve: resolve!, reject: reject! };
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* A ToolRunner handles the automatic conversation loop between the assistant and tools.
|
|
27
|
+
*
|
|
28
|
+
* A ToolRunner is an async iterable that yields either BetaMessage or BetaMessageStream objects
|
|
29
|
+
* depending on the streaming configuration.
|
|
30
|
+
*/
|
|
31
|
+
export class BetaToolRunner<Stream extends boolean> {
|
|
32
|
+
/** Whether the async iterator has been consumed */
|
|
33
|
+
#consumed = false;
|
|
34
|
+
/** Whether parameters have been mutated since the last API call */
|
|
35
|
+
#mutated = false;
|
|
36
|
+
/** Current state containing the request parameters */
|
|
37
|
+
#state: { params: BetaToolRunnerParams };
|
|
38
|
+
/** Promise for the last message received from the assistant */
|
|
39
|
+
#message?: Promise<BetaMessage> | undefined;
|
|
40
|
+
/** Cached tool response to avoid redundant executions */
|
|
41
|
+
#toolResponse?: Promise<BetaMessageParam | null> | undefined;
|
|
42
|
+
/** Promise resolvers for waiting on completion */
|
|
43
|
+
#completion: {
|
|
44
|
+
promise: Promise<BetaMessage>;
|
|
45
|
+
resolve: (value: BetaMessage) => void;
|
|
46
|
+
reject: (reason?: any) => void;
|
|
47
|
+
};
|
|
48
|
+
/** Number of iterations (API requests) made so far */
|
|
49
|
+
#iterationCount = 0;
|
|
50
|
+
|
|
51
|
+
constructor(
|
|
52
|
+
private client: Anthropic,
|
|
53
|
+
params: BetaToolRunnerParams,
|
|
54
|
+
) {
|
|
55
|
+
this.#state = {
|
|
56
|
+
params: {
|
|
57
|
+
// You can't clone the entire params since there are functions as handlers.
|
|
58
|
+
// You also don't really need to clone params.messages, but it probably will prevent a foot gun
|
|
59
|
+
// somewhere.
|
|
60
|
+
...params,
|
|
61
|
+
messages: structuredClone(params.messages),
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
this.#completion = promiseWithResolvers();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
async *[Symbol.asyncIterator](): AsyncIterator<
|
|
69
|
+
Stream extends true ? BetaMessageStream
|
|
70
|
+
: Stream extends false ? BetaMessage
|
|
71
|
+
: BetaMessage | BetaMessageStream
|
|
72
|
+
> {
|
|
73
|
+
if (this.#consumed) {
|
|
74
|
+
throw new AnthropicError('Cannot iterate over a consumed stream');
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
this.#consumed = true;
|
|
78
|
+
this.#mutated = true;
|
|
79
|
+
this.#toolResponse = undefined;
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
while (true) {
|
|
83
|
+
let stream;
|
|
84
|
+
try {
|
|
85
|
+
if (
|
|
86
|
+
this.#state.params.max_iterations &&
|
|
87
|
+
this.#iterationCount >= this.#state.params.max_iterations
|
|
88
|
+
) {
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
this.#mutated = false;
|
|
93
|
+
this.#message = undefined;
|
|
94
|
+
this.#toolResponse = undefined;
|
|
95
|
+
this.#iterationCount++;
|
|
96
|
+
|
|
97
|
+
const { max_iterations, ...params } = this.#state.params;
|
|
98
|
+
if (params.stream) {
|
|
99
|
+
stream = this.client.beta.messages.stream({ ...params });
|
|
100
|
+
this.#message = stream.finalMessage();
|
|
101
|
+
// Make sure that this promise doesn't throw before we get the option to do something about it.
|
|
102
|
+
// Error will be caught when we call await this.#message ultimately
|
|
103
|
+
this.#message.catch(() => {});
|
|
104
|
+
yield stream as any;
|
|
105
|
+
} else {
|
|
106
|
+
this.#message = this.client.beta.messages.create({ ...params, stream: false });
|
|
107
|
+
yield this.#message as any;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (!this.#mutated) {
|
|
111
|
+
const { role, content } = await this.#message;
|
|
112
|
+
this.#state.params.messages.push({ role, content });
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const toolMessage = await this.#generateToolResponse(this.#state.params.messages.at(-1)!);
|
|
116
|
+
if (toolMessage) {
|
|
117
|
+
this.#state.params.messages.push(toolMessage);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if (!toolMessage && !this.#mutated) {
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
} finally {
|
|
124
|
+
if (stream) {
|
|
125
|
+
stream.abort();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (!this.#message) {
|
|
131
|
+
throw new AnthropicError('ToolRunner concluded without a message from the server');
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
this.#completion.resolve(await this.#message);
|
|
135
|
+
} catch (error) {
|
|
136
|
+
this.#consumed = false;
|
|
137
|
+
// Silence unhandled promise errors
|
|
138
|
+
this.#completion.promise.catch(() => {});
|
|
139
|
+
this.#completion.reject(error);
|
|
140
|
+
this.#completion = promiseWithResolvers();
|
|
141
|
+
throw error;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Update the parameters for the next API call. This invalidates any cached tool responses.
|
|
147
|
+
*
|
|
148
|
+
* @param paramsOrMutator - Either new parameters or a function to mutate existing parameters
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* // Direct parameter update
|
|
152
|
+
* runner.setMessagesParams({
|
|
153
|
+
* model: 'claude-haiku-4-5',
|
|
154
|
+
* max_tokens: 500,
|
|
155
|
+
* });
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* // Using a mutator function
|
|
159
|
+
* runner.setMessagesParams((params) => ({
|
|
160
|
+
* ...params,
|
|
161
|
+
* max_tokens: 100,
|
|
162
|
+
* }));
|
|
163
|
+
*/
|
|
164
|
+
setMessagesParams(params: BetaToolRunnerParams): void;
|
|
165
|
+
setMessagesParams(mutator: (prevParams: BetaToolRunnerParams) => BetaToolRunnerParams): void;
|
|
166
|
+
setMessagesParams(
|
|
167
|
+
paramsOrMutator: BetaToolRunnerParams | ((prevParams: BetaToolRunnerParams) => BetaToolRunnerParams),
|
|
168
|
+
) {
|
|
169
|
+
if (typeof paramsOrMutator === 'function') {
|
|
170
|
+
this.#state.params = paramsOrMutator(this.#state.params);
|
|
171
|
+
} else {
|
|
172
|
+
this.#state.params = paramsOrMutator;
|
|
173
|
+
}
|
|
174
|
+
this.#mutated = true;
|
|
175
|
+
// Invalidate cached tool response since parameters changed
|
|
176
|
+
this.#toolResponse = undefined;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Get the tool response for the last message from the assistant.
|
|
181
|
+
* Avoids redundant tool executions by caching results.
|
|
182
|
+
*
|
|
183
|
+
* @returns A promise that resolves to a BetaMessageParam containing tool results, or null if no tools need to be executed
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* const toolResponse = await runner.generateToolResponse();
|
|
187
|
+
* if (toolResponse) {
|
|
188
|
+
* console.log('Tool results:', toolResponse.content);
|
|
189
|
+
* }
|
|
190
|
+
*/
|
|
191
|
+
async generateToolResponse() {
|
|
192
|
+
const message = (await this.#message) ?? this.params.messages.at(-1);
|
|
193
|
+
if (!message) {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
return this.#generateToolResponse(message);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
async #generateToolResponse(lastMessage: BetaMessageParam) {
|
|
200
|
+
if (this.#toolResponse !== undefined) {
|
|
201
|
+
return this.#toolResponse;
|
|
202
|
+
}
|
|
203
|
+
this.#toolResponse = generateToolResponse(this.#state.params, lastMessage);
|
|
204
|
+
return this.#toolResponse;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Wait for the async iterator to complete. This works even if the async iterator hasn't yet started, and
|
|
209
|
+
* will wait for an instance to start and go to completion.
|
|
210
|
+
*
|
|
211
|
+
* @returns A promise that resolves to the final BetaMessage when the iterator completes
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* // Start consuming the iterator
|
|
215
|
+
* for await (const message of runner) {
|
|
216
|
+
* console.log('Message:', message.content);
|
|
217
|
+
* }
|
|
218
|
+
*
|
|
219
|
+
* // Meanwhile, wait for completion from another part of the code
|
|
220
|
+
* const finalMessage = await runner.done();
|
|
221
|
+
* console.log('Final response:', finalMessage.content);
|
|
222
|
+
*/
|
|
223
|
+
done(): Promise<BetaMessage> {
|
|
224
|
+
return this.#completion.promise;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Returns a promise indicating that the stream is done. Unlike .done(), this will eagerly read the stream:
|
|
229
|
+
* * If the iterator has not been consumed, consume the entire iterator and return the final message from the
|
|
230
|
+
* assistant.
|
|
231
|
+
* * If the iterator has been consumed, waits for it to complete and returns the final message.
|
|
232
|
+
*
|
|
233
|
+
* @returns A promise that resolves to the final BetaMessage from the conversation
|
|
234
|
+
* @throws {AnthropicError} If no messages were processed during the conversation
|
|
235
|
+
*
|
|
236
|
+
* @example
|
|
237
|
+
* const finalMessage = await runner.runUntilDone();
|
|
238
|
+
* console.log('Final response:', finalMessage.content);
|
|
239
|
+
*/
|
|
240
|
+
async runUntilDone(): Promise<BetaMessage> {
|
|
241
|
+
// If not yet consumed, start consuming and wait for completion
|
|
242
|
+
if (!this.#consumed) {
|
|
243
|
+
for await (const _ of this) {
|
|
244
|
+
// Iterator naturally populates this.#message
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// If consumed but not completed, wait for completion
|
|
249
|
+
return this.done();
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Get the current parameters being used by the ToolRunner.
|
|
254
|
+
*
|
|
255
|
+
* @returns A readonly view of the current ToolRunnerParams
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* const currentParams = runner.params;
|
|
259
|
+
* console.log('Current model:', currentParams.model);
|
|
260
|
+
* console.log('Message count:', currentParams.messages.length);
|
|
261
|
+
*/
|
|
262
|
+
get params(): Readonly<BetaToolRunnerParams> {
|
|
263
|
+
return this.#state.params as Readonly<BetaToolRunnerParams>;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Add one or more messages to the conversation history.
|
|
268
|
+
*
|
|
269
|
+
* @param messages - One or more BetaMessageParam objects to add to the conversation
|
|
270
|
+
*
|
|
271
|
+
* @example
|
|
272
|
+
* runner.pushMessages(
|
|
273
|
+
* { role: 'user', content: 'Also, what about the weather in NYC?' }
|
|
274
|
+
* );
|
|
275
|
+
*
|
|
276
|
+
* @example
|
|
277
|
+
* // Adding multiple messages
|
|
278
|
+
* runner.pushMessages(
|
|
279
|
+
* { role: 'user', content: 'What about NYC?' },
|
|
280
|
+
* { role: 'user', content: 'And Boston?' }
|
|
281
|
+
* );
|
|
282
|
+
*/
|
|
283
|
+
pushMessages(...messages: BetaMessageParam[]) {
|
|
284
|
+
this.setMessagesParams((params) => ({
|
|
285
|
+
...params,
|
|
286
|
+
messages: [...params.messages, ...messages],
|
|
287
|
+
}));
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Makes the ToolRunner directly awaitable, equivalent to calling .runUntilDone()
|
|
292
|
+
* This allows using `await runner` instead of `await runner.runUntilDone()`
|
|
293
|
+
*/
|
|
294
|
+
then<TResult1 = BetaMessage, TResult2 = never>(
|
|
295
|
+
onfulfilled?: ((value: BetaMessage) => TResult1 | PromiseLike<TResult1>) | undefined | null,
|
|
296
|
+
onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null,
|
|
297
|
+
): Promise<TResult1 | TResult2> {
|
|
298
|
+
return this.runUntilDone().then(onfulfilled, onrejected);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
async function generateToolResponse(
|
|
303
|
+
params: BetaToolRunnerParams,
|
|
304
|
+
lastMessage = params.messages.at(-1),
|
|
305
|
+
): Promise<BetaMessageParam | null> {
|
|
306
|
+
// Only process if the last message is from the assistant and has tool use blocks
|
|
307
|
+
if (
|
|
308
|
+
!lastMessage ||
|
|
309
|
+
lastMessage.role !== 'assistant' ||
|
|
310
|
+
!lastMessage.content ||
|
|
311
|
+
typeof lastMessage.content === 'string'
|
|
312
|
+
) {
|
|
313
|
+
return null;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
const toolUseBlocks = lastMessage.content.filter((content) => content.type === 'tool_use');
|
|
317
|
+
if (toolUseBlocks.length === 0) {
|
|
318
|
+
return null;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
const toolResults = await Promise.all(
|
|
322
|
+
toolUseBlocks.map(async (toolUse) => {
|
|
323
|
+
const tool = params.tools.find((t) => ('name' in t ? t.name : t.mcp_server_name) === toolUse.name);
|
|
324
|
+
if (!tool || !('run' in tool)) {
|
|
325
|
+
return {
|
|
326
|
+
type: 'tool_result' as const,
|
|
327
|
+
tool_use_id: toolUse.id,
|
|
328
|
+
content: `Error: Tool '${toolUse.name}' not found`,
|
|
329
|
+
is_error: true,
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
try {
|
|
334
|
+
let input = toolUse.input;
|
|
335
|
+
if ('parse' in tool && tool.parse) {
|
|
336
|
+
input = tool.parse(input);
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
const result = await tool.run(input);
|
|
340
|
+
return {
|
|
341
|
+
type: 'tool_result' as const,
|
|
342
|
+
tool_use_id: toolUse.id,
|
|
343
|
+
content: result,
|
|
344
|
+
};
|
|
345
|
+
} catch (error) {
|
|
346
|
+
return {
|
|
347
|
+
type: 'tool_result' as const,
|
|
348
|
+
tool_use_id: toolUse.id,
|
|
349
|
+
content:
|
|
350
|
+
error instanceof ToolError ?
|
|
351
|
+
error.content
|
|
352
|
+
: `Error: ${error instanceof Error ? error.message : String(error)}`,
|
|
353
|
+
is_error: true,
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
}),
|
|
357
|
+
);
|
|
358
|
+
|
|
359
|
+
return {
|
|
360
|
+
role: 'user' as const,
|
|
361
|
+
content: toolResults,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// vendored from typefest just to make things look a bit nicer on hover
|
|
366
|
+
type Simplify<T> = { [KeyType in keyof T]: T[KeyType] } & {};
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* Parameters for creating a ToolRunner, extending MessageCreateParams with runnable tools.
|
|
370
|
+
*/
|
|
371
|
+
export type BetaToolRunnerParams = Simplify<
|
|
372
|
+
Omit<MessageCreateParams, 'tools'> & {
|
|
373
|
+
tools: (BetaToolUnion | BetaRunnableTool<any>)[];
|
|
374
|
+
/**
|
|
375
|
+
* Maximum number of iterations (API requests) to make in the tool execution loop.
|
|
376
|
+
* Each iteration consists of: assistant response → tool execution → tool results.
|
|
377
|
+
* When exceeded, the loop will terminate even if tools are still being requested.
|
|
378
|
+
*/
|
|
379
|
+
max_iterations?: number;
|
|
380
|
+
}
|
|
381
|
+
>;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { pop } from '../internal/utils';
|
|
2
|
+
|
|
3
|
+
// Supported string formats
|
|
4
|
+
const SUPPORTED_STRING_FORMATS = new Set([
|
|
5
|
+
'date-time',
|
|
6
|
+
'time',
|
|
7
|
+
'date',
|
|
8
|
+
'duration',
|
|
9
|
+
'email',
|
|
10
|
+
'hostname',
|
|
11
|
+
'uri',
|
|
12
|
+
'ipv4',
|
|
13
|
+
'ipv6',
|
|
14
|
+
'uuid',
|
|
15
|
+
]);
|
|
16
|
+
|
|
17
|
+
export type JSONSchema = Record<string, any>;
|
|
18
|
+
|
|
19
|
+
function deepClone<T>(obj: T): T {
|
|
20
|
+
return JSON.parse(JSON.stringify(obj));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function transformJSONSchema(jsonSchema: JSONSchema): JSONSchema {
|
|
24
|
+
const workingCopy = deepClone(jsonSchema);
|
|
25
|
+
return _transformJSONSchema(workingCopy);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function _transformJSONSchema(jsonSchema: JSONSchema): JSONSchema {
|
|
29
|
+
const strictSchema: JSONSchema = {};
|
|
30
|
+
|
|
31
|
+
const ref = pop(jsonSchema, '$ref');
|
|
32
|
+
if (ref !== undefined) {
|
|
33
|
+
strictSchema['$ref'] = ref;
|
|
34
|
+
return strictSchema;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const defs = pop(jsonSchema, '$defs');
|
|
38
|
+
if (defs !== undefined) {
|
|
39
|
+
const strictDefs: Record<string, any> = {};
|
|
40
|
+
strictSchema['$defs'] = strictDefs;
|
|
41
|
+
for (const [name, defSchema] of Object.entries(defs)) {
|
|
42
|
+
strictDefs[name] = _transformJSONSchema(defSchema as JSONSchema);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const type = pop(jsonSchema, 'type');
|
|
47
|
+
const anyOf = pop(jsonSchema, 'anyOf');
|
|
48
|
+
const oneOf = pop(jsonSchema, 'oneOf');
|
|
49
|
+
const allOf = pop(jsonSchema, 'allOf');
|
|
50
|
+
|
|
51
|
+
if (Array.isArray(anyOf)) {
|
|
52
|
+
strictSchema['anyOf'] = anyOf.map((variant) => _transformJSONSchema(variant as JSONSchema));
|
|
53
|
+
} else if (Array.isArray(oneOf)) {
|
|
54
|
+
strictSchema['anyOf'] = oneOf.map((variant) => _transformJSONSchema(variant as JSONSchema));
|
|
55
|
+
} else if (Array.isArray(allOf)) {
|
|
56
|
+
strictSchema['allOf'] = allOf.map((entry) => _transformJSONSchema(entry as JSONSchema));
|
|
57
|
+
} else {
|
|
58
|
+
if (type === undefined) {
|
|
59
|
+
throw new Error('JSON schema must have a type defined if anyOf/oneOf/allOf are not used');
|
|
60
|
+
}
|
|
61
|
+
strictSchema['type'] = type;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const description = pop(jsonSchema, 'description');
|
|
65
|
+
if (description !== undefined) {
|
|
66
|
+
strictSchema['description'] = description;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const title = pop(jsonSchema, 'title');
|
|
70
|
+
if (title !== undefined) {
|
|
71
|
+
strictSchema['title'] = title;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (type === 'object') {
|
|
75
|
+
const properties = pop(jsonSchema, 'properties') || {};
|
|
76
|
+
|
|
77
|
+
strictSchema['properties'] = Object.fromEntries(
|
|
78
|
+
Object.entries(properties).map(([key, propSchema]) => [
|
|
79
|
+
key,
|
|
80
|
+
_transformJSONSchema(propSchema as JSONSchema),
|
|
81
|
+
]),
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
pop(jsonSchema, 'additionalProperties');
|
|
85
|
+
strictSchema['additionalProperties'] = false;
|
|
86
|
+
|
|
87
|
+
const required = pop(jsonSchema, 'required');
|
|
88
|
+
if (required !== undefined) {
|
|
89
|
+
strictSchema['required'] = required;
|
|
90
|
+
}
|
|
91
|
+
} else if (type === 'string') {
|
|
92
|
+
const format = pop(jsonSchema, 'format');
|
|
93
|
+
if (format !== undefined && SUPPORTED_STRING_FORMATS.has(format)) {
|
|
94
|
+
strictSchema['format'] = format;
|
|
95
|
+
} else if (format !== undefined) {
|
|
96
|
+
jsonSchema['format'] = format;
|
|
97
|
+
}
|
|
98
|
+
} else if (type === 'array') {
|
|
99
|
+
const items = pop(jsonSchema, 'items');
|
|
100
|
+
if (items !== undefined) {
|
|
101
|
+
strictSchema['items'] = _transformJSONSchema(items as JSONSchema);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const minItems = pop(jsonSchema, 'minItems');
|
|
105
|
+
if (minItems !== undefined && (minItems === 0 || minItems === 1)) {
|
|
106
|
+
strictSchema['minItems'] = minItems;
|
|
107
|
+
} else if (minItems !== undefined) {
|
|
108
|
+
jsonSchema['minItems'] = minItems;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (Object.keys(jsonSchema).length > 0) {
|
|
113
|
+
const existingDescription = strictSchema['description'];
|
|
114
|
+
strictSchema['description'] =
|
|
115
|
+
(existingDescription ? existingDescription + '\n\n' : '') +
|
|
116
|
+
'{' +
|
|
117
|
+
Object.entries(jsonSchema)
|
|
118
|
+
.map(([key, value]) => `${key}: ${JSON.stringify(value)}`)
|
|
119
|
+
.join(', ') +
|
|
120
|
+
'}';
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return strictSchema;
|
|
124
|
+
}
|
package/src/resource.ts
ADDED