@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,15 @@
|
|
|
1
|
+
import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types.js";
|
|
2
|
+
export declare const ANTHROPIC_THINKING_TAG_PREFIXES: readonly ["<thinking", "</thinking", "<think", "</think", "<scratchpad", "</scratchpad", "<antml:thinking", "</antml:thinking", "<antml:think", "</antml:think", "<antml:scratchpad", "</antml:scratchpad"];
|
|
3
|
+
export interface AnthropicInbandScannerConfig {
|
|
4
|
+
readonly wrapperTags?: Readonly<Record<string, true>>;
|
|
5
|
+
readonly baseTagPrefixes?: readonly string[];
|
|
6
|
+
readonly allTagPrefixes?: readonly string[];
|
|
7
|
+
}
|
|
8
|
+
export declare class AnthropicInbandScanner implements InbandScanner {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(options?: InbandScannerOptions, config?: AnthropicInbandScannerConfig);
|
|
11
|
+
feed(text: string): InbandScanEvent[];
|
|
12
|
+
flush(): InbandScanEvent[];
|
|
13
|
+
}
|
|
14
|
+
declare const definition: DialectDefinition;
|
|
15
|
+
export default definition;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { InbandTool } from "./types.js";
|
|
2
|
+
export interface ToolArgShape {
|
|
3
|
+
stringArgs: Set<string>;
|
|
4
|
+
properties: Record<string, unknown>;
|
|
5
|
+
parameterOrder: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function buildArgShapes(tools?: readonly InbandTool[]): Map<string, ToolArgShape>;
|
|
8
|
+
export declare function buildStringArgsResolver(tools?: readonly InbandTool[]): (toolName: string) => ReadonlySet<string>;
|
|
9
|
+
export declare function resolveToolSchema(tool: InbandTool): Record<string, unknown>;
|
|
10
|
+
export declare function isStringOnlySchema(schema: unknown): boolean;
|
|
11
|
+
export declare function collectSchemaTypes(schema: unknown, out?: Set<string>, depth?: number): Set<string>;
|
|
12
|
+
export declare function jsonTypeOf(value: unknown): string;
|
|
13
|
+
export declare function decodeValue(raw: string): unknown;
|
|
14
|
+
export declare function coerceValue(raw: string, schema: unknown): unknown;
|
|
15
|
+
export declare function isArraySchema(schema: unknown): boolean;
|
|
16
|
+
export declare function isObjectSchema(schema: unknown): boolean;
|
|
17
|
+
export declare function getObjectProperties(schema: unknown): Record<string, unknown>;
|
|
18
|
+
export declare function getArrayItemSchema(schema: unknown): unknown;
|
|
19
|
+
export declare function mintToolCallId(): string;
|
|
20
|
+
export declare function partialSuffixOverlap(text: string, tag: string): number;
|
|
21
|
+
export declare function partialSuffixOverlapAny(text: string, tags: readonly string[]): number;
|
|
22
|
+
export declare function normalizeKimiFunctionName(rawId: string): string;
|
|
23
|
+
export declare function asRecord(value: unknown): Record<string, unknown>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types.js";
|
|
2
|
+
export declare const DEEPSEEK_TOOL_CALLS_BEGIN = "<\uFF5Ctool\u2581calls\u2581begin\uFF5C>";
|
|
3
|
+
export declare const DEEPSEEK_TOOL_CALLS_END = "<\uFF5Ctool\u2581calls\u2581end\uFF5C>";
|
|
4
|
+
export declare const DEEPSEEK_TOOL_CALL_BEGIN = "<\uFF5Ctool\u2581call\u2581begin\uFF5C>";
|
|
5
|
+
export declare const DEEPSEEK_TOOL_CALL_END = "<\uFF5Ctool\u2581call\u2581end\uFF5C>";
|
|
6
|
+
export declare const DEEPSEEK_TOOL_SEPARATOR = "<\uFF5Ctool\u2581sep\uFF5C>";
|
|
7
|
+
export declare class DeepSeekInbandScanner implements InbandScanner {
|
|
8
|
+
#private;
|
|
9
|
+
constructor(options?: InbandScannerOptions);
|
|
10
|
+
feed(text: string): InbandScanEvent[];
|
|
11
|
+
flush(): InbandScanEvent[];
|
|
12
|
+
}
|
|
13
|
+
declare const definition: DialectDefinition;
|
|
14
|
+
export default definition;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wrap a prior-turn reasoning string for demotion into native conversation
|
|
3
|
+
* history — the cross-provider / cross-model case where the target cannot
|
|
4
|
+
* replay it as a structured thinking block (verified end-to-end against Gemini
|
|
5
|
+
* 3: a replayed unsigned `thought` part is schema-accepted but silently
|
|
6
|
+
* discarded — neither recalled nor influencing generation).
|
|
7
|
+
*
|
|
8
|
+
* The Anthropic/Claude dialect is the primary exception: Anthropic's
|
|
9
|
+
* `reasoning_extraction` classifier blocks requests that replay prior
|
|
10
|
+
* reasoning inside `<thinking>` / `antml:thinking` tags — it reads the
|
|
11
|
+
* wrapped chain-of-thought as an attempt to duplicate model outputs and
|
|
12
|
+
* refuses (Fable) or leaks it as visible reasoning (Opus / Sonnet / Haiku /
|
|
13
|
+
* Mythos). Every Anthropic-dialect Claude model therefore receives prior
|
|
14
|
+
* reasoning as bare assistant prose: no tag, no wrapper, no trailing newline.
|
|
15
|
+
* Heat is cumulative (block count and early-conversation position also raise
|
|
16
|
+
* it), so this lowers per-block signal but does not license unbounded replay.
|
|
17
|
+
*
|
|
18
|
+
* Harmony and Gemma are the other exceptions: their `renderThinking` emits
|
|
19
|
+
* chat-template control tokens (`<|channel|>analysis`, `<|channel>thought`)
|
|
20
|
+
* that must not appear inside a structured native message, so they fall back
|
|
21
|
+
* to a plain `<think>` block. Every other dialect's thinking form is
|
|
22
|
+
* inline-safe XML tags or a markdown fence.
|
|
23
|
+
*
|
|
24
|
+
* The result does not append a delimiter; callers that flatten adjacent blocks
|
|
25
|
+
* into a single string must insert their own separator.
|
|
26
|
+
*
|
|
27
|
+
* Distinct from {@link DialectDefinition.renderThinking}, which targets the
|
|
28
|
+
* owned-dialect *text transport* where those control tokens are legal.
|
|
29
|
+
*/
|
|
30
|
+
export declare function renderDemotedThinking(modelId: string, text: string): string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { InbandTool } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Render a tool's examples as an `<examples>` block. Calls render in Python
|
|
4
|
+
* keyword-argument syntax (`name(key="value", n=1)`) regardless of the model's
|
|
5
|
+
* tool-call dialect, so example bytes stay identical across models. Multiline
|
|
6
|
+
* string args render as verbatim `"""…"""` blocks, and a call whose only
|
|
7
|
+
* argument is a string renders as the bare value — the block already names the
|
|
8
|
+
* tool, and payload args (commands, code, patches) read best verbatim.
|
|
9
|
+
*/
|
|
10
|
+
export declare function renderToolExamples(tool: InbandTool, intentField?: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Render a tool's examples as JSDoc-style `@example` lines for comment-gutter
|
|
13
|
+
* contexts (the Harmony `namespace functions` inventory): `@example "caption"`
|
|
14
|
+
* followed by the call in the same Python kwargs syntax as the wire block. The
|
|
15
|
+
* tag line delimits each example, so no XML envelope is needed — which is why
|
|
16
|
+
* the inventory uses this instead of `//`-prefixing the `<examples>` block.
|
|
17
|
+
*/
|
|
18
|
+
export declare function renderToolExamplesJsdoc(tool: InbandTool): string;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Dialect, DialectDefinition, InbandScanner, InbandScannerOptions } from "./types.js";
|
|
2
|
+
export declare function getDialectDefinition(dialect: Dialect): DialectDefinition;
|
|
3
|
+
export declare function createInbandScanner(dialect: Dialect, options?: InbandScannerOptions): InbandScanner;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Close-matcher for a ` ```thinking ` block that respects nested Markdown code
|
|
3
|
+
* fences. A naive `indexOf("```")` closes the thinking section at the FIRST
|
|
4
|
+
* backtick fence inside the reasoning, so an inner ` ```rs … ``` ` code block
|
|
5
|
+
* leaks its body (and everything after) into the visible channel. This scanner
|
|
6
|
+
* tracks inner-fence nesting so only the real thinking closer ends the block.
|
|
7
|
+
*
|
|
8
|
+
* Distinguishing an inner opener from the closer: a fenced code block opener is
|
|
9
|
+
* ` ``` ` immediately followed by a language token (`rs`, `tool_code`, `c++` …)
|
|
10
|
+
* and a newline. The thinking closer is a bare ` ``` `, or ` ``` ` glued to the
|
|
11
|
+
* visible reply — its remainder is prose (contains whitespace/punctuation), not
|
|
12
|
+
* a language token. So a top-level fence whose info is a single language-token
|
|
13
|
+
* word opens a nested block; anything else closes the thinking, and the text
|
|
14
|
+
* after the fence run is the visible reply. This preserves the long-standing
|
|
15
|
+
* inline-close behavior (` ```Visible reply ` ends the block) while skipping
|
|
16
|
+
* language-tagged inner fences.
|
|
17
|
+
*
|
|
18
|
+
* Used by both the owned Gemini scanner (live ` ```thinking ` stream) and the
|
|
19
|
+
* generic `ThinkingInbandScanner` (leaked-idiom healing).
|
|
20
|
+
*
|
|
21
|
+
* Limitation: an *info-less* nested fence (a bare ` ``` ` opening a code block
|
|
22
|
+
* inside the reasoning) is indistinguishable from the thinking closer and ends
|
|
23
|
+
* the block. Models tag their fences with a language in practice, so this is
|
|
24
|
+
* strictly better than the previous first-` ``` ` behavior.
|
|
25
|
+
*/
|
|
26
|
+
/** Result of feeding bytes to {@link FencedThinkingScanner}. */
|
|
27
|
+
export interface FencedThinkingResult {
|
|
28
|
+
/** Thinking text to emit for this feed (may be empty). */
|
|
29
|
+
readonly thinking: string;
|
|
30
|
+
/** True once the thinking closer has been consumed. */
|
|
31
|
+
readonly closed: boolean;
|
|
32
|
+
/** Bytes after the closing fence (visible reply); only meaningful when {@link closed}. */
|
|
33
|
+
readonly rest: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Stateful, line-oriented close-matcher for one ` ```thinking ` block. Owns the
|
|
37
|
+
* partial-line buffer so an ambiguous trailing fence is held until it resolves.
|
|
38
|
+
*
|
|
39
|
+
* Streaming stays character-level for ordinary content: a line is emitted as its
|
|
40
|
+
* bytes arrive, yet retained in the buffer until its newline so the complete
|
|
41
|
+
* line can be classified ({@link #emitted} tracks how many leading bytes are
|
|
42
|
+
* already emitted). A top-level fence candidate is held until its info
|
|
43
|
+
* disambiguates opener (language token) from closer (prose / bare).
|
|
44
|
+
*/
|
|
45
|
+
export declare class FencedThinkingScanner {
|
|
46
|
+
#private;
|
|
47
|
+
/**
|
|
48
|
+
* Feed bytes and return thinking deltas plus close state. When `final`, the
|
|
49
|
+
* held tail resolves: a bare ` ``` ` or a ` ```<reply> ` fence closes the
|
|
50
|
+
* block (remainder becomes `rest`), otherwise it is unterminated thinking.
|
|
51
|
+
*/
|
|
52
|
+
feed(text: string, final: boolean): FencedThinkingResult;
|
|
53
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Scanner for the hosted-Gemini / Gemma 3 Pythonic tool-calling convention
|
|
4
|
+
* (see `docs/toolconv/gemini.md`). Tool calls arrive as a ```` ```tool_code ````
|
|
5
|
+
* fenced block whose body is one or more Python call expressions, e.g.
|
|
6
|
+
* `print(default_api.search(pattern="x", skip=40))`. Like the qwen3 scanner we
|
|
7
|
+
* buffer the whole block until its closing fence, then parse all calls at once
|
|
8
|
+
* (no incremental argument deltas — Python literals are not worth streaming).
|
|
9
|
+
*/
|
|
10
|
+
export declare class GeminiInbandScanner implements InbandScanner {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(options?: InbandScannerOptions);
|
|
13
|
+
feed(text: string): InbandScanEvent[];
|
|
14
|
+
flush(): InbandScanEvent[];
|
|
15
|
+
}
|
|
16
|
+
declare const definition: DialectDefinition;
|
|
17
|
+
export default definition;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Scanner for the Gemma 4 token-delimited tool-calling convention (see
|
|
4
|
+
* `docs/toolconv/gemma.md`). Each call is one `<|tool_call>call:NAME{…}<tool_call|>`
|
|
5
|
+
* block whose argument list is `key:value` pairs; string values are wrapped in
|
|
6
|
+
* the `<|"|>` token rather than ASCII quotes, so splitting must skip those spans.
|
|
7
|
+
*/
|
|
8
|
+
export declare class GemmaInbandScanner implements InbandScanner {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(options?: InbandScannerOptions);
|
|
11
|
+
feed(text: string): InbandScanEvent[];
|
|
12
|
+
flush(): InbandScanEvent[];
|
|
13
|
+
}
|
|
14
|
+
declare const definition: DialectDefinition;
|
|
15
|
+
export default definition;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types.js";
|
|
2
|
+
export declare class GLMInbandScanner implements InbandScanner {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(options?: InbandScannerOptions);
|
|
5
|
+
feed(text: string): InbandScanEvent[];
|
|
6
|
+
flush(): InbandScanEvent[];
|
|
7
|
+
}
|
|
8
|
+
declare const definition: DialectDefinition;
|
|
9
|
+
export default definition;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DialectDefinition, InbandScanEvent, InbandScanner } from "./types.js";
|
|
2
|
+
export declare class HarmonyInbandScanner implements InbandScanner {
|
|
3
|
+
#private;
|
|
4
|
+
feed(text: string): InbandScanEvent[];
|
|
5
|
+
flush(): InbandScanEvent[];
|
|
6
|
+
}
|
|
7
|
+
declare const definition: DialectDefinition;
|
|
8
|
+
export default definition;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types.js";
|
|
2
|
+
export declare class HermesInbandScanner implements InbandScanner {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(options?: InbandScannerOptions);
|
|
5
|
+
feed(text: string): InbandScanEvent[];
|
|
6
|
+
flush(): InbandScanEvent[];
|
|
7
|
+
}
|
|
8
|
+
declare const definition: DialectDefinition;
|
|
9
|
+
export default definition;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from "./catalog.js";
|
|
2
|
+
export * from "./coercion.js";
|
|
3
|
+
export * from "./demotion.js";
|
|
4
|
+
export * from "./examples.js";
|
|
5
|
+
export * from "./factory.js";
|
|
6
|
+
export * from "./history.js";
|
|
7
|
+
export * from "./inventory.js";
|
|
8
|
+
export * from "./owned-stream.js";
|
|
9
|
+
export { renderDelimitedThinking } from "./rendering.js";
|
|
10
|
+
export * from "./thinking.js";
|
|
11
|
+
export * from "./types.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { InbandTool } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Tool catalog in the OpenAI-Harmony `namespace functions { … }` shape: each
|
|
4
|
+
* tool renders as its full description (and Python-syntax examples) as `//`
|
|
5
|
+
* comment lines above a flat `type <name> = (_: {…});` declaration. Shared by
|
|
6
|
+
* the verbose system-prompt inventory and `/dump` so both render the catalog
|
|
7
|
+
* the same way.
|
|
8
|
+
*/
|
|
9
|
+
export declare function renderToolInventory(tools: readonly InbandTool[]): string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types.js";
|
|
2
|
+
export declare const KIMI_SECTION_BEGIN = "<|tool_calls_section_begin|>";
|
|
3
|
+
export declare const KIMI_SECTION_END = "<|tool_calls_section_end|>";
|
|
4
|
+
export declare const KIMI_CALL_BEGIN = "<|tool_call_begin|>";
|
|
5
|
+
export declare const KIMI_CALL_END = "<|tool_call_end|>";
|
|
6
|
+
export declare const KIMI_ARG_BEGIN = "<|tool_call_argument_begin|>";
|
|
7
|
+
export declare class KimiInbandScanner implements InbandScanner {
|
|
8
|
+
#private;
|
|
9
|
+
constructor(options?: InbandScannerOptions);
|
|
10
|
+
feed(text: string): InbandScanEvent[];
|
|
11
|
+
flush(): InbandScanEvent[];
|
|
12
|
+
}
|
|
13
|
+
declare const definition: DialectDefinition;
|
|
14
|
+
export default definition;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AssistantMessage, AssistantMessageEventStream as AssistantMessageEventStreamType } from "../types.js";
|
|
2
|
+
import type { Dialect, InbandTool } from "./types.js";
|
|
3
|
+
export declare function parseInbandToolMessage(message: AssistantMessage, dialect: Dialect, tools: readonly InbandTool[]): AssistantMessage;
|
|
4
|
+
export declare function wrapInbandToolStream(inner: AssistantMessageEventStreamType, tools: readonly InbandTool[], dialect: Dialect, onAbort?: () => void, abortOnFabrication?: boolean): AssistantMessageEventStreamType;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types.js";
|
|
2
|
+
export declare class Qwen3InbandScanner implements InbandScanner {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(options?: InbandScannerOptions);
|
|
5
|
+
feed(text: string): InbandScanEvent[];
|
|
6
|
+
flush(): InbandScanEvent[];
|
|
7
|
+
}
|
|
8
|
+
declare const definition: DialectDefinition;
|
|
9
|
+
export default definition;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { AssistantMessage, Message, ToolCall } from "../types.js";
|
|
2
|
+
import type { DialectRenderOptions, DialectToolResult } from "./types.js";
|
|
3
|
+
export declare function renderToolResponseResults(results: readonly DialectToolResult[]): string;
|
|
4
|
+
export declare function kimiCallId(name: string, id: string, index: number): string;
|
|
5
|
+
export declare function harmonyRecipient(name: string): string;
|
|
6
|
+
export declare function stringifyJson(value: unknown): string;
|
|
7
|
+
/**
|
|
8
|
+
* Render `name(key=value, …)` with Python-literal argument values. Top-level
|
|
9
|
+
* multiline strings render as verbatim `"""…"""` blocks so payload-carrying
|
|
10
|
+
* args (file content, scripts, patches) keep real newlines instead of `\n`
|
|
11
|
+
* escape soup; nested values always use escaped single-line literals.
|
|
12
|
+
*/
|
|
13
|
+
export declare function pyCall(name: string, args: Record<string, unknown>): string;
|
|
14
|
+
/** Render a JSON-ish value as a Python literal (`True`/`False`/`None`, escaped strings, lists, dicts). */
|
|
15
|
+
export declare function pyValue(value: unknown): string;
|
|
16
|
+
export declare function escapeXmlAttr(value: string): string;
|
|
17
|
+
export declare function escapeXmlText(value: string): string;
|
|
18
|
+
export type AssistantTranscriptParts = {
|
|
19
|
+
readonly text: string;
|
|
20
|
+
readonly thinking: string;
|
|
21
|
+
readonly toolCalls: readonly ToolCall[];
|
|
22
|
+
};
|
|
23
|
+
export type ToolCallRenderer = (calls: readonly ToolCall[], options?: DialectRenderOptions) => string;
|
|
24
|
+
export type ToolResultRenderer = (results: readonly DialectToolResult[], options?: DialectRenderOptions) => string;
|
|
25
|
+
export type ChatMlTranscriptConfig = {
|
|
26
|
+
readonly bos?: string;
|
|
27
|
+
readonly toolResultRole: "tool" | "user";
|
|
28
|
+
readonly renderThinking: (text: string) => string;
|
|
29
|
+
readonly renderCalls: ToolCallRenderer;
|
|
30
|
+
readonly renderResultsBody: ToolResultRenderer;
|
|
31
|
+
};
|
|
32
|
+
export type LegacyTextTranscriptConfig = {
|
|
33
|
+
readonly renderThinking: (text: string) => string;
|
|
34
|
+
readonly renderCalls: ToolCallRenderer;
|
|
35
|
+
readonly renderResults: ToolResultRenderer;
|
|
36
|
+
};
|
|
37
|
+
export declare function renderChatMlTranscript(messages: readonly Message[], options: DialectRenderOptions, config: ChatMlTranscriptConfig): string;
|
|
38
|
+
export declare function renderLegacyTextTranscript(messages: readonly Message[], options: DialectRenderOptions, config: LegacyTextTranscriptConfig): string;
|
|
39
|
+
export declare function assistantTranscriptParts(message: AssistantMessage): AssistantTranscriptParts;
|
|
40
|
+
export declare function collectToolResultRun(messages: readonly Message[], start: number): {
|
|
41
|
+
readonly results: readonly DialectToolResult[];
|
|
42
|
+
readonly next: number;
|
|
43
|
+
};
|
|
44
|
+
export declare function messageContentText(content: string | readonly {
|
|
45
|
+
readonly type: string;
|
|
46
|
+
readonly text?: string;
|
|
47
|
+
readonly mimeType?: string;
|
|
48
|
+
}[]): string;
|
|
49
|
+
export declare function renderDelimitedThinking(open: string, close: string, text: string): string;
|
|
50
|
+
export declare function chatMlTurn(role: "assistant" | "system" | "tool" | "user", body: string): string;
|
|
51
|
+
export declare function kimiTurn(role: "assistant" | "system" | "user", name: string, body: string): string;
|
|
52
|
+
export declare function gemmaTurn(role: "model" | "system" | "user", body: string): string;
|
|
53
|
+
export declare function geminiTurn(role: "model" | "user", body: string): string;
|
|
54
|
+
export declare function joinUserBodies(left: string, right: string): string;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { Dialect as CatalogDialect } from "@linxiraos/pi-catalog/identity";
|
|
2
|
+
import type { Context, Message, ToolCall } from "../types.js";
|
|
3
|
+
export type { Dialect } from "@linxiraos/pi-catalog/identity";
|
|
4
|
+
export type InbandScanEvent = {
|
|
5
|
+
type: "text";
|
|
6
|
+
text: string;
|
|
7
|
+
} | {
|
|
8
|
+
type: "thinkingStart";
|
|
9
|
+
} | {
|
|
10
|
+
type: "thinkingDelta";
|
|
11
|
+
delta: string;
|
|
12
|
+
} | {
|
|
13
|
+
type: "thinkingEnd";
|
|
14
|
+
thinking: string;
|
|
15
|
+
} | {
|
|
16
|
+
type: "toolStart";
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
} | {
|
|
20
|
+
type: "toolArgDelta";
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
key: string;
|
|
24
|
+
delta: string;
|
|
25
|
+
} | {
|
|
26
|
+
type: "toolEnd";
|
|
27
|
+
id: string;
|
|
28
|
+
name: string;
|
|
29
|
+
arguments: Record<string, unknown>;
|
|
30
|
+
rawBlock?: string;
|
|
31
|
+
};
|
|
32
|
+
export interface InbandScanner {
|
|
33
|
+
feed(text: string): InbandScanEvent[];
|
|
34
|
+
flush(): InbandScanEvent[];
|
|
35
|
+
}
|
|
36
|
+
export interface DialectToolResult {
|
|
37
|
+
readonly id: string;
|
|
38
|
+
readonly name: string;
|
|
39
|
+
readonly index: number;
|
|
40
|
+
readonly text: string;
|
|
41
|
+
readonly isError: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface DialectRenderOptions {
|
|
44
|
+
readonly tools?: readonly InbandTool[];
|
|
45
|
+
}
|
|
46
|
+
export interface DialectDefinition {
|
|
47
|
+
readonly dialect: CatalogDialect;
|
|
48
|
+
readonly prompt: string;
|
|
49
|
+
createScanner(options?: InbandScannerOptions): InbandScanner;
|
|
50
|
+
/** Render a single tool-call invocation — the inner element only, WITHOUT any parallel-call block envelope (e.g. anthropic's `<function_calls>` / kimi's section wrapper). */
|
|
51
|
+
renderToolCall(call: ToolCall, options?: DialectRenderOptions): string;
|
|
52
|
+
/** Render a batch of (parallel) tool calls as one complete block, including whatever envelope the dialect wraps multiple calls in. */
|
|
53
|
+
renderAssistantToolCalls(calls: readonly ToolCall[], options?: DialectRenderOptions): string;
|
|
54
|
+
renderToolResults(results: readonly DialectToolResult[], options?: DialectRenderOptions): string;
|
|
55
|
+
renderThinking(text: string): string;
|
|
56
|
+
renderTranscript(messages: readonly Message[], options?: DialectRenderOptions): string;
|
|
57
|
+
}
|
|
58
|
+
export interface InbandScannerOptions {
|
|
59
|
+
/** string-typed arg names for a tool → read verbatim. Ignored by JSON-carrying dialects. */
|
|
60
|
+
stringArgs?: (toolName: string) => ReadonlySet<string>;
|
|
61
|
+
/** Full tool schemas for schema-driven dialects such as GLM XML and pi-native. */
|
|
62
|
+
tools?: readonly InbandTool[];
|
|
63
|
+
/** XML only: parse pipe-wrapped DeepSeek DSML tags vs plain Anthropic invoke/parameter tags. */
|
|
64
|
+
xmlTagset?: "anthropic" | "dsml";
|
|
65
|
+
/** Emit thinking markers as thinking events instead of visible text when the dialect defines them. */
|
|
66
|
+
parseThinking?: boolean;
|
|
67
|
+
}
|
|
68
|
+
export type InbandTool = NonNullable<Context["tools"]>[number];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DialectDefinition, InbandScanEvent, InbandScanner, InbandScannerOptions } from "./types.js";
|
|
2
|
+
export declare class XmlInbandScanner implements InbandScanner {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(options?: InbandScannerOptions);
|
|
5
|
+
feed(text: string): InbandScanEvent[];
|
|
6
|
+
flush(): InbandScanEvent[];
|
|
7
|
+
}
|
|
8
|
+
declare const definition: DialectDefinition;
|
|
9
|
+
export default definition;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A request was cancelled — by the caller's `AbortSignal` or a provider-local
|
|
3
|
+
* watchdog. Carries the {@link Flag.Abort} classification structurally so retry
|
|
4
|
+
* logic does not have to regex the message text.
|
|
5
|
+
*
|
|
6
|
+
* The default message is kept byte-identical to the historical
|
|
7
|
+
* `"Request was aborted"` string so any remaining text-based matchers keep
|
|
8
|
+
* working through the migration.
|
|
9
|
+
*/
|
|
10
|
+
export declare class AbortError extends Error {
|
|
11
|
+
constructor(message?: string, options?: {
|
|
12
|
+
cause?: unknown;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether an OAuth refresh failure is definitive (the credential must be
|
|
3
|
+
* disabled) versus transient. Thin alias over the {@link Flag.OAuthExpiry}
|
|
4
|
+
* text classifier {@link isOAuthExpiry}; retained as the public
|
|
5
|
+
* `@linxiraos/pi-ai` entrypoint name used by the coding agent and auth-broker.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isDefinitiveOAuthFailure(errorMsg: string): boolean;
|
|
8
|
+
/** Whether an upstream response explicitly says the supplied OAuth bearer was invalidated. */
|
|
9
|
+
export declare function isInvalidatedOAuthTokenError(error: unknown): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Whether an upstream failure should rotate to a sibling credential: a hard
|
|
12
|
+
* `401`, a `403` (token valid but access denied — plan, model policy, or org
|
|
13
|
+
* restriction a sibling account may not share), a body-classified usage limit
|
|
14
|
+
* (Codex `usage_limit_reached`, Anthropic account rate-limit, Google
|
|
15
|
+
* `resource_exhausted`, OpenAI `insufficient_quota`, …), or a bare `429`
|
|
16
|
+
* whose payload did not preserve a richer quota code.
|
|
17
|
+
* Transient 429s (`Too many requests`, per-minute caps) stay in the
|
|
18
|
+
* upstream-backoff lane.
|
|
19
|
+
*/
|
|
20
|
+
export declare function isAuthRetryableError(error: unknown): boolean;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* No API key / credential was available to dispatch a request.
|
|
3
|
+
*
|
|
4
|
+
* The default message preserves the historical `"No API key for provider: X"`
|
|
5
|
+
* wording, which {@link Flag.AuthFailed}'s regex (`no api key`) keys off — but
|
|
6
|
+
* the flag is also attached structurally so classification never depends on the
|
|
7
|
+
* exact phrasing.
|
|
8
|
+
*/
|
|
9
|
+
export declare class MissingApiKeyError extends Error {
|
|
10
|
+
readonly provider: string | undefined;
|
|
11
|
+
constructor(provider?: string, message?: string);
|
|
12
|
+
}
|
|
13
|
+
/** A user-facing login flow required an `onPrompt` callback that was not supplied. */
|
|
14
|
+
export declare class OnPromptRequiredError extends Error {
|
|
15
|
+
constructor(providerLabel: string);
|
|
16
|
+
}
|
|
17
|
+
/** An interactive login asked for an API key but the user supplied an empty value. */
|
|
18
|
+
export declare class ApiKeyRequiredError extends Error {
|
|
19
|
+
constructor(message?: string);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A user cancelled an interactive login / device flow. Classified as an abort
|
|
23
|
+
* so it is never surfaced as a retryable transient failure.
|
|
24
|
+
*/
|
|
25
|
+
export declare class LoginCancelledError extends Error {
|
|
26
|
+
constructor(message?: string);
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** Which AWS credential-resolution path failed. */
|
|
2
|
+
export type AwsCredentialsErrorKind =
|
|
3
|
+
/** No usable credential source resolved (chain exhausted). */
|
|
4
|
+
"resolution"
|
|
5
|
+
/** SSO cache token missing (`aws sso login` not run). */
|
|
6
|
+
| "sso-token-missing"
|
|
7
|
+
/** SSO cache token present but expired. */
|
|
8
|
+
| "sso-token-expired"
|
|
9
|
+
/** SSO `GetRoleCredentials` call failed or returned no role. */
|
|
10
|
+
| "sso-role"
|
|
11
|
+
/** External `credential_process` failed, timed out, or emitted bad output. */
|
|
12
|
+
| "credential-process"
|
|
13
|
+
/** STS web-identity exchange failed or returned malformed credentials. */
|
|
14
|
+
| "web-identity"
|
|
15
|
+
/** ECS/container credential endpoint failed or returned malformed credentials. */
|
|
16
|
+
| "container";
|
|
17
|
+
/** A failure resolving AWS credentials for the Bedrock provider. */
|
|
18
|
+
export declare class AwsCredentialsError extends Error {
|
|
19
|
+
readonly kind: AwsCredentialsErrorKind;
|
|
20
|
+
constructor(message: string, kind: AwsCredentialsErrorKind, options?: {
|
|
21
|
+
cause?: unknown;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/** A malformed AWS event-stream frame (bad length, CRC mismatch, unknown header type). */
|
|
25
|
+
export declare class EventStreamFrameError extends Error {
|
|
26
|
+
constructor(detail: string);
|
|
27
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type { CapturedHttpErrorResponse } from "../utils/http-inspector.js";
|
|
2
|
+
/** Prefix on errors raised when an Anthropic SSE stream envelope is malformed. */
|
|
3
|
+
export declare const STREAM_ENVELOPE_ERROR_PREFIX = "Anthropic stream envelope error:";
|
|
4
|
+
/** Structured HTTP errors thrown by provider clients. */
|
|
5
|
+
export interface ProviderHttpErrorOptions {
|
|
6
|
+
/** Response headers; enables `retry-after`/rate-limit extraction downstream. */
|
|
7
|
+
headers?: Headers;
|
|
8
|
+
/** Machine-readable error code from the response body (`error.code` / `error.type`). */
|
|
9
|
+
code?: string;
|
|
10
|
+
cause?: unknown;
|
|
11
|
+
}
|
|
12
|
+
/** Non-2xx HTTP response from a provider. */
|
|
13
|
+
export declare class ProviderHttpError extends Error {
|
|
14
|
+
readonly status: number;
|
|
15
|
+
readonly headers: Headers | undefined;
|
|
16
|
+
readonly code: string | undefined;
|
|
17
|
+
constructor(message: string, status: number, options?: ProviderHttpErrorOptions);
|
|
18
|
+
}
|
|
19
|
+
/** Non-2xx response from an OpenAI-wire endpoint, with the decoded body attached. */
|
|
20
|
+
export declare class OpenAIHttpError extends ProviderHttpError {
|
|
21
|
+
readonly captured: CapturedHttpErrorResponse;
|
|
22
|
+
constructor(message: string, captured: CapturedHttpErrorResponse, code?: string, cause?: unknown);
|
|
23
|
+
/**
|
|
24
|
+
* Pull a human-readable message and machine code out of an OpenAI-style error
|
|
25
|
+
* envelope (`{ error: { message, code, type } }`), tolerating the flat shapes
|
|
26
|
+
* compat hosts return (`{ error: "..." }`, `{ message: "..." }`) and falling
|
|
27
|
+
* back to the raw body text.
|
|
28
|
+
*/
|
|
29
|
+
static parseEnvelope(bodyJson: unknown, bodyText: string | undefined): {
|
|
30
|
+
detail: string | undefined;
|
|
31
|
+
code: string | undefined;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** Test-only control for the otherwise bounded Anthropic error-body drain. */
|
|
35
|
+
export declare const __anthropicApiErrorForTesting: {
|
|
36
|
+
setBodyReadTimeoutMs(timeoutMs: number | undefined): void;
|
|
37
|
+
};
|
|
38
|
+
/** Non-2xx response from the Anthropic API. */
|
|
39
|
+
export declare class AnthropicApiError extends ProviderHttpError {
|
|
40
|
+
readonly headers: Headers;
|
|
41
|
+
readonly requestId: string | null;
|
|
42
|
+
constructor(status: number, message: string, headers: Headers);
|
|
43
|
+
static fromResponse(response: Response, signal?: AbortSignal): Promise<AnthropicApiError>;
|
|
44
|
+
}
|
|
45
|
+
/** Network-level failure (DNS, TLS, socket reset) after retries were exhausted. */
|
|
46
|
+
export declare class AnthropicConnectionError extends Error {
|
|
47
|
+
constructor(cause: unknown);
|
|
48
|
+
}
|
|
49
|
+
/** No response headers arrived within the configured request timeout. */
|
|
50
|
+
export declare class AnthropicConnectionTimeoutError extends Error {
|
|
51
|
+
constructor();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* A malformed Anthropic SSE stream envelope — events arriving out of order
|
|
55
|
+
* (before `message_start`) or otherwise violating the message-event grammar.
|
|
56
|
+
* The message is prefixed with {@link STREAM_ENVELOPE_ERROR_PREFIX} so the
|
|
57
|
+
* shared envelope predicates classify it.
|
|
58
|
+
*/
|
|
59
|
+
export declare class AnthropicStreamEnvelopeError extends Error {
|
|
60
|
+
constructor(detail: string);
|
|
61
|
+
}
|
|
62
|
+
/** Non-2xx response (or in-stream exception event) from the Bedrock runtime API. */
|
|
63
|
+
export declare class BedrockApiError extends ProviderHttpError {
|
|
64
|
+
readonly name = "BedrockApiError";
|
|
65
|
+
}
|
|
66
|
+
/** Non-2xx response (or in-stream error chunk) from the Cloud Code Assist API. */
|
|
67
|
+
export declare class GeminiCliApiError extends ProviderHttpError {
|
|
68
|
+
readonly name = "GeminiCliApiError";
|
|
69
|
+
}
|
|
70
|
+
/** Non-2xx response (or in-stream error chunk) from the Google Generative Language / Vertex API. */
|
|
71
|
+
export declare class GoogleApiError extends ProviderHttpError {
|
|
72
|
+
readonly name = "GoogleApiError";
|
|
73
|
+
}
|
|
74
|
+
/** Non-2xx response from the Ollama `/api/chat` endpoint. */
|
|
75
|
+
export declare class OllamaApiError extends ProviderHttpError {
|
|
76
|
+
readonly name = "OllamaApiError";
|
|
77
|
+
}
|
|
78
|
+
/** Auth gateway HTTP failure. */
|
|
79
|
+
export declare class AuthGatewayError extends ProviderHttpError {
|
|
80
|
+
constructor(message: string, status: number, headers?: Headers, code?: string);
|
|
81
|
+
}
|
|
82
|
+
export declare class CodexWebSocketTransportError extends Error {
|
|
83
|
+
constructor(detail: string);
|
|
84
|
+
}
|
|
85
|
+
export declare class CodexWhitespaceToolCallLoopError extends Error {
|
|
86
|
+
constructor(message: string);
|
|
87
|
+
}
|
|
88
|
+
export declare class CodexProviderStreamError extends Error {
|
|
89
|
+
readonly retryable: boolean;
|
|
90
|
+
constructor(message: string, options?: {
|
|
91
|
+
retryable?: boolean;
|
|
92
|
+
cause?: unknown;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
export declare class AuthBrokerError extends Error {
|
|
96
|
+
readonly status: number | undefined;
|
|
97
|
+
readonly body: string | undefined;
|
|
98
|
+
constructor(message: string, opts?: {
|
|
99
|
+
status?: number;
|
|
100
|
+
body?: string;
|
|
101
|
+
cause?: unknown;
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
export declare class AuthBrokerStreamUnsupportedError extends AuthBrokerError {
|
|
105
|
+
constructor(message?: string);
|
|
106
|
+
}
|