@vib-rato/ai 0.16.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 +3354 -0
- package/README.md +1194 -0
- package/dist/types/adapter-internals/provider-safety-stop.d.ts +45 -0
- package/dist/types/api-registry.d.ts +30 -0
- package/dist/types/auth-broker/client.d.ts +80 -0
- package/dist/types/auth-broker/index.d.ts +5 -0
- package/dist/types/auth-broker/redact.d.ts +7 -0
- package/dist/types/auth-broker/refresher.d.ts +25 -0
- package/dist/types/auth-broker/remote-store.d.ts +153 -0
- package/dist/types/auth-broker/server.d.ts +32 -0
- package/dist/types/auth-broker/types.d.ts +132 -0
- package/dist/types/auth-broker/wire-schemas.d.ts +555 -0
- package/dist/types/auth-gateway/http.d.ts +40 -0
- package/dist/types/auth-gateway/index.d.ts +3 -0
- package/dist/types/auth-gateway/server.d.ts +70 -0
- package/dist/types/auth-gateway/types.d.ts +129 -0
- package/dist/types/auth-storage.d.ts +1074 -0
- package/dist/types/cli.d.ts +2 -0
- package/dist/types/codex-tools.d.ts +4 -0
- package/dist/types/context-cap-policy.d.ts +68 -0
- package/dist/types/core.d.ts +35 -0
- package/dist/types/index.d.ts +55 -0
- package/dist/types/model-cache.d.ts +24 -0
- package/dist/types/model-manager.d.ts +77 -0
- package/dist/types/model-pricing.d.ts +3 -0
- package/dist/types/model-retirements.d.ts +6 -0
- package/dist/types/model-thinking.d.ts +100 -0
- package/dist/types/models.d.ts +21 -0
- package/dist/types/openai-completions-compat.d.ts +34 -0
- package/dist/types/provider-details.d.ts +24 -0
- package/dist/types/provider-models/bundled-references.d.ts +4 -0
- package/dist/types/provider-models/descriptors.d.ts +48 -0
- package/dist/types/provider-models/google.d.ts +20 -0
- package/dist/types/provider-models/index.d.ts +5 -0
- package/dist/types/provider-models/ollama.d.ts +7 -0
- package/dist/types/provider-models/openai-compat.d.ts +293 -0
- package/dist/types/provider-models/special.d.ts +29 -0
- package/dist/types/providers/amazon-bedrock.d.ts +60 -0
- package/dist/types/providers/anthropic-messages-server-schema.d.ts +450 -0
- package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
- package/dist/types/providers/anthropic.d.ts +280 -0
- package/dist/types/providers/aws-credential-config.d.ts +19 -0
- package/dist/types/providers/aws-credentials.d.ts +43 -0
- package/dist/types/providers/aws-eventstream.d.ts +38 -0
- package/dist/types/providers/aws-sigv4.d.ts +55 -0
- package/dist/types/providers/azure-openai-responses.d.ts +22 -0
- package/dist/types/providers/composer-discipline.d.ts +32 -0
- package/dist/types/providers/cursor/client-version.d.ts +10 -0
- package/dist/types/providers/cursor/exec-modern.d.ts +98 -0
- package/dist/types/providers/cursor/gen/agent_pb.d.ts +16769 -0
- package/dist/types/providers/cursor-pi-args.d.ts +119 -0
- package/dist/types/providers/cursor.d.ts +72 -0
- package/dist/types/providers/dashscope-token-plan-headers.d.ts +57 -0
- package/dist/types/providers/error-message.d.ts +27 -0
- package/dist/types/providers/github-copilot-headers.d.ts +40 -0
- package/dist/types/providers/gitlab-duo.d.ts +27 -0
- package/dist/types/providers/google-auth.d.ts +26 -0
- package/dist/types/providers/google-gemini-cli.d.ts +75 -0
- package/dist/types/providers/google-gemini-headers.d.ts +43 -0
- package/dist/types/providers/google-shared.d.ts +183 -0
- package/dist/types/providers/google-types.d.ts +138 -0
- package/dist/types/providers/google-vertex.d.ts +11 -0
- package/dist/types/providers/google.d.ts +4 -0
- package/dist/types/providers/grammar.d.ts +1 -0
- package/dist/types/providers/kimi.d.ts +27 -0
- package/dist/types/providers/kiro-api-key.d.ts +50 -0
- package/dist/types/providers/kiro-codewhisperer.d.ts +11 -0
- package/dist/types/providers/mock.d.ts +189 -0
- package/dist/types/providers/ollama.d.ts +41 -0
- package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
- package/dist/types/providers/openai-bounded-rate-limits.d.ts +3 -0
- package/dist/types/providers/openai-chat-server-schema.d.ts +1733 -0
- package/dist/types/providers/openai-chat-server.d.ts +16 -0
- package/dist/types/providers/openai-codex/constants.d.ts +26 -0
- package/dist/types/providers/openai-codex/request-transformer.d.ts +50 -0
- package/dist/types/providers/openai-codex/response-handler.d.ts +18 -0
- package/dist/types/providers/openai-codex-responses.d.ts +71 -0
- package/dist/types/providers/openai-completions-compat.d.ts +6 -0
- package/dist/types/providers/openai-completions.d.ts +35 -0
- package/dist/types/providers/openai-opencodex-responses.d.ts +10 -0
- package/dist/types/providers/openai-request-transform.d.ts +4 -0
- package/dist/types/providers/openai-responses-server-schema.d.ts +392 -0
- package/dist/types/providers/openai-responses-server.d.ts +17 -0
- package/dist/types/providers/openai-responses-shared.d.ts +106 -0
- package/dist/types/providers/openai-responses.d.ts +37 -0
- package/dist/types/providers/pi-native-client.d.ts +29 -0
- package/dist/types/providers/pi-native-server.d.ts +60 -0
- package/dist/types/providers/register-builtins.d.ts +59 -0
- package/dist/types/providers/synthetic.d.ts +26 -0
- package/dist/types/providers/transform-messages.d.ts +33 -0
- package/dist/types/providers/vision-guard.d.ts +8 -0
- package/dist/types/rate-limit-utils.d.ts +19 -0
- package/dist/types/stream.d.ts +45 -0
- package/dist/types/types.d.ts +1073 -0
- package/dist/types/usage/claude.d.ts +3 -0
- package/dist/types/usage/gemini.d.ts +2 -0
- package/dist/types/usage/github-copilot.d.ts +7 -0
- package/dist/types/usage/google-antigravity.d.ts +2 -0
- package/dist/types/usage/grok-cli.d.ts +17 -0
- package/dist/types/usage/kimi.d.ts +4 -0
- package/dist/types/usage/minimax-code.d.ts +2 -0
- package/dist/types/usage/openai-codex.d.ts +3 -0
- package/dist/types/usage/shared.d.ts +1 -0
- package/dist/types/usage/zai.d.ts +2 -0
- package/dist/types/usage.d.ts +264 -0
- package/dist/types/utils/abort.d.ts +19 -0
- package/dist/types/utils/anthropic-auth.d.ts +39 -0
- package/dist/types/utils/block-symbols.d.ts +6 -0
- package/dist/types/utils/discovery/antigravity.d.ts +67 -0
- package/dist/types/utils/discovery/codex.d.ts +38 -0
- package/dist/types/utils/discovery/cursor.d.ts +49 -0
- package/dist/types/utils/discovery/gemini.d.ts +25 -0
- package/dist/types/utils/discovery/index.d.ts +4 -0
- package/dist/types/utils/discovery/openai-compatible.d.ts +81 -0
- package/dist/types/utils/event-stream.d.ts +41 -0
- package/dist/types/utils/fallback-transport.d.ts +110 -0
- package/dist/types/utils/fireworks-model-id.d.ts +10 -0
- package/dist/types/utils/foundry.d.ts +11 -0
- package/dist/types/utils/h2-fetch.d.ts +22 -0
- package/dist/types/utils/http-inspector.d.ts +59 -0
- package/dist/types/utils/idle-iterator.d.ts +122 -0
- package/dist/types/utils/json-parse.d.ts +98 -0
- package/dist/types/utils/oauth/alibaba-token-plan.d.ts +19 -0
- package/dist/types/utils/oauth/anthropic.d.ts +41 -0
- package/dist/types/utils/oauth/api-key-login.d.ts +38 -0
- package/dist/types/utils/oauth/api-key-validation.d.ts +39 -0
- package/dist/types/utils/oauth/bizrouter.d.ts +1 -0
- package/dist/types/utils/oauth/callback-server.d.ts +80 -0
- package/dist/types/utils/oauth/cerebras.d.ts +1 -0
- package/dist/types/utils/oauth/cloudflare-ai-gateway.d.ts +18 -0
- package/dist/types/utils/oauth/commandcode.d.ts +1 -0
- package/dist/types/utils/oauth/cursor.d.ts +15 -0
- package/dist/types/utils/oauth/deepinfra.d.ts +1 -0
- package/dist/types/utils/oauth/deepseek.d.ts +10 -0
- package/dist/types/utils/oauth/firepass.d.ts +1 -0
- package/dist/types/utils/oauth/fireworks.d.ts +1 -0
- package/dist/types/utils/oauth/fugu.d.ts +1 -0
- package/dist/types/utils/oauth/github-copilot.d.ts +38 -0
- package/dist/types/utils/oauth/gitlab-duo.d.ts +3 -0
- package/dist/types/utils/oauth/glm-zcode.d.ts +71 -0
- package/dist/types/utils/oauth/google-antigravity.d.ts +11 -0
- package/dist/types/utils/oauth/google-gemini-cli.d.ts +10 -0
- package/dist/types/utils/oauth/google-oauth-shared.d.ts +28 -0
- package/dist/types/utils/oauth/huggingface.d.ts +19 -0
- package/dist/types/utils/oauth/index.d.ts +39 -0
- package/dist/types/utils/oauth/kagi.d.ts +17 -0
- package/dist/types/utils/oauth/kilo.d.ts +5 -0
- package/dist/types/utils/oauth/kimi.d.ts +17 -0
- package/dist/types/utils/oauth/kiro.d.ts +71 -0
- package/dist/types/utils/oauth/litellm.d.ts +18 -0
- package/dist/types/utils/oauth/lm-studio.d.ts +17 -0
- package/dist/types/utils/oauth/mara.d.ts +1 -0
- package/dist/types/utils/oauth/minimax-code.d.ts +28 -0
- package/dist/types/utils/oauth/moonshot.d.ts +1 -0
- package/dist/types/utils/oauth/nanogpt.d.ts +1 -0
- package/dist/types/utils/oauth/nvidia.d.ts +18 -0
- package/dist/types/utils/oauth/ollama-cloud.d.ts +2 -0
- package/dist/types/utils/oauth/ollama.d.ts +18 -0
- package/dist/types/utils/oauth/openai-codex.d.ts +21 -0
- package/dist/types/utils/oauth/opencode.d.ts +18 -0
- package/dist/types/utils/oauth/opengateway.d.ts +1 -0
- package/dist/types/utils/oauth/openrouter.d.ts +1 -0
- package/dist/types/utils/oauth/parallel.d.ts +17 -0
- package/dist/types/utils/oauth/perplexity.d.ts +4 -0
- package/dist/types/utils/oauth/pkce.d.ts +8 -0
- package/dist/types/utils/oauth/qianfan.d.ts +17 -0
- package/dist/types/utils/oauth/qwen-portal.d.ts +19 -0
- package/dist/types/utils/oauth/sglang.d.ts +16 -0
- package/dist/types/utils/oauth/synthetic.d.ts +1 -0
- package/dist/types/utils/oauth/tavily.d.ts +17 -0
- package/dist/types/utils/oauth/together.d.ts +1 -0
- package/dist/types/utils/oauth/types.d.ts +56 -0
- package/dist/types/utils/oauth/venice.d.ts +18 -0
- package/dist/types/utils/oauth/vercel-ai-gateway.d.ts +18 -0
- package/dist/types/utils/oauth/vllm.d.ts +16 -0
- package/dist/types/utils/oauth/xai.d.ts +30 -0
- package/dist/types/utils/oauth/xiaomi.d.ts +25 -0
- package/dist/types/utils/oauth/zai.d.ts +18 -0
- package/dist/types/utils/oauth/zenmux.d.ts +1 -0
- package/dist/types/utils/overflow.d.ts +14 -0
- package/dist/types/utils/parse-bind.d.ts +26 -0
- package/dist/types/utils/provider-response.d.ts +6 -0
- package/dist/types/utils/provider-safety-stop.d.ts +8 -0
- package/dist/types/utils/proxy.d.ts +7 -0
- package/dist/types/utils/retry-after.d.ts +3 -0
- package/dist/types/utils/retry-budget.d.ts +1 -0
- package/dist/types/utils/retry.d.ts +29 -0
- package/dist/types/utils/schema/adapt.d.ts +24 -0
- package/dist/types/utils/schema/compatibility.d.ts +30 -0
- package/dist/types/utils/schema/dereference.d.ts +11 -0
- package/dist/types/utils/schema/draft.d.ts +10 -0
- package/dist/types/utils/schema/equality.d.ts +4 -0
- package/dist/types/utils/schema/fields.d.ts +49 -0
- package/dist/types/utils/schema/index.d.ts +14 -0
- package/dist/types/utils/schema/json-schema-validator.d.ts +12 -0
- package/dist/types/utils/schema/meta-validator.d.ts +2 -0
- package/dist/types/utils/schema/normalize.d.ts +93 -0
- package/dist/types/utils/schema/root-combinator.d.ts +12 -0
- package/dist/types/utils/schema/spill.d.ts +8 -0
- package/dist/types/utils/schema/stamps.d.ts +25 -0
- package/dist/types/utils/schema/types.d.ts +4 -0
- package/dist/types/utils/schema/wire.d.ts +54 -0
- package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
- package/dist/types/utils/sse-debug.d.ts +10 -0
- package/dist/types/utils/tool-call-healing.d.ts +80 -0
- package/dist/types/utils/tool-choice-capability.d.ts +57 -0
- package/dist/types/utils/tool-choice.d.ts +50 -0
- package/dist/types/utils/validation.d.ts +17 -0
- package/dist/types/utils.d.ts +117 -0
- package/package.json +152 -0
- package/src/adapter-internals/provider-safety-stop.d.ts +45 -0
- package/src/adapter-internals/provider-safety-stop.ts +156 -0
- package/src/api-registry.d.ts +30 -0
- package/src/api-registry.ts +96 -0
- package/src/auth-broker/client.ts +444 -0
- package/src/auth-broker/index.ts +5 -0
- package/src/auth-broker/redact.ts +39 -0
- package/src/auth-broker/refresher.ts +130 -0
- package/src/auth-broker/remote-store.ts +1576 -0
- package/src/auth-broker/server.ts +764 -0
- package/src/auth-broker/types.ts +164 -0
- package/src/auth-broker/wire-schemas.ts +261 -0
- package/src/auth-gateway/http.ts +198 -0
- package/src/auth-gateway/index.ts +3 -0
- package/src/auth-gateway/server.ts +1315 -0
- package/src/auth-gateway/types.ts +160 -0
- package/src/auth-storage.ts +7312 -0
- package/src/cli.ts +269 -0
- package/src/codex-tools.d.ts +4 -0
- package/src/codex-tools.ts +24 -0
- package/src/context-cap-policy.d.ts +68 -0
- package/src/context-cap-policy.ts +123 -0
- package/src/core.ts +44 -0
- package/src/index.ts +61 -0
- package/src/model-cache.ts +236 -0
- package/src/model-manager.ts +744 -0
- package/src/model-pricing.d.ts +3 -0
- package/src/model-pricing.ts +68 -0
- package/src/model-retirements.d.ts +6 -0
- package/src/model-retirements.ts +19 -0
- package/src/model-thinking.d.ts +100 -0
- package/src/model-thinking.ts +1054 -0
- package/src/models.d.ts +21 -0
- package/src/models.json +94672 -0
- package/src/models.json.d.ts +9 -0
- package/src/models.ts +126 -0
- package/src/openai-completions-compat.d.ts +34 -0
- package/src/openai-completions-compat.ts +383 -0
- package/src/prompts/composer-bash-policy-recovery.md +1 -0
- package/src/prompts/cursor-composer-bash-policy-recovery.md +1 -0
- package/src/prompts/cursor-composer-edit-discipline.md +7 -0
- package/src/prompts/turn-aborted-guidance.md +4 -0
- package/src/provider-details.ts +90 -0
- package/src/provider-models/bundled-references.ts +38 -0
- package/src/provider-models/descriptors.ts +392 -0
- package/src/provider-models/google.ts +92 -0
- package/src/provider-models/index.ts +5 -0
- package/src/provider-models/ollama.ts +159 -0
- package/src/provider-models/openai-compat.ts +2920 -0
- package/src/provider-models/special.ts +185 -0
- package/src/providers/amazon-bedrock.d.ts +60 -0
- package/src/providers/amazon-bedrock.ts +939 -0
- package/src/providers/anthropic-messages-server-schema.ts +229 -0
- package/src/providers/anthropic-messages-server.ts +839 -0
- package/src/providers/anthropic.d.ts +280 -0
- package/src/providers/anthropic.ts +4421 -0
- package/src/providers/aws-credential-config.d.ts +19 -0
- package/src/providers/aws-credential-config.ts +179 -0
- package/src/providers/aws-credentials.d.ts +43 -0
- package/src/providers/aws-credentials.ts +457 -0
- package/src/providers/aws-eventstream.d.ts +38 -0
- package/src/providers/aws-eventstream.ts +185 -0
- package/src/providers/aws-sigv4.d.ts +55 -0
- package/src/providers/aws-sigv4.ts +218 -0
- package/src/providers/azure-openai-responses.d.ts +22 -0
- package/src/providers/azure-openai-responses.ts +447 -0
- package/src/providers/composer-discipline.d.ts +32 -0
- package/src/providers/composer-discipline.ts +95 -0
- package/src/providers/cursor/client-version.d.ts +10 -0
- package/src/providers/cursor/client-version.ts +10 -0
- package/src/providers/cursor/exec-modern.d.ts +98 -0
- package/src/providers/cursor/exec-modern.ts +497 -0
- package/src/providers/cursor/gen/agent_pb.d.ts +16769 -0
- package/src/providers/cursor/gen/agent_pb.ts +19780 -0
- package/src/providers/cursor/proto/agent.proto +4533 -0
- package/src/providers/cursor/proto/buf.gen.yaml +6 -0
- package/src/providers/cursor/proto/buf.yaml +17 -0
- package/src/providers/cursor-pi-args.d.ts +119 -0
- package/src/providers/cursor-pi-args.ts +187 -0
- package/src/providers/cursor.d.ts +72 -0
- package/src/providers/cursor.ts +3396 -0
- package/src/providers/dashscope-token-plan-headers.d.ts +57 -0
- package/src/providers/dashscope-token-plan-headers.ts +84 -0
- package/src/providers/error-message.d.ts +27 -0
- package/src/providers/error-message.ts +21 -0
- package/src/providers/github-copilot-headers.d.ts +40 -0
- package/src/providers/github-copilot-headers.ts +140 -0
- package/src/providers/gitlab-duo.d.ts +27 -0
- package/src/providers/gitlab-duo.ts +393 -0
- package/src/providers/google-auth.d.ts +26 -0
- package/src/providers/google-auth.ts +262 -0
- package/src/providers/google-gemini-cli.d.ts +75 -0
- package/src/providers/google-gemini-cli.ts +969 -0
- package/src/providers/google-gemini-headers.d.ts +43 -0
- package/src/providers/google-gemini-headers.ts +100 -0
- package/src/providers/google-shared.d.ts +183 -0
- package/src/providers/google-shared.ts +1105 -0
- package/src/providers/google-types.d.ts +138 -0
- package/src/providers/google-types.ts +167 -0
- package/src/providers/google-vertex.d.ts +11 -0
- package/src/providers/google-vertex.ts +124 -0
- package/src/providers/google.d.ts +4 -0
- package/src/providers/google.ts +41 -0
- package/src/providers/grammar.d.ts +1 -0
- package/src/providers/grammar.ts +70 -0
- package/src/providers/kimi.d.ts +27 -0
- package/src/providers/kimi.ts +52 -0
- package/src/providers/kiro-api-key.d.ts +50 -0
- package/src/providers/kiro-api-key.ts +786 -0
- package/src/providers/kiro-codewhisperer.d.ts +11 -0
- package/src/providers/kiro-codewhisperer.ts +600 -0
- package/src/providers/mock.ts +526 -0
- package/src/providers/ollama.d.ts +41 -0
- package/src/providers/ollama.ts +645 -0
- package/src/providers/openai-anthropic-shim.d.ts +31 -0
- package/src/providers/openai-anthropic-shim.ts +156 -0
- package/src/providers/openai-bounded-rate-limits.d.ts +3 -0
- package/src/providers/openai-bounded-rate-limits.ts +57 -0
- package/src/providers/openai-chat-server-schema.ts +254 -0
- package/src/providers/openai-chat-server.ts +724 -0
- package/src/providers/openai-codex/constants.d.ts +26 -0
- package/src/providers/openai-codex/constants.ts +43 -0
- package/src/providers/openai-codex/request-transformer.d.ts +50 -0
- package/src/providers/openai-codex/request-transformer.ts +219 -0
- package/src/providers/openai-codex/response-handler.d.ts +18 -0
- package/src/providers/openai-codex/response-handler.ts +111 -0
- package/src/providers/openai-codex-responses.d.ts +71 -0
- package/src/providers/openai-codex-responses.ts +3288 -0
- package/src/providers/openai-completions-compat.d.ts +6 -0
- package/src/providers/openai-completions-compat.ts +6 -0
- package/src/providers/openai-completions.d.ts +35 -0
- package/src/providers/openai-completions.ts +2294 -0
- package/src/providers/openai-opencodex-responses.ts +174 -0
- package/src/providers/openai-request-transform.d.ts +4 -0
- package/src/providers/openai-request-transform.ts +136 -0
- package/src/providers/openai-responses-server-schema.ts +290 -0
- package/src/providers/openai-responses-server.ts +1268 -0
- package/src/providers/openai-responses-shared.d.ts +106 -0
- package/src/providers/openai-responses-shared.ts +1253 -0
- package/src/providers/openai-responses.d.ts +37 -0
- package/src/providers/openai-responses.ts +989 -0
- package/src/providers/pi-native-client.d.ts +29 -0
- package/src/providers/pi-native-client.ts +243 -0
- package/src/providers/pi-native-server.ts +488 -0
- package/src/providers/register-builtins.d.ts +59 -0
- package/src/providers/register-builtins.ts +544 -0
- package/src/providers/synthetic.d.ts +26 -0
- package/src/providers/synthetic.ts +50 -0
- package/src/providers/transform-messages.d.ts +33 -0
- package/src/providers/transform-messages.ts +408 -0
- package/src/providers/vision-guard.d.ts +8 -0
- package/src/providers/vision-guard.ts +31 -0
- package/src/rate-limit-utils.d.ts +19 -0
- package/src/rate-limit-utils.ts +102 -0
- package/src/stream.d.ts +45 -0
- package/src/stream.ts +1306 -0
- package/src/types.d.ts +1073 -0
- package/src/types.ts +1305 -0
- package/src/usage/claude.ts +449 -0
- package/src/usage/gemini.ts +250 -0
- package/src/usage/github-copilot.ts +421 -0
- package/src/usage/google-antigravity.ts +201 -0
- package/src/usage/grok-cli.ts +259 -0
- package/src/usage/kimi.ts +285 -0
- package/src/usage/minimax-code.ts +31 -0
- package/src/usage/openai-codex.ts +503 -0
- package/src/usage/shared.ts +10 -0
- package/src/usage/zai.ts +247 -0
- package/src/usage.ts +190 -0
- package/src/utils/abort.d.ts +19 -0
- package/src/utils/abort.ts +51 -0
- package/src/utils/anthropic-auth.ts +95 -0
- package/src/utils/block-symbols.d.ts +6 -0
- package/src/utils/block-symbols.ts +11 -0
- package/src/utils/discovery/antigravity.ts +275 -0
- package/src/utils/discovery/codex.ts +362 -0
- package/src/utils/discovery/cursor.ts +388 -0
- package/src/utils/discovery/gemini.ts +248 -0
- package/src/utils/discovery/index.ts +4 -0
- package/src/utils/discovery/openai-compatible.ts +379 -0
- package/src/utils/event-stream.d.ts +41 -0
- package/src/utils/event-stream.ts +269 -0
- package/src/utils/fallback-transport.d.ts +110 -0
- package/src/utils/fallback-transport.ts +411 -0
- package/src/utils/fireworks-model-id.d.ts +10 -0
- package/src/utils/fireworks-model-id.ts +30 -0
- package/src/utils/foundry.d.ts +11 -0
- package/src/utils/foundry.ts +18 -0
- package/src/utils/h2-fetch.ts +60 -0
- package/src/utils/http-inspector.d.ts +59 -0
- package/src/utils/http-inspector.ts +380 -0
- package/src/utils/idle-iterator.d.ts +122 -0
- package/src/utils/idle-iterator.ts +410 -0
- package/src/utils/json-parse.d.ts +98 -0
- package/src/utils/json-parse.ts +607 -0
- package/src/utils/oauth/alibaba-token-plan.ts +60 -0
- package/src/utils/oauth/anthropic.ts +233 -0
- package/src/utils/oauth/api-key-login.ts +98 -0
- package/src/utils/oauth/api-key-validation.ts +344 -0
- package/src/utils/oauth/bizrouter.ts +15 -0
- package/src/utils/oauth/callback-server.d.ts +80 -0
- package/src/utils/oauth/callback-server.ts +359 -0
- package/src/utils/oauth/cerebras.ts +16 -0
- package/src/utils/oauth/cloudflare-ai-gateway.ts +48 -0
- package/src/utils/oauth/commandcode.ts +17 -0
- package/src/utils/oauth/cursor.ts +157 -0
- package/src/utils/oauth/deepinfra.ts +15 -0
- package/src/utils/oauth/deepseek.ts +53 -0
- package/src/utils/oauth/firepass.ts +24 -0
- package/src/utils/oauth/fireworks.ts +15 -0
- package/src/utils/oauth/fugu.ts +15 -0
- package/src/utils/oauth/github-copilot.d.ts +38 -0
- package/src/utils/oauth/github-copilot.ts +362 -0
- package/src/utils/oauth/gitlab-duo.ts +123 -0
- package/src/utils/oauth/glm-zcode.d.ts +71 -0
- package/src/utils/oauth/glm-zcode.ts +433 -0
- package/src/utils/oauth/google-antigravity.ts +200 -0
- package/src/utils/oauth/google-gemini-cli.ts +256 -0
- package/src/utils/oauth/google-oauth-shared.ts +110 -0
- package/src/utils/oauth/huggingface.ts +62 -0
- package/src/utils/oauth/index.ts +558 -0
- package/src/utils/oauth/kagi.ts +47 -0
- package/src/utils/oauth/kilo.ts +87 -0
- package/src/utils/oauth/kimi.d.ts +17 -0
- package/src/utils/oauth/kimi.ts +275 -0
- package/src/utils/oauth/kiro.ts +448 -0
- package/src/utils/oauth/litellm.ts +47 -0
- package/src/utils/oauth/lm-studio.ts +38 -0
- package/src/utils/oauth/mara.ts +16 -0
- package/src/utils/oauth/minimax-code.ts +78 -0
- package/src/utils/oauth/moonshot.ts +16 -0
- package/src/utils/oauth/nanogpt.ts +15 -0
- package/src/utils/oauth/nvidia.ts +70 -0
- package/src/utils/oauth/oauth.html +199 -0
- package/src/utils/oauth/ollama-cloud.ts +28 -0
- package/src/utils/oauth/ollama.ts +47 -0
- package/src/utils/oauth/openai-codex.ts +299 -0
- package/src/utils/oauth/opencode.ts +49 -0
- package/src/utils/oauth/opengateway.ts +15 -0
- package/src/utils/oauth/openrouter.ts +16 -0
- package/src/utils/oauth/parallel.ts +46 -0
- package/src/utils/oauth/perplexity.ts +225 -0
- package/src/utils/oauth/pkce.ts +18 -0
- package/src/utils/oauth/qianfan.ts +58 -0
- package/src/utils/oauth/qwen-portal.ts +60 -0
- package/src/utils/oauth/sglang.ts +42 -0
- package/src/utils/oauth/synthetic.ts +15 -0
- package/src/utils/oauth/tavily.ts +46 -0
- package/src/utils/oauth/together.ts +16 -0
- package/src/utils/oauth/types.d.ts +56 -0
- package/src/utils/oauth/types.ts +122 -0
- package/src/utils/oauth/venice.ts +59 -0
- package/src/utils/oauth/vercel-ai-gateway.ts +47 -0
- package/src/utils/oauth/vllm.ts +42 -0
- package/src/utils/oauth/xai.ts +246 -0
- package/src/utils/oauth/xiaomi.ts +199 -0
- package/src/utils/oauth/zai.ts +60 -0
- package/src/utils/oauth/zenmux.ts +15 -0
- package/src/utils/overflow.ts +275 -0
- package/src/utils/parse-bind.ts +81 -0
- package/src/utils/provider-response.d.ts +6 -0
- package/src/utils/provider-response.ts +30 -0
- package/src/utils/provider-safety-stop.ts +8 -0
- package/src/utils/proxy.d.ts +7 -0
- package/src/utils/proxy.ts +652 -0
- package/src/utils/retry-after.d.ts +3 -0
- package/src/utils/retry-after.ts +110 -0
- package/src/utils/retry-budget.d.ts +1 -0
- package/src/utils/retry-budget.ts +4 -0
- package/src/utils/retry.d.ts +29 -0
- package/src/utils/retry.ts +67 -0
- package/src/utils/schema/CONSTRAINTS.md +164 -0
- package/src/utils/schema/adapt.d.ts +24 -0
- package/src/utils/schema/adapt.ts +36 -0
- package/src/utils/schema/compatibility.d.ts +30 -0
- package/src/utils/schema/compatibility.ts +435 -0
- package/src/utils/schema/dereference.d.ts +11 -0
- package/src/utils/schema/dereference.ts +98 -0
- package/src/utils/schema/draft.d.ts +10 -0
- package/src/utils/schema/draft.ts +341 -0
- package/src/utils/schema/equality.d.ts +4 -0
- package/src/utils/schema/equality.ts +97 -0
- package/src/utils/schema/fields.d.ts +49 -0
- package/src/utils/schema/fields.ts +190 -0
- package/src/utils/schema/index.d.ts +14 -0
- package/src/utils/schema/index.ts +14 -0
- package/src/utils/schema/json-schema-validator.d.ts +12 -0
- package/src/utils/schema/json-schema-validator.ts +577 -0
- package/src/utils/schema/meta-validator.d.ts +2 -0
- package/src/utils/schema/meta-validator.ts +167 -0
- package/src/utils/schema/normalize.d.ts +93 -0
- package/src/utils/schema/normalize.ts +1588 -0
- package/src/utils/schema/root-combinator.d.ts +12 -0
- package/src/utils/schema/root-combinator.ts +143 -0
- package/src/utils/schema/spill.d.ts +8 -0
- package/src/utils/schema/spill.ts +43 -0
- package/src/utils/schema/stamps.d.ts +25 -0
- package/src/utils/schema/stamps.ts +97 -0
- package/src/utils/schema/types.d.ts +4 -0
- package/src/utils/schema/types.ts +11 -0
- package/src/utils/schema/wire.d.ts +54 -0
- package/src/utils/schema/wire.ts +213 -0
- package/src/utils/schema/zod-decontaminate.d.ts +31 -0
- package/src/utils/schema/zod-decontaminate.ts +331 -0
- package/src/utils/sse-debug.d.ts +10 -0
- package/src/utils/sse-debug.ts +289 -0
- package/src/utils/tool-call-healing.d.ts +80 -0
- package/src/utils/tool-call-healing.ts +298 -0
- package/src/utils/tool-choice-capability.d.ts +57 -0
- package/src/utils/tool-choice-capability.ts +633 -0
- package/src/utils/tool-choice.d.ts +50 -0
- package/src/utils/tool-choice.ts +99 -0
- package/src/utils/validation.ts +1080 -0
- package/src/utils.d.ts +117 -0
- package/src/utils.ts +523 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import Anthropic, { type ClientOptions as AnthropicSdkClientOptions } from "@anthropic-ai/sdk";
|
|
2
|
+
import type { MessageCreateParamsStreaming, MessageParam } from "@anthropic-ai/sdk/resources/messages";
|
|
3
|
+
import type { FetchImpl, Message, Model, ProviderSessionState, ServiceTier, SimpleStreamOptions, StreamFunction, StreamOptions, Usage } from "../types";
|
|
4
|
+
import { type RawHttpRequestDump } from "../utils/http-inspector";
|
|
5
|
+
export type AnthropicHeaderOptions = {
|
|
6
|
+
apiKey: string;
|
|
7
|
+
baseUrl?: string;
|
|
8
|
+
isOAuth?: boolean;
|
|
9
|
+
extraBetas?: string[];
|
|
10
|
+
stream?: boolean;
|
|
11
|
+
modelHeaders?: Record<string, string>;
|
|
12
|
+
isCloudflareAiGateway?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Attach ZCode client "source" headers (User-Agent: ZCode/<ver>, X-Title,
|
|
15
|
+
* X-ZCode-Agent: glm, X-Platform, etc.) so api.z.ai recognizes the caller as
|
|
16
|
+
* the ZCode client, exactly like ZCode's `buildZCodeSourceHeaders` does for
|
|
17
|
+
* GLM providers. glm-zcode only.
|
|
18
|
+
*/
|
|
19
|
+
zcodeSourceHeaders?: boolean;
|
|
20
|
+
};
|
|
21
|
+
export declare function normalizeAnthropicBaseUrl(baseUrl?: string): string | undefined;
|
|
22
|
+
export declare function buildBetaHeader(baseBetas: string[], extraBetas: string[]): string;
|
|
23
|
+
/**
|
|
24
|
+
* Replicates ZCode's `buildZCodeSourceHeaders()` + GLM `X-ZCode-Agent` tag
|
|
25
|
+
* (host bundle `Bl` / `buildConnectivitySourceHeaders` for GLM providers), so
|
|
26
|
+
* api.z.ai sees vib's glm-zcode requests as the ZCode client. Dynamic values
|
|
27
|
+
* (platform/arch, locale, timezone, OS version) are resolved at runtime exactly
|
|
28
|
+
* as ZCode does; printable-ASCII-only and conditionally omitted when empty.
|
|
29
|
+
*/
|
|
30
|
+
export declare function buildZCodeSourceHeaders(): Record<string, string>;
|
|
31
|
+
export declare function buildAnthropicHeaders(options: AnthropicHeaderOptions): Record<string, string>;
|
|
32
|
+
type AnthropicCacheControl = {
|
|
33
|
+
type: "ephemeral";
|
|
34
|
+
ttl?: "1h" | "5m";
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Clears the in-session "server rejected fast mode" sticky flag. Call when the
|
|
38
|
+
* caller is explicitly re-arming `serviceTier: "priority"` (e.g. user toggled
|
|
39
|
+
* `/fast on` after a previous turn auto-disabled it) so the next request
|
|
40
|
+
* actually carries `speed: "fast"` again. No-op when the map or state entry
|
|
41
|
+
* hasn't been materialized yet.
|
|
42
|
+
*/
|
|
43
|
+
export declare function clearAnthropicFastModeFallback(providerSessionState: Map<string, ProviderSessionState> | undefined): void;
|
|
44
|
+
export declare function isAnthropicFastModeUnsupportedError(error: unknown): boolean;
|
|
45
|
+
export declare function isAnthropicThinkingBlockMutationError(error: unknown): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* 400 shape where a replayed `thinking`/`redacted_thinking` block fails signature
|
|
48
|
+
* validation, e.g. `messages.5.content.24: Invalid \`signature\` in \`thinking\` block`.
|
|
49
|
+
* Unlike the latest-assistant mutation error above, the cited block can sit anywhere
|
|
50
|
+
* in the replayed history, so recovery must repair every assistant message rather
|
|
51
|
+
* than only the latest one.
|
|
52
|
+
*/
|
|
53
|
+
export declare function isAnthropicThinkingSignatureInvalidError(error: unknown): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* CLIProxyAPI replaces Anthropic's rejection body wholesale instead of forwarding
|
|
56
|
+
* it: the client only ever sees
|
|
57
|
+
* `{"type":"error","error":{"type":"api_error","message":"An error occurred while
|
|
58
|
+
* processing the request."}}`, delivered as an in-stream SSE `error` event on an
|
|
59
|
+
* HTTP 200 response, so neither the status nor the message survives. Captured CPA
|
|
60
|
+
* traces for that masked shape carry the thinking-integrity 400 upstream (issue
|
|
61
|
+
* #3900), and the generic body matches no transient phrase either, so the turn
|
|
62
|
+
* dies unrecoverably. Nothing in the payload names the cause; callers must pair
|
|
63
|
+
* this with a request that actually replays signed thinking blocks before
|
|
64
|
+
* treating it as a thinking-replay rejection.
|
|
65
|
+
*/
|
|
66
|
+
export declare function isAnthropicMaskedProxyRejection(error: unknown): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Anthropic rejects a request carrying more than four `cache_control`
|
|
69
|
+
* breakpoints. An Anthropic-compatible gateway may attach its own block-level
|
|
70
|
+
* markers before forwarding, and those never appear in the params we serialize,
|
|
71
|
+
* so no amount of local counting can predict the total. The rejection is the
|
|
72
|
+
* only evidence that our generated marker is one too many, and it is worth
|
|
73
|
+
* exactly one retry with generated caching suppressed.
|
|
74
|
+
*
|
|
75
|
+
* Our own pre-flight `validateCacheControls` failure is deliberately not
|
|
76
|
+
* matched: it carries no `invalid_request_error` wording, so a local bug stays
|
|
77
|
+
* loud instead of being silently retried.
|
|
78
|
+
*/
|
|
79
|
+
export declare function isAnthropicCacheBreakpointOverflowError(error: unknown): boolean;
|
|
80
|
+
export type AnthropicContextManagementInjectionDiagnostic = {
|
|
81
|
+
strategy: string;
|
|
82
|
+
message: string;
|
|
83
|
+
captureNote: string;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Diagnose a context-management strategy named by an Anthropic 400 but absent
|
|
87
|
+
* from the body Vibrato sent. This mismatch is evidence of intermediary mutation,
|
|
88
|
+
* not permission to silently enable thinking or retry the request.
|
|
89
|
+
*/
|
|
90
|
+
export declare function diagnoseAnthropicContextManagementInjection(error: unknown, dump: RawHttpRequestDump | undefined): AnthropicContextManagementInjectionDiagnostic | undefined;
|
|
91
|
+
export interface CpaToolAliasRestoreFailure {
|
|
92
|
+
/** The rejected tool-call name exactly as CPA quoted it. */
|
|
93
|
+
alias: string;
|
|
94
|
+
/**
|
|
95
|
+
* Base tool name parsed out of the alias (`mcp__<server>__<token>_<base>`
|
|
96
|
+
* → `<base>`), when the alias shape is well-formed. `undefined` for a
|
|
97
|
+
* malformed alias — callers must then fall back to direct discovery and
|
|
98
|
+
* never invent a name.
|
|
99
|
+
*/
|
|
100
|
+
baseName?: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Classifies the CPA alias-restore signature and extracts the rejected alias
|
|
104
|
+
* plus its base tool name. Claims only statusless in-stream SSE error events
|
|
105
|
+
* and HTTP 5xx failures: a non-5xx status carrying this text is not the
|
|
106
|
+
* observed CPA delivery shape and is left to the other classifiers.
|
|
107
|
+
*/
|
|
108
|
+
export declare function parseCpaToolAliasRestoreFailure(error: unknown): CpaToolAliasRestoreFailure | undefined;
|
|
109
|
+
export declare function isCpaToolAliasRestoreFailure(error: unknown): boolean;
|
|
110
|
+
export declare const claudeCodeVersion = "2.1.219";
|
|
111
|
+
export declare const claudeCodeEntrypoint = "sdk-cli";
|
|
112
|
+
export declare const claudeToolPrefix: string;
|
|
113
|
+
export declare const claudeCodeSystemInstruction = "You are a Claude agent, built on Anthropic's Claude Agent SDK.";
|
|
114
|
+
export declare function mapStainlessOs(platform: string): "MacOS" | "Windows" | "Linux" | "FreeBSD" | `Other::${string}`;
|
|
115
|
+
export declare function mapStainlessArch(arch: string): "x64" | "arm64" | "x86" | `other::${string}`;
|
|
116
|
+
export declare const claudeCodeHeaders: {
|
|
117
|
+
readonly "X-Stainless-Retry-Count": "0";
|
|
118
|
+
readonly "X-Stainless-Runtime-Version": "v24.3.0";
|
|
119
|
+
readonly "X-Stainless-Package-Version": "0.74.0";
|
|
120
|
+
readonly "X-Stainless-Runtime": "node";
|
|
121
|
+
readonly "X-Stainless-Lang": "js";
|
|
122
|
+
readonly "X-Stainless-Arch": "arm64" | "x64" | "x86" | `other::${string}`;
|
|
123
|
+
readonly "X-Stainless-Os": "FreeBSD" | "Linux" | "MacOS" | "Windows" | `Other::${string}`;
|
|
124
|
+
readonly "X-Stainless-Timeout": "600";
|
|
125
|
+
};
|
|
126
|
+
export declare function isClaudeCloakingUserId(userId: string): boolean;
|
|
127
|
+
export declare function generateClaudeCloakingUserId(): string;
|
|
128
|
+
export declare const applyClaudeToolPrefix: (name: string, prefixOverride?: string) => string;
|
|
129
|
+
export declare const stripClaudeToolPrefix: (name: string, prefixOverride?: string) => string;
|
|
130
|
+
export type AnthropicEffort = "low" | "medium" | "high" | "xhigh" | "max";
|
|
131
|
+
export type AnthropicThinkingDisplay = "summarized" | "omitted";
|
|
132
|
+
export interface AnthropicOptions extends StreamOptions {
|
|
133
|
+
/**
|
|
134
|
+
* Enable extended thinking.
|
|
135
|
+
* For Opus 4.6+: uses adaptive thinking (Anthropic model decides when/how much to think).
|
|
136
|
+
* For older models: uses budget-based thinking with thinkingBudgetTokens.
|
|
137
|
+
*/
|
|
138
|
+
thinkingEnabled?: boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Token budget for extended thinking (older models only).
|
|
141
|
+
* Ignored for Opus 4.6+ which uses adaptive thinking.
|
|
142
|
+
*/
|
|
143
|
+
thinkingBudgetTokens?: number;
|
|
144
|
+
/**
|
|
145
|
+
* Effort level for adaptive thinking (Opus 4.6+ only).
|
|
146
|
+
* Controls how much thinking Anthropic model allocates:
|
|
147
|
+
* - "max": Always thinks with no constraints
|
|
148
|
+
* - "high": Always thinks, deep reasoning (default)
|
|
149
|
+
* - "medium": Moderate thinking, may skip for simple queries
|
|
150
|
+
* - "low": Minimal thinking, skips for simple tasks
|
|
151
|
+
* Ignored for older models.
|
|
152
|
+
*/
|
|
153
|
+
effort?: AnthropicEffort;
|
|
154
|
+
/**
|
|
155
|
+
* Optional reasoning level fallback for direct Anthropic provider usage.
|
|
156
|
+
* Converted to adaptive effort when effort is not explicitly provided.
|
|
157
|
+
*/
|
|
158
|
+
reasoning?: SimpleStreamOptions["reasoning"];
|
|
159
|
+
/**
|
|
160
|
+
* Controls how Anthropic returns thinking content when the selected thinking
|
|
161
|
+
* transport supports a display option. Defaults to "summarized" where the
|
|
162
|
+
* API accepts it.
|
|
163
|
+
*/
|
|
164
|
+
thinkingDisplay?: AnthropicThinkingDisplay;
|
|
165
|
+
interleavedThinking?: boolean;
|
|
166
|
+
toolChoice?: "auto" | "any" | "none" | {
|
|
167
|
+
type: "tool";
|
|
168
|
+
name: string;
|
|
169
|
+
};
|
|
170
|
+
betas?: string[] | string;
|
|
171
|
+
/**
|
|
172
|
+
* Realization of `serviceTier: "priority"` on Anthropic models. When
|
|
173
|
+
* `"priority"`, sets `speed: "fast"` on the request and appends the
|
|
174
|
+
* `fast-mode-2026-02-01` beta header. Anthropic rejects unsupported models
|
|
175
|
+
* with `invalid_request_error`, which triggers an in-provider one-shot
|
|
176
|
+
* fallback (see `fastModeDisabled` provider state).
|
|
177
|
+
*
|
|
178
|
+
* Other `ServiceTier` values are currently ignored on this provider.
|
|
179
|
+
*/
|
|
180
|
+
serviceTier?: ServiceTier;
|
|
181
|
+
/** Force OAuth bearer auth mode for proxy tokens that don't match Anthropic token prefixes. */
|
|
182
|
+
isOAuth?: boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Pre-built Anthropic client instance. When provided, skips internal client
|
|
185
|
+
* construction entirely. Use this to inject alternative SDK clients such as
|
|
186
|
+
* `AnthropicVertex` that shares the same messaging API.
|
|
187
|
+
*/
|
|
188
|
+
client?: Anthropic;
|
|
189
|
+
}
|
|
190
|
+
export type AnthropicClientOptionsArgs = {
|
|
191
|
+
model: Model<"anthropic-messages">;
|
|
192
|
+
apiKey: string;
|
|
193
|
+
extraBetas?: string[];
|
|
194
|
+
stream?: boolean;
|
|
195
|
+
interleavedThinking?: boolean;
|
|
196
|
+
headers?: Record<string, string>;
|
|
197
|
+
dynamicHeaders?: Record<string, string>;
|
|
198
|
+
isOAuth?: boolean;
|
|
199
|
+
hasTools?: boolean;
|
|
200
|
+
onSseEvent?: AnthropicOptions["onSseEvent"];
|
|
201
|
+
fetch?: FetchImpl;
|
|
202
|
+
requestMaxRetries?: number;
|
|
203
|
+
maxRetryDelayMs?: number;
|
|
204
|
+
streamFirstEventTimeoutMs?: number;
|
|
205
|
+
streamIdleTimeoutMs?: number;
|
|
206
|
+
};
|
|
207
|
+
export type AnthropicClientOptionsResult = {
|
|
208
|
+
isOAuthToken: boolean;
|
|
209
|
+
apiKey: string | null;
|
|
210
|
+
authToken?: string | null;
|
|
211
|
+
baseURL?: string;
|
|
212
|
+
maxRetries: number;
|
|
213
|
+
timeout?: number;
|
|
214
|
+
dangerouslyAllowBrowser: boolean;
|
|
215
|
+
defaultHeaders: Record<string, string>;
|
|
216
|
+
logLevel: AnthropicSdkClientOptions["logLevel"];
|
|
217
|
+
fetch?: AnthropicSdkClientOptions["fetch"];
|
|
218
|
+
fetchOptions?: AnthropicSdkClientOptions["fetchOptions"];
|
|
219
|
+
};
|
|
220
|
+
export declare function resolveGlmZcodeAnthropicBaseUrl(): string;
|
|
221
|
+
export declare function isProviderRetryableError(error: unknown, provider?: string): boolean;
|
|
222
|
+
export type AnthropicUsageLike = {
|
|
223
|
+
cache_creation?: {
|
|
224
|
+
ephemeral_5m_input_tokens?: number | null;
|
|
225
|
+
ephemeral_1h_input_tokens?: number | null;
|
|
226
|
+
} | null;
|
|
227
|
+
server_tool_use?: {
|
|
228
|
+
web_search_requests?: number | null;
|
|
229
|
+
web_fetch_requests?: number | null;
|
|
230
|
+
} | null;
|
|
231
|
+
};
|
|
232
|
+
/**
|
|
233
|
+
* Capture Anthropic's optional cache-creation TTL breakdown and server-tool-use
|
|
234
|
+
* counters into the harness Usage shape. Only sets fields that were reported, so
|
|
235
|
+
* a `message_delta` that omits `cache_creation` does not clobber the breakdown
|
|
236
|
+
* established at `message_start`.
|
|
237
|
+
*/
|
|
238
|
+
export declare function applyAnthropicUsageExtras(usage: Usage, source: AnthropicUsageLike): void;
|
|
239
|
+
export declare const streamAnthropic: StreamFunction<"anthropic-messages">;
|
|
240
|
+
export type AnthropicSystemBlock = {
|
|
241
|
+
type: "text";
|
|
242
|
+
text: string;
|
|
243
|
+
cache_control?: AnthropicCacheControl;
|
|
244
|
+
};
|
|
245
|
+
type SystemBlockOptions = {
|
|
246
|
+
includeClaudeCodeInstruction?: boolean;
|
|
247
|
+
extraInstructions?: string[];
|
|
248
|
+
billingPayload?: unknown;
|
|
249
|
+
cacheControl?: AnthropicCacheControl;
|
|
250
|
+
};
|
|
251
|
+
export declare function buildAnthropicSystemBlocks(systemPrompt: readonly string[] | undefined, options?: SystemBlockOptions): AnthropicSystemBlock[] | undefined;
|
|
252
|
+
export declare function normalizeExtraBetas(betas?: string[] | string): string[];
|
|
253
|
+
export declare function buildAnthropicClientOptions(args: AnthropicClientOptionsArgs): AnthropicClientOptionsResult;
|
|
254
|
+
export declare function normalizeCacheControlTtlOrdering(params: MessageCreateParamsStreaming): void;
|
|
255
|
+
export declare function convertAnthropicMessages(messages: Message[], model: Model<"anthropic-messages">, isOAuthToken: boolean, options?: {
|
|
256
|
+
repairLatestAssistantThinking?: boolean;
|
|
257
|
+
repairAllAssistantThinking?: boolean;
|
|
258
|
+
}): MessageParam[];
|
|
259
|
+
/**
|
|
260
|
+
* Normalize a JSON Schema node for Anthropic tool `input_schema`.
|
|
261
|
+
*
|
|
262
|
+
* Applies the full whitelist semantics from the Anthropic Python SDK's
|
|
263
|
+
* `lib/_parse/_transform.py::transform_schema`:
|
|
264
|
+
*
|
|
265
|
+
* 1. Universal keys (`$ref`, `$defs`, `type`, `anyOf`/`oneOf`/`allOf`, `enum`, `const`,
|
|
266
|
+
* `description`, `title`, `default`, `nullable`) are preserved on every node.
|
|
267
|
+
* 2. Per-type keys are kept additively (object → `properties`/`required`/`additionalProperties`,
|
|
268
|
+
* array → `items`/`prefixItems` plus `minItems` only when 0 or 1, string → `format`
|
|
269
|
+
* only when in the supported value set).
|
|
270
|
+
* 3. Everything else is demoted into the node's `description` as `\n\n{key: value, ...}`
|
|
271
|
+
* so the model still sees the constraint as a natural-language hint.
|
|
272
|
+
*
|
|
273
|
+
* Object nodes default to `additionalProperties: false`, but explicit open-map
|
|
274
|
+
* declarations (`additionalProperties: true` or a schema literal — Zod's
|
|
275
|
+
* `z.record(z.string(), z.unknown())` produces `{}`) are preserved. The strict-mode
|
|
276
|
+
* pass downstream demotes those shapes to non-strict instead of fabricating a closed
|
|
277
|
+
* object, so callers like the resolve tool keep working open-map semantics.
|
|
278
|
+
*/
|
|
279
|
+
export declare function normalizeAnthropicToolSchema(schema: unknown): unknown;
|
|
280
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AwsCredentials } from "./aws-sigv4";
|
|
2
|
+
export type AwsIniFile = Record<string, Record<string, string>>;
|
|
3
|
+
export interface AwsCredentialSourceOptions {
|
|
4
|
+
profile?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface AwsCredentialSource {
|
|
7
|
+
profile: string;
|
|
8
|
+
credentialsPath: string;
|
|
9
|
+
configPath: string;
|
|
10
|
+
}
|
|
11
|
+
export type AwsProfileCapability = "static" | "process" | "sso" | undefined;
|
|
12
|
+
export declare function parseAwsIni(text: string): AwsIniFile;
|
|
13
|
+
export declare function resolveAwsCredentialSource(options?: AwsCredentialSourceOptions): AwsCredentialSource;
|
|
14
|
+
export declare function readAwsStaticEnvironmentCredentials(): AwsCredentials | undefined;
|
|
15
|
+
export declare function classifyAwsProfileCapability(profile: string, credentialsIni: AwsIniFile | undefined, configIni: AwsIniFile | undefined): AwsProfileCapability;
|
|
16
|
+
export declare function hasResolvableAwsProfileSource(options?: AwsCredentialSourceOptions & {
|
|
17
|
+
onScan?: () => void;
|
|
18
|
+
}, now?: number): boolean;
|
|
19
|
+
export declare function isValidBedrockBearerToken(token: string | undefined): token is string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS credential resolution for the Bedrock provider.
|
|
3
|
+
*
|
|
4
|
+
* Chain (first hit wins):
|
|
5
|
+
* 1. Static credentials from the environment
|
|
6
|
+
* (`AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY` [+ `AWS_SESSION_TOKEN`]).
|
|
7
|
+
* 2. Profile in `~/.aws/credentials` (and `~/.aws/config` for SSO):
|
|
8
|
+
* - static `aws_access_key_id` / `aws_secret_access_key` / `aws_session_token`
|
|
9
|
+
* - SSO profile referencing a cached token in `~/.aws/sso/cache/*.json`,
|
|
10
|
+
* which we exchange for short-lived role credentials via
|
|
11
|
+
* `https://portal.sso.{region}.amazonaws.com/federation/credentials`.
|
|
12
|
+
* - `credential_process` — an external command emitting the AWS SDK
|
|
13
|
+
* `Version: 1` JSON envelope on stdout. Used by `aws-vault`, `granted`,
|
|
14
|
+
* in-house brokers, etc.
|
|
15
|
+
* 3. EC2 IMDSv2 (only when `AWS_EC2_METADATA_DISABLED` is unset / falsey and
|
|
16
|
+
* `169.254.169.254` is reachable within a 1 s timeout).
|
|
17
|
+
*
|
|
18
|
+
* Resolved credentials are cached process-wide per profile and refreshed
|
|
19
|
+
* 60 s before `Expiration` to absorb clock skew.
|
|
20
|
+
*/
|
|
21
|
+
import type { AwsCredentials } from "./aws-sigv4";
|
|
22
|
+
export interface ResolvedCredentials extends AwsCredentials {
|
|
23
|
+
/** Absolute expiration timestamp in ms. `undefined` for non-expiring static creds. */
|
|
24
|
+
expiresAt?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface CredentialResolveOptions {
|
|
27
|
+
/** Named profile from `~/.aws/credentials` / `~/.aws/config`. */
|
|
28
|
+
profile?: string;
|
|
29
|
+
/** Falls back to env (`AWS_REGION` / `AWS_DEFAULT_REGION`) and finally `us-east-1`. */
|
|
30
|
+
region?: string;
|
|
31
|
+
signal?: AbortSignal;
|
|
32
|
+
}
|
|
33
|
+
export declare function resolveAwsCredentials(opts?: CredentialResolveOptions): Promise<ResolvedCredentials>;
|
|
34
|
+
/** POSIX-shell-style tokenizer used by the AWS CLI for `credential_process`.
|
|
35
|
+
*
|
|
36
|
+
* Outside quotes a backslash escapes the next character. Inside single quotes
|
|
37
|
+
* everything is literal (no escapes, cannot contain `'`). Inside double quotes
|
|
38
|
+
* a backslash only escapes `$`, `` ` ``, `"`, and `\` — every other backslash
|
|
39
|
+
* is preserved verbatim, which is what makes Windows paths like
|
|
40
|
+
* `"C:\Program Files\tool\auth.exe"` survive tokenization. */
|
|
41
|
+
export declare function tokenizeCredentialProcessCommand(cmd: string): string[];
|
|
42
|
+
/** Test/diagnostic helper — drops cached credentials. */
|
|
43
|
+
export declare function clearAwsCredentialCache(): void;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `application/vnd.amazon.eventstream` decoder.
|
|
3
|
+
*
|
|
4
|
+
* Wire format (all integers big-endian):
|
|
5
|
+
*
|
|
6
|
+
* [total length u32]
|
|
7
|
+
* [headers length u32]
|
|
8
|
+
* [prelude CRC32 u32] <- CRC over the first 8 bytes
|
|
9
|
+
* [headers headers_length]
|
|
10
|
+
* [payload total_length - headers_length - 16]
|
|
11
|
+
* [message CRC32 u32] <- CRC over the entire message minus the trailing 4 bytes
|
|
12
|
+
*
|
|
13
|
+
* Headers: a sequence of `[name_len u8][name utf8][value_type u8][value …]`.
|
|
14
|
+
* We only need the typed values Bedrock emits (boolean true/false, byte, short,
|
|
15
|
+
* integer, long, byte-array, string, timestamp, uuid). All are surfaced as
|
|
16
|
+
* strings for ease of consumption — Bedrock only sets string-valued headers in
|
|
17
|
+
* practice (`:event-type`, `:message-type`, `:content-type`, `:exception-type`).
|
|
18
|
+
*/
|
|
19
|
+
export interface EventStreamMessage {
|
|
20
|
+
/** Lower-cased copy is *not* applied — Bedrock uses casing like `:event-type` verbatim. */
|
|
21
|
+
headers: Record<string, string>;
|
|
22
|
+
payload: Uint8Array;
|
|
23
|
+
}
|
|
24
|
+
export declare function crc32(bytes: Uint8Array, seed?: number): number;
|
|
25
|
+
/**
|
|
26
|
+
* Decode a single, fully buffered eventstream message. Throws if the framing is
|
|
27
|
+
* malformed or either CRC mismatches. Used by both `decodeEventStream` (the
|
|
28
|
+
* streaming entry point) and the unit tests, which exercise it with hand-built
|
|
29
|
+
* frames.
|
|
30
|
+
*/
|
|
31
|
+
export declare function decodeMessage(frame: Uint8Array): EventStreamMessage;
|
|
32
|
+
/**
|
|
33
|
+
* Async generator that consumes a `ReadableStream<Uint8Array>` (e.g. a fetch
|
|
34
|
+
* response body) and yields fully-framed messages. Handles arbitrary chunk
|
|
35
|
+
* boundaries: messages may span multiple chunks, and a single chunk may carry
|
|
36
|
+
* many messages.
|
|
37
|
+
*/
|
|
38
|
+
export declare function decodeEventStream(source: ReadableStream<Uint8Array>): AsyncGenerator<EventStreamMessage>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS Signature V4 signing for HTTP requests. WebCrypto-only — no node:crypto.
|
|
3
|
+
*
|
|
4
|
+
* Matches `@smithy/signature-v4` for our usage: header-based signing with a
|
|
5
|
+
* full SHA-256 payload hash (Bedrock requires `applyChecksum: true`).
|
|
6
|
+
*
|
|
7
|
+
* Returns the set of headers to attach to the request:
|
|
8
|
+
* - `host`
|
|
9
|
+
* - `x-amz-date`
|
|
10
|
+
* - `x-amz-content-sha256`
|
|
11
|
+
* - `x-amz-security-token` (only when credentials carry a sessionToken)
|
|
12
|
+
* - `authorization`
|
|
13
|
+
*/
|
|
14
|
+
export interface AwsCredentials {
|
|
15
|
+
accessKeyId: string;
|
|
16
|
+
secretAccessKey: string;
|
|
17
|
+
sessionToken?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SignParams {
|
|
20
|
+
method: string;
|
|
21
|
+
/** Hostname only — used to build the `host` header and the canonical request. */
|
|
22
|
+
host: string;
|
|
23
|
+
/** URI path component, e.g. `/model/anthropic.Anthropic model/converse-stream`. */
|
|
24
|
+
path: string;
|
|
25
|
+
/** Optional pre-built query string (without leading `?`). */
|
|
26
|
+
query?: string;
|
|
27
|
+
/** Extra headers to sign in addition to `host`/`x-amz-*`. Names are case-insensitive. */
|
|
28
|
+
headers?: Record<string, string>;
|
|
29
|
+
body: Uint8Array;
|
|
30
|
+
region: string;
|
|
31
|
+
service: string;
|
|
32
|
+
credentials: AwsCredentials;
|
|
33
|
+
/** Override clock for deterministic tests. */
|
|
34
|
+
date?: Date;
|
|
35
|
+
}
|
|
36
|
+
export declare function toHex(bytes: Uint8Array): string;
|
|
37
|
+
export declare function sha256(data: Uint8Array | string): Promise<Uint8Array>;
|
|
38
|
+
export declare function sha256Hex(data: Uint8Array | string): Promise<string>;
|
|
39
|
+
/**
|
|
40
|
+
* Derive a signing key: HMAC chain `kSecret → kDate → kRegion → kService → kSigning`.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getSigningKey(secretAccessKey: string, shortDate: string, region: string, service: string): Promise<Uint8Array>;
|
|
43
|
+
/** `YYYYMMDDTHHMMSSZ` + 8-char `YYYYMMDD`. */
|
|
44
|
+
export declare function formatAmzDate(d: Date): {
|
|
45
|
+
longDate: string;
|
|
46
|
+
shortDate: string;
|
|
47
|
+
};
|
|
48
|
+
export interface SignedHeaders {
|
|
49
|
+
host: string;
|
|
50
|
+
"x-amz-date": string;
|
|
51
|
+
"x-amz-content-sha256": string;
|
|
52
|
+
authorization: string;
|
|
53
|
+
"x-amz-security-token"?: string;
|
|
54
|
+
}
|
|
55
|
+
export declare function signRequest(params: SignParams): Promise<SignedHeaders>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Model, ServiceTier, StreamFunction, StreamOptions, ToolChoice } from "../types";
|
|
2
|
+
export interface AzureOpenAIResponsesOptions extends StreamOptions {
|
|
3
|
+
reasoning?: "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
|
|
4
|
+
reasoningSummary?: "auto" | "detailed" | "concise" | null;
|
|
5
|
+
azureApiVersion?: string;
|
|
6
|
+
azureResourceName?: string;
|
|
7
|
+
azureBaseUrl?: string;
|
|
8
|
+
azureDeploymentName?: string;
|
|
9
|
+
toolChoice?: ToolChoice;
|
|
10
|
+
serviceTier?: ServiceTier;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Generate function for Azure OpenAI Responses API
|
|
14
|
+
*/
|
|
15
|
+
export declare const streamAzureOpenAIResponses: StreamFunction<"azure-openai-responses">;
|
|
16
|
+
/** Test seam: the Azure endpoint config as resolved from trusted env. */
|
|
17
|
+
export declare function resolveAzureConfigForTest(model: Model<"azure-openai-responses">, options?: AzureOpenAIResponsesOptions): {
|
|
18
|
+
baseUrl: string;
|
|
19
|
+
apiVersion: string;
|
|
20
|
+
};
|
|
21
|
+
/** Test seam: the client API key as resolved from a caller value plus trusted env. */
|
|
22
|
+
export declare function resolveAzureClientApiKeyForTest(apiKey: string): string | undefined;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare function isComposerHarnessModel(modelId: string): boolean;
|
|
2
|
+
/** Stable text contract for a local shell rejection caused by Composer file-I/O discipline. */
|
|
3
|
+
export declare const COMPOSER_BASH_POLICY_ERROR_PREFIX = "Composer bash policy blocked repository file I/O.";
|
|
4
|
+
export declare const COMPOSER_BASH_POLICY_ERROR_CODE = "composer-bash-policy:repository-file-io";
|
|
5
|
+
export type ComposerBashPolicyToolSurface = "generic" | "cursor";
|
|
6
|
+
/**
|
|
7
|
+
* Format the model-visible policy rejection with a stable marker and the tool
|
|
8
|
+
* vocabulary the model actually receives on this provider surface.
|
|
9
|
+
*/
|
|
10
|
+
export declare function formatComposerBashPolicyError(surface?: ComposerBashPolicyToolSurface): string;
|
|
11
|
+
/**
|
|
12
|
+
* Matches both the structured current error and the original prefix so a
|
|
13
|
+
* resumed session can recover after an upgrade without string-version skew.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isComposerBashPolicyBlockedError(text: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Matches only errors emitted directly by the current policy implementation.
|
|
18
|
+
* Live recovery must use this strict form so failed shell output that merely
|
|
19
|
+
* quotes a policy error cannot masquerade as the policy gate itself.
|
|
20
|
+
*/
|
|
21
|
+
export declare function isCurrentComposerBashPolicyBlockedError(text: string): boolean;
|
|
22
|
+
/** One bounded, tool-enabled retry instruction for generic Composer agent loops. */
|
|
23
|
+
export declare const COMPOSER_BASH_POLICY_RECOVERY_PROMPT: string;
|
|
24
|
+
/** One bounded, tool-enabled retry instruction for Cursor's native remote tool surface. */
|
|
25
|
+
export declare const CURSOR_COMPOSER_BASH_POLICY_RECOVERY_PROMPT: string;
|
|
26
|
+
export declare const COMPOSER_EDIT_DISCIPLINE_PROMPT = "File-editing discipline for this Composer harness (this OVERRIDES contrary habits from your training):\n\n- Discover file names ONLY with the find tool; search file contents ONLY with the search tool; read file bodies or line ranges ONLY with the read tool. NEVER inspect repository files through shell commands (ls, find, fd, cat, sed, awk, grep, rg, head, tail, less, more) or scripts \u2014 that output carries no hashline anchors and bypasses the agent's safety limits.\n- Modify files ONLY with the edit/write tools. NEVER mutate files through shell redirection, tee, sed -i, perl -pi, inline python/node/bun scripts, or other out-of-band writes \u2014 those writes invalidate every known anchor and break edit recovery.\n- A line anchor (e.g. \"42sr\") is a line number plus a 2-char content hash. You CANNOT compute the hash yourself: copy anchors verbatim from the MOST RECENT read/search/edit output of that exact file. NEVER guess, renumber, or arithmetically shift an anchor.\n- After ANY edit to a file (including your own), anchors you saw earlier are stale. Re-read the edited region, or copy the fresh anchors printed in the edit result, before issuing the next edit.\n- If an edit is rejected with \"anchors do not match\", the rejection message prints the current lines WITH fresh anchors. Retry using exactly those printed anchors.\n- Tool-call arguments must be the exact JSON/schema object requested by the tool. Do not include Markdown, commentary, analysis text, or invented fields inside tool arguments.\n- Use bash only for terminal operations such as tests, builds, package scripts, and git commands. A shell command string must contain only the command itself; NEVER interleave reasoning or commentary into command strings or heredocs.";
|
|
27
|
+
/**
|
|
28
|
+
* Cursor executes a different native tool vocabulary from the generic agent
|
|
29
|
+
* loop. Keep this prompt separate so Composer is never told to call `edit`,
|
|
30
|
+
* `find`, or `search` when those names are unavailable remotely.
|
|
31
|
+
*/
|
|
32
|
+
export declare const CURSOR_COMPOSER_EDIT_DISCIPLINE_PROMPT: string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Cursor client version reported to api2.cursor.sh.
|
|
3
|
+
*
|
|
4
|
+
* Every call against the Cursor backend must send the same
|
|
5
|
+
* x-cursor-client-version: the backend gates features and minimum versions on
|
|
6
|
+
* it, so a drift between the agent Run path and model discovery makes one of
|
|
7
|
+
* them fail while the other keeps working. Keep this as the single source of
|
|
8
|
+
* truth for the header value.
|
|
9
|
+
*/
|
|
10
|
+
export declare const CURSOR_CLIENT_VERSION = "cli-2026.02.13-41ac335";
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proto builders for the modern Cursor CLI exec frames (`ExecServerMessage`
|
|
3
|
+
* 27-31, 36-38, 40-55).
|
|
4
|
+
*
|
|
5
|
+
* Split out of `cursor.ts` because these are pure `create(...)` shapes with no
|
|
6
|
+
* transport, stream, or block-state coupling: the dispatcher decides *which*
|
|
7
|
+
* answer a frame gets, this module knows *what* that answer looks like on the
|
|
8
|
+
* wire. Every builder returns a result whose oneof case is set — an
|
|
9
|
+
* `ExecClientMessage` carrying a result with an unset oneof is a fake success
|
|
10
|
+
* the server reads as "the tool ran and produced nothing".
|
|
11
|
+
*/
|
|
12
|
+
import type { ToolResultMessage } from "../../types";
|
|
13
|
+
import { type ExecuteHookRequest, type ExecuteHookResult, type McpStateExecResult, type McpToolDefinition, type PiBashExecResult, type PiEditExecResult, type PiFindExecResult, type PiGrepExecResult, type PiLsExecResult, type PiReadExecResult, type PiTruncation, type PiWriteExecResult } from "./gen/agent_pb";
|
|
14
|
+
/**
|
|
15
|
+
* The pure arg translation lives in `../cursor-pi-args` so the legacy pi shim
|
|
16
|
+
* can share it without pulling this module's protobuf graph into the bundled
|
|
17
|
+
* virtual registry. Re-exported here because this is where the frame builders
|
|
18
|
+
* and their translation are consumed together.
|
|
19
|
+
*/
|
|
20
|
+
export { omitUndefinedArgs, piEscapeRegexLiteral, piGrepSkip, piJoinPath, piLimit, piLsPath, piReadDisplayPath, piReadPath, piReadPathHasRange, piTimeout, } from "../cursor-pi-args";
|
|
21
|
+
/** Flatten a tool result's content into the single `output` string the Pi frames carry. */
|
|
22
|
+
export declare function piOutputText(toolResult: ToolResultMessage): string;
|
|
23
|
+
/**
|
|
24
|
+
* Translate a local tool's truncation summary into `PiTruncation`.
|
|
25
|
+
*
|
|
26
|
+
* Two shapes reach here. `read`/`grep` set `details.truncation`
|
|
27
|
+
* (`TruncationResult`), which carries an explicit `truncated` boolean. `bash`
|
|
28
|
+
* sets `details.meta.truncation` (`TruncationMeta`), which has **no** such
|
|
29
|
+
* flag — its presence *is* the signal, and requiring the boolean silently
|
|
30
|
+
* dropped every Bash truncation, handing Cursor clipped output with no notice
|
|
31
|
+
* that it was clipped.
|
|
32
|
+
*
|
|
33
|
+
* Returns `undefined` when nothing was truncated: the field is `optional` on
|
|
34
|
+
* every Pi success message, and emitting a zeroed `PiTruncation` would tell the
|
|
35
|
+
* server the output was trimmed to nothing.
|
|
36
|
+
*/
|
|
37
|
+
export declare function piTruncation(toolResult: ToolResultMessage): PiTruncation | undefined;
|
|
38
|
+
export declare function buildPiReadResult(toolResult: ToolResultMessage): PiReadExecResult;
|
|
39
|
+
export declare function buildPiReadError(error: string): PiReadExecResult;
|
|
40
|
+
export declare function buildPiBashResult(toolResult: ToolResultMessage): PiBashExecResult;
|
|
41
|
+
export declare function buildPiBashError(error: string): PiBashExecResult;
|
|
42
|
+
/**
|
|
43
|
+
* `PiEditExecSuccess` requires `diff` and `patch` alongside `output`. The local
|
|
44
|
+
* `edit` tool reports them under `details`; when it does not, the strings stay
|
|
45
|
+
* empty rather than being faked from the output text.
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildPiEditResult(toolResult: ToolResultMessage): PiEditExecResult;
|
|
48
|
+
export declare function buildPiEditError(error: string): PiEditExecResult;
|
|
49
|
+
/**
|
|
50
|
+
* A refusal is not an execution failure: `PiEditExecResult` models them as
|
|
51
|
+
* separate variants, and answering a denied call with `error` reads as "the
|
|
52
|
+
* edit ran and broke", which invites a retry of an operation that was never
|
|
53
|
+
* permitted.
|
|
54
|
+
*/
|
|
55
|
+
export declare function buildPiEditRejected(reason: string): PiEditExecResult;
|
|
56
|
+
export declare function buildPiWriteResult(toolResult: ToolResultMessage): PiWriteExecResult;
|
|
57
|
+
export declare function buildPiWriteError(error: string): PiWriteExecResult;
|
|
58
|
+
/** Same variant split as {@link buildPiEditRejected}. */
|
|
59
|
+
export declare function buildPiWriteRejected(reason: string): PiWriteExecResult;
|
|
60
|
+
export declare function buildPiGrepResult(toolResult: ToolResultMessage): PiGrepExecResult;
|
|
61
|
+
export declare function buildPiGrepError(error: string): PiGrepExecResult;
|
|
62
|
+
export declare function buildPiFindResult(toolResult: ToolResultMessage): PiFindExecResult;
|
|
63
|
+
export declare function buildPiFindError(error: string): PiFindExecResult;
|
|
64
|
+
export declare function buildPiLsResult(toolResult: ToolResultMessage): PiLsExecResult;
|
|
65
|
+
export declare function buildPiLsError(error: string): PiLsExecResult;
|
|
66
|
+
/**
|
|
67
|
+
* Answer `mcpStateExecArgs` (frame 36) from the catalog already advertised in
|
|
68
|
+
* `RequestContext.tools`.
|
|
69
|
+
*
|
|
70
|
+
* This client hosts no MCP servers of its own: every forwarded tool is a local
|
|
71
|
+
* pi-agent tool published under a synthetic `providerIdentifier`. Regrouping
|
|
72
|
+
* the same list keeps the server's view of "which servers exist and what do
|
|
73
|
+
* they expose" consistent with what it was told at context time, instead of
|
|
74
|
+
* claiming zero servers while tool calls for them keep arriving.
|
|
75
|
+
*
|
|
76
|
+
* `serverIdentifiers` filters the answer when the server asks about specific
|
|
77
|
+
* servers. `kickOnly` is a restart request — there is nothing to restart, so it
|
|
78
|
+
* is answered with the same state rather than an error.
|
|
79
|
+
*/
|
|
80
|
+
export declare function buildMcpStateResult(tools: McpToolDefinition[], serverIdentifiers: readonly string[]): McpStateExecResult;
|
|
81
|
+
/**
|
|
82
|
+
* Build the neutral response for a hook query: the matching response case with
|
|
83
|
+
* every field unset.
|
|
84
|
+
*
|
|
85
|
+
* This client runs no Cursor hooks, and every field of every response variant
|
|
86
|
+
* is `optional` — so an empty response of the right case means "no hook had
|
|
87
|
+
* anything to say", which is exactly true. It is NOT the unset-oneof fake
|
|
88
|
+
* success: the case itself is set, only the payload is empty.
|
|
89
|
+
*
|
|
90
|
+
* `ExecuteHookRequest` and `ExecuteHookResponse` are parallel oneofs whose case
|
|
91
|
+
* names line up, but the two unions are unrelated to the compiler: a `switch`
|
|
92
|
+
* is what makes each pairing individually type-checked, and it forces a
|
|
93
|
+
* deliberate branch when a future regen adds a request case.
|
|
94
|
+
*
|
|
95
|
+
* Returns `null` for a request case this build does not model, which the
|
|
96
|
+
* dispatcher answers with `ExecClientThrow` rather than guessing a case.
|
|
97
|
+
*/
|
|
98
|
+
export declare function buildNeutralHookResult(request: ExecuteHookRequest | undefined): ExecuteHookResult | null;
|