@linxiraos/pi-ai 1.0.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 +5066 -0
- package/README.md +1195 -0
- package/dist/types/api-registry.d.ts +30 -0
- package/dist/types/auth/sqlite-credential-store.d.ts +117 -0
- package/dist/types/auth-broker/client.d.ts +93 -0
- package/dist/types/auth-broker/discover.d.ts +39 -0
- package/dist/types/auth-broker/index.d.ts +7 -0
- package/dist/types/auth-broker/refresher.d.ts +25 -0
- package/dist/types/auth-broker/remote-store.d.ts +136 -0
- package/dist/types/auth-broker/server.d.ts +48 -0
- package/dist/types/auth-broker/snapshot-cache.d.ts +17 -0
- package/dist/types/auth-broker/types.d.ts +152 -0
- package/dist/types/auth-broker/wire-schema-resource.d.ts +53 -0
- package/dist/types/auth-broker/wire-schemas.d.ts +5 -0
- package/dist/types/auth-gateway/http.d.ts +56 -0
- package/dist/types/auth-gateway/index.d.ts +3 -0
- package/dist/types/auth-gateway/server.d.ts +36 -0
- package/dist/types/auth-gateway/types.d.ts +127 -0
- package/dist/types/auth-retry.d.ts +150 -0
- package/dist/types/auth-storage.d.ts +1258 -0
- package/dist/types/dialect/anthropic.d.ts +15 -0
- package/dist/types/dialect/catalog.d.ts +3 -0
- package/dist/types/dialect/coercion.d.ts +23 -0
- package/dist/types/dialect/deepseek.d.ts +14 -0
- package/dist/types/dialect/demotion.d.ts +30 -0
- package/dist/types/dialect/examples.d.ts +18 -0
- package/dist/types/dialect/factory.d.ts +3 -0
- package/dist/types/dialect/fenced-thinking.d.ts +53 -0
- package/dist/types/dialect/gemini.d.ts +17 -0
- package/dist/types/dialect/gemma.d.ts +15 -0
- package/dist/types/dialect/glm.d.ts +9 -0
- package/dist/types/dialect/harmony.d.ts +8 -0
- package/dist/types/dialect/hermes.d.ts +9 -0
- package/dist/types/dialect/history.d.ts +3 -0
- package/dist/types/dialect/index.d.ts +11 -0
- package/dist/types/dialect/inventory.d.ts +9 -0
- package/dist/types/dialect/kimi.d.ts +14 -0
- package/dist/types/dialect/minimax.d.ts +3 -0
- package/dist/types/dialect/owned-stream.d.ts +4 -0
- package/dist/types/dialect/qwen3.d.ts +9 -0
- package/dist/types/dialect/rendering.d.ts +54 -0
- package/dist/types/dialect/thinking.d.ts +6 -0
- package/dist/types/dialect/types.d.ts +68 -0
- package/dist/types/dialect/xml.d.ts +9 -0
- package/dist/types/error/abort.d.ts +14 -0
- package/dist/types/error/auth-classify.d.ts +20 -0
- package/dist/types/error/auth.d.ts +27 -0
- package/dist/types/error/aws.d.ts +27 -0
- package/dist/types/error/classes.d.ts +106 -0
- package/dist/types/error/finalize.d.ts +39 -0
- package/dist/types/error/flags.d.ts +94 -0
- package/dist/types/error/format.d.ts +20 -0
- package/dist/types/error/gateway.d.ts +20 -0
- package/dist/types/error/index.d.ts +14 -0
- package/dist/types/error/oauth.d.ts +43 -0
- package/dist/types/error/provider.d.ts +42 -0
- package/dist/types/error/rate-limit.d.ts +80 -0
- package/dist/types/error/retryable.d.ts +27 -0
- package/dist/types/error/validation.d.ts +32 -0
- package/dist/types/index.d.ts +51 -0
- package/dist/types/provider-details.d.ts +24 -0
- package/dist/types/providers/amazon-bedrock.d.ts +39 -0
- package/dist/types/providers/anthropic-client.d.ts +106 -0
- package/dist/types/providers/anthropic-messages-server-schema.d.ts +937 -0
- package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
- package/dist/types/providers/anthropic-wire.d.ts +345 -0
- package/dist/types/providers/anthropic.d.ts +261 -0
- package/dist/types/providers/aws-credentials.d.ts +48 -0
- package/dist/types/providers/aws-eventstream.d.ts +39 -0
- package/dist/types/providers/aws-sigv4.d.ts +55 -0
- package/dist/types/providers/azure-openai-responses.d.ts +16 -0
- package/dist/types/providers/bedrock-mantle.d.ts +13 -0
- package/dist/types/providers/claude-code-fingerprint.d.ts +19 -0
- package/dist/types/providers/cowork-fetch.d.ts +3 -0
- package/dist/types/providers/cursor/exec-modern.d.ts +98 -0
- package/dist/types/providers/cursor-pi-args.d.ts +105 -0
- package/dist/types/providers/cursor.d.ts +221 -0
- package/dist/types/providers/devin.d.ts +12 -0
- package/dist/types/providers/error-message.d.ts +25 -0
- package/dist/types/providers/github-copilot-headers.d.ts +40 -0
- package/dist/types/providers/gitlab-duo-workflow.d.ts +254 -0
- package/dist/types/providers/gitlab-duo.d.ts +27 -0
- package/dist/types/providers/google-auth.d.ts +24 -0
- package/dist/types/providers/google-gemini-cli.d.ts +120 -0
- package/dist/types/providers/google-shared.d.ts +203 -0
- package/dist/types/providers/google-types.d.ts +155 -0
- package/dist/types/providers/google-vertex.d.ts +7 -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/mock.d.ts +179 -0
- package/dist/types/providers/ollama.d.ts +8 -0
- package/dist/types/providers/openai-anthropic-shim.d.ts +35 -0
- package/dist/types/providers/openai-chat-server-schema.d.ts +1311 -0
- package/dist/types/providers/openai-chat-server.d.ts +16 -0
- package/dist/types/providers/openai-chat-wire.d.ts +669 -0
- package/dist/types/providers/openai-codex/request-transformer.d.ts +109 -0
- package/dist/types/providers/openai-codex/response-handler.d.ts +26 -0
- package/dist/types/providers/openai-codex-responses.d.ts +238 -0
- package/dist/types/providers/openai-completions.d.ts +48 -0
- package/dist/types/providers/openai-reasoning-fallback.d.ts +25 -0
- package/dist/types/providers/openai-responses-server-schema.d.ts +1314 -0
- package/dist/types/providers/openai-responses-server.d.ts +17 -0
- package/dist/types/providers/openai-responses-wire.d.ts +6099 -0
- package/dist/types/providers/openai-responses.d.ts +131 -0
- package/dist/types/providers/openai-shared.d.ts +624 -0
- package/dist/types/providers/pi-native-client.d.ts +13 -0
- package/dist/types/providers/pi-native-server.d.ts +69 -0
- package/dist/types/providers/register-builtins.d.ts +37 -0
- package/dist/types/providers/synthetic.d.ts +26 -0
- package/dist/types/providers/transform-messages.d.ts +32 -0
- package/dist/types/providers/vision-guard.d.ts +20 -0
- package/dist/types/registry/aiand.d.ts +7 -0
- package/dist/types/registry/aimlapi.d.ts +4 -0
- package/dist/types/registry/alibaba-coding-plan.d.ts +8 -0
- package/dist/types/registry/alibaba-token-plan.d.ts +18 -0
- package/dist/types/registry/amazon-bedrock.d.ts +5 -0
- package/dist/types/registry/anthropic.d.ts +10 -0
- package/dist/types/registry/api-key-login.d.ts +42 -0
- package/dist/types/registry/api-key-validation.d.ts +43 -0
- package/dist/types/registry/aws.d.ts +13 -0
- package/dist/types/registry/azure.d.ts +4 -0
- package/dist/types/registry/baseten.d.ts +7 -0
- package/dist/types/registry/bedrock-mantle.d.ts +22 -0
- package/dist/types/registry/cerebras.d.ts +7 -0
- package/dist/types/registry/cloudflare-ai-gateway.d.ts +13 -0
- package/dist/types/registry/coreweave.d.ts +7 -0
- package/dist/types/registry/cursor.d.ts +7 -0
- package/dist/types/registry/deepseek.d.ts +8 -0
- package/dist/types/registry/derived.d.ts +5 -0
- package/dist/types/registry/devin.d.ts +8 -0
- package/dist/types/registry/exa.d.ts +8 -0
- package/dist/types/registry/firepass.d.ts +16 -0
- package/dist/types/registry/fireworks.d.ts +7 -0
- package/dist/types/registry/github-copilot.d.ts +7 -0
- package/dist/types/registry/gitlab-duo-workflow.d.ts +10 -0
- package/dist/types/registry/gitlab-duo.d.ts +9 -0
- package/dist/types/registry/gmi-cloud.d.ts +7 -0
- package/dist/types/registry/google-antigravity.d.ts +9 -0
- package/dist/types/registry/google-gemini-cli.d.ts +9 -0
- package/dist/types/registry/google-vertex.d.ts +5 -0
- package/dist/types/registry/google.d.ts +4 -0
- package/dist/types/registry/groq.d.ts +4 -0
- package/dist/types/registry/huggingface.d.ts +7 -0
- package/dist/types/registry/index.d.ts +4 -0
- package/dist/types/registry/kagi.d.ts +14 -0
- package/dist/types/registry/kilo.d.ts +7 -0
- package/dist/types/registry/kimi-code.d.ts +7 -0
- package/dist/types/registry/litellm.d.ts +13 -0
- package/dist/types/registry/llama-cpp.d.ts +8 -0
- package/dist/types/registry/lm-studio.d.ts +8 -0
- package/dist/types/registry/meta.d.ts +7 -0
- package/dist/types/registry/minimax-code-cn.d.ts +6 -0
- package/dist/types/registry/minimax-code.d.ts +6 -0
- package/dist/types/registry/minimax.d.ts +4 -0
- package/dist/types/registry/mistral.d.ts +4 -0
- package/dist/types/registry/moonshot.d.ts +7 -0
- package/dist/types/registry/nanogpt.d.ts +7 -0
- package/dist/types/registry/novita.d.ts +6 -0
- package/dist/types/registry/nvidia.d.ts +7 -0
- package/dist/types/registry/oauth/anthropic-constants.d.ts +12 -0
- package/dist/types/registry/oauth/anthropic.d.ts +24 -0
- package/dist/types/registry/oauth/callback-server.d.ts +74 -0
- package/dist/types/registry/oauth/cursor.d.ts +16 -0
- package/dist/types/registry/oauth/device-code.d.ts +25 -0
- package/dist/types/registry/oauth/devin.d.ts +5 -0
- package/dist/types/registry/oauth/github-copilot.d.ts +30 -0
- package/dist/types/registry/oauth/gitlab-duo-workflow.d.ts +6 -0
- package/dist/types/registry/oauth/gitlab-duo.d.ts +3 -0
- package/dist/types/registry/oauth/google-antigravity.d.ts +11 -0
- package/dist/types/registry/oauth/google-gemini-cli.d.ts +22 -0
- package/dist/types/registry/oauth/google-oauth-shared.d.ts +56 -0
- package/dist/types/registry/oauth/index.d.ts +45 -0
- package/dist/types/registry/oauth/kimi.d.ts +21 -0
- package/dist/types/registry/oauth/minimax-code.d.ts +27 -0
- package/dist/types/registry/oauth/openai-codex.d.ts +33 -0
- package/dist/types/registry/oauth/opencode.d.ts +18 -0
- package/dist/types/registry/oauth/perplexity.d.ts +9 -0
- package/dist/types/registry/oauth/pkce.d.ts +8 -0
- package/dist/types/registry/oauth/types.d.ts +87 -0
- package/dist/types/registry/oauth/wafer.d.ts +1 -0
- package/dist/types/registry/oauth/xai-oauth.d.ts +46 -0
- package/dist/types/registry/oauth/xiaomi.d.ts +25 -0
- package/dist/types/registry/oauth/zai.d.ts +25 -0
- package/dist/types/registry/ollama-cloud.d.ts +7 -0
- package/dist/types/registry/ollama.d.ts +12 -0
- package/dist/types/registry/openai-codex-device.d.ts +8 -0
- package/dist/types/registry/openai-codex.d.ts +9 -0
- package/dist/types/registry/openai.d.ts +4 -0
- package/dist/types/registry/opencode-go.d.ts +6 -0
- package/dist/types/registry/opencode-zen.d.ts +6 -0
- package/dist/types/registry/openrouter.d.ts +13 -0
- package/dist/types/registry/parallel.d.ts +14 -0
- package/dist/types/registry/perplexity.d.ts +7 -0
- package/dist/types/registry/qianfan.d.ts +7 -0
- package/dist/types/registry/qwen-portal.d.ts +7 -0
- package/dist/types/registry/registry.d.ts +367 -0
- package/dist/types/registry/sakana.d.ts +7 -0
- package/dist/types/registry/siliconflow-cn.d.ts +7 -0
- package/dist/types/registry/siliconflow.d.ts +7 -0
- package/dist/types/registry/synthetic.d.ts +6 -0
- package/dist/types/registry/tavily.d.ts +14 -0
- package/dist/types/registry/together.d.ts +6 -0
- package/dist/types/registry/types.d.ts +75 -0
- package/dist/types/registry/umans.d.ts +7 -0
- package/dist/types/registry/venice.d.ts +13 -0
- package/dist/types/registry/vercel-ai-gateway.d.ts +7 -0
- package/dist/types/registry/vllm.d.ts +7 -0
- package/dist/types/registry/wafer-serverless.d.ts +6 -0
- package/dist/types/registry/xai-oauth.d.ts +7 -0
- package/dist/types/registry/xai.d.ts +7 -0
- package/dist/types/registry/xiaomi-token-plan-ams.d.ts +6 -0
- package/dist/types/registry/xiaomi-token-plan-cn.d.ts +6 -0
- package/dist/types/registry/xiaomi-token-plan-sgp.d.ts +6 -0
- package/dist/types/registry/xiaomi.d.ts +6 -0
- package/dist/types/registry/zai.d.ts +15 -0
- package/dist/types/registry/zenmux.d.ts +7 -0
- package/dist/types/registry/zhipu-coding-plan.d.ts +7 -0
- package/dist/types/stream.d.ts +46 -0
- package/dist/types/types.d.ts +1064 -0
- package/dist/types/usage/alibaba-token-plan.d.ts +3 -0
- package/dist/types/usage/claude.d.ts +4 -0
- package/dist/types/usage/cursor.d.ts +4 -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 +15 -0
- package/dist/types/usage/kimi.d.ts +2 -0
- package/dist/types/usage/minimax-code.d.ts +3 -0
- package/dist/types/usage/ollama.d.ts +5 -0
- package/dist/types/usage/openai-codex-base-url.d.ts +18 -0
- package/dist/types/usage/openai-codex-reset.d.ts +88 -0
- package/dist/types/usage/openai-codex.d.ts +10 -0
- package/dist/types/usage/opencode-go.d.ts +2 -0
- package/dist/types/usage/shared.d.ts +1 -0
- package/dist/types/usage/synthetic.d.ts +2 -0
- package/dist/types/usage/umans.d.ts +2 -0
- package/dist/types/usage/xai-oauth.d.ts +12 -0
- package/dist/types/usage/zai.d.ts +3 -0
- package/dist/types/usage.d.ts +527 -0
- package/dist/types/utils/abort.d.ts +25 -0
- package/dist/types/utils/anthropic-auth.d.ts +35 -0
- package/dist/types/utils/aws-profile.d.ts +17 -0
- package/dist/types/utils/block-symbols.d.ts +62 -0
- package/dist/types/utils/deterministic-id.d.ts +16 -0
- package/dist/types/utils/empty-completion-retry.d.ts +21 -0
- package/dist/types/utils/event-stream.d.ts +39 -0
- package/dist/types/utils/foundry.d.ts +1 -0
- package/dist/types/utils/google-validation.d.ts +2 -0
- package/dist/types/utils/harmony-leak.d.ts +135 -0
- package/dist/types/utils/http-inspector.d.ts +49 -0
- package/dist/types/utils/idle-iterator.d.ts +149 -0
- package/dist/types/utils/leaked-thinking-stream.d.ts +33 -0
- package/dist/types/utils/openai-http.d.ts +48 -0
- package/dist/types/utils/openrouter-headers.d.ts +1 -0
- package/dist/types/utils/parse-bind.d.ts +23 -0
- package/dist/types/utils/provider-response.d.ts +3 -0
- package/dist/types/utils/proxy.d.ts +39 -0
- package/dist/types/utils/request-debug.d.ts +29 -0
- package/dist/types/utils/retry-after.d.ts +4 -0
- package/dist/types/utils/retry.d.ts +14 -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 +54 -0
- package/dist/types/utils/schema/index.d.ts +14 -0
- package/dist/types/utils/schema/json-schema-validator.d.ts +20 -0
- package/dist/types/utils/schema/meta-validator.d.ts +2 -0
- package/dist/types/utils/schema/normalize.d.ts +153 -0
- package/dist/types/utils/schema/spill.d.ts +8 -0
- package/dist/types/utils/schema/stamps.d.ts +17 -0
- package/dist/types/utils/schema/strict-tool-validation.d.ts +16 -0
- package/dist/types/utils/schema/types.d.ts +4 -0
- package/dist/types/utils/schema/typescript.d.ts +24 -0
- package/dist/types/utils/schema/wire.d.ts +52 -0
- package/dist/types/utils/sdk-stream-timeout.d.ts +33 -0
- package/dist/types/utils/sse-debug.d.ts +5 -0
- package/dist/types/utils/stream-markup-healing.d.ts +87 -0
- package/dist/types/utils/thinking-loop.d.ts +102 -0
- package/dist/types/utils/tool-call-loop-guard.d.ts +26 -0
- package/dist/types/utils/tool-choice.d.ts +52 -0
- package/dist/types/utils/validation.d.ts +28 -0
- package/dist/types/utils.d.ts +57 -0
- package/package.json +138 -0
- package/src/api-registry.ts +109 -0
- package/src/auth/sqlite-credential-store.ts +2066 -0
- package/src/auth-broker/client.ts +471 -0
- package/src/auth-broker/discover.ts +310 -0
- package/src/auth-broker/index.ts +7 -0
- package/src/auth-broker/refresher.ts +117 -0
- package/src/auth-broker/remote-store.ts +1332 -0
- package/src/auth-broker/server.ts +898 -0
- package/src/auth-broker/snapshot-cache.ts +200 -0
- package/src/auth-broker/types.ts +193 -0
- package/src/auth-broker/wire-schema-resource.ts +487 -0
- package/src/auth-broker/wire-schemas.ts +43 -0
- package/src/auth-gateway/http.ts +227 -0
- package/src/auth-gateway/index.ts +3 -0
- package/src/auth-gateway/server.ts +836 -0
- package/src/auth-gateway/types.ts +153 -0
- package/src/auth-retry.ts +401 -0
- package/src/auth-storage.ts +6540 -0
- package/src/dialect/anthropic.md +31 -0
- package/src/dialect/anthropic.ts +608 -0
- package/src/dialect/catalog.ts +29 -0
- package/src/dialect/coercion.ts +136 -0
- package/src/dialect/deepseek.md +24 -0
- package/src/dialect/deepseek.ts +609 -0
- package/src/dialect/demotion.ts +40 -0
- package/src/dialect/examples.ts +71 -0
- package/src/dialect/factory.ts +34 -0
- package/src/dialect/fenced-thinking.ts +184 -0
- package/src/dialect/gemini.md +44 -0
- package/src/dialect/gemini.ts +583 -0
- package/src/dialect/gemma.md +33 -0
- package/src/dialect/gemma.ts +387 -0
- package/src/dialect/glm.md +32 -0
- package/src/dialect/glm.ts +579 -0
- package/src/dialect/harmony.md +31 -0
- package/src/dialect/harmony.ts +345 -0
- package/src/dialect/hermes.md +25 -0
- package/src/dialect/hermes.ts +206 -0
- package/src/dialect/history.ts +81 -0
- package/src/dialect/index.ts +15 -0
- package/src/dialect/inventory.ts +30 -0
- package/src/dialect/kimi.md +24 -0
- package/src/dialect/kimi.ts +340 -0
- package/src/dialect/minimax.md +31 -0
- package/src/dialect/minimax.ts +95 -0
- package/src/dialect/owned-stream.ts +481 -0
- package/src/dialect/prompt-template.md +12 -0
- package/src/dialect/qwen3.md +28 -0
- package/src/dialect/qwen3.ts +240 -0
- package/src/dialect/rendering.ts +304 -0
- package/src/dialect/thinking.ts +292 -0
- package/src/dialect/types.ts +56 -0
- package/src/dialect/xml.md +22 -0
- package/src/dialect/xml.ts +90 -0
- package/src/error/abort.ts +18 -0
- package/src/error/auth-classify.ts +47 -0
- package/src/error/auth.ts +48 -0
- package/src/error/aws.ts +35 -0
- package/src/error/classes.ts +281 -0
- package/src/error/finalize.ts +69 -0
- package/src/error/flags.ts +602 -0
- package/src/error/format.ts +45 -0
- package/src/error/gateway.ts +96 -0
- package/src/error/index.ts +14 -0
- package/src/error/oauth.ts +58 -0
- package/src/error/provider.ts +63 -0
- package/src/error/rate-limit.ts +303 -0
- package/src/error/retryable.ts +70 -0
- package/src/error/validation.ts +44 -0
- package/src/index.ts +51 -0
- package/src/provider-details.ts +90 -0
- package/src/providers/amazon-bedrock.ts +1064 -0
- package/src/providers/anthropic-client.ts +317 -0
- package/src/providers/anthropic-messages-server-schema.ts +252 -0
- package/src/providers/anthropic-messages-server.ts +818 -0
- package/src/providers/anthropic-wire.ts +359 -0
- package/src/providers/anthropic.ts +4539 -0
- package/src/providers/aws-credentials.ts +772 -0
- package/src/providers/aws-eventstream.ts +181 -0
- package/src/providers/aws-sigv4.ts +218 -0
- package/src/providers/azure-openai-responses.ts +438 -0
- package/src/providers/bedrock-mantle.ts +110 -0
- package/src/providers/claude-code-fingerprint.ts +20 -0
- package/src/providers/cowork-fetch.ts +201 -0
- package/src/providers/cursor/exec-modern.ts +496 -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.ts +165 -0
- package/src/providers/cursor.ts +4689 -0
- package/src/providers/devin/proto/buf/validate/validate.proto +468 -0
- package/src/providers/devin/proto/buf.gen.yaml +33 -0
- package/src/providers/devin/proto/buf.yaml +17 -0
- package/src/providers/devin/proto/cel/expr/checked.proto +103 -0
- package/src/providers/devin/proto/cel/expr/eval.proto +38 -0
- package/src/providers/devin/proto/cel/expr/explain.proto +15 -0
- package/src/providers/devin/proto/cel/expr/syntax.proto +113 -0
- package/src/providers/devin/proto/cel/expr/value.proto +41 -0
- package/src/providers/devin/proto/connectext/grpc/status/v1/status.proto +11 -0
- package/src/providers/devin/proto/errorspb/errors.proto +56 -0
- package/src/providers/devin/proto/errorspb/hintdetail.proto +7 -0
- package/src/providers/devin/proto/errorspb/markers.proto +10 -0
- package/src/providers/devin/proto/errorspb/tags.proto +12 -0
- package/src/providers/devin/proto/errorspb/testing.proto +6 -0
- package/src/providers/devin/proto/exa/analytics_pb/analytics.proto +188 -0
- package/src/providers/devin/proto/exa/api_server_pb/api_server.proto +2461 -0
- package/src/providers/devin/proto/exa/auth_pb/auth.proto +19 -0
- package/src/providers/devin/proto/exa/auto_cascade_common_pb/auto_cascade_common.proto +79 -0
- package/src/providers/devin/proto/exa/browser_preview_pb/browser_preview.proto +32 -0
- package/src/providers/devin/proto/exa/bug_checker_pb/bug_checker.proto +22 -0
- package/src/providers/devin/proto/exa/cascade_plugins_pb/cascade_plugins.proto +262 -0
- package/src/providers/devin/proto/exa/chat_client_server_pb/chat_client_server.proto +57 -0
- package/src/providers/devin/proto/exa/chat_pb/chat.proto +449 -0
- package/src/providers/devin/proto/exa/code_edit/code_edit_pb/code_edit.proto +186 -0
- package/src/providers/devin/proto/exa/codeium_common_pb/codeium_common.proto +4157 -0
- package/src/providers/devin/proto/exa/context_module_pb/context_module.proto +175 -0
- package/src/providers/devin/proto/exa/cortex_pb/cortex.proto +3268 -0
- package/src/providers/devin/proto/exa/dev_pb/dev.proto +26 -0
- package/src/providers/devin/proto/exa/diff_action_pb/diff_action.proto +75 -0
- package/src/providers/devin/proto/exa/eval/pr_eval/datasets_pb/datasets.proto +103 -0
- package/src/providers/devin/proto/exa/eval_pb/eval.proto +1315 -0
- package/src/providers/devin/proto/exa/extension_server_pb/extension_server.proto +556 -0
- package/src/providers/devin/proto/exa/file_system_provider_pb/file_system_provider.proto +75 -0
- package/src/providers/devin/proto/exa/index_pb/index.proto +461 -0
- package/src/providers/devin/proto/exa/knowledge_base_pb/knowledge_base.proto +144 -0
- package/src/providers/devin/proto/exa/language_server_pb/language_server.proto +2385 -0
- package/src/providers/devin/proto/exa/model_management_pb/model_management.proto +186 -0
- package/src/providers/devin/proto/exa/opensearch_clients_pb/opensearch_clients.proto +503 -0
- package/src/providers/devin/proto/exa/product_analytics_pb/product_analytics.proto +37 -0
- package/src/providers/devin/proto/exa/prompt_pb/prompt.proto +92 -0
- package/src/providers/devin/proto/exa/reactive_component_pb/reactive_component.proto +96 -0
- package/src/providers/devin/proto/exa/seat_management_pb/seat_management.proto +2680 -0
- package/src/providers/devin/proto/exa/tokenizer_pb/tokenizer.proto +37 -0
- package/src/providers/devin/proto/exa/trainer_pb/config.proto +647 -0
- package/src/providers/devin/proto/exa/tree_sitter/language_data_pb/language_data.proto +14 -0
- package/src/providers/devin/proto/exa/trust_pb/trust.proto +157 -0
- package/src/providers/devin/proto/exa/user_analytics_pb/user_analytics.proto +519 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/base/api_base.proto +28 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/datastore/datastore_v3.proto +484 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/log/log_service.proto +136 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/remote_api/remote_api.proto +42 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +61 -0
- package/src/providers/devin/proto/grpc/binlog/v1/binarylog.proto +84 -0
- package/src/providers/devin/proto/io/prometheus/client/metrics.proto +98 -0
- package/src/providers/devin.ts +679 -0
- package/src/providers/error-message.ts +23 -0
- package/src/providers/github-copilot-headers.ts +141 -0
- package/src/providers/gitlab-duo-workflow-chatml-note.md +1 -0
- package/src/providers/gitlab-duo-workflow.ts +3135 -0
- package/src/providers/gitlab-duo.ts +399 -0
- package/src/providers/google-auth.ts +330 -0
- package/src/providers/google-gemini-cli.ts +1370 -0
- package/src/providers/google-shared.ts +1122 -0
- package/src/providers/google-types.ts +180 -0
- package/src/providers/google-vertex.ts +135 -0
- package/src/providers/google.ts +47 -0
- package/src/providers/grammar.ts +70 -0
- package/src/providers/kimi.ts +51 -0
- package/src/providers/mock.ts +514 -0
- package/src/providers/ollama.ts +776 -0
- package/src/providers/openai-anthropic-shim.ts +166 -0
- package/src/providers/openai-chat-server-schema.ts +243 -0
- package/src/providers/openai-chat-server.ts +752 -0
- package/src/providers/openai-chat-wire.ts +859 -0
- package/src/providers/openai-codex/request-transformer.ts +491 -0
- package/src/providers/openai-codex/response-handler.ts +102 -0
- package/src/providers/openai-codex-responses.ts +4716 -0
- package/src/providers/openai-completions.ts +2389 -0
- package/src/providers/openai-reasoning-fallback.ts +269 -0
- package/src/providers/openai-responses-server-schema.ts +397 -0
- package/src/providers/openai-responses-server.ts +1466 -0
- package/src/providers/openai-responses-wire.ts +6416 -0
- package/src/providers/openai-responses.ts +1393 -0
- package/src/providers/openai-shared.ts +3500 -0
- package/src/providers/pi-native-client.ts +275 -0
- package/src/providers/pi-native-server.ts +245 -0
- package/src/providers/register-builtins.ts +503 -0
- package/src/providers/synthetic.ts +50 -0
- package/src/providers/transform-messages.ts +1083 -0
- package/src/providers/vision-guard.ts +54 -0
- package/src/registry/aiand.ts +22 -0
- package/src/registry/aimlapi.ts +6 -0
- package/src/registry/alibaba-coding-plan.ts +104 -0
- package/src/registry/alibaba-token-plan.ts +125 -0
- package/src/registry/amazon-bedrock.ts +22 -0
- package/src/registry/anthropic.ts +26 -0
- package/src/registry/api-key-login.ts +115 -0
- package/src/registry/api-key-validation.ts +145 -0
- package/src/registry/aws.ts +57 -0
- package/src/registry/azure.ts +6 -0
- package/src/registry/baseten.ts +22 -0
- package/src/registry/bedrock-mantle.ts +34 -0
- package/src/registry/cerebras.ts +23 -0
- package/src/registry/cloudflare-ai-gateway.ts +45 -0
- package/src/registry/coreweave.ts +40 -0
- package/src/registry/cursor.ts +20 -0
- package/src/registry/deepseek.ts +46 -0
- package/src/registry/derived.ts +9 -0
- package/src/registry/devin.ts +15 -0
- package/src/registry/exa.ts +19 -0
- package/src/registry/firepass.ts +32 -0
- package/src/registry/fireworks.ts +28 -0
- package/src/registry/github-copilot.ts +22 -0
- package/src/registry/gitlab-duo-workflow.ts +20 -0
- package/src/registry/gitlab-duo.ts +19 -0
- package/src/registry/gmi-cloud.ts +22 -0
- package/src/registry/google-antigravity.ts +22 -0
- package/src/registry/google-gemini-cli.ts +22 -0
- package/src/registry/google-vertex.ts +38 -0
- package/src/registry/google.ts +6 -0
- package/src/registry/groq.ts +6 -0
- package/src/registry/huggingface.ts +29 -0
- package/src/registry/index.ts +4 -0
- package/src/registry/kagi.ts +46 -0
- package/src/registry/kilo.ts +114 -0
- package/src/registry/kimi-code.ts +17 -0
- package/src/registry/litellm.ts +45 -0
- package/src/registry/llama-cpp.ts +35 -0
- package/src/registry/lm-studio.ts +31 -0
- package/src/registry/meta.ts +22 -0
- package/src/registry/minimax-code-cn.ts +12 -0
- package/src/registry/minimax-code.ts +12 -0
- package/src/registry/minimax.ts +6 -0
- package/src/registry/mistral.ts +6 -0
- package/src/registry/moonshot.ts +28 -0
- package/src/registry/nanogpt.ts +22 -0
- package/src/registry/novita.ts +25 -0
- package/src/registry/nvidia.ts +61 -0
- package/src/registry/oauth/anthropic-constants.ts +12 -0
- package/src/registry/oauth/anthropic.ts +346 -0
- package/src/registry/oauth/callback-server.ts +438 -0
- package/src/registry/oauth/cursor.ts +187 -0
- package/src/registry/oauth/device-code.ts +92 -0
- package/src/registry/oauth/devin.ts +124 -0
- package/src/registry/oauth/github-copilot.ts +369 -0
- package/src/registry/oauth/gitlab-duo-workflow.ts +146 -0
- package/src/registry/oauth/gitlab-duo.ts +222 -0
- package/src/registry/oauth/google-antigravity.ts +225 -0
- package/src/registry/oauth/google-gemini-cli.ts +297 -0
- package/src/registry/oauth/google-oauth-shared.ts +211 -0
- package/src/registry/oauth/index.ts +187 -0
- package/src/registry/oauth/kimi.ts +297 -0
- package/src/registry/oauth/minimax-code.ts +53 -0
- package/src/registry/oauth/oauth.html +317 -0
- package/src/registry/oauth/openai-codex.ts +384 -0
- package/src/registry/oauth/opencode.ts +50 -0
- package/src/registry/oauth/perplexity.ts +228 -0
- package/src/registry/oauth/pkce.ts +18 -0
- package/src/registry/oauth/types.ts +96 -0
- package/src/registry/oauth/wafer.ts +24 -0
- package/src/registry/oauth/xai-oauth.ts +559 -0
- package/src/registry/oauth/xiaomi.ts +211 -0
- package/src/registry/oauth/zai.ts +285 -0
- package/src/registry/ollama-cloud.ts +36 -0
- package/src/registry/ollama.ts +43 -0
- package/src/registry/openai-codex-device.ts +18 -0
- package/src/registry/openai-codex.ts +19 -0
- package/src/registry/openai.ts +6 -0
- package/src/registry/opencode-go.ts +12 -0
- package/src/registry/opencode-zen.ts +12 -0
- package/src/registry/openrouter.ts +28 -0
- package/src/registry/parallel.ts +45 -0
- package/src/registry/perplexity.ts +13 -0
- package/src/registry/qianfan.ts +27 -0
- package/src/registry/qwen-portal.ts +50 -0
- package/src/registry/registry.ts +182 -0
- package/src/registry/sakana.ts +22 -0
- package/src/registry/siliconflow-cn.ts +22 -0
- package/src/registry/siliconflow.ts +22 -0
- package/src/registry/synthetic.ts +21 -0
- package/src/registry/tavily.ts +45 -0
- package/src/registry/together.ts +22 -0
- package/src/registry/types.ts +86 -0
- package/src/registry/umans.ts +23 -0
- package/src/registry/venice.ts +33 -0
- package/src/registry/vercel-ai-gateway.ts +38 -0
- package/src/registry/vllm.ts +34 -0
- package/src/registry/wafer-serverless.ts +12 -0
- package/src/registry/xai-oauth.ts +17 -0
- package/src/registry/xai.ts +22 -0
- package/src/registry/xiaomi-token-plan-ams.ts +12 -0
- package/src/registry/xiaomi-token-plan-cn.ts +12 -0
- package/src/registry/xiaomi-token-plan-sgp.ts +12 -0
- package/src/registry/xiaomi.ts +12 -0
- package/src/registry/zai.ts +41 -0
- package/src/registry/zenmux.ts +22 -0
- package/src/registry/zhipu-coding-plan.ts +27 -0
- package/src/stream.ts +1944 -0
- package/src/types.ts +1243 -0
- package/src/usage/alibaba-token-plan.ts +230 -0
- package/src/usage/claude.ts +830 -0
- package/src/usage/cursor.ts +335 -0
- package/src/usage/gemini.ts +258 -0
- package/src/usage/github-copilot.ts +424 -0
- package/src/usage/google-antigravity.ts +497 -0
- package/src/usage/kimi.ts +277 -0
- package/src/usage/minimax-code.ts +291 -0
- package/src/usage/ollama.ts +41 -0
- package/src/usage/openai-codex-base-url.ts +35 -0
- package/src/usage/openai-codex-reset.ts +205 -0
- package/src/usage/openai-codex.ts +627 -0
- package/src/usage/opencode-go.ts +89 -0
- package/src/usage/shared.ts +10 -0
- package/src/usage/synthetic.ts +180 -0
- package/src/usage/umans.ts +192 -0
- package/src/usage/xai-oauth.ts +414 -0
- package/src/usage/zai.ts +370 -0
- package/src/usage.ts +411 -0
- package/src/utils/abort.ts +67 -0
- package/src/utils/anthropic-auth.ts +93 -0
- package/src/utils/aws-profile.ts +88 -0
- package/src/utils/block-symbols.ts +78 -0
- package/src/utils/deterministic-id.ts +20 -0
- package/src/utils/empty-completion-retry.ts +161 -0
- package/src/utils/event-stream.ts +202 -0
- package/src/utils/foundry.ts +8 -0
- package/src/utils/google-validation.ts +25 -0
- package/src/utils/harmony-leak.ts +500 -0
- package/src/utils/http-inspector.ts +196 -0
- package/src/utils/idle-iterator.ts +531 -0
- package/src/utils/leaked-thinking-stream.ts +483 -0
- package/src/utils/openai-http.ts +119 -0
- package/src/utils/openrouter-headers.ts +12 -0
- package/src/utils/parse-bind.ts +56 -0
- package/src/utils/provider-response.ts +30 -0
- package/src/utils/proxy.ts +314 -0
- package/src/utils/request-debug.ts +351 -0
- package/src/utils/retry-after.ts +121 -0
- package/src/utils/retry.ts +77 -0
- package/src/utils/schema/CONSTRAINTS.md +168 -0
- package/src/utils/schema/adapt.ts +36 -0
- package/src/utils/schema/compatibility.ts +435 -0
- package/src/utils/schema/dereference.ts +98 -0
- package/src/utils/schema/draft.ts +341 -0
- package/src/utils/schema/equality.ts +97 -0
- package/src/utils/schema/fields.ts +210 -0
- package/src/utils/schema/index.ts +14 -0
- package/src/utils/schema/json-schema-validator.ts +595 -0
- package/src/utils/schema/meta-validator.ts +167 -0
- package/src/utils/schema/normalize.ts +2314 -0
- package/src/utils/schema/spill.ts +43 -0
- package/src/utils/schema/stamps.ts +109 -0
- package/src/utils/schema/strict-tool-validation.ts +117 -0
- package/src/utils/schema/types.ts +10 -0
- package/src/utils/schema/typescript.ts +212 -0
- package/src/utils/schema/wire.ts +662 -0
- package/src/utils/sdk-stream-timeout.ts +43 -0
- package/src/utils/sse-debug.ts +18 -0
- package/src/utils/stream-markup-healing.ts +247 -0
- package/src/utils/thinking-loop.ts +552 -0
- package/src/utils/tool-call-loop-guard.ts +107 -0
- package/src/utils/tool-choice.ts +101 -0
- package/src/utils/validation.ts +1932 -0
- package/src/utils.ts +492 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AssistantMessage, AssistantMessageEventStream } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Anthropic Messages API (https://docs.anthropic.com/en/api/messages) ↔ pi-ai
|
|
4
|
+
* gateway translation. Inbound: foreign HTTP body → omp Context. Outbound:
|
|
5
|
+
* omp AssistantMessage[Stream] → Anthropic-shaped JSON / SSE.
|
|
6
|
+
*/
|
|
7
|
+
import type { AuthGatewayStreamControl, AuthGatewayParsedRequest as ParsedRequest } from "../auth-gateway/types.js";
|
|
8
|
+
export type { ParsedRequest };
|
|
9
|
+
export declare function parseRequest(body: unknown, headers?: Headers): ParsedRequest;
|
|
10
|
+
export declare function encodeResponse(message: AssistantMessage, requestedModelId: string): Record<string, unknown>;
|
|
11
|
+
export declare function encodeStream(events: AssistantMessageEventStream, requestedModelId: string, _options?: ParsedRequest["options"], control?: AuthGatewayStreamControl): ReadableStream<Uint8Array>;
|
|
12
|
+
/**
|
|
13
|
+
* Anthropic error envelope: `{ type: "error", error: { type, message } }`.
|
|
14
|
+
* See https://docs.anthropic.com/en/api/errors. Returned as a `Response` so
|
|
15
|
+
* the gateway can hand it straight back to the client without extra wrapping.
|
|
16
|
+
*/
|
|
17
|
+
export declare function formatError(status: number, type: string, message: string): Response;
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic Messages API wire types.
|
|
3
|
+
*
|
|
4
|
+
* Hand-maintained against https://docs.anthropic.com/en/api/messages so pi-ai
|
|
5
|
+
* does not depend on `@anthropic-ai/sdk` for type information. Only the shapes
|
|
6
|
+
* this package actually reads or writes are modeled; fields we never touch are
|
|
7
|
+
* intentionally omitted. Names mirror the SDK so call sites read the same.
|
|
8
|
+
*
|
|
9
|
+
* Unlike the SDK, beta fields pi-ai uses (`speed`, `context_management`,
|
|
10
|
+
* `output_config.effort`/`task_budget`, `thinking.display`, cache-control
|
|
11
|
+
* `scope`, tool `strict`/`eager_input_streaming`, mid-conversation `system`
|
|
12
|
+
* role) are first-class here instead of being patched in via casts.
|
|
13
|
+
*/
|
|
14
|
+
import type { TokenTaskBudget } from "../types.js";
|
|
15
|
+
/** Ephemeral prefix-cache breakpoint marker. */
|
|
16
|
+
export type CacheControlEphemeral = {
|
|
17
|
+
type: "ephemeral";
|
|
18
|
+
ttl?: "1h" | "5m";
|
|
19
|
+
/** Claude Code prompt-caching-scope beta: shares the breakpoint across sessions. */
|
|
20
|
+
scope?: "global";
|
|
21
|
+
};
|
|
22
|
+
export type Base64ImageSource = {
|
|
23
|
+
type: "base64";
|
|
24
|
+
media_type: "image/jpeg" | "image/png" | "image/gif" | "image/webp";
|
|
25
|
+
data: string;
|
|
26
|
+
};
|
|
27
|
+
export type URLImageSource = {
|
|
28
|
+
type: "url";
|
|
29
|
+
url: string;
|
|
30
|
+
};
|
|
31
|
+
export type FileImageSource = {
|
|
32
|
+
type: "file";
|
|
33
|
+
file_id: string;
|
|
34
|
+
};
|
|
35
|
+
export type ImageSource = Base64ImageSource | URLImageSource | FileImageSource;
|
|
36
|
+
export type TextBlockParam = {
|
|
37
|
+
type: "text";
|
|
38
|
+
text: string;
|
|
39
|
+
cache_control?: CacheControlEphemeral | null;
|
|
40
|
+
};
|
|
41
|
+
export type ImageBlockParam = {
|
|
42
|
+
type: "image";
|
|
43
|
+
source: ImageSource;
|
|
44
|
+
cache_control?: CacheControlEphemeral | null;
|
|
45
|
+
};
|
|
46
|
+
export type ToolUseBlockParam = {
|
|
47
|
+
type: "tool_use";
|
|
48
|
+
id: string;
|
|
49
|
+
name: string;
|
|
50
|
+
input: unknown;
|
|
51
|
+
cache_control?: CacheControlEphemeral | null;
|
|
52
|
+
};
|
|
53
|
+
export type ToolResultBlockParam = {
|
|
54
|
+
type: "tool_result";
|
|
55
|
+
tool_use_id: string;
|
|
56
|
+
content?: string | Array<TextBlockParam | ImageBlockParam>;
|
|
57
|
+
is_error?: boolean;
|
|
58
|
+
cache_control?: CacheControlEphemeral | null;
|
|
59
|
+
};
|
|
60
|
+
/** Anthropic-executed server tool call replayed inside an assistant turn. */
|
|
61
|
+
export type ServerToolUseBlockParam = {
|
|
62
|
+
type: "server_tool_use";
|
|
63
|
+
id: string;
|
|
64
|
+
name: string;
|
|
65
|
+
input?: Record<string, unknown> | null;
|
|
66
|
+
[key: string]: unknown;
|
|
67
|
+
};
|
|
68
|
+
/** Web-search server-tool call whose matching result is replayable by omp. */
|
|
69
|
+
export type WebSearchServerToolUseBlockParam = ServerToolUseBlockParam & {
|
|
70
|
+
name: "web_search";
|
|
71
|
+
};
|
|
72
|
+
/** Native web-search result replayed inside an assistant turn. */
|
|
73
|
+
export type WebSearchToolResultBlockParam = {
|
|
74
|
+
type: "web_search_tool_result";
|
|
75
|
+
tool_use_id: string;
|
|
76
|
+
content: unknown;
|
|
77
|
+
[key: string]: unknown;
|
|
78
|
+
};
|
|
79
|
+
/** True for the complete native web-search history variants omp can replay. */
|
|
80
|
+
export declare function isAnthropicWebSearchHistoryBlock(block: {
|
|
81
|
+
type: string;
|
|
82
|
+
name?: unknown;
|
|
83
|
+
id?: unknown;
|
|
84
|
+
tool_use_id?: unknown;
|
|
85
|
+
content?: unknown;
|
|
86
|
+
}): block is WebSearchServerToolUseBlockParam | WebSearchToolResultBlockParam;
|
|
87
|
+
export type ThinkingBlockParam = {
|
|
88
|
+
type: "thinking";
|
|
89
|
+
thinking: string;
|
|
90
|
+
signature: string;
|
|
91
|
+
};
|
|
92
|
+
export type RedactedThinkingBlockParam = {
|
|
93
|
+
type: "redacted_thinking";
|
|
94
|
+
data: string;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Server-side fallback beta boundary marker (server-side-fallback-2026-06-01).
|
|
98
|
+
* Emitted by the API mid-stream when a classifier block on the requested
|
|
99
|
+
* model is retried on a fallback model. Only the official Anthropic
|
|
100
|
+
* endpoint accepts this block on replay — cross-provider hops MUST strip it.
|
|
101
|
+
*/
|
|
102
|
+
export type FallbackBlockParam = {
|
|
103
|
+
type: "fallback";
|
|
104
|
+
from: {
|
|
105
|
+
model: string;
|
|
106
|
+
};
|
|
107
|
+
to: {
|
|
108
|
+
model: string;
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
export type ContentBlockParam = TextBlockParam | ImageBlockParam | ToolUseBlockParam | ToolResultBlockParam | ServerToolUseBlockParam | WebSearchToolResultBlockParam | ThinkingBlockParam | RedactedThinkingBlockParam | FallbackBlockParam;
|
|
112
|
+
/**
|
|
113
|
+
* A single conversation turn.
|
|
114
|
+
*
|
|
115
|
+
* `system` is the Opus 4.8+ mid-conversation system role
|
|
116
|
+
* (`mid-conversation-system-2026-04-07` beta); the public API otherwise only
|
|
117
|
+
* accepts `user` / `assistant`.
|
|
118
|
+
*/
|
|
119
|
+
export type MessageParam = {
|
|
120
|
+
role: "user" | "assistant" | "system";
|
|
121
|
+
content: string | ContentBlockParam[];
|
|
122
|
+
};
|
|
123
|
+
export type ToolInputSchema = {
|
|
124
|
+
type: "object";
|
|
125
|
+
properties?: unknown | null;
|
|
126
|
+
required?: string[] | null;
|
|
127
|
+
[k: string]: unknown;
|
|
128
|
+
};
|
|
129
|
+
export type Tool = {
|
|
130
|
+
name: string;
|
|
131
|
+
description?: string;
|
|
132
|
+
input_schema: ToolInputSchema;
|
|
133
|
+
cache_control?: CacheControlEphemeral | null;
|
|
134
|
+
/** Structured-outputs beta: enforce the schema as a strict grammar. */
|
|
135
|
+
strict?: boolean;
|
|
136
|
+
/** Fine-grained tool streaming beta: stream tool input as it is generated. */
|
|
137
|
+
eager_input_streaming?: boolean;
|
|
138
|
+
};
|
|
139
|
+
export type ToolChoiceAuto = {
|
|
140
|
+
type: "auto";
|
|
141
|
+
disable_parallel_tool_use?: boolean;
|
|
142
|
+
};
|
|
143
|
+
export type ToolChoiceAny = {
|
|
144
|
+
type: "any";
|
|
145
|
+
disable_parallel_tool_use?: boolean;
|
|
146
|
+
};
|
|
147
|
+
export type ToolChoiceTool = {
|
|
148
|
+
type: "tool";
|
|
149
|
+
name: string;
|
|
150
|
+
disable_parallel_tool_use?: boolean;
|
|
151
|
+
};
|
|
152
|
+
export type ToolChoiceNone = {
|
|
153
|
+
type: "none";
|
|
154
|
+
};
|
|
155
|
+
export type ToolChoice = ToolChoiceAuto | ToolChoiceAny | ToolChoiceTool | ToolChoiceNone;
|
|
156
|
+
export type Metadata = {
|
|
157
|
+
user_id?: string | null;
|
|
158
|
+
};
|
|
159
|
+
export type ThinkingConfigEnabled = {
|
|
160
|
+
type: "enabled";
|
|
161
|
+
budget_tokens: number;
|
|
162
|
+
/** Opus 4.7+ reasoning display mode. */
|
|
163
|
+
display?: "summarized" | "omitted";
|
|
164
|
+
};
|
|
165
|
+
export type ThinkingConfigDisabled = {
|
|
166
|
+
type: "disabled";
|
|
167
|
+
};
|
|
168
|
+
export type ThinkingConfigAdaptive = {
|
|
169
|
+
type: "adaptive";
|
|
170
|
+
/** Opus 4.7+ reasoning display mode. */
|
|
171
|
+
display?: "summarized" | "omitted";
|
|
172
|
+
};
|
|
173
|
+
export type ThinkingConfigParam = ThinkingConfigEnabled | ThinkingConfigDisabled | ThinkingConfigAdaptive;
|
|
174
|
+
export type OutputConfig = {
|
|
175
|
+
/** Adaptive-thinking effort level (effort beta). */
|
|
176
|
+
effort?: "low" | "medium" | "high" | "xhigh" | "max" | null;
|
|
177
|
+
/** Task-budgets beta. */
|
|
178
|
+
task_budget?: TokenTaskBudget | null;
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Per-attempt override entry in `MessageCreateParams.fallbacks`
|
|
182
|
+
* (server-side-fallback-2026-06-01 beta). Every field except `model`
|
|
183
|
+
* mirrors a top-level control the beta allows re-specifying per attempt.
|
|
184
|
+
*/
|
|
185
|
+
export type FallbackParam = {
|
|
186
|
+
model: string;
|
|
187
|
+
max_tokens?: number;
|
|
188
|
+
thinking?: ThinkingConfigParam;
|
|
189
|
+
output_config?: OutputConfig;
|
|
190
|
+
speed?: "fast";
|
|
191
|
+
};
|
|
192
|
+
/** Claude Code context-management beta payload. */
|
|
193
|
+
export type ContextManagement = {
|
|
194
|
+
edits: Array<{
|
|
195
|
+
type: "clear_thinking_20251015";
|
|
196
|
+
keep: "all";
|
|
197
|
+
}>;
|
|
198
|
+
};
|
|
199
|
+
export type MessageCreateParams = {
|
|
200
|
+
model: string;
|
|
201
|
+
messages: MessageParam[];
|
|
202
|
+
max_tokens: number;
|
|
203
|
+
system?: string | TextBlockParam[];
|
|
204
|
+
temperature?: number;
|
|
205
|
+
top_p?: number;
|
|
206
|
+
top_k?: number;
|
|
207
|
+
stop_sequences?: string[];
|
|
208
|
+
stream?: boolean;
|
|
209
|
+
tools?: Tool[];
|
|
210
|
+
tool_choice?: ToolChoice;
|
|
211
|
+
metadata?: Metadata;
|
|
212
|
+
thinking?: ThinkingConfigParam;
|
|
213
|
+
output_config?: OutputConfig;
|
|
214
|
+
/** Fast-mode beta: realization of priority service tier. */
|
|
215
|
+
speed?: "fast";
|
|
216
|
+
/** Claude Code context-management beta. */
|
|
217
|
+
context_management?: ContextManagement;
|
|
218
|
+
/**
|
|
219
|
+
* Server-side fallback beta chain — up to three fallback models the API
|
|
220
|
+
* retries when a classifier blocks the primary. Required companion beta
|
|
221
|
+
* header: `server-side-fallback-2026-06-01`.
|
|
222
|
+
*/
|
|
223
|
+
fallbacks?: FallbackParam[];
|
|
224
|
+
};
|
|
225
|
+
export type MessageCreateParamsStreaming = MessageCreateParams & {
|
|
226
|
+
stream: true;
|
|
227
|
+
};
|
|
228
|
+
export type StopReason = "end_turn" | "max_tokens" | "stop_sequence" | "tool_use" | "pause_turn" | "refusal" | "sensitive" | "model_context_window_exceeded";
|
|
229
|
+
export type CacheCreation = {
|
|
230
|
+
ephemeral_5m_input_tokens?: number | null;
|
|
231
|
+
ephemeral_1h_input_tokens?: number | null;
|
|
232
|
+
};
|
|
233
|
+
export type ServerToolUsage = {
|
|
234
|
+
web_search_requests?: number | null;
|
|
235
|
+
web_fetch_requests?: number | null;
|
|
236
|
+
};
|
|
237
|
+
/**
|
|
238
|
+
* Per-attempt token accounting inside a multi-run turn
|
|
239
|
+
* (server-side-fallback-2026-06-01). Populated whenever a fallback chain
|
|
240
|
+
* ran, including sticky-served turns with no `fallback` content block.
|
|
241
|
+
* A `fallback_message` entry is the definitive "served by fallback" signal.
|
|
242
|
+
*/
|
|
243
|
+
export type UsageIteration = {
|
|
244
|
+
type?: "message" | "fallback_message" | string;
|
|
245
|
+
model?: string | null;
|
|
246
|
+
input_tokens?: number | null;
|
|
247
|
+
output_tokens?: number | null;
|
|
248
|
+
cache_read_input_tokens?: number | null;
|
|
249
|
+
cache_creation_input_tokens?: number | null;
|
|
250
|
+
};
|
|
251
|
+
export type Usage = {
|
|
252
|
+
input_tokens?: number | null;
|
|
253
|
+
output_tokens?: number | null;
|
|
254
|
+
cache_read_input_tokens?: number | null;
|
|
255
|
+
cache_creation_input_tokens?: number | null;
|
|
256
|
+
cache_creation?: CacheCreation | null;
|
|
257
|
+
server_tool_use?: ServerToolUsage | null;
|
|
258
|
+
iterations?: UsageIteration[] | null;
|
|
259
|
+
};
|
|
260
|
+
/** The `message` envelope carried by `message_start`. */
|
|
261
|
+
export type ResponseMessage = {
|
|
262
|
+
id: string;
|
|
263
|
+
type?: "message";
|
|
264
|
+
role?: "assistant";
|
|
265
|
+
model?: string;
|
|
266
|
+
content?: unknown[];
|
|
267
|
+
stop_reason?: StopReason | null;
|
|
268
|
+
stop_sequence?: string | null;
|
|
269
|
+
usage: Usage;
|
|
270
|
+
};
|
|
271
|
+
/** `content_block` payload carried by `content_block_start`. */
|
|
272
|
+
export type ResponseContentBlock = {
|
|
273
|
+
type: "text";
|
|
274
|
+
text: string;
|
|
275
|
+
} | {
|
|
276
|
+
type: "thinking";
|
|
277
|
+
thinking: string;
|
|
278
|
+
signature?: string;
|
|
279
|
+
} | {
|
|
280
|
+
type: "redacted_thinking";
|
|
281
|
+
data: string;
|
|
282
|
+
} | {
|
|
283
|
+
type: "tool_use";
|
|
284
|
+
id: string;
|
|
285
|
+
name: string;
|
|
286
|
+
input?: Record<string, unknown> | null;
|
|
287
|
+
} | ServerToolUseBlockParam | WebSearchToolResultBlockParam | {
|
|
288
|
+
type: "fallback";
|
|
289
|
+
from: {
|
|
290
|
+
model: string;
|
|
291
|
+
};
|
|
292
|
+
to: {
|
|
293
|
+
model: string;
|
|
294
|
+
};
|
|
295
|
+
};
|
|
296
|
+
export type ContentBlockDelta = {
|
|
297
|
+
type: "text_delta";
|
|
298
|
+
text: string;
|
|
299
|
+
} | {
|
|
300
|
+
type: "input_json_delta";
|
|
301
|
+
partial_json: string;
|
|
302
|
+
} | {
|
|
303
|
+
type: "thinking_delta";
|
|
304
|
+
thinking: string;
|
|
305
|
+
} | {
|
|
306
|
+
type: "signature_delta";
|
|
307
|
+
signature: string;
|
|
308
|
+
};
|
|
309
|
+
export type StopDetails = {
|
|
310
|
+
type: string;
|
|
311
|
+
category?: string | null;
|
|
312
|
+
explanation?: string | null;
|
|
313
|
+
};
|
|
314
|
+
export type MessageDelta = {
|
|
315
|
+
stop_reason?: StopReason | null;
|
|
316
|
+
stop_sequence?: string | null;
|
|
317
|
+
stop_details?: StopDetails | null;
|
|
318
|
+
};
|
|
319
|
+
export type RawMessageStartEvent = {
|
|
320
|
+
type: "message_start";
|
|
321
|
+
message: ResponseMessage;
|
|
322
|
+
};
|
|
323
|
+
export type RawContentBlockStartEvent = {
|
|
324
|
+
type: "content_block_start";
|
|
325
|
+
index: number;
|
|
326
|
+
content_block: ResponseContentBlock;
|
|
327
|
+
};
|
|
328
|
+
export type RawContentBlockDeltaEvent = {
|
|
329
|
+
type: "content_block_delta";
|
|
330
|
+
index: number;
|
|
331
|
+
delta: ContentBlockDelta;
|
|
332
|
+
};
|
|
333
|
+
export type RawContentBlockStopEvent = {
|
|
334
|
+
type: "content_block_stop";
|
|
335
|
+
index: number;
|
|
336
|
+
};
|
|
337
|
+
export type RawMessageDeltaEvent = {
|
|
338
|
+
type: "message_delta";
|
|
339
|
+
delta: MessageDelta;
|
|
340
|
+
usage: Usage;
|
|
341
|
+
};
|
|
342
|
+
export type RawMessageStopEvent = {
|
|
343
|
+
type: "message_stop";
|
|
344
|
+
};
|
|
345
|
+
export type RawMessageStreamEvent = RawMessageStartEvent | RawContentBlockStartEvent | RawContentBlockDeltaEvent | RawContentBlockStopEvent | RawMessageDeltaEvent | RawMessageStopEvent;
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import type { Api, FetchImpl, Message, Model, ProviderSessionState, ServiceTier, SimpleStreamOptions, StreamFunction, StreamOptions, Usage } from "../types.js";
|
|
2
|
+
import { type AnthropicFetchOptions, type AnthropicMessagesClientLike } from "./anthropic-client.js";
|
|
3
|
+
import { type FallbackParam, type MessageParam, type TextBlockParam } from "./anthropic-wire.js";
|
|
4
|
+
export type AnthropicHeaderOptions = {
|
|
5
|
+
apiKey: string;
|
|
6
|
+
baseUrl?: string;
|
|
7
|
+
isOAuth?: boolean;
|
|
8
|
+
extraBetas?: string[];
|
|
9
|
+
stream?: boolean;
|
|
10
|
+
modelHeaders?: Record<string, string>;
|
|
11
|
+
isCloudflareAiGateway?: boolean;
|
|
12
|
+
claudeCodeSessionId?: string;
|
|
13
|
+
coworkBetas?: readonly string[];
|
|
14
|
+
/** Allow explicit fingerprint headers to replace OAuth defaults on non-official endpoints. */
|
|
15
|
+
allowAnthropicHeaderOverrides?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export declare function normalizeAnthropicBaseUrl(baseUrl?: string): string | undefined;
|
|
18
|
+
export declare function buildBetaHeader(baseBetas: readonly string[], extraBetas: readonly string[]): string;
|
|
19
|
+
export declare function buildAnthropicHeaders(options: AnthropicHeaderOptions): Record<string, string>;
|
|
20
|
+
type AnthropicCacheControl = NonNullable<TextBlockParam["cache_control"]>;
|
|
21
|
+
/**
|
|
22
|
+
* Clears the in-session "server rejected fast mode" sticky flag. Call when the
|
|
23
|
+
* caller is explicitly re-arming `serviceTier: "priority"` (e.g. user toggled
|
|
24
|
+
* `/fast on` after a previous turn auto-disabled it) so the next request
|
|
25
|
+
* actually carries `speed: "fast"` again. No-op when the map or state entry
|
|
26
|
+
* hasn't been materialized yet.
|
|
27
|
+
*/
|
|
28
|
+
export declare function clearAnthropicFastModeFallback(providerSessionState: Map<string, ProviderSessionState> | undefined): void;
|
|
29
|
+
/**
|
|
30
|
+
* Whether the direct Anthropic model's endpoint-scoped fast-mode fallback is
|
|
31
|
+
* currently active. Reading the map directly is intentional: inspection must
|
|
32
|
+
* not materialize a state entry for a model that has never streamed.
|
|
33
|
+
*/
|
|
34
|
+
export declare function isAnthropicFastModeFallbackDisabled(providerSessionState: Map<string, ProviderSessionState> | undefined, model: Model<Api>): boolean;
|
|
35
|
+
export * from "./claude-code-fingerprint.js";
|
|
36
|
+
export declare function mapStainlessArch(arch: string): "x64" | "arm64" | "x86" | `other::${string}`;
|
|
37
|
+
/** Static headers emitted by Cowork's Linux Claude runtime. */
|
|
38
|
+
export declare const coworkHeaders: {
|
|
39
|
+
"X-Stainless-Arch": "arm64" | "x64" | "x86" | `other::${string}`;
|
|
40
|
+
"X-Stainless-Lang": string;
|
|
41
|
+
"X-Stainless-OS": string;
|
|
42
|
+
"X-Stainless-Package-Version": string;
|
|
43
|
+
"X-Stainless-Retry-Count": string;
|
|
44
|
+
"X-Stainless-Runtime": string;
|
|
45
|
+
"X-Stainless-Runtime-Version": string;
|
|
46
|
+
"X-Stainless-Timeout": string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Wraps a fetch implementation to patch the Claude Code billing-header `cch`
|
|
50
|
+
* attestation into outgoing request bodies. Bodies without the placeholder
|
|
51
|
+
* pass through untouched, so installing it on every OAuth flow is safe.
|
|
52
|
+
*/
|
|
53
|
+
export declare function wrapFetchForCch(base: FetchImpl): FetchImpl;
|
|
54
|
+
export declare function isClaudeCloakingUserId(userId: string): boolean;
|
|
55
|
+
export declare function generateClaudeCloakingUserId(): string;
|
|
56
|
+
export declare function deriveClaudeDeviceId(installId: string, accountId?: string): string;
|
|
57
|
+
/**
|
|
58
|
+
* Resolve the `metadata.user_id` field for an Anthropic Messages request.
|
|
59
|
+
*
|
|
60
|
+
* For API-key tokens, an explicit caller-supplied `userId` is forwarded
|
|
61
|
+
* verbatim and `undefined` yields no metadata. For OAuth tokens the value
|
|
62
|
+
* must match the Claude Code attribution shape (`isClaudeCloakingUserId` or
|
|
63
|
+
* the `{session_id, account_uuid?, device_id?}` JSON envelope) — anything
|
|
64
|
+
* else is dropped and a fresh Claude-Code-style JSON id is generated from
|
|
65
|
+
* `sessionId`/`accountId` so attribution stays consistent across the main
|
|
66
|
+
* streaming path and provider-specific request builders (e.g. web search).
|
|
67
|
+
*/
|
|
68
|
+
export declare function resolveAnthropicMetadataUserId(userId: unknown, isOAuthToken: boolean, sessionId?: string, accountId?: string): string | undefined;
|
|
69
|
+
export declare const applyClaudeToolPrefix: (name: string) => string;
|
|
70
|
+
export declare const stripClaudeToolPrefix: (name: string) => string;
|
|
71
|
+
export type AnthropicOutputEffort = "low" | "medium" | "high" | "xhigh" | "max";
|
|
72
|
+
export type AnthropicEffort = AnthropicOutputEffort | "adaptive";
|
|
73
|
+
export type AnthropicThinkingDisplay = "summarized" | "omitted";
|
|
74
|
+
export interface AnthropicOptions extends StreamOptions {
|
|
75
|
+
/**
|
|
76
|
+
* Enable extended thinking.
|
|
77
|
+
* For adaptive-capable models (Opus 4.6+, Sonnet 4.6+, Fable/Mythos 5):
|
|
78
|
+
* uses adaptive thinking (Claude decides when/how much to think). For older
|
|
79
|
+
* models: uses budget-based thinking with thinkingBudgetTokens.
|
|
80
|
+
*/
|
|
81
|
+
thinkingEnabled?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Token budget for extended thinking (older models only).
|
|
84
|
+
* Ignored for adaptive-capable models.
|
|
85
|
+
*/
|
|
86
|
+
thinkingBudgetTokens?: number;
|
|
87
|
+
/**
|
|
88
|
+
* Upstream wire model id override for collapsed effort-tier variants.
|
|
89
|
+
* Serialized as `requestModelId ?? model.requestModelId ?? model.id`.
|
|
90
|
+
*/
|
|
91
|
+
requestModelId?: string;
|
|
92
|
+
/**
|
|
93
|
+
* Effort level for adaptive thinking.
|
|
94
|
+
* Controls how much Claude allocates, or uses "adaptive" for MiniMax's
|
|
95
|
+
* binary adaptive-thinking tag:
|
|
96
|
+
* - "max": Always thinks with no constraints
|
|
97
|
+
* - "high": Always thinks, deep reasoning (default)
|
|
98
|
+
* - "medium": Moderate thinking, may skip for simple queries
|
|
99
|
+
* - "low": Minimal thinking, skips for simple tasks
|
|
100
|
+
* - "adaptive": Sends `thinking.type: "adaptive"` without `output_config.effort`
|
|
101
|
+
* Ignored for older models.
|
|
102
|
+
*/
|
|
103
|
+
effort?: AnthropicEffort;
|
|
104
|
+
/**
|
|
105
|
+
* Optional reasoning level fallback for direct Anthropic provider usage.
|
|
106
|
+
* Converted to adaptive effort when effort is not explicitly provided.
|
|
107
|
+
*/
|
|
108
|
+
reasoning?: SimpleStreamOptions["reasoning"];
|
|
109
|
+
/**
|
|
110
|
+
* Controls how Anthropic returns thinking content when the selected thinking
|
|
111
|
+
* transport supports a display option. Defaults to "summarized" where the
|
|
112
|
+
* API accepts it.
|
|
113
|
+
*/
|
|
114
|
+
thinkingDisplay?: AnthropicThinkingDisplay;
|
|
115
|
+
interleavedThinking?: boolean;
|
|
116
|
+
toolChoice?: "auto" | "any" | "none" | {
|
|
117
|
+
type: "tool";
|
|
118
|
+
name: string;
|
|
119
|
+
};
|
|
120
|
+
betas?: string[] | string;
|
|
121
|
+
/**
|
|
122
|
+
* Realization of `serviceTier: "priority"` on Anthropic models. When
|
|
123
|
+
* `"priority"`, sets `speed: "fast"` on the request and appends the
|
|
124
|
+
* `fast-mode-2026-02-01` beta header. Anthropic rejects unsupported models
|
|
125
|
+
* with `invalid_request_error`, which triggers an in-provider one-shot
|
|
126
|
+
* fallback (see `fastModeDisabled` provider state).
|
|
127
|
+
*
|
|
128
|
+
* Other `ServiceTier` values are currently ignored on this provider.
|
|
129
|
+
*/
|
|
130
|
+
serviceTier?: ServiceTier;
|
|
131
|
+
/** Force OAuth bearer auth mode for proxy tokens that don't match Anthropic token prefixes. */
|
|
132
|
+
isOAuth?: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Pre-built Anthropic Messages client. When provided, skips internal client
|
|
135
|
+
* construction entirely. Accepts any structurally compatible client,
|
|
136
|
+
* including SDK clients such as `AnthropicVertex`.
|
|
137
|
+
*/
|
|
138
|
+
client?: AnthropicMessagesClientLike;
|
|
139
|
+
/**
|
|
140
|
+
* Server-side fallback beta chain (`server-side-fallback-2026-06-01`).
|
|
141
|
+
* When set, `fallbacks` is forwarded on the request body and the beta
|
|
142
|
+
* header is auto-attached; the response parser then honors mid-stream
|
|
143
|
+
* `fallback` content blocks and `usage.iterations` for served-model
|
|
144
|
+
* promotion and per-attempt pricing. Opt-in ONLY — leaving this
|
|
145
|
+
* undefined preserves the pre-fallback behavior on every code path.
|
|
146
|
+
*/
|
|
147
|
+
fallbacks?: FallbackParam[];
|
|
148
|
+
}
|
|
149
|
+
export type AnthropicClientOptionsArgs = {
|
|
150
|
+
model: Model<"anthropic-messages">;
|
|
151
|
+
apiKey: string;
|
|
152
|
+
extraBetas?: string[];
|
|
153
|
+
stream?: boolean;
|
|
154
|
+
interleavedThinking?: boolean;
|
|
155
|
+
headers?: Record<string, string>;
|
|
156
|
+
dynamicHeaders?: Record<string, string>;
|
|
157
|
+
isOAuth?: boolean;
|
|
158
|
+
hasTools?: boolean;
|
|
159
|
+
thinkingEnabled?: boolean;
|
|
160
|
+
thinkingDisplay?: AnthropicThinkingDisplay;
|
|
161
|
+
disableStrictTools?: boolean;
|
|
162
|
+
fetch?: FetchImpl;
|
|
163
|
+
maxRetryDelayMs?: number;
|
|
164
|
+
claudeCodeSessionId?: string;
|
|
165
|
+
};
|
|
166
|
+
export type AnthropicClientOptionsResult = {
|
|
167
|
+
isOAuthToken: boolean;
|
|
168
|
+
apiKey: string | null;
|
|
169
|
+
authToken?: string | null;
|
|
170
|
+
baseURL?: string;
|
|
171
|
+
maxRetries: number;
|
|
172
|
+
maxRetryDelayMs?: number;
|
|
173
|
+
defaultHeaders: Record<string, string>;
|
|
174
|
+
fetch?: FetchImpl;
|
|
175
|
+
fetchOptions?: AnthropicFetchOptions;
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* Returns env-supplied custom headers (`ANTHROPIC_CUSTOM_HEADERS`) when they
|
|
179
|
+
* should be forwarded to the upstream endpoint.
|
|
180
|
+
*
|
|
181
|
+
* Foundry mode forwards them unconditionally. Outside Foundry, they're applied
|
|
182
|
+
* only when the configured base URL is a non-Anthropic host — i.e. an
|
|
183
|
+
* enterprise/corporate gateway that may require its own proprietary auth
|
|
184
|
+
* header. Stock `api.anthropic.com` would reject unknown headers, so they're
|
|
185
|
+
* omitted there.
|
|
186
|
+
*/
|
|
187
|
+
export declare function resolveAnthropicCustomHeadersForBaseUrl(baseUrl: string | undefined): Record<string, string> | undefined;
|
|
188
|
+
/**
|
|
189
|
+
* Whether an Anthropic (or Copilot-over-Anthropic) stream error should be
|
|
190
|
+
* retried. The classification lives in {@link AIError.isProviderRetryableError};
|
|
191
|
+
* this wrapper injects the Copilot-specific model-availability transient check,
|
|
192
|
+
* which the error module must not import directly.
|
|
193
|
+
*/
|
|
194
|
+
export declare function isProviderRetryableError(error: unknown, provider?: string): boolean;
|
|
195
|
+
export type AnthropicUsageLike = {
|
|
196
|
+
cache_creation?: {
|
|
197
|
+
ephemeral_5m_input_tokens?: number | null;
|
|
198
|
+
ephemeral_1h_input_tokens?: number | null;
|
|
199
|
+
} | null;
|
|
200
|
+
server_tool_use?: {
|
|
201
|
+
web_search_requests?: number | null;
|
|
202
|
+
web_fetch_requests?: number | null;
|
|
203
|
+
} | null;
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* Capture Anthropic's optional cache-creation TTL breakdown and server-tool-use
|
|
207
|
+
* counters into the harness Usage shape. Omitted/null fields are no-ops; explicit
|
|
208
|
+
* zero-valued objects clear prior extras from earlier stream usage snapshots.
|
|
209
|
+
*/
|
|
210
|
+
export declare function applyAnthropicUsageExtras(usage: Usage, source: AnthropicUsageLike): void;
|
|
211
|
+
export declare function isInvalidThinkingSignatureError(message: string): boolean;
|
|
212
|
+
/**
|
|
213
|
+
* Prepend a pointed remediation to Anthropic's `Invalid signature in thinking
|
|
214
|
+
* block` 400 when the model looks like an unmarked custom signing proxy
|
|
215
|
+
* (opaque baseUrl, `spec.reasoning: true`, no explicit
|
|
216
|
+
* `compat.replayUnsignedThinking` override). The default is native replay for
|
|
217
|
+
* the 3p reasoning majority (#2005); this hint turns the misconfigured-proxy
|
|
218
|
+
* case into a one-line fix instead of a silent retry loop (#4297).
|
|
219
|
+
*/
|
|
220
|
+
export declare function maybeAddReplayUnsignedThinkingHint(model: Model<"anthropic-messages">, message: string): string;
|
|
221
|
+
/**
|
|
222
|
+
* Public entry: wrap the single-attempt streamer with bounded empty-completion
|
|
223
|
+
* retries (a benign terminal stop carrying no content/usage would otherwise
|
|
224
|
+
* stall the agent loop). The inner attempt keeps its own provider-failure retry
|
|
225
|
+
* loop; this layer only re-issues a fresh request on an empty success. Shared
|
|
226
|
+
* with the OpenAI-completions provider via `withEmptyCompletionRetry`.
|
|
227
|
+
*/
|
|
228
|
+
export declare const streamAnthropic: StreamFunction<"anthropic-messages">;
|
|
229
|
+
export type AnthropicSystemBlock = {
|
|
230
|
+
type: "text";
|
|
231
|
+
text: string;
|
|
232
|
+
cache_control?: AnthropicCacheControl;
|
|
233
|
+
};
|
|
234
|
+
type SystemBlockOptions = {
|
|
235
|
+
includeClaudeCodeInstruction?: boolean;
|
|
236
|
+
extraInstructions?: string[];
|
|
237
|
+
/** Text of the first user message — used as fingerprint seed for the billing header. */
|
|
238
|
+
firstUserMessageText?: string;
|
|
239
|
+
cacheControl?: AnthropicCacheControl;
|
|
240
|
+
};
|
|
241
|
+
export declare function buildAnthropicSystemBlocks(systemPrompt: readonly string[] | undefined, options?: SystemBlockOptions): AnthropicSystemBlock[] | undefined;
|
|
242
|
+
export declare function normalizeExtraBetas(betas?: string[] | string): string[];
|
|
243
|
+
export declare function buildAnthropicClientOptions(args: AnthropicClientOptionsArgs): AnthropicClientOptionsResult;
|
|
244
|
+
/**
|
|
245
|
+
* A single Anthropic conversation turn, including the mid-conversation
|
|
246
|
+
* `system` role (Opus 4.8+ and Fable/Mythos 5).
|
|
247
|
+
*/
|
|
248
|
+
export type AnthropicMessageParam = MessageParam;
|
|
249
|
+
/**
|
|
250
|
+
* Serialize omp {@link Message}s to Anthropic wire messages.
|
|
251
|
+
*
|
|
252
|
+
* `opts.serverSideFallbackEnabled` — when the CURRENT request itself
|
|
253
|
+
* opts into the server-side-fallback beta chain. Only then may a persisted
|
|
254
|
+
* `fallback` content block from a prior turn be replayed on the wire;
|
|
255
|
+
* otherwise the block is dropped to avoid a 400 on non-fallback requests
|
|
256
|
+
* that don't send the beta.
|
|
257
|
+
*/
|
|
258
|
+
export declare function convertAnthropicMessages(messages: Message[], model: Model<"anthropic-messages">, isOAuthToken: boolean, opts?: {
|
|
259
|
+
serverSideFallbackEnabled?: boolean;
|
|
260
|
+
}): AnthropicMessageParam[];
|
|
261
|
+
export declare function normalizeAnthropicToolSchema(schema: unknown): unknown;
|
|
@@ -0,0 +1,48 @@
|
|
|
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. Web identity (`AWS_WEB_IDENTITY_TOKEN_FILE` + `AWS_ROLE_ARN`).
|
|
8
|
+
* 3. Profile in `~/.aws/credentials` (and `~/.aws/config` for SSO):
|
|
9
|
+
* - static keys, SSO, or `credential_process`.
|
|
10
|
+
* 4. ECS/container credentials from `AWS_CONTAINER_CREDENTIALS_*`.
|
|
11
|
+
* 5. EC2 IMDSv2 when metadata is enabled.
|
|
12
|
+
*
|
|
13
|
+
* Resolved credentials are cached process-wide per profile and refreshed
|
|
14
|
+
* 60 s before `Expiration` to absorb clock skew.
|
|
15
|
+
*/
|
|
16
|
+
import type { FetchImpl } from "../types.js";
|
|
17
|
+
import type { AwsCredentials } from "./aws-sigv4.js";
|
|
18
|
+
export interface ResolvedCredentials extends AwsCredentials {
|
|
19
|
+
/** Absolute expiration timestamp in ms. `undefined` for non-expiring static creds. */
|
|
20
|
+
expiresAt?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface CredentialResolveOptions {
|
|
23
|
+
/** Named profile from `~/.aws/credentials` / `~/.aws/config`. */
|
|
24
|
+
profile?: string;
|
|
25
|
+
/** Falls back to env (`AWS_REGION` / `AWS_DEFAULT_REGION`) and finally `us-east-1`. */
|
|
26
|
+
region?: string;
|
|
27
|
+
signal?: AbortSignal;
|
|
28
|
+
fetch?: FetchImpl;
|
|
29
|
+
}
|
|
30
|
+
export declare function resolveAwsCredentials(opts?: CredentialResolveOptions): Promise<ResolvedCredentials>;
|
|
31
|
+
/** POSIX-shell-style tokenizer used by the AWS CLI for `credential_process`.
|
|
32
|
+
*
|
|
33
|
+
* Outside quotes a backslash escapes the next character. Inside single quotes
|
|
34
|
+
* everything is literal (no escapes, cannot contain `'`). Inside double quotes
|
|
35
|
+
* a backslash only escapes `$`, `` ` ``, `"`, and `\` — every other backslash
|
|
36
|
+
* is preserved verbatim, which is what makes Windows paths like
|
|
37
|
+
* `"C:\Program Files\tool\auth.exe"` survive tokenization. */
|
|
38
|
+
export declare function tokenizeCredentialProcessCommand(cmd: string): string[];
|
|
39
|
+
/** Test/diagnostic helper — drops cached credentials. */
|
|
40
|
+
export declare function clearAwsCredentialCache(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Drop the cache entry for one profile/region. Called by the Bedrock provider on
|
|
43
|
+
* 401/403 responses so stale credentials are re-resolved instead of served until restart.
|
|
44
|
+
*/
|
|
45
|
+
export declare function invalidateAwsCredentialCache(opts?: {
|
|
46
|
+
profile?: string;
|
|
47
|
+
region?: string;
|
|
48
|
+
}): void;
|