@anthropic-ai/sdk 0.95.2 → 0.97.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/CHANGELOG.md +37 -0
- package/api-promise.d.mts +1 -0
- package/api-promise.d.mts.map +1 -1
- package/api-promise.d.ts +1 -0
- package/api-promise.d.ts.map +1 -1
- package/api-promise.mjs +1 -0
- package/api-promise.mjs.map +1 -1
- package/bin/migration-config.json +222 -0
- package/client.d.mts.map +1 -1
- package/client.d.ts.map +1 -1
- package/client.mjs.map +1 -1
- package/core/api-promise.d.mts.map +1 -1
- package/core/api-promise.d.ts.map +1 -1
- package/core/api-promise.mjs.map +1 -1
- package/core/credentials.mjs.map +1 -1
- package/core/error.d.mts.map +1 -1
- package/core/error.d.ts.map +1 -1
- package/core/error.mjs.map +1 -1
- package/core/pagination.d.mts.map +1 -1
- package/core/pagination.d.ts.map +1 -1
- package/core/pagination.mjs.map +1 -1
- package/core/resource.d.mts.map +1 -1
- package/core/resource.d.ts.map +1 -1
- package/core/streaming.d.mts.map +1 -1
- package/core/streaming.d.ts.map +1 -1
- package/core/streaming.js +2 -0
- package/core/streaming.js.map +1 -1
- package/core/streaming.mjs +2 -0
- package/core/streaming.mjs.map +1 -1
- package/core/uploads.d.mts.map +1 -1
- package/core/uploads.d.ts.map +1 -1
- package/core/uploads.mjs.map +1 -1
- package/error.d.mts +1 -0
- package/error.d.mts.map +1 -1
- package/error.d.ts +1 -0
- package/error.d.ts.map +1 -1
- package/error.mjs +1 -0
- package/error.mjs.map +1 -1
- package/helpers/beta/environments.d.mts +22 -0
- package/helpers/beta/environments.d.mts.map +1 -0
- package/helpers/beta/environments.d.ts +22 -0
- package/helpers/beta/environments.d.ts.map +1 -0
- package/helpers/beta/environments.js +30 -0
- package/helpers/beta/environments.js.map +1 -0
- package/helpers/beta/environments.mjs +22 -0
- package/helpers/beta/environments.mjs.map +1 -0
- package/helpers/beta/json-schema.d.mts +6 -0
- package/helpers/beta/json-schema.d.mts.map +1 -1
- package/helpers/beta/json-schema.d.ts +6 -0
- package/helpers/beta/json-schema.d.ts.map +1 -1
- package/helpers/beta/json-schema.js +1 -0
- package/helpers/beta/json-schema.js.map +1 -1
- package/helpers/beta/json-schema.mjs +1 -0
- package/helpers/beta/json-schema.mjs.map +1 -1
- package/helpers/beta/mcp.d.mts.map +1 -1
- package/helpers/beta/mcp.d.ts.map +1 -1
- package/helpers/beta/mcp.mjs.map +1 -1
- package/helpers/beta/memory.d.mts.map +1 -1
- package/helpers/beta/memory.d.ts.map +1 -1
- package/helpers/beta/zod.d.mts +11 -5
- package/helpers/beta/zod.d.mts.map +1 -1
- package/helpers/beta/zod.d.ts +11 -5
- package/helpers/beta/zod.d.ts.map +1 -1
- package/helpers/beta/zod.js +1 -0
- package/helpers/beta/zod.js.map +1 -1
- package/helpers/beta/zod.mjs +1 -0
- package/helpers/beta/zod.mjs.map +1 -1
- package/helpers/index.d.mts.map +1 -1
- package/helpers/index.d.ts.map +1 -1
- package/helpers/index.mjs.map +1 -1
- package/helpers/json-schema.d.mts.map +1 -1
- package/helpers/json-schema.d.ts.map +1 -1
- package/helpers/json-schema.mjs.map +1 -1
- package/helpers/zod.d.mts +2 -2
- package/helpers/zod.d.mts.map +1 -1
- package/helpers/zod.d.ts +2 -2
- package/helpers/zod.d.ts.map +1 -1
- package/helpers/zod.js.map +1 -1
- package/helpers/zod.mjs.map +1 -1
- package/index.d.mts.map +1 -1
- package/index.d.ts.map +1 -1
- package/index.mjs.map +1 -1
- package/internal/decoders/jsonl.d.mts.map +1 -1
- package/internal/decoders/jsonl.d.ts.map +1 -1
- package/internal/decoders/jsonl.mjs.map +1 -1
- package/internal/decoders/line.mjs.map +1 -1
- package/internal/detect-platform.mjs.map +1 -1
- package/internal/headers.mjs.map +1 -1
- package/internal/parse.d.mts.map +1 -1
- package/internal/parse.d.ts.map +1 -1
- package/internal/parse.mjs.map +1 -1
- package/internal/qs/formats.d.mts.map +1 -1
- package/internal/qs/formats.d.ts.map +1 -1
- package/internal/qs/index.d.mts +2 -2
- package/internal/qs/index.d.mts.map +1 -1
- package/internal/qs/index.d.ts +2 -2
- package/internal/qs/index.d.ts.map +1 -1
- package/internal/qs/index.mjs.map +1 -1
- package/internal/qs/stringify.d.mts.map +1 -1
- package/internal/qs/stringify.d.ts.map +1 -1
- package/internal/qs/stringify.mjs.map +1 -1
- package/internal/qs/utils.d.mts.map +1 -1
- package/internal/qs/utils.d.ts.map +1 -1
- package/internal/qs/utils.mjs.map +1 -1
- package/internal/request-options.d.mts.map +1 -1
- package/internal/request-options.d.ts.map +1 -1
- package/internal/shims.d.mts +6 -0
- package/internal/shims.d.mts.map +1 -1
- package/internal/shims.d.ts +6 -0
- package/internal/shims.d.ts.map +1 -1
- package/internal/to-file.d.mts.map +1 -1
- package/internal/to-file.d.ts.map +1 -1
- package/internal/to-file.mjs.map +1 -1
- package/internal/types.d.mts +4 -4
- package/internal/types.d.mts.map +1 -1
- package/internal/types.d.ts +4 -4
- package/internal/types.d.ts.map +1 -1
- package/internal/uploads.d.mts.map +1 -1
- package/internal/uploads.d.ts.map +1 -1
- package/internal/uploads.mjs.map +1 -1
- package/internal/utils/abort.d.mts +13 -0
- package/internal/utils/abort.d.mts.map +1 -0
- package/internal/utils/abort.d.ts +13 -0
- package/internal/utils/abort.d.ts.map +1 -0
- package/internal/utils/abort.js +26 -0
- package/internal/utils/abort.js.map +1 -0
- package/internal/utils/abort.mjs +23 -0
- package/internal/utils/abort.mjs.map +1 -0
- package/internal/utils/async-queue.d.mts +31 -0
- package/internal/utils/async-queue.d.mts.map +1 -0
- package/internal/utils/async-queue.d.ts +31 -0
- package/internal/utils/async-queue.d.ts.map +1 -0
- package/internal/utils/async-queue.js +75 -0
- package/internal/utils/async-queue.js.map +1 -0
- package/internal/utils/async-queue.mjs +71 -0
- package/internal/utils/async-queue.mjs.map +1 -0
- package/internal/utils/backoff.d.mts +23 -0
- package/internal/utils/backoff.d.mts.map +1 -0
- package/internal/utils/backoff.d.ts +23 -0
- package/internal/utils/backoff.d.ts.map +1 -0
- package/internal/utils/backoff.js +44 -0
- package/internal/utils/backoff.js.map +1 -0
- package/internal/utils/backoff.mjs +36 -0
- package/internal/utils/backoff.mjs.map +1 -0
- package/internal/utils/base64.mjs.map +1 -1
- package/internal/utils/log.d.mts.map +1 -1
- package/internal/utils/log.d.ts.map +1 -1
- package/internal/utils/log.mjs.map +1 -1
- package/internal/utils/path.mjs.map +1 -1
- package/internal/utils/promise.d.mts +11 -0
- package/internal/utils/promise.d.mts.map +1 -0
- package/internal/utils/promise.d.ts +11 -0
- package/internal/utils/promise.d.ts.map +1 -0
- package/internal/utils/promise.js +18 -0
- package/internal/utils/promise.js.map +1 -0
- package/internal/utils/promise.mjs +15 -0
- package/internal/utils/promise.mjs.map +1 -0
- package/internal/utils/query.mjs.map +1 -1
- package/internal/utils/sleep.d.mts +9 -1
- package/internal/utils/sleep.d.mts.map +1 -1
- package/internal/utils/sleep.d.ts +9 -1
- package/internal/utils/sleep.d.ts.map +1 -1
- package/internal/utils/sleep.js +23 -2
- package/internal/utils/sleep.js.map +1 -1
- package/internal/utils/sleep.mjs +23 -2
- package/internal/utils/sleep.mjs.map +1 -1
- package/internal/utils/values.mjs.map +1 -1
- package/internal/utils.d.mts.map +1 -1
- package/internal/utils.d.ts.map +1 -1
- package/internal/utils.mjs.map +1 -1
- package/lib/BetaMessageStream.d.mts.map +1 -1
- package/lib/BetaMessageStream.d.ts.map +1 -1
- package/lib/BetaMessageStream.mjs.map +1 -1
- package/lib/MessageStream.d.mts.map +1 -1
- package/lib/MessageStream.d.ts.map +1 -1
- package/lib/MessageStream.mjs.map +1 -1
- package/lib/beta-parser.d.mts.map +1 -1
- package/lib/beta-parser.d.ts.map +1 -1
- package/lib/beta-parser.mjs.map +1 -1
- package/lib/credentials/credential-chain.d.mts.map +1 -1
- package/lib/credentials/credential-chain.d.ts.map +1 -1
- package/lib/credentials/credential-chain.mjs.map +1 -1
- package/lib/credentials/identity-token.d.mts.map +1 -1
- package/lib/credentials/identity-token.d.ts.map +1 -1
- package/lib/credentials/identity-token.mjs.map +1 -1
- package/lib/credentials/oidc-federation.d.mts.map +1 -1
- package/lib/credentials/oidc-federation.d.ts.map +1 -1
- package/lib/credentials/oidc-federation.mjs.map +1 -1
- package/lib/credentials/token-cache.d.mts.map +1 -1
- package/lib/credentials/token-cache.d.ts.map +1 -1
- package/lib/credentials/token-cache.mjs.map +1 -1
- package/lib/credentials/types.d.mts.map +1 -1
- package/lib/credentials/types.d.ts.map +1 -1
- package/lib/credentials/types.mjs.map +1 -1
- package/lib/credentials/user-oauth.d.mts.map +1 -1
- package/lib/credentials/user-oauth.d.ts.map +1 -1
- package/lib/credentials/user-oauth.mjs.map +1 -1
- package/lib/credentials.d.mts.map +1 -1
- package/lib/credentials.d.ts.map +1 -1
- package/lib/credentials.mjs.map +1 -1
- package/lib/environments/index.d.mts +4 -0
- package/lib/environments/index.d.mts.map +1 -0
- package/lib/environments/index.d.ts +4 -0
- package/lib/environments/index.d.ts.map +1 -0
- package/lib/environments/index.js +18 -0
- package/lib/environments/index.js.map +1 -0
- package/lib/environments/index.mjs +4 -0
- package/lib/environments/index.mjs.map +1 -0
- package/lib/environments/poller.d.mts +89 -0
- package/lib/environments/poller.d.mts.map +1 -0
- package/lib/environments/poller.d.ts +89 -0
- package/lib/environments/poller.d.ts.map +1 -0
- package/lib/environments/poller.js +181 -0
- package/lib/environments/poller.js.map +1 -0
- package/lib/environments/poller.mjs +172 -0
- package/lib/environments/poller.mjs.map +1 -0
- package/lib/environments/worker.d.mts +143 -0
- package/lib/environments/worker.d.mts.map +1 -0
- package/lib/environments/worker.d.ts +143 -0
- package/lib/environments/worker.d.ts.map +1 -0
- package/lib/environments/worker.js +265 -0
- package/lib/environments/worker.js.map +1 -0
- package/lib/environments/worker.mjs +261 -0
- package/lib/environments/worker.mjs.map +1 -0
- package/lib/helper-client.d.mts +49 -0
- package/lib/helper-client.d.mts.map +1 -0
- package/lib/helper-client.d.ts +49 -0
- package/lib/helper-client.d.ts.map +1 -0
- package/lib/helper-client.js +57 -0
- package/lib/helper-client.js.map +1 -0
- package/lib/helper-client.mjs +54 -0
- package/lib/helper-client.mjs.map +1 -0
- package/lib/parser.d.mts.map +1 -1
- package/lib/parser.d.ts.map +1 -1
- package/lib/parser.mjs.map +1 -1
- package/lib/stainless-helper-header.d.mts.map +1 -1
- package/lib/stainless-helper-header.d.ts.map +1 -1
- package/lib/tools/BetaRunnableTool.d.mts +54 -2
- package/lib/tools/BetaRunnableTool.d.mts.map +1 -1
- package/lib/tools/BetaRunnableTool.d.ts +54 -2
- package/lib/tools/BetaRunnableTool.d.ts.map +1 -1
- package/lib/tools/BetaRunnableTool.js +37 -0
- package/lib/tools/BetaRunnableTool.js.map +1 -1
- package/lib/tools/BetaRunnableTool.mjs +34 -1
- package/lib/tools/BetaRunnableTool.mjs.map +1 -1
- package/lib/tools/BetaToolRunner.d.mts.map +1 -1
- package/lib/tools/BetaToolRunner.d.ts.map +1 -1
- package/lib/tools/BetaToolRunner.js +4 -14
- package/lib/tools/BetaToolRunner.js.map +1 -1
- package/lib/tools/BetaToolRunner.mjs +2 -12
- package/lib/tools/BetaToolRunner.mjs.map +1 -1
- package/lib/tools/CompactionControl.d.mts.map +1 -1
- package/lib/tools/CompactionControl.d.ts.map +1 -1
- package/lib/tools/SessionToolRunner.d.mts +140 -0
- package/lib/tools/SessionToolRunner.d.mts.map +1 -0
- package/lib/tools/SessionToolRunner.d.ts +140 -0
- package/lib/tools/SessionToolRunner.d.ts.map +1 -0
- package/lib/tools/SessionToolRunner.js +459 -0
- package/lib/tools/SessionToolRunner.js.map +1 -0
- package/lib/tools/SessionToolRunner.mjs +455 -0
- package/lib/tools/SessionToolRunner.mjs.map +1 -0
- package/lib/tools/ToolError.d.mts.map +1 -1
- package/lib/tools/ToolError.d.ts.map +1 -1
- package/lib/tools/ToolRunner.d.mts.map +1 -1
- package/lib/tools/ToolRunner.d.ts.map +1 -1
- package/lib/tools/ToolRunner.mjs.map +1 -1
- package/lib/transform-json-schema.mjs.map +1 -1
- package/package.json +1 -1
- package/pagination.d.mts +1 -0
- package/pagination.d.mts.map +1 -1
- package/pagination.d.ts +1 -0
- package/pagination.d.ts.map +1 -1
- package/pagination.mjs +1 -0
- package/pagination.mjs.map +1 -1
- package/resource.d.mts +1 -0
- package/resource.d.mts.map +1 -1
- package/resource.d.ts +1 -0
- package/resource.d.ts.map +1 -1
- package/resource.mjs +1 -0
- package/resource.mjs.map +1 -1
- package/resources/beta/agents/agents.d.mts +125 -1
- package/resources/beta/agents/agents.d.mts.map +1 -1
- package/resources/beta/agents/agents.d.ts +125 -1
- package/resources/beta/agents/agents.d.ts.map +1 -1
- package/resources/beta/agents/agents.js.map +1 -1
- package/resources/beta/agents/agents.mjs.map +1 -1
- package/resources/beta/agents/index.d.mts +1 -1
- package/resources/beta/agents/index.d.mts.map +1 -1
- package/resources/beta/agents/index.d.ts +1 -1
- package/resources/beta/agents/index.d.ts.map +1 -1
- package/resources/beta/agents/index.js.map +1 -1
- package/resources/beta/agents/index.mjs.map +1 -1
- package/resources/beta/agents/versions.d.mts.map +1 -1
- package/resources/beta/agents/versions.d.ts.map +1 -1
- package/resources/beta/agents/versions.mjs.map +1 -1
- package/resources/beta/agents.d.mts.map +1 -1
- package/resources/beta/agents.d.ts.map +1 -1
- package/resources/beta/agents.mjs.map +1 -1
- package/resources/beta/beta.d.mts +10 -10
- package/resources/beta/beta.d.mts.map +1 -1
- package/resources/beta/beta.d.ts +10 -10
- package/resources/beta/beta.d.ts.map +1 -1
- package/resources/beta/beta.js +2 -2
- package/resources/beta/beta.js.map +1 -1
- package/resources/beta/beta.mjs +2 -2
- package/resources/beta/beta.mjs.map +1 -1
- package/resources/beta/environments/environments.d.mts +425 -0
- package/resources/beta/environments/environments.d.mts.map +1 -0
- package/resources/beta/environments/environments.d.ts +425 -0
- package/resources/beta/environments/environments.d.ts.map +1 -0
- package/resources/beta/environments/environments.js +150 -0
- package/resources/beta/environments/environments.js.map +1 -0
- package/resources/beta/environments/environments.mjs +145 -0
- package/resources/beta/environments/environments.mjs.map +1 -0
- package/resources/beta/environments/index.d.mts +3 -0
- package/resources/beta/environments/index.d.mts.map +1 -0
- package/resources/beta/environments/index.d.ts +3 -0
- package/resources/beta/environments/index.d.ts.map +1 -0
- package/resources/beta/environments/index.js +9 -0
- package/resources/beta/environments/index.js.map +1 -0
- package/resources/beta/environments/index.mjs +4 -0
- package/resources/beta/environments/index.mjs.map +1 -0
- package/resources/beta/environments/work.d.mts +496 -0
- package/resources/beta/environments/work.d.mts.map +1 -0
- package/resources/beta/environments/work.d.ts +496 -0
- package/resources/beta/environments/work.d.ts.map +1 -0
- package/resources/beta/environments/work.js +274 -0
- package/resources/beta/environments/work.js.map +1 -0
- package/resources/beta/environments/work.mjs +268 -0
- package/resources/beta/environments/work.mjs.map +1 -0
- package/resources/beta/environments.d.mts +1 -388
- package/resources/beta/environments.d.mts.map +1 -1
- package/resources/beta/environments.d.ts +1 -388
- package/resources/beta/environments.d.ts.map +1 -1
- package/resources/beta/environments.js +2 -138
- package/resources/beta/environments.js.map +1 -1
- package/resources/beta/environments.mjs +1 -136
- package/resources/beta/environments.mjs.map +1 -1
- package/resources/beta/files.d.mts.map +1 -1
- package/resources/beta/files.d.ts.map +1 -1
- package/resources/beta/files.mjs.map +1 -1
- package/resources/beta/index.d.mts +4 -4
- package/resources/beta/index.d.mts.map +1 -1
- package/resources/beta/index.d.ts +4 -4
- package/resources/beta/index.d.ts.map +1 -1
- package/resources/beta/index.js +12 -12
- package/resources/beta/index.js.map +1 -1
- package/resources/beta/index.mjs +1 -1
- package/resources/beta/index.mjs.map +1 -1
- package/resources/beta/memory-stores/index.d.mts.map +1 -1
- package/resources/beta/memory-stores/index.d.ts.map +1 -1
- package/resources/beta/memory-stores/index.mjs.map +1 -1
- package/resources/beta/memory-stores/memories.d.mts.map +1 -1
- package/resources/beta/memory-stores/memories.d.ts.map +1 -1
- package/resources/beta/memory-stores/memories.mjs.map +1 -1
- package/resources/beta/memory-stores/memory-stores.d.mts.map +1 -1
- package/resources/beta/memory-stores/memory-stores.d.ts.map +1 -1
- package/resources/beta/memory-stores/memory-stores.mjs.map +1 -1
- package/resources/beta/memory-stores/memory-versions.d.mts.map +1 -1
- package/resources/beta/memory-stores/memory-versions.d.ts.map +1 -1
- package/resources/beta/memory-stores/memory-versions.mjs.map +1 -1
- package/resources/beta/memory-stores.d.mts.map +1 -1
- package/resources/beta/memory-stores.d.ts.map +1 -1
- package/resources/beta/memory-stores.mjs.map +1 -1
- package/resources/beta/messages/batches.d.mts +5 -0
- package/resources/beta/messages/batches.d.mts.map +1 -1
- package/resources/beta/messages/batches.d.ts +5 -0
- package/resources/beta/messages/batches.d.ts.map +1 -1
- package/resources/beta/messages/batches.mjs.map +1 -1
- package/resources/beta/messages/index.d.mts +1 -1
- package/resources/beta/messages/index.d.mts.map +1 -1
- package/resources/beta/messages/index.d.ts +1 -1
- package/resources/beta/messages/index.d.ts.map +1 -1
- package/resources/beta/messages/index.js.map +1 -1
- package/resources/beta/messages/index.mjs.map +1 -1
- package/resources/beta/messages/messages.d.mts +80 -5
- package/resources/beta/messages/messages.d.mts.map +1 -1
- package/resources/beta/messages/messages.d.ts +80 -5
- package/resources/beta/messages/messages.d.ts.map +1 -1
- package/resources/beta/messages/messages.js.map +1 -1
- package/resources/beta/messages/messages.mjs.map +1 -1
- package/resources/beta/messages.d.mts.map +1 -1
- package/resources/beta/messages.d.ts.map +1 -1
- package/resources/beta/messages.mjs.map +1 -1
- package/resources/beta/models.d.mts.map +1 -1
- package/resources/beta/models.d.ts.map +1 -1
- package/resources/beta/models.mjs.map +1 -1
- package/resources/beta/sessions/events.d.mts +97 -9
- package/resources/beta/sessions/events.d.mts.map +1 -1
- package/resources/beta/sessions/events.d.ts +97 -9
- package/resources/beta/sessions/events.d.ts.map +1 -1
- package/resources/beta/sessions/events.js +27 -1
- package/resources/beta/sessions/events.js.map +1 -1
- package/resources/beta/sessions/events.mjs +25 -0
- package/resources/beta/sessions/events.mjs.map +1 -1
- package/resources/beta/sessions/index.d.mts +3 -3
- package/resources/beta/sessions/index.d.mts.map +1 -1
- package/resources/beta/sessions/index.d.ts +3 -3
- package/resources/beta/sessions/index.d.ts.map +1 -1
- package/resources/beta/sessions/index.js.map +1 -1
- package/resources/beta/sessions/index.mjs.map +1 -1
- package/resources/beta/sessions/resources.d.mts.map +1 -1
- package/resources/beta/sessions/resources.d.ts.map +1 -1
- package/resources/beta/sessions/resources.mjs.map +1 -1
- package/resources/beta/sessions/sessions.d.mts +101 -9
- package/resources/beta/sessions/sessions.d.mts.map +1 -1
- package/resources/beta/sessions/sessions.d.ts +101 -9
- package/resources/beta/sessions/sessions.d.ts.map +1 -1
- package/resources/beta/sessions/sessions.js.map +1 -1
- package/resources/beta/sessions/sessions.mjs.map +1 -1
- package/resources/beta/sessions/threads/events.d.mts.map +1 -1
- package/resources/beta/sessions/threads/events.d.ts.map +1 -1
- package/resources/beta/sessions/threads/events.mjs.map +1 -1
- package/resources/beta/sessions/threads/index.d.mts +1 -1
- package/resources/beta/sessions/threads/index.d.mts.map +1 -1
- package/resources/beta/sessions/threads/index.d.ts +1 -1
- package/resources/beta/sessions/threads/index.d.ts.map +1 -1
- package/resources/beta/sessions/threads/index.js.map +1 -1
- package/resources/beta/sessions/threads/index.mjs.map +1 -1
- package/resources/beta/sessions/threads/threads.d.mts +3 -23
- package/resources/beta/sessions/threads/threads.d.mts.map +1 -1
- package/resources/beta/sessions/threads/threads.d.ts +3 -23
- package/resources/beta/sessions/threads/threads.d.ts.map +1 -1
- package/resources/beta/sessions/threads/threads.js.map +1 -1
- package/resources/beta/sessions/threads/threads.mjs.map +1 -1
- package/resources/beta/sessions/threads.d.mts.map +1 -1
- package/resources/beta/sessions/threads.d.ts.map +1 -1
- package/resources/beta/sessions/threads.mjs.map +1 -1
- package/resources/beta/sessions.d.mts.map +1 -1
- package/resources/beta/sessions.d.ts.map +1 -1
- package/resources/beta/sessions.mjs.map +1 -1
- package/resources/beta/skills/index.d.mts +1 -1
- package/resources/beta/skills/index.d.mts.map +1 -1
- package/resources/beta/skills/index.d.ts +1 -1
- package/resources/beta/skills/index.d.ts.map +1 -1
- package/resources/beta/skills/index.js.map +1 -1
- package/resources/beta/skills/index.mjs.map +1 -1
- package/resources/beta/skills/skills.d.mts +2 -2
- package/resources/beta/skills/skills.d.mts.map +1 -1
- package/resources/beta/skills/skills.d.ts +2 -2
- package/resources/beta/skills/skills.d.ts.map +1 -1
- package/resources/beta/skills/skills.js.map +1 -1
- package/resources/beta/skills/skills.mjs.map +1 -1
- package/resources/beta/skills/versions.d.mts +28 -1
- package/resources/beta/skills/versions.d.mts.map +1 -1
- package/resources/beta/skills/versions.d.ts +28 -1
- package/resources/beta/skills/versions.d.ts.map +1 -1
- package/resources/beta/skills/versions.js +28 -0
- package/resources/beta/skills/versions.js.map +1 -1
- package/resources/beta/skills/versions.mjs +28 -0
- package/resources/beta/skills/versions.mjs.map +1 -1
- package/resources/beta/skills.d.mts.map +1 -1
- package/resources/beta/skills.d.ts.map +1 -1
- package/resources/beta/skills.mjs.map +1 -1
- package/resources/beta/user-profiles.d.mts.map +1 -1
- package/resources/beta/user-profiles.d.ts.map +1 -1
- package/resources/beta/user-profiles.mjs.map +1 -1
- package/resources/beta/vaults/credentials.d.mts.map +1 -1
- package/resources/beta/vaults/credentials.d.ts.map +1 -1
- package/resources/beta/vaults/credentials.mjs.map +1 -1
- package/resources/beta/vaults/index.d.mts.map +1 -1
- package/resources/beta/vaults/index.d.ts.map +1 -1
- package/resources/beta/vaults/index.mjs.map +1 -1
- package/resources/beta/vaults/vaults.d.mts.map +1 -1
- package/resources/beta/vaults/vaults.d.ts.map +1 -1
- package/resources/beta/vaults/vaults.mjs.map +1 -1
- package/resources/beta/vaults.d.mts.map +1 -1
- package/resources/beta/vaults.d.ts.map +1 -1
- package/resources/beta/vaults.mjs.map +1 -1
- package/resources/beta/webhooks.d.mts.map +1 -1
- package/resources/beta/webhooks.d.ts.map +1 -1
- package/resources/beta/webhooks.mjs.map +1 -1
- package/resources/beta.d.mts.map +1 -1
- package/resources/beta.d.ts.map +1 -1
- package/resources/beta.mjs.map +1 -1
- package/resources/completions.d.mts.map +1 -1
- package/resources/completions.d.ts.map +1 -1
- package/resources/completions.mjs.map +1 -1
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts.map +1 -1
- package/resources/index.mjs.map +1 -1
- package/resources/messages/batches.d.mts.map +1 -1
- package/resources/messages/batches.d.ts.map +1 -1
- package/resources/messages/batches.mjs.map +1 -1
- package/resources/messages/index.d.mts.map +1 -1
- package/resources/messages/index.d.ts.map +1 -1
- package/resources/messages/index.mjs.map +1 -1
- package/resources/messages/messages.d.mts.map +1 -1
- package/resources/messages/messages.d.ts.map +1 -1
- package/resources/messages/messages.mjs.map +1 -1
- package/resources/messages.d.mts.map +1 -1
- package/resources/messages.d.ts.map +1 -1
- package/resources/messages.mjs.map +1 -1
- package/resources/models.d.mts.map +1 -1
- package/resources/models.d.ts.map +1 -1
- package/resources/models.mjs.map +1 -1
- package/resources.d.mts.map +1 -1
- package/resources.d.ts.map +1 -1
- package/resources.mjs.map +1 -1
- package/src/core/streaming.ts +2 -0
- package/src/helpers/beta/environments.ts +33 -0
- package/src/helpers/beta/json-schema.ts +7 -0
- package/src/helpers/beta/zod.ts +13 -7
- package/src/helpers/zod.ts +2 -3
- package/src/internal/utils/abort.ts +21 -0
- package/src/internal/utils/async-queue.ts +66 -0
- package/src/internal/utils/backoff.ts +41 -0
- package/src/internal/utils/promise.ts +18 -0
- package/src/internal/utils/sleep.ts +25 -2
- package/src/lib/environments/index.ts +23 -0
- package/src/lib/environments/poller.ts +253 -0
- package/src/lib/environments/worker.ts +395 -0
- package/src/lib/helper-client.ts +89 -0
- package/src/lib/tools/BetaRunnableTool.ts +82 -1
- package/src/lib/tools/BetaToolRunner.ts +2 -17
- package/src/lib/tools/SessionToolRunner.ts +591 -0
- package/src/resources/beta/agents/agents.ts +158 -0
- package/src/resources/beta/agents/index.ts +7 -0
- package/src/resources/beta/beta.ts +62 -21
- package/src/resources/beta/environments/environments.ts +625 -0
- package/src/resources/beta/environments/index.ts +42 -0
- package/src/resources/beta/environments/work.ts +697 -0
- package/src/resources/beta/environments.ts +1 -540
- package/src/resources/beta/index.ts +21 -1
- package/src/resources/beta/messages/batches.ts +6 -0
- package/src/resources/beta/messages/index.ts +8 -0
- package/src/resources/beta/messages/messages.ts +109 -5
- package/src/resources/beta/sessions/events.ts +153 -7
- package/src/resources/beta/sessions/index.ts +7 -1
- package/src/resources/beta/sessions/sessions.ts +130 -6
- package/src/resources/beta/sessions/threads/index.ts +0 -1
- package/src/resources/beta/sessions/threads/threads.ts +4 -37
- package/src/resources/beta/skills/index.ts +1 -0
- package/src/resources/beta/skills/skills.ts +2 -0
- package/src/resources/beta/skills/versions.ts +44 -0
- package/src/tools/agent-toolset/fs-util.ts +154 -0
- package/src/tools/agent-toolset/node.ts +787 -0
- package/src/tools/agent-toolset/skills.ts +256 -0
- package/src/version.ts +1 -1
- package/streaming.d.mts +1 -0
- package/streaming.d.mts.map +1 -1
- package/streaming.d.ts +1 -0
- package/streaming.d.ts.map +1 -1
- package/streaming.mjs +1 -0
- package/streaming.mjs.map +1 -1
- package/tools/agent-toolset/fs-util.d.mts +49 -0
- package/tools/agent-toolset/fs-util.d.mts.map +1 -0
- package/tools/agent-toolset/fs-util.d.ts +49 -0
- package/tools/agent-toolset/fs-util.d.ts.map +1 -0
- package/tools/agent-toolset/fs-util.js +159 -0
- package/tools/agent-toolset/fs-util.js.map +1 -0
- package/tools/agent-toolset/fs-util.mjs +151 -0
- package/tools/agent-toolset/fs-util.mjs.map +1 -0
- package/tools/agent-toolset/node.d.mts +139 -0
- package/tools/agent-toolset/node.d.mts.map +1 -0
- package/tools/agent-toolset/node.d.ts +139 -0
- package/tools/agent-toolset/node.d.ts.map +1 -0
- package/tools/agent-toolset/node.js +746 -0
- package/tools/agent-toolset/node.js.map +1 -0
- package/tools/agent-toolset/node.mjs +731 -0
- package/tools/agent-toolset/node.mjs.map +1 -0
- package/tools/agent-toolset/skills.d.mts +50 -0
- package/tools/agent-toolset/skills.d.mts.map +1 -0
- package/tools/agent-toolset/skills.d.ts +50 -0
- package/tools/agent-toolset/skills.d.ts.map +1 -0
- package/tools/agent-toolset/skills.js +249 -0
- package/tools/agent-toolset/skills.js.map +1 -0
- package/tools/agent-toolset/skills.mjs +243 -0
- package/tools/agent-toolset/skills.mjs.map +1 -0
- package/tools/memory/node.d.mts.map +1 -1
- package/tools/memory/node.d.ts.map +1 -1
- package/tools/memory/node.mjs.map +1 -1
- package/uploads.d.mts +1 -0
- package/uploads.d.mts.map +1 -1
- package/uploads.d.ts +1 -0
- package/uploads.d.ts.map +1 -1
- package/uploads.mjs +1 -0
- package/uploads.mjs.map +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -4,7 +4,6 @@ export { Events, type EventListParams, type EventStreamParams } from './events';
|
|
|
4
4
|
export {
|
|
5
5
|
Threads,
|
|
6
6
|
type BetaManagedAgentsSessionThread,
|
|
7
|
-
type BetaManagedAgentsSessionThreadAgent,
|
|
8
7
|
type BetaManagedAgentsSessionThreadStats,
|
|
9
8
|
type BetaManagedAgentsSessionThreadStatus,
|
|
10
9
|
type BetaManagedAgentsSessionThreadUsage,
|
|
@@ -121,7 +121,7 @@ export interface BetaManagedAgentsSessionThread {
|
|
|
121
121
|
* at thread creation time. The multiagent roster is not repeated here; read it
|
|
122
122
|
* from `Session.agent`.
|
|
123
123
|
*/
|
|
124
|
-
agent: BetaManagedAgentsSessionThreadAgent;
|
|
124
|
+
agent: AgentsAPI.BetaManagedAgentsSessionThreadAgent;
|
|
125
125
|
|
|
126
126
|
/**
|
|
127
127
|
* A timestamp in RFC 3339 format
|
|
@@ -166,40 +166,6 @@ export interface BetaManagedAgentsSessionThread {
|
|
|
166
166
|
usage: BetaManagedAgentsSessionThreadUsage | null;
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
/**
|
|
170
|
-
* Resolved `agent` definition for a single `session_thread`. Snapshot of the agent
|
|
171
|
-
* at thread creation time. The multiagent roster is not repeated here; read it
|
|
172
|
-
* from `Session.agent`.
|
|
173
|
-
*/
|
|
174
|
-
export interface BetaManagedAgentsSessionThreadAgent {
|
|
175
|
-
id: string;
|
|
176
|
-
|
|
177
|
-
description: string | null;
|
|
178
|
-
|
|
179
|
-
mcp_servers: Array<AgentsAPI.BetaManagedAgentsMCPServerURLDefinition>;
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Model identifier and configuration.
|
|
183
|
-
*/
|
|
184
|
-
model: AgentsAPI.BetaManagedAgentsModelConfig;
|
|
185
|
-
|
|
186
|
-
name: string;
|
|
187
|
-
|
|
188
|
-
skills: Array<AgentsAPI.BetaManagedAgentsAnthropicSkill | AgentsAPI.BetaManagedAgentsCustomSkill>;
|
|
189
|
-
|
|
190
|
-
system: string | null;
|
|
191
|
-
|
|
192
|
-
tools: Array<
|
|
193
|
-
| AgentsAPI.BetaManagedAgentsAgentToolset20260401
|
|
194
|
-
| AgentsAPI.BetaManagedAgentsMCPToolset
|
|
195
|
-
| AgentsAPI.BetaManagedAgentsCustomTool
|
|
196
|
-
>;
|
|
197
|
-
|
|
198
|
-
type: 'agent';
|
|
199
|
-
|
|
200
|
-
version: number;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
169
|
/**
|
|
204
170
|
* Timing statistics for a session thread.
|
|
205
171
|
*/
|
|
@@ -287,7 +253,9 @@ export type BetaManagedAgentsStreamSessionThreadEvents =
|
|
|
287
253
|
| EventsAPI.BetaManagedAgentsSessionThreadStatusRunningEvent
|
|
288
254
|
| EventsAPI.BetaManagedAgentsSessionThreadStatusIdleEvent
|
|
289
255
|
| EventsAPI.BetaManagedAgentsSessionThreadStatusTerminatedEvent
|
|
290
|
-
|
|
|
256
|
+
| SessionsAPI.BetaManagedAgentsUserToolResultEvent
|
|
257
|
+
| EventsAPI.BetaManagedAgentsSessionThreadStatusRescheduledEvent
|
|
258
|
+
| SessionsAPI.BetaManagedAgentsSessionUpdatedEvent;
|
|
291
259
|
|
|
292
260
|
export interface ThreadRetrieveParams {
|
|
293
261
|
/**
|
|
@@ -325,7 +293,6 @@ Threads.Events = Events;
|
|
|
325
293
|
export declare namespace Threads {
|
|
326
294
|
export {
|
|
327
295
|
type BetaManagedAgentsSessionThread as BetaManagedAgentsSessionThread,
|
|
328
|
-
type BetaManagedAgentsSessionThreadAgent as BetaManagedAgentsSessionThreadAgent,
|
|
329
296
|
type BetaManagedAgentsSessionThreadStats as BetaManagedAgentsSessionThreadStats,
|
|
330
297
|
type BetaManagedAgentsSessionThreadStatus as BetaManagedAgentsSessionThreadStatus,
|
|
331
298
|
type BetaManagedAgentsSessionThreadUsage as BetaManagedAgentsSessionThreadUsage,
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
VersionCreateResponse,
|
|
9
9
|
VersionDeleteParams,
|
|
10
10
|
VersionDeleteResponse,
|
|
11
|
+
VersionDownloadParams,
|
|
11
12
|
VersionListParams,
|
|
12
13
|
VersionListResponse,
|
|
13
14
|
VersionListResponsesPageCursor,
|
|
@@ -380,5 +381,6 @@ export declare namespace Skills {
|
|
|
380
381
|
type VersionRetrieveParams as VersionRetrieveParams,
|
|
381
382
|
type VersionListParams as VersionListParams,
|
|
382
383
|
type VersionDeleteParams as VersionDeleteParams,
|
|
384
|
+
type VersionDownloadParams as VersionDownloadParams,
|
|
383
385
|
};
|
|
384
386
|
}
|
|
@@ -127,6 +127,35 @@ export class Versions extends APIResource {
|
|
|
127
127
|
]),
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Download a skill version's content as a zip archive.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* const response = await client.beta.skills.versions.download(
|
|
137
|
+
* 'version',
|
|
138
|
+
* { skill_id: 'skill_id' },
|
|
139
|
+
* );
|
|
140
|
+
*
|
|
141
|
+
* const content = await response.blob();
|
|
142
|
+
* console.log(content);
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
download(version: string, params: VersionDownloadParams, options?: RequestOptions): APIPromise<Response> {
|
|
146
|
+
const { skill_id, betas } = params;
|
|
147
|
+
return this._client.get(path`/v1/skills/${skill_id}/versions/${version}/content?beta=true`, {
|
|
148
|
+
...options,
|
|
149
|
+
headers: buildHeaders([
|
|
150
|
+
{
|
|
151
|
+
'anthropic-beta': [...(betas ?? []), 'skills-2025-10-02'].toString(),
|
|
152
|
+
Accept: 'application/binary',
|
|
153
|
+
},
|
|
154
|
+
options?.headers,
|
|
155
|
+
]),
|
|
156
|
+
__binaryResponse: true,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
130
159
|
}
|
|
131
160
|
|
|
132
161
|
export type VersionListResponsesPageCursor = PageCursor<VersionListResponse>;
|
|
@@ -359,6 +388,20 @@ export interface VersionDeleteParams {
|
|
|
359
388
|
betas?: Array<BetaAPI.AnthropicBeta>;
|
|
360
389
|
}
|
|
361
390
|
|
|
391
|
+
export interface VersionDownloadParams {
|
|
392
|
+
/**
|
|
393
|
+
* Path param: Unique identifier for the skill.
|
|
394
|
+
*
|
|
395
|
+
* The format and length of IDs may change over time.
|
|
396
|
+
*/
|
|
397
|
+
skill_id: string;
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Header param: Optional header to specify the beta version(s) you want to use.
|
|
401
|
+
*/
|
|
402
|
+
betas?: Array<BetaAPI.AnthropicBeta>;
|
|
403
|
+
}
|
|
404
|
+
|
|
362
405
|
export declare namespace Versions {
|
|
363
406
|
export {
|
|
364
407
|
type VersionCreateResponse as VersionCreateResponse,
|
|
@@ -370,5 +413,6 @@ export declare namespace Versions {
|
|
|
370
413
|
type VersionRetrieveParams as VersionRetrieveParams,
|
|
371
414
|
type VersionListParams as VersionListParams,
|
|
372
415
|
type VersionDeleteParams as VersionDeleteParams,
|
|
416
|
+
type VersionDownloadParams as VersionDownloadParams,
|
|
373
417
|
};
|
|
374
418
|
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared, Node-only filesystem helpers for the agent toolset's file tools:
|
|
3
|
+
* path confinement (symlink-aware), an atomic write, and language-independent
|
|
4
|
+
* error messages. Kept out of `node.ts` so the tool implementations stay focused
|
|
5
|
+
* and these helpers can be reused by every file tool.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import * as fs from 'node:fs/promises';
|
|
9
|
+
import * as path from 'node:path';
|
|
10
|
+
import { randomUUID } from 'node:crypto';
|
|
11
|
+
import { ToolError } from '../../lib/tools/ToolError';
|
|
12
|
+
|
|
13
|
+
/** Mode for directories the file tools create — not world-writable under a 0 umask. */
|
|
14
|
+
export const DIR_CREATE_MODE = 0o755;
|
|
15
|
+
/** Mode for files the file tools create. */
|
|
16
|
+
export const FILE_CREATE_MODE = 0o644;
|
|
17
|
+
|
|
18
|
+
/** `realpath` `p`, or return `p` unchanged when it cannot be resolved. */
|
|
19
|
+
async function realpathOrSelf(p: string): Promise<string> {
|
|
20
|
+
try {
|
|
21
|
+
return await fs.realpath(p);
|
|
22
|
+
} catch {
|
|
23
|
+
return p;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Fully resolve `abs`: `realpath` the longest existing ancestor and re-append
|
|
29
|
+
* the rest, but never re-append a component that is itself a symlink — read the
|
|
30
|
+
* link and continue from its target instead. This handles paths being created
|
|
31
|
+
* (write/edit) without letting a symlink leaf (e.g. a dangling one pointing
|
|
32
|
+
* outside a confinement root) slip through unresolved.
|
|
33
|
+
*/
|
|
34
|
+
export async function canonicalize(abs: string): Promise<string> {
|
|
35
|
+
const tail: string[] = [];
|
|
36
|
+
let prefix = abs;
|
|
37
|
+
for (;;) {
|
|
38
|
+
let real: string;
|
|
39
|
+
try {
|
|
40
|
+
real = await fs.realpath(prefix);
|
|
41
|
+
} catch {
|
|
42
|
+
let isLink = false;
|
|
43
|
+
try {
|
|
44
|
+
isLink = (await fs.lstat(prefix)).isSymbolicLink();
|
|
45
|
+
} catch {
|
|
46
|
+
/* prefix truly doesn't exist (ENOENT) — fall through and walk up */
|
|
47
|
+
}
|
|
48
|
+
if (isLink) {
|
|
49
|
+
// Resolve the symlink ourselves and retry; `tail` (the part below it)
|
|
50
|
+
// still applies to the link's target.
|
|
51
|
+
prefix = path.resolve(path.dirname(prefix), await fs.readlink(prefix));
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
const parent = path.dirname(prefix);
|
|
55
|
+
if (parent === prefix) return abs; // walked past the FS root without a hit
|
|
56
|
+
tail.push(path.basename(prefix));
|
|
57
|
+
prefix = parent;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
return tail.length ? path.join(real, ...tail.reverse()) : real;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Resolve `p` and confine it to `root`.
|
|
66
|
+
*
|
|
67
|
+
* Unless `allowOutside` is set, absolute inputs are rejected and the
|
|
68
|
+
* **canonical** path is returned — every symlink in `p` (including the leaf,
|
|
69
|
+
* even a dangling one) is resolved before the confinement check, and the
|
|
70
|
+
* resolved path is what the caller then operates on, so a symlink inside `root`
|
|
71
|
+
* that points outside it can neither pass the check nor be followed afterwards.
|
|
72
|
+
*
|
|
73
|
+
* Residual TOCTOU: a component could still be swapped for a symlink between this
|
|
74
|
+
* call and the eventual `fs` operation. Closing that fully needs per-component
|
|
75
|
+
* `O_NOFOLLOW`/`openat`, which Node does not expose ergonomically; this is why a
|
|
76
|
+
* sandbox is still recommended for the toolset as a whole.
|
|
77
|
+
*/
|
|
78
|
+
export async function confineToRoot(
|
|
79
|
+
root: string,
|
|
80
|
+
p: string,
|
|
81
|
+
opts?: { allowOutside?: boolean },
|
|
82
|
+
): Promise<string> {
|
|
83
|
+
const allowOutside = opts?.allowOutside ?? false;
|
|
84
|
+
if (path.isAbsolute(p)) {
|
|
85
|
+
if (!allowOutside) {
|
|
86
|
+
throw new ToolError(`absolute path ${JSON.stringify(p)} not permitted`);
|
|
87
|
+
}
|
|
88
|
+
return path.resolve(p);
|
|
89
|
+
}
|
|
90
|
+
const realRoot = await realpathOrSelf(path.resolve(root));
|
|
91
|
+
const abs = path.resolve(realRoot, p);
|
|
92
|
+
if (allowOutside) return abs;
|
|
93
|
+
const real = await canonicalize(abs);
|
|
94
|
+
const rootSep = realRoot.endsWith(path.sep) ? realRoot : realRoot + path.sep;
|
|
95
|
+
if (real !== realRoot && !real.startsWith(rootSep)) {
|
|
96
|
+
throw new ToolError(`path ${JSON.stringify(p)} escapes workdir`);
|
|
97
|
+
}
|
|
98
|
+
return real;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Atomically write `content` to `targetPath`: write a sibling temp file, fsync
|
|
103
|
+
* it, then rename over the target. The rename is atomic on most filesystems, so
|
|
104
|
+
* a crash mid-write never leaves the target half-written.
|
|
105
|
+
*/
|
|
106
|
+
export async function atomicWriteFile(targetPath: string, content: string): Promise<void> {
|
|
107
|
+
const dir = path.dirname(targetPath);
|
|
108
|
+
const tempPath = path.join(dir, `.tmp-${process.pid}-${randomUUID()}`);
|
|
109
|
+
let handle: fs.FileHandle | undefined;
|
|
110
|
+
try {
|
|
111
|
+
handle = await fs.open(tempPath, 'wx', FILE_CREATE_MODE);
|
|
112
|
+
await handle.writeFile(content, 'utf-8');
|
|
113
|
+
await handle.sync();
|
|
114
|
+
await handle.close();
|
|
115
|
+
handle = undefined;
|
|
116
|
+
await fs.rename(tempPath, targetPath);
|
|
117
|
+
} catch (err) {
|
|
118
|
+
if (handle) await handle.close().catch(() => {});
|
|
119
|
+
await fs.unlink(tempPath).catch(() => {});
|
|
120
|
+
throw err;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Map a thrown filesystem error to a consistent, language-independent message,
|
|
126
|
+
* so the model sees the same wording regardless of the runtime (Node's raw
|
|
127
|
+
* `ENOENT: no such file...` text would otherwise leak through). Falls back to
|
|
128
|
+
* the raw error message for codes we don't special-case.
|
|
129
|
+
*/
|
|
130
|
+
export function fsErrorMessage(err: unknown, file: string): string {
|
|
131
|
+
const code = (err as { code?: string } | null)?.code;
|
|
132
|
+
switch (code) {
|
|
133
|
+
case 'ENOENT':
|
|
134
|
+
return `${file}: no such file or directory`;
|
|
135
|
+
case 'EACCES':
|
|
136
|
+
case 'EPERM':
|
|
137
|
+
return `${file}: permission denied`;
|
|
138
|
+
case 'ENOTDIR':
|
|
139
|
+
return `${file}: not a directory`;
|
|
140
|
+
case 'EISDIR':
|
|
141
|
+
return `${file}: is a directory`;
|
|
142
|
+
case 'ELOOP':
|
|
143
|
+
return `${file}: too many levels of symbolic links`;
|
|
144
|
+
case 'ENAMETOOLONG':
|
|
145
|
+
return `${file}: file name too long`;
|
|
146
|
+
case 'ENOSPC':
|
|
147
|
+
return `${file}: no space left on device`;
|
|
148
|
+
case 'EMFILE':
|
|
149
|
+
case 'ENFILE':
|
|
150
|
+
return `${file}: too many open files`;
|
|
151
|
+
default:
|
|
152
|
+
return `${file}: ${err instanceof Error ? err.message : String(err)}`;
|
|
153
|
+
}
|
|
154
|
+
}
|