jeopi-ai 16.2.13
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 +4347 -0
- package/README.md +1193 -0
- package/dist/types/api-registry.d.ts +30 -0
- package/dist/types/auth-broker/client.d.ts +73 -0
- package/dist/types/auth-broker/discover.d.ts +35 -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 +102 -0
- package/dist/types/auth-broker/server.d.ts +43 -0
- package/dist/types/auth-broker/snapshot-cache.d.ts +17 -0
- package/dist/types/auth-broker/types.d.ts +107 -0
- package/dist/types/auth-broker/wire-schemas.d.ts +411 -0
- package/dist/types/auth-gateway/http.d.ts +39 -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 +123 -0
- package/dist/types/auth-retry.d.ts +124 -0
- package/dist/types/auth-storage.d.ts +1026 -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 +23 -0
- package/dist/types/dialect/examples.d.ts +2 -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 +12 -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 +45 -0
- package/dist/types/dialect/thinking.d.ts +6 -0
- package/dist/types/dialect/types.d.ts +69 -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 +16 -0
- package/dist/types/error/auth.d.ts +27 -0
- package/dist/types/error/aws.d.ts +23 -0
- package/dist/types/error/classes.d.ts +102 -0
- package/dist/types/error/finalize.d.ts +39 -0
- package/dist/types/error/flags.d.ts +79 -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 +13 -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 +59 -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 +49 -0
- package/dist/types/provider-details.d.ts +24 -0
- package/dist/types/providers/__tests__/google-auth.test.d.ts +1 -0
- package/dist/types/providers/__tests__/kimi-code-thinking.test.d.ts +1 -0
- package/dist/types/providers/__tests__/openai-codex-error.test.d.ts +1 -0
- package/dist/types/providers/amazon-bedrock.d.ts +39 -0
- package/dist/types/providers/anthropic-client.d.ts +94 -0
- package/dist/types/providers/anthropic-messages-server-schema.d.ts +497 -0
- package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
- package/dist/types/providers/anthropic-wire.d.ts +318 -0
- package/dist/types/providers/anthropic.d.ts +248 -0
- package/dist/types/providers/aws-credentials.d.ts +53 -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/cursor.d.ts +91 -0
- package/dist/types/providers/devin.d.ts +12 -0
- package/dist/types/providers/error-message.d.ts +27 -0
- package/dist/types/providers/github-copilot-headers.d.ts +40 -0
- package/dist/types/providers/gitlab-duo-workflow.d.ts +254 -0
- package/dist/types/providers/gitlab-duo.d.ts +27 -0
- package/dist/types/providers/google-auth.d.ts +32 -0
- package/dist/types/providers/google-gemini-cli.d.ts +118 -0
- package/dist/types/providers/google-interactions.d.ts +65 -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 +178 -0
- package/dist/types/providers/ollama.d.ts +7 -0
- package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
- package/dist/types/providers/openai-chat-server-schema.d.ts +695 -0
- package/dist/types/providers/openai-chat-server.d.ts +16 -0
- package/dist/types/providers/openai-chat-wire.d.ts +644 -0
- package/dist/types/providers/openai-codex/request-transformer.d.ts +54 -0
- package/dist/types/providers/openai-codex/response-handler.d.ts +26 -0
- package/dist/types/providers/openai-codex-responses.d.ts +108 -0
- package/dist/types/providers/openai-completions.d.ts +45 -0
- package/dist/types/providers/openai-reasoning-fallback.d.ts +25 -0
- package/dist/types/providers/openai-responses-server-schema.d.ts +349 -0
- package/dist/types/providers/openai-responses-server.d.ts +17 -0
- package/dist/types/providers/openai-responses-wire.d.ts +6065 -0
- package/dist/types/providers/openai-responses.d.ts +126 -0
- package/dist/types/providers/openai-shared.d.ts +506 -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 +32 -0
- package/dist/types/providers/synthetic.d.ts +26 -0
- package/dist/types/providers/transform-messages.d.ts +11 -0
- package/dist/types/providers/vision-guard.d.ts +20 -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/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/azure.d.ts +4 -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/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/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/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/nvidia.d.ts +7 -0
- package/dist/types/registry/oauth/__tests__/xai-oauth.test.d.ts +1 -0
- package/dist/types/registry/oauth/anthropic.d.ts +23 -0
- package/dist/types/registry/oauth/callback-server.d.ts +72 -0
- package/dist/types/registry/oauth/cursor.d.ts +15 -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 +10 -0
- package/dist/types/registry/oauth/google-oauth-shared.d.ts +22 -0
- package/dist/types/registry/oauth/index.d.ts +64 -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 +56 -0
- package/dist/types/registry/oauth/wafer.d.ts +1 -0
- package/dist/types/registry/oauth/xai-oauth.d.ts +52 -0
- package/dist/types/registry/oauth/xiaomi.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 +303 -0
- package/dist/types/registry/sakana.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 +51 -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 +4 -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 +7 -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 +44 -0
- package/dist/types/types.d.ts +715 -0
- package/dist/types/usage/claude.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 +2 -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 +79 -0
- package/dist/types/usage/openai-codex.d.ts +3 -0
- package/dist/types/usage/opencode-go.d.ts +2 -0
- package/dist/types/usage/shared.d.ts +1 -0
- package/dist/types/usage/zai.d.ts +2 -0
- package/dist/types/usage.d.ts +346 -0
- package/dist/types/utils/abort.d.ts +25 -0
- package/dist/types/utils/anthropic-auth.d.ts +35 -0
- package/dist/types/utils/block-symbols.d.ts +20 -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 +30 -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 +118 -0
- package/dist/types/utils/http-inspector.d.ts +30 -0
- package/dist/types/utils/idle-iterator.d.ts +137 -0
- package/dist/types/utils/leaked-thinking-stream.d.ts +29 -0
- package/dist/types/utils/openai-http.d.ts +54 -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 +29 -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 +15 -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 +124 -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 +18 -0
- package/dist/types/utils/schema/wire.d.ts +92 -0
- package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -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 +50 -0
- package/dist/types/utils/validation.d.ts +42 -0
- package/dist/types/utils.d.ts +24 -0
- package/package.json +139 -0
- package/src/api-registry.ts +109 -0
- package/src/auth-broker/client.ts +359 -0
- package/src/auth-broker/discover.ts +222 -0
- package/src/auth-broker/index.ts +7 -0
- package/src/auth-broker/refresher.ts +117 -0
- package/src/auth-broker/remote-store.ts +657 -0
- package/src/auth-broker/server.ts +646 -0
- package/src/auth-broker/snapshot-cache.ts +191 -0
- package/src/auth-broker/types.ts +130 -0
- package/src/auth-broker/wire-schemas.ts +249 -0
- package/src/auth-gateway/http.ts +194 -0
- package/src/auth-gateway/index.ts +3 -0
- package/src/auth-gateway/server.ts +802 -0
- package/src/auth-gateway/types.ts +151 -0
- package/src/auth-retry.ts +250 -0
- package/src/auth-storage.ts +5576 -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 +36 -0
- package/src/dialect/examples.ts +33 -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 +597 -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 +456 -0
- package/src/dialect/harmony.md +31 -0
- package/src/dialect/harmony.ts +346 -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 +73 -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 +470 -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 +249 -0
- package/src/dialect/thinking.ts +122 -0
- package/src/dialect/types.ts +57 -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 +30 -0
- package/src/error/auth.ts +48 -0
- package/src/error/aws.ts +31 -0
- package/src/error/classes.ts +186 -0
- package/src/error/finalize.ts +69 -0
- package/src/error/flags.ts +506 -0
- package/src/error/format.ts +45 -0
- package/src/error/gateway.ts +96 -0
- package/src/error/index.ts +13 -0
- package/src/error/oauth.ts +58 -0
- package/src/error/provider.ts +62 -0
- package/src/error/rate-limit.ts +161 -0
- package/src/error/retryable.ts +70 -0
- package/src/error/validation.ts +44 -0
- package/src/index.ts +49 -0
- package/src/provider-details.ts +90 -0
- package/src/providers/__tests__/google-auth.test.ts +144 -0
- package/src/providers/__tests__/kimi-code-thinking.test.ts +112 -0
- package/src/providers/__tests__/openai-codex-error.test.ts +84 -0
- package/src/providers/amazon-bedrock.ts +1042 -0
- package/src/providers/anthropic-client.ts +295 -0
- package/src/providers/anthropic-messages-server-schema.ts +252 -0
- package/src/providers/anthropic-messages-server.ts +756 -0
- package/src/providers/anthropic-wire.ts +318 -0
- package/src/providers/anthropic.ts +4078 -0
- package/src/providers/aws-credentials.ts +586 -0
- package/src/providers/aws-eventstream.ts +181 -0
- package/src/providers/aws-sigv4.ts +218 -0
- package/src/providers/azure-openai-responses.ts +382 -0
- package/src/providers/cursor/proto/agent.proto +3526 -0
- package/src/providers/cursor/proto/buf.gen.yaml +6 -0
- package/src/providers/cursor/proto/buf.yaml +17 -0
- package/src/providers/cursor.ts +2695 -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 +577 -0
- package/src/providers/error-message.ts +21 -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 +3058 -0
- package/src/providers/gitlab-duo.ts +395 -0
- package/src/providers/google-auth.ts +350 -0
- package/src/providers/google-gemini-cli.ts +1362 -0
- package/src/providers/google-interactions.ts +753 -0
- package/src/providers/google-shared.ts +1103 -0
- package/src/providers/google-types.ts +180 -0
- package/src/providers/google-vertex.ts +183 -0
- package/src/providers/google.ts +87 -0
- package/src/providers/grammar.ts +70 -0
- package/src/providers/kimi.ts +52 -0
- package/src/providers/mock.ts +507 -0
- package/src/providers/ollama.ts +773 -0
- package/src/providers/openai-anthropic-shim.ts +152 -0
- package/src/providers/openai-chat-server-schema.ts +242 -0
- package/src/providers/openai-chat-server.ts +715 -0
- package/src/providers/openai-chat-wire.ts +847 -0
- package/src/providers/openai-codex/request-transformer.ts +295 -0
- package/src/providers/openai-codex/response-handler.ts +102 -0
- package/src/providers/openai-codex-responses.ts +3468 -0
- package/src/providers/openai-completions.ts +2173 -0
- package/src/providers/openai-reasoning-fallback.ts +269 -0
- package/src/providers/openai-responses-reasoning-suppression.md +1 -0
- package/src/providers/openai-responses-server-schema.ts +282 -0
- package/src/providers/openai-responses-server.ts +1280 -0
- package/src/providers/openai-responses-wire.ts +6391 -0
- package/src/providers/openai-responses.ts +1022 -0
- package/src/providers/openai-shared.ts +2648 -0
- package/src/providers/pi-native-client.ts +266 -0
- package/src/providers/pi-native-server.ts +242 -0
- package/src/providers/register-builtins.ts +475 -0
- package/src/providers/synthetic.ts +50 -0
- package/src/providers/transform-messages.ts +787 -0
- package/src/providers/vision-guard.ts +54 -0
- package/src/registry/aimlapi.ts +6 -0
- package/src/registry/alibaba-coding-plan.ts +95 -0
- package/src/registry/amazon-bedrock.ts +22 -0
- package/src/registry/anthropic.ts +26 -0
- package/src/registry/api-key-login.ts +112 -0
- package/src/registry/api-key-validation.ts +161 -0
- package/src/registry/azure.ts +6 -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/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/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/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 +22 -0
- package/src/registry/nanogpt.ts +22 -0
- package/src/registry/nvidia.ts +61 -0
- package/src/registry/oauth/__tests__/xai-oauth.test.ts +104 -0
- package/src/registry/oauth/anthropic.ts +311 -0
- package/src/registry/oauth/callback-server.ts +315 -0
- package/src/registry/oauth/cursor.ts +171 -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 +209 -0
- package/src/registry/oauth/google-gemini-cli.ts +273 -0
- package/src/registry/oauth/google-oauth-shared.ts +125 -0
- package/src/registry/oauth/index.ts +269 -0
- package/src/registry/oauth/kimi.ts +289 -0
- package/src/registry/oauth/minimax-code.ts +53 -0
- package/src/registry/oauth/oauth.html +311 -0
- package/src/registry/oauth/openai-codex.ts +364 -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 +65 -0
- package/src/registry/oauth/wafer.ts +24 -0
- package/src/registry/oauth/xai-oauth.ts +394 -0
- package/src/registry/oauth/xiaomi.ts +211 -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 +161 -0
- package/src/registry/sakana.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 +56 -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 +6 -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 +27 -0
- package/src/registry/zenmux.ts +22 -0
- package/src/registry/zhipu-coding-plan.ts +27 -0
- package/src/stream.ts +1778 -0
- package/src/types.ts +856 -0
- package/src/usage/claude.ts +485 -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 +271 -0
- package/src/usage/minimax-code.ts +30 -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 +174 -0
- package/src/usage/openai-codex.ts +535 -0
- package/src/usage/opencode-go.ts +89 -0
- package/src/usage/shared.ts +10 -0
- package/src/usage/zai.ts +321 -0
- package/src/usage.ts +333 -0
- package/src/utils/abort.ts +67 -0
- package/src/utils/anthropic-auth.ts +93 -0
- package/src/utils/block-symbols.ts +32 -0
- package/src/utils/deterministic-id.ts +20 -0
- package/src/utils/empty-completion-retry.ts +159 -0
- package/src/utils/event-stream.ts +171 -0
- package/src/utils/foundry.ts +8 -0
- package/src/utils/google-validation.ts +25 -0
- package/src/utils/harmony-leak.ts +456 -0
- package/src/utils/http-inspector.ts +168 -0
- package/src/utils/idle-iterator.ts +473 -0
- package/src/utils/leaked-thinking-stream.ts +294 -0
- package/src/utils/openai-http.ts +122 -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 +240 -0
- package/src/utils/request-debug.ts +351 -0
- package/src/utils/retry-after.ts +110 -0
- package/src/utils/retry.ts +59 -0
- package/src/utils/schema/CONSTRAINTS.md +166 -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 +207 -0
- package/src/utils/schema/index.ts +15 -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 +1901 -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 +198 -0
- package/src/utils/schema/wire.ts +789 -0
- package/src/utils/schema/zod-decontaminate.ts +331 -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 +99 -0
- package/src/utils/validation.ts +1507 -0
- package/src/utils.ts +171 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Api } from "../types";
|
|
2
|
+
import type { AbortSourceTracker } from "../utils/abort";
|
|
3
|
+
import type { CapturedHttpErrorResponse, RawHttpRequestDump } from "../utils/http-inspector";
|
|
4
|
+
/** Context a provider catch block hands to {@link finalize}. */
|
|
5
|
+
export interface FinalizeOptions {
|
|
6
|
+
/** Wire API, for api-specific text classification (e.g. stale-responses items). */
|
|
7
|
+
api?: Api;
|
|
8
|
+
/** Provider id; forwarded to the message formatter for copilot rewrites. */
|
|
9
|
+
provider?: string;
|
|
10
|
+
/** Caller signal, for providers that don't run an abort tracker. */
|
|
11
|
+
signal?: AbortSignal;
|
|
12
|
+
/** Abort tracker, preferred over `signal`: distinguishes caller vs. local aborts. */
|
|
13
|
+
abortTracker?: AbortSourceTracker;
|
|
14
|
+
/** Raw request, dumped into the message for 400-class failures. */
|
|
15
|
+
rawRequestDump?: RawHttpRequestDump;
|
|
16
|
+
/** Captured non-2xx response body, used for status fallback and message detail. */
|
|
17
|
+
capturedErrorResponse?: CapturedHttpErrorResponse;
|
|
18
|
+
}
|
|
19
|
+
/** The full bundle a provider assigns onto its `AssistantMessage` error fields. */
|
|
20
|
+
export interface FinalizeResult {
|
|
21
|
+
/** Structured flag id from {@link classify}. */
|
|
22
|
+
id: number;
|
|
23
|
+
/** HTTP status, from the error or the captured response. */
|
|
24
|
+
status: number | undefined;
|
|
25
|
+
/** `"aborted"` when the caller cancelled, otherwise `"error"`. */
|
|
26
|
+
stopReason: "aborted" | "error";
|
|
27
|
+
/** User-facing message from {@link formatMessage}, or a local abort reason. */
|
|
28
|
+
message: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Build the complete error bundle for a provider catch block, replacing the
|
|
32
|
+
* `stopReason` / `errorStatus` / `errorId` / `errorMessage` boilerplate.
|
|
33
|
+
*
|
|
34
|
+
* `stopReason` comes from the abort tracker (caller intent dominates) or, when
|
|
35
|
+
* no tracker is supplied, the raw `signal.aborted`. A local abort reason (e.g. a
|
|
36
|
+
* first-event timeout) supersedes the formatted message. Message formatting is
|
|
37
|
+
* wrapped so a formatter throw can never skip the caller's `stream.end()`.
|
|
38
|
+
*/
|
|
39
|
+
export declare function finalize(error: unknown, opts?: FinalizeOptions): Promise<FinalizeResult>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { Api, AssistantMessage } from "../types";
|
|
2
|
+
export declare const Flag: {
|
|
3
|
+
readonly Class: 4096;
|
|
4
|
+
readonly ThinkingLoop: 65536;
|
|
5
|
+
readonly Transient: 131072;
|
|
6
|
+
readonly Timeout: 262144;
|
|
7
|
+
readonly UsageLimit: 524288;
|
|
8
|
+
readonly StaleResponsesItem: 1048576;
|
|
9
|
+
readonly MalformedFunctionCall: 2097152;
|
|
10
|
+
readonly ProviderFinishError: 4194304;
|
|
11
|
+
readonly ContextOverflow: 8388608;
|
|
12
|
+
readonly AuthFailed: 16777216;
|
|
13
|
+
readonly SilentAbort: 33554432;
|
|
14
|
+
readonly UserInterrupt: 67108864;
|
|
15
|
+
readonly Abort: 134217728;
|
|
16
|
+
/** Anthropic strict-tool grammar too large / schema too complex to compile (400). */
|
|
17
|
+
readonly Grammar: 268435456;
|
|
18
|
+
/** Anthropic model/account does not support fast mode / the `speed` parameter. */
|
|
19
|
+
readonly FastModeUnsupported: 536870912;
|
|
20
|
+
/** OAuth refresh failed definitively — the stored grant is dead, re-login required. */
|
|
21
|
+
readonly OAuthExpiry: 1073741824;
|
|
22
|
+
};
|
|
23
|
+
export type Flag = (typeof Flag)[keyof typeof Flag];
|
|
24
|
+
export declare const STREAM_READ_ERROR_PATTERN: RegExp;
|
|
25
|
+
export declare const TRANSIENT_TRANSPORT_PATTERN: RegExp;
|
|
26
|
+
/**
|
|
27
|
+
* Local llama.cpp / Ollama deterministic tool-call argument JSON parse failure.
|
|
28
|
+
* The model emitted invalid JSON in a tool call and the server returned HTTP 500
|
|
29
|
+
* with this exact text — replaying the same prompt yields the same malformed
|
|
30
|
+
* output, so callers strip {@link Flag.Transient} when this matches.
|
|
31
|
+
*/
|
|
32
|
+
export declare const LLAMA_CPP_TOOL_CALL_PARSE_PATTERN: RegExp;
|
|
33
|
+
/** Whether an OAuth refresh error message means the grant is definitively dead. */
|
|
34
|
+
export declare function isOAuthExpiry(errorMessage: string): boolean;
|
|
35
|
+
export declare function create(...flags: number[]): number;
|
|
36
|
+
export declare function is(id: number | undefined, flag: Flag): boolean;
|
|
37
|
+
export declare function retriable(id: number | undefined, opts?: {
|
|
38
|
+
replayUnsafe?: boolean;
|
|
39
|
+
}): boolean;
|
|
40
|
+
export declare function status(error: unknown): number | undefined;
|
|
41
|
+
export declare function isStreamReadErrorText(text: string): boolean;
|
|
42
|
+
export declare function classify(error: unknown, api?: Api): number;
|
|
43
|
+
/**
|
|
44
|
+
* Whether an error (or message string) classifies as an account usage/quota
|
|
45
|
+
* limit — the persistent, credential-rotation-worthy kind. This is the public
|
|
46
|
+
* accessor for {@link Flag.UsageLimit}; prefer it over re-running message
|
|
47
|
+
* regexes at call sites.
|
|
48
|
+
*/
|
|
49
|
+
export declare function isUsageLimit(error: unknown, api?: Api): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Anthropic strict-tool grammar too large / schema too complex to compile.
|
|
52
|
+
* Accessor for {@link Flag.Grammar}.
|
|
53
|
+
*/
|
|
54
|
+
export declare function isGrammarError(error: unknown): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Anthropic model/account does not support fast mode / the `speed` parameter.
|
|
57
|
+
* Accessor for {@link Flag.FastModeUnsupported}.
|
|
58
|
+
*/
|
|
59
|
+
export declare function isFastModeUnsupported(error: unknown): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* GitHub Copilot 400 `model_not_supported` routing flap — transient. Reads the
|
|
62
|
+
* structural `code` (and falls back to {@link Flag.Transient} text classification).
|
|
63
|
+
*/
|
|
64
|
+
export declare function isCopilotTransientModelError(error: unknown): boolean;
|
|
65
|
+
export declare function classifyMessage(message: {
|
|
66
|
+
api?: Api;
|
|
67
|
+
errorId?: number;
|
|
68
|
+
errorMessage?: string;
|
|
69
|
+
errorStatus?: number;
|
|
70
|
+
}): number;
|
|
71
|
+
export declare function attach<E extends object>(error: E, id: number): E;
|
|
72
|
+
export declare function isContextOverflow(message: AssistantMessage, contextWindow?: number): boolean;
|
|
73
|
+
export declare function stringify(id: number | undefined): string;
|
|
74
|
+
/** Transient stream corruption where the response was truncated mid-JSON. */
|
|
75
|
+
export declare function isTransientStreamParseError(error: unknown): boolean;
|
|
76
|
+
/** Any malformed stream-envelope error (prefix-tagged or out-of-order events). */
|
|
77
|
+
export declare function isStreamEnvelopeError(error: unknown): boolean;
|
|
78
|
+
/** Stream-envelope errors safe to retry against the provider (event ordering only). */
|
|
79
|
+
export declare function isRetryableStreamEnvelopeError(error: unknown): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type CapturedHttpErrorResponse, type RawHttpRequestDump } from "../utils/http-inspector";
|
|
2
|
+
/** Inputs that steer {@link formatMessage}'s formatter selection. */
|
|
3
|
+
export interface FormatMessageOptions {
|
|
4
|
+
/** When present, the raw request is dumped into the message for 400-class failures. */
|
|
5
|
+
rawRequestDump?: RawHttpRequestDump;
|
|
6
|
+
/** Captured non-2xx response body, appended to the message when available. */
|
|
7
|
+
capturedErrorResponse?: CapturedHttpErrorResponse;
|
|
8
|
+
/** Provider id; gates provider-specific user-facing rewrites. */
|
|
9
|
+
provider?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Format a provider error into a user-facing message, unifying the three
|
|
13
|
+
* formatters: lightweight retry-after extraction, the raw-dump finalizer, and
|
|
14
|
+
* the copilot rewrite.
|
|
15
|
+
*
|
|
16
|
+
* Selection is driven by inputs, not a mode flag: a `rawRequestDump` routes
|
|
17
|
+
* through {@link finalizeErrorMessage} (retry-after + raw dump + captured body),
|
|
18
|
+
* otherwise the lightweight {@link formatErrorMessageWithRetryAfter} is used.
|
|
19
|
+
*/
|
|
20
|
+
export declare function formatMessage(error: unknown, opts?: FormatMessageOptions): Promise<string>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** A gateway-facing classification of an arbitrary upstream/internal error. */
|
|
2
|
+
export interface GatewayErrorClassification {
|
|
3
|
+
status: number;
|
|
4
|
+
type: string;
|
|
5
|
+
message: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Classify an upstream / gateway-internal error into a status code and a
|
|
9
|
+
* format-neutral type. The order is intentional:
|
|
10
|
+
*
|
|
11
|
+
* 1. Honour an explicit numeric `status` property on the thrown error.
|
|
12
|
+
* 2. Parse a status code embedded in the message string. Provider errors
|
|
13
|
+
* virtually always carry one (`Google API error (400): …`, `HTTP 429`,
|
|
14
|
+
* `status=503`) and the embedded value is authoritative.
|
|
15
|
+
* 3. Fall through to **word-boundaried** substring heuristics. The old
|
|
16
|
+
* `lower.includes("rate")` test famously matched `GenerateContentRequest`,
|
|
17
|
+
* surfacing every Google 400 as a 429 `rate_limit_error`. The patterns here
|
|
18
|
+
* all require boundaries so they don't collide with provider field names.
|
|
19
|
+
*/
|
|
20
|
+
export declare function classifyGatewayError(err: unknown): GatewayErrorClassification;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "./abort";
|
|
2
|
+
export * from "./auth";
|
|
3
|
+
export * from "./auth-classify";
|
|
4
|
+
export * from "./aws";
|
|
5
|
+
export * from "./classes";
|
|
6
|
+
export * from "./finalize";
|
|
7
|
+
export * from "./flags";
|
|
8
|
+
export * from "./format";
|
|
9
|
+
export * from "./gateway";
|
|
10
|
+
export * from "./oauth";
|
|
11
|
+
export * from "./provider";
|
|
12
|
+
export * from "./retryable";
|
|
13
|
+
export * from "./validation";
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What stage of an OAuth / device-code login flow failed. Discriminates the
|
|
3
|
+
* single {@link OAuthError} class so login flows don't each mint a bespoke
|
|
4
|
+
* error type.
|
|
5
|
+
*/
|
|
6
|
+
export type OAuthErrorKind =
|
|
7
|
+
/** Token-exchange / refresh / discovery HTTP response was non-2xx or unparseable. */
|
|
8
|
+
"http"
|
|
9
|
+
/** Response body was missing required fields (token, account id, endpoints, …). */
|
|
10
|
+
| "validation"
|
|
11
|
+
/** Authorization-code → token exchange failed. */
|
|
12
|
+
| "token-exchange"
|
|
13
|
+
/** Refresh-token grant failed. */
|
|
14
|
+
| "token-refresh"
|
|
15
|
+
/** Device-code / authorization polling failed (server error, too many retries). */
|
|
16
|
+
| "polling"
|
|
17
|
+
/** The flow exceeded its deadline (device-code expiry, polling timeout). */
|
|
18
|
+
| "timeout"
|
|
19
|
+
/** Device authorization was denied or cancelled by the user/provider. */
|
|
20
|
+
| "device-auth"
|
|
21
|
+
/** Misconfiguration (bad redirect URI, missing projectId, callback bind, …). */
|
|
22
|
+
| "configuration"
|
|
23
|
+
/** Cloud project provisioning / onboarding (loadCodeAssist, onboardUser). */
|
|
24
|
+
| "provisioning"
|
|
25
|
+
/** OIDC / endpoint discovery failed. */
|
|
26
|
+
| "discovery";
|
|
27
|
+
export interface OAuthErrorOptions {
|
|
28
|
+
kind?: OAuthErrorKind;
|
|
29
|
+
provider?: string;
|
|
30
|
+
status?: number;
|
|
31
|
+
cause?: unknown;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A failure inside an interactive OAuth / device-code login flow. The `kind`
|
|
35
|
+
* pinpoints the stage. Timeout/polling are classified transient; everything
|
|
36
|
+
* else is a hard auth failure so the credential layer does not silently retry.
|
|
37
|
+
*/
|
|
38
|
+
export declare class OAuthError extends Error {
|
|
39
|
+
readonly kind: OAuthErrorKind;
|
|
40
|
+
readonly provider: string | undefined;
|
|
41
|
+
readonly status: number | undefined;
|
|
42
|
+
constructor(message: string, options?: OAuthErrorOptions);
|
|
43
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ProviderHttpError } from "./classes";
|
|
2
|
+
/** Which part of a provider exchange produced a non-HTTP error. */
|
|
3
|
+
export type ProviderResponseErrorKind =
|
|
4
|
+
/** Stream closed before a terminal completion/response event. */
|
|
5
|
+
"incomplete-stream"
|
|
6
|
+
/** Terminal event carried an error / unexpected stop reason. */
|
|
7
|
+
| "output"
|
|
8
|
+
/** Response body was empty/missing when content was required. */
|
|
9
|
+
| "empty-body"
|
|
10
|
+
/** Malformed wire envelope (unexpected message ordering / shape). */
|
|
11
|
+
| "envelope"
|
|
12
|
+
/** Content was blocked by a provider safety filter. */
|
|
13
|
+
| "content-blocked"
|
|
14
|
+
/** Runtime/namespace resolution or other provider-internal failure. */
|
|
15
|
+
| "runtime";
|
|
16
|
+
export interface ProviderResponseErrorOptions {
|
|
17
|
+
provider?: string;
|
|
18
|
+
kind?: ProviderResponseErrorKind;
|
|
19
|
+
cause?: unknown;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A non-HTTP provider failure: a truncated stream, an error stop reason, an
|
|
23
|
+
* empty body, a malformed envelope, or a runtime fault. For non-2xx HTTP
|
|
24
|
+
* responses use {@link ProviderHttpError} (or a provider subclass) instead.
|
|
25
|
+
*/
|
|
26
|
+
export declare class ProviderResponseError extends Error {
|
|
27
|
+
readonly provider: string | undefined;
|
|
28
|
+
readonly kind: ProviderResponseErrorKind;
|
|
29
|
+
constructor(message: string, options?: ProviderResponseErrorOptions);
|
|
30
|
+
}
|
|
31
|
+
/** Non-2xx response from the Devin API. */
|
|
32
|
+
export declare class DevinApiError extends ProviderHttpError {
|
|
33
|
+
readonly name = "DevinApiError";
|
|
34
|
+
}
|
|
35
|
+
/** Non-2xx response from the GitLab Duo direct-access API. */
|
|
36
|
+
export declare class GitLabDuoApiError extends ProviderHttpError {
|
|
37
|
+
readonly name = "GitLabDuoApiError";
|
|
38
|
+
}
|
|
39
|
+
/** Non-2xx response from the GitLab Duo Workflow API. */
|
|
40
|
+
export declare class GitLabDuoWorkflowApiError extends ProviderHttpError {
|
|
41
|
+
readonly name = "GitLabDuoWorkflowApiError";
|
|
42
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate limit reason classification and backoff calculation utilities.
|
|
3
|
+
* Ported from opencode-antigravity-auth plugin for consistency.
|
|
4
|
+
*/
|
|
5
|
+
export type RateLimitReason = "QUOTA_EXHAUSTED" | "RATE_LIMIT_EXCEEDED" | "MODEL_CAPACITY_EXHAUSTED" | "SERVER_ERROR" | "UNKNOWN";
|
|
6
|
+
/**
|
|
7
|
+
* Classify a rate-limit error message into a reason category.
|
|
8
|
+
* Priority order: QUOTA (Antigravity "quota will reset") > MODEL_CAPACITY > QUOTA (account) >
|
|
9
|
+
* RATE_LIMIT > QUOTA (generic) > SERVER_ERROR > UNKNOWN.
|
|
10
|
+
*
|
|
11
|
+
* "resource exhausted" maps to MODEL_CAPACITY (transient, short wait)
|
|
12
|
+
* "quota exceeded" / "quota will reset" maps to QUOTA_EXHAUSTED (long wait, switch account)
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseRateLimitReason(errorMessage: string): RateLimitReason;
|
|
15
|
+
/**
|
|
16
|
+
* Calculate backoff delay in ms for a given rate limit reason.
|
|
17
|
+
* MODEL_CAPACITY gets jitter to prevent thundering herd.
|
|
18
|
+
*/
|
|
19
|
+
export declare function calculateRateLimitBackoffMs(reason: RateLimitReason): number;
|
|
20
|
+
/**
|
|
21
|
+
* HTTP status codes that, absent richer body classification, represent an
|
|
22
|
+
* account-local usage cap rather than a bad credential or a transient blip.
|
|
23
|
+
* Always combine with {@link isUsageLimitOutcome} when a message is available
|
|
24
|
+
* — a 429 carrying transient rate-limit wording is NOT a usage cap.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isUsageLimitStatus(status: number | undefined): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Returns true for failures that should burn one credential and rotate to a
|
|
29
|
+
* sibling account. Decision tree:
|
|
30
|
+
*
|
|
31
|
+
* 1. Body matches {@link isUsageLimitError} (Codex `usage_limit_reached`,
|
|
32
|
+
* Anthropic account rate-limit, Google `resource_exhausted`, OpenAI
|
|
33
|
+
* `insufficient_quota`, …) → rotate.
|
|
34
|
+
* 2. Status is not 429 → backoff (caller's domain).
|
|
35
|
+
* 3. Body is absent or {@link isOpaqueStatusBody opaque} (just the status,
|
|
36
|
+
* empty JSON, HTTP framing only) → rotate conservatively: the server
|
|
37
|
+
* gave us nothing else to go on.
|
|
38
|
+
* 4. Body has content → defer to {@link parseRateLimitReason}. Only
|
|
39
|
+
* `QUOTA_EXHAUSTED` rotates; `RATE_LIMIT_EXCEEDED` (`Too many requests`,
|
|
40
|
+
* per-minute caps), `MODEL_CAPACITY_EXHAUSTED` (`Service overloaded`),
|
|
41
|
+
* `SERVER_ERROR`, and `UNKNOWN` (`Please retry in 5s`) stay in the
|
|
42
|
+
* provider's own backoff layer so transient 429s don't burn sibling
|
|
43
|
+
* credentials.
|
|
44
|
+
*/
|
|
45
|
+
export declare function isUsageLimitOutcome(status: number | undefined, message: string | undefined): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* A 429 body is opaque when it carries no signal beyond the status itself —
|
|
48
|
+
* empty, whitespace-only, the status digits with HTTP/JSON framing, or
|
|
49
|
+
* generic punctuation. Anything else (retry hints, capacity wording, error
|
|
50
|
+
* descriptions) is informative enough to defer to the classifier.
|
|
51
|
+
*/
|
|
52
|
+
export declare function isOpaqueStatusBody(message: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Internal text matcher for usage/quota-limit phrasing. NOT part of the public
|
|
55
|
+
* API — callers classify through {@link import("./flags").isUsageLimit} (the
|
|
56
|
+
* flag accessor). `flags.ts` consumes this to populate `Flag.UsageLimit`, and
|
|
57
|
+
* {@link isUsageLimitOutcome} uses it for the account-rotation decision.
|
|
58
|
+
*/
|
|
59
|
+
export declare function matchesUsageLimitText(errorMessage: string): boolean;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a numeric HTTP status is in the canonical transient/retryable set:
|
|
3
|
+
* 408 (Request Timeout), 429 (Too Many Requests), and any 5xx.
|
|
4
|
+
*
|
|
5
|
+
* This is a pure predicate over a status code already in hand — distinct from
|
|
6
|
+
* {@link classify}, which inspects a whole error (including message text) and
|
|
7
|
+
* may match more. Use this when you only have a `status: number`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isTransientStatus(status: number | undefined): boolean;
|
|
10
|
+
/** Hook for provider-specific transient detection that the error module must not import directly. */
|
|
11
|
+
export interface ProviderRetryableHooks {
|
|
12
|
+
/** Provider id of the failing request, used to gate provider-specific checks. */
|
|
13
|
+
provider?: string;
|
|
14
|
+
/** Provider-specific transient predicate (e.g. Copilot `model_not_supported`). */
|
|
15
|
+
isProviderTransient?: (error: Error) => boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Whether a provider stream error should be retried against the same credential.
|
|
19
|
+
*
|
|
20
|
+
* Account-level usage/quota limits are deliberately treated as **non**-retryable
|
|
21
|
+
* here — they are owned by the credential-rotation layer (auth-gateway /
|
|
22
|
+
* `streamSimple` a/b/c policy), not this seconds-scale provider backoff.
|
|
23
|
+
*
|
|
24
|
+
* Provider-specific transient cases are injected via {@link ProviderRetryableHooks}
|
|
25
|
+
* so this stays free of provider imports.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isProviderRetryableError(error: unknown, hooks?: ProviderRetryableHooks): boolean;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Caller-supplied input failed validation before/while building a provider
|
|
3
|
+
* request: bad request body, malformed tool arguments, unsupported content
|
|
4
|
+
* type, a schema that cannot be normalized, an unknown tool, etc.
|
|
5
|
+
*
|
|
6
|
+
* This is a programmer/config/contract error, not a transient provider fault —
|
|
7
|
+
* it is never retried.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ValidationError extends Error {
|
|
10
|
+
constructor(message: string, options?: {
|
|
11
|
+
cause?: unknown;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/** A referenced tool was not found in the active tool set. */
|
|
15
|
+
export declare class ToolNotFoundError extends ValidationError {
|
|
16
|
+
constructor(toolName: string);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Provider/auth configuration was missing or malformed (env var pointing at a
|
|
20
|
+
* missing file, missing projectId, bad bind string, mTLS half-configured, …).
|
|
21
|
+
*/
|
|
22
|
+
export declare class ConfigurationError extends Error {
|
|
23
|
+
constructor(message: string, options?: {
|
|
24
|
+
cause?: unknown;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/** A request was abandoned because it exceeded a stream/idle/first-event deadline. */
|
|
28
|
+
export declare class StreamTimeoutError extends Error {
|
|
29
|
+
constructor(message?: string, options?: {
|
|
30
|
+
cause?: unknown;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export { type Type, type } from "arktype";
|
|
2
|
+
export { type ZodType, z } from "zod/v4";
|
|
3
|
+
export * from "./api-registry";
|
|
4
|
+
export type * from "./auth-broker";
|
|
5
|
+
export type { AuthGatewayBootOptions, ModelResolver } from "./auth-gateway/server";
|
|
6
|
+
export * from "./auth-gateway/types";
|
|
7
|
+
export * from "./auth-retry";
|
|
8
|
+
export * from "./auth-storage";
|
|
9
|
+
export * from "./error/rate-limit";
|
|
10
|
+
export * from "./provider-details";
|
|
11
|
+
export * from "./providers/anthropic";
|
|
12
|
+
export * from "./providers/anthropic-client";
|
|
13
|
+
export * from "./providers/azure-openai-responses";
|
|
14
|
+
export type * from "./providers/cursor";
|
|
15
|
+
export * from "./providers/gitlab-duo";
|
|
16
|
+
export * from "./providers/gitlab-duo-workflow";
|
|
17
|
+
export type * from "./providers/google";
|
|
18
|
+
export type * from "./providers/google-gemini-cli";
|
|
19
|
+
export type * from "./providers/google-vertex";
|
|
20
|
+
export * from "./providers/kimi";
|
|
21
|
+
export * from "./providers/mock";
|
|
22
|
+
export * from "./providers/ollama";
|
|
23
|
+
export * from "./providers/openai-codex-responses";
|
|
24
|
+
export * from "./providers/openai-completions";
|
|
25
|
+
export * from "./providers/openai-responses";
|
|
26
|
+
export * from "./providers/synthetic";
|
|
27
|
+
export * from "./registry";
|
|
28
|
+
export * from "./stream";
|
|
29
|
+
export * from "./types";
|
|
30
|
+
export * from "./usage";
|
|
31
|
+
export * from "./usage/claude";
|
|
32
|
+
export * from "./usage/gemini";
|
|
33
|
+
export * from "./usage/github-copilot";
|
|
34
|
+
export * from "./usage/google-antigravity";
|
|
35
|
+
export * from "./usage/kimi";
|
|
36
|
+
export * from "./usage/minimax-code";
|
|
37
|
+
export * from "./usage/ollama";
|
|
38
|
+
export * from "./usage/openai-codex";
|
|
39
|
+
export * from "./usage/openai-codex-reset";
|
|
40
|
+
export * from "./usage/opencode-go";
|
|
41
|
+
export * from "./usage/zai";
|
|
42
|
+
export * from "./utils/anthropic-auth";
|
|
43
|
+
export * from "./utils/event-stream";
|
|
44
|
+
export * from "./utils/openrouter-headers";
|
|
45
|
+
export * from "./utils/retry";
|
|
46
|
+
export * from "./utils/schema";
|
|
47
|
+
export * from "./utils/thinking-loop";
|
|
48
|
+
export * from "./utils/tool-call-loop-guard";
|
|
49
|
+
export * from "./utils/validation";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Api, Model, Provider, ProviderSessionState } from "./types";
|
|
2
|
+
export interface ProviderDetailField {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ProviderDetails {
|
|
7
|
+
provider: Provider;
|
|
8
|
+
api: Api;
|
|
9
|
+
fields: ProviderDetailField[];
|
|
10
|
+
}
|
|
11
|
+
export interface ProviderDetailsContext {
|
|
12
|
+
model: Model<Api>;
|
|
13
|
+
sessionId?: string;
|
|
14
|
+
authMode?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Human-readable description of the active credential, e.g.
|
|
17
|
+
* `"broker http://omp.internal:8765 · oauth #5 (foo@bar.com)"`.
|
|
18
|
+
* Rendered as a `Source` field; omitted when undefined.
|
|
19
|
+
*/
|
|
20
|
+
credentialSource?: string;
|
|
21
|
+
preferWebsockets?: boolean;
|
|
22
|
+
providerSessionState?: Map<string, ProviderSessionState>;
|
|
23
|
+
}
|
|
24
|
+
export declare function getProviderDetails(context: ProviderDetailsContext): ProviderDetails;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Amazon Bedrock Converse Stream provider.
|
|
3
|
+
*
|
|
4
|
+
* Talks directly to `bedrock-runtime.{region}.amazonaws.com` over HTTPS with
|
|
5
|
+
* SigV4 signing and decodes the `application/vnd.amazon.eventstream` response.
|
|
6
|
+
* No `@aws-sdk/*`, no `@smithy/*`, no `proxy-agent`. Proxies are honored via
|
|
7
|
+
* Bun's native `HTTPS_PROXY` support.
|
|
8
|
+
*/
|
|
9
|
+
import type { Effort } from "jeopi-catalog/effort";
|
|
10
|
+
import type { StreamFunction, StreamOptions, ThinkingBudgets } from "../types";
|
|
11
|
+
export type BedrockThinkingDisplay = "summarized" | "omitted";
|
|
12
|
+
export interface BedrockOptions extends StreamOptions {
|
|
13
|
+
region?: string;
|
|
14
|
+
profile?: string;
|
|
15
|
+
/** Amazon Bedrock API key sent as `Authorization: Bearer`, ahead of SigV4 credential resolution. */
|
|
16
|
+
bearerToken?: string;
|
|
17
|
+
toolChoice?: "auto" | "any" | "none" | {
|
|
18
|
+
type: "tool";
|
|
19
|
+
name: string;
|
|
20
|
+
};
|
|
21
|
+
reasoning?: Effort;
|
|
22
|
+
thinkingBudgets?: ThinkingBudgets;
|
|
23
|
+
interleavedThinking?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Controls how Claude returns thinking content in Bedrock responses.
|
|
26
|
+
* - `"summarized"`: thinking blocks include human-readable summaries (default here).
|
|
27
|
+
* - `"omitted"`: thinking content is suppressed; the encrypted signature still
|
|
28
|
+
* travels back for multi-turn continuity.
|
|
29
|
+
*
|
|
30
|
+
* Starting with Claude Opus 4.7 and Claude Fable/Mythos 5 the Anthropic API
|
|
31
|
+
* default is `"omitted"`, which leaves callers waiting on a silent stream during
|
|
32
|
+
* long reasoning runs (issue #1373). We default to `"summarized"` so adaptive-
|
|
33
|
+
* thinking models that accept the field keep producing visible thinking deltas.
|
|
34
|
+
* Older adaptive-thinking models (Opus 4.6, Sonnet 4.6+) reject the field, so
|
|
35
|
+
* we omit it for them.
|
|
36
|
+
*/
|
|
37
|
+
thinkingDisplay?: BedrockThinkingDisplay;
|
|
38
|
+
}
|
|
39
|
+
export declare const streamBedrock: StreamFunction<"bedrock-converse-stream">;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { AnthropicApiError, AnthropicConnectionError, AnthropicConnectionTimeoutError } from "../error";
|
|
2
|
+
export { AnthropicApiError, AnthropicConnectionError, AnthropicConnectionTimeoutError };
|
|
3
|
+
import type { FetchImpl } from "../types";
|
|
4
|
+
import type { MessageCreateParamsStreaming } from "./anthropic-wire";
|
|
5
|
+
/** Per-request options accepted by {@link AnthropicMessages.create}. */
|
|
6
|
+
export interface AnthropicRequestOptions {
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
/** Pre-response timeout in milliseconds. */
|
|
9
|
+
timeout?: number;
|
|
10
|
+
/** Per-request retry budget override. */
|
|
11
|
+
maxRetries?: number;
|
|
12
|
+
/** Per-request headers merged after client defaults. */
|
|
13
|
+
headers?: Record<string, string>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Extra `RequestInit` fields merged into every fetch call. Bun extends
|
|
17
|
+
* `RequestInit` with a `tls` option used for the Claude Code TLS profile and
|
|
18
|
+
* Foundry mTLS. Core request fields (`method`, `headers`, `body`, `signal`)
|
|
19
|
+
* are owned by the client and cannot be overridden from here — the timeout
|
|
20
|
+
* controller's signal in particular must always win.
|
|
21
|
+
*/
|
|
22
|
+
export type AnthropicFetchOptions = RequestInit & {
|
|
23
|
+
tls?: {
|
|
24
|
+
rejectUnauthorized?: boolean;
|
|
25
|
+
serverName?: string;
|
|
26
|
+
ciphers?: string;
|
|
27
|
+
ca?: string | string[];
|
|
28
|
+
cert?: string;
|
|
29
|
+
key?: string;
|
|
30
|
+
};
|
|
31
|
+
/** Bun extension: see {@link FetchWithRetryOptions.timeout} — `false` disables Bun's native fetch TTFT timeout (issue #2422). */
|
|
32
|
+
timeout?: number | false;
|
|
33
|
+
};
|
|
34
|
+
export interface AnthropicClientOptions {
|
|
35
|
+
/** Sent as `X-Api-Key` unless the header is already present in `defaultHeaders`. */
|
|
36
|
+
apiKey?: string | null;
|
|
37
|
+
/** Sent as `Authorization: Bearer <token>` unless the header is already present in `defaultHeaders`. */
|
|
38
|
+
authToken?: string | null;
|
|
39
|
+
baseURL?: string | null;
|
|
40
|
+
maxRetries?: number;
|
|
41
|
+
/** Pre-response timeout in milliseconds. Defaults to 10 minutes. */
|
|
42
|
+
timeout?: number;
|
|
43
|
+
defaultHeaders?: Record<string, string>;
|
|
44
|
+
fetch?: FetchImpl;
|
|
45
|
+
fetchOptions?: AnthropicFetchOptions;
|
|
46
|
+
}
|
|
47
|
+
/** Server-suggested delay (`retry-after-ms`, then `retry-after` seconds or HTTP date). */
|
|
48
|
+
export declare function retryDelayFromHeaders(headers: Headers | undefined): number | undefined;
|
|
49
|
+
export declare function calculateAnthropicRetryDelayMs(attempt: number): number;
|
|
50
|
+
/**
|
|
51
|
+
* Lazy in-flight request handle. The HTTP request starts on the first
|
|
52
|
+
* `asResponse()` call; subsequent calls return the same promise.
|
|
53
|
+
*
|
|
54
|
+
* Shape-compatible with the SDK's `APIPromise.asResponse()` so
|
|
55
|
+
* `getAnthropicStreamResponse` treats internal and injected clients uniformly.
|
|
56
|
+
*/
|
|
57
|
+
export declare class AnthropicApiRequest {
|
|
58
|
+
#private;
|
|
59
|
+
constructor(start: () => Promise<Response>);
|
|
60
|
+
asResponse(): Promise<Response>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* `messages` resource. `create` lives on the prototype so tests can intercept
|
|
64
|
+
* every outgoing request with `vi.spyOn(AnthropicMessages.prototype, "create")`.
|
|
65
|
+
*/
|
|
66
|
+
export declare class AnthropicMessages {
|
|
67
|
+
#private;
|
|
68
|
+
constructor(client: AnthropicMessagesClient, path: string);
|
|
69
|
+
create(params: MessageCreateParamsStreaming, options?: AnthropicRequestOptions): AnthropicApiRequest;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Structural interface satisfied by both {@link AnthropicMessagesClient} and
|
|
73
|
+
* SDK-style clients (e.g. `AnthropicVertex`), so callers can inject an
|
|
74
|
+
* alternative Messages-API client via `AnthropicOptions.client`.
|
|
75
|
+
*/
|
|
76
|
+
export interface AnthropicMessagesClientLike {
|
|
77
|
+
messages: {
|
|
78
|
+
create(params: MessageCreateParamsStreaming, options?: AnthropicRequestOptions): unknown;
|
|
79
|
+
};
|
|
80
|
+
beta?: {
|
|
81
|
+
messages: {
|
|
82
|
+
create(params: MessageCreateParamsStreaming, options?: AnthropicRequestOptions): unknown;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
export declare class AnthropicMessagesClient implements AnthropicMessagesClientLike {
|
|
87
|
+
#private;
|
|
88
|
+
readonly messages: AnthropicMessages;
|
|
89
|
+
readonly beta: {
|
|
90
|
+
readonly messages: AnthropicMessages;
|
|
91
|
+
};
|
|
92
|
+
constructor(options: AnthropicClientOptions);
|
|
93
|
+
request(path: string, params: MessageCreateParamsStreaming, options?: AnthropicRequestOptions): AnthropicApiRequest;
|
|
94
|
+
}
|