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,411 @@
|
|
|
1
|
+
/** Real OAuth credential (broker-side) — refresh token is the actual upstream value. */
|
|
2
|
+
export declare const oauthCredentialSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
3
|
+
apiEndpoint?: string | undefined;
|
|
4
|
+
type: "oauth";
|
|
5
|
+
refresh: string;
|
|
6
|
+
access: string;
|
|
7
|
+
expires: number;
|
|
8
|
+
enterpriseUrl?: string | undefined;
|
|
9
|
+
projectId?: string | undefined;
|
|
10
|
+
email?: string | undefined;
|
|
11
|
+
accountId?: string | undefined;
|
|
12
|
+
}, {}>;
|
|
13
|
+
/** OAuth credential as it appears in broker snapshots — refresh replaced with sentinel. */
|
|
14
|
+
export declare const remoteOauthCredentialSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
15
|
+
apiEndpoint?: string | undefined;
|
|
16
|
+
type: "oauth";
|
|
17
|
+
refresh: "__remote__";
|
|
18
|
+
access: string;
|
|
19
|
+
expires: number;
|
|
20
|
+
enterpriseUrl?: string | undefined;
|
|
21
|
+
projectId?: string | undefined;
|
|
22
|
+
email?: string | undefined;
|
|
23
|
+
accountId?: string | undefined;
|
|
24
|
+
}, {}>;
|
|
25
|
+
export declare const apiKeyCredentialSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
26
|
+
type: "api_key";
|
|
27
|
+
key: string;
|
|
28
|
+
}, {}>;
|
|
29
|
+
/** Discriminated union accepted on POST /v1/credential (writes). */
|
|
30
|
+
export declare const writableAuthCredentialSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
31
|
+
apiEndpoint?: string | undefined;
|
|
32
|
+
type: "oauth";
|
|
33
|
+
refresh: string;
|
|
34
|
+
access: string;
|
|
35
|
+
expires: number;
|
|
36
|
+
enterpriseUrl?: string | undefined;
|
|
37
|
+
projectId?: string | undefined;
|
|
38
|
+
email?: string | undefined;
|
|
39
|
+
accountId?: string | undefined;
|
|
40
|
+
} | {
|
|
41
|
+
type: "api_key";
|
|
42
|
+
key: string;
|
|
43
|
+
}, {}>;
|
|
44
|
+
/** Discriminated union returned in snapshots (refresh is sentinel for OAuth). */
|
|
45
|
+
export declare const snapshotCredentialSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
46
|
+
apiEndpoint?: string | undefined;
|
|
47
|
+
type: "oauth";
|
|
48
|
+
refresh: "__remote__";
|
|
49
|
+
access: string;
|
|
50
|
+
expires: number;
|
|
51
|
+
enterpriseUrl?: string | undefined;
|
|
52
|
+
projectId?: string | undefined;
|
|
53
|
+
email?: string | undefined;
|
|
54
|
+
accountId?: string | undefined;
|
|
55
|
+
} | {
|
|
56
|
+
type: "api_key";
|
|
57
|
+
key: string;
|
|
58
|
+
}, {}>;
|
|
59
|
+
export declare const credentialSnapshotEntrySchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
60
|
+
id: number;
|
|
61
|
+
provider: string;
|
|
62
|
+
credential: {
|
|
63
|
+
apiEndpoint?: string | undefined;
|
|
64
|
+
type: "oauth";
|
|
65
|
+
refresh: "__remote__";
|
|
66
|
+
access: string;
|
|
67
|
+
expires: number;
|
|
68
|
+
enterpriseUrl?: string | undefined;
|
|
69
|
+
projectId?: string | undefined;
|
|
70
|
+
email?: string | undefined;
|
|
71
|
+
accountId?: string | undefined;
|
|
72
|
+
} | {
|
|
73
|
+
type: "api_key";
|
|
74
|
+
key: string;
|
|
75
|
+
};
|
|
76
|
+
identityKey: string | null;
|
|
77
|
+
}, {}>;
|
|
78
|
+
export declare const snapshotEntrySchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
79
|
+
id: number;
|
|
80
|
+
provider: string;
|
|
81
|
+
credential: {
|
|
82
|
+
apiEndpoint?: string | undefined;
|
|
83
|
+
type: "oauth";
|
|
84
|
+
refresh: "__remote__";
|
|
85
|
+
access: string;
|
|
86
|
+
expires: number;
|
|
87
|
+
enterpriseUrl?: string | undefined;
|
|
88
|
+
projectId?: string | undefined;
|
|
89
|
+
email?: string | undefined;
|
|
90
|
+
accountId?: string | undefined;
|
|
91
|
+
} | {
|
|
92
|
+
type: "api_key";
|
|
93
|
+
key: string;
|
|
94
|
+
};
|
|
95
|
+
identityKey: string | null;
|
|
96
|
+
rotatesInMs: number | null;
|
|
97
|
+
}, {}>;
|
|
98
|
+
export declare const refresherScheduleSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
99
|
+
enabled: boolean;
|
|
100
|
+
intervalMs: number;
|
|
101
|
+
skewMs: number;
|
|
102
|
+
nextSweepInMs: number;
|
|
103
|
+
}, {}>;
|
|
104
|
+
export declare const snapshotResponseSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
105
|
+
generation: number;
|
|
106
|
+
generatedAt: number;
|
|
107
|
+
serverNowMs: number;
|
|
108
|
+
refresher: {
|
|
109
|
+
enabled: boolean;
|
|
110
|
+
intervalMs: number;
|
|
111
|
+
skewMs: number;
|
|
112
|
+
nextSweepInMs: number;
|
|
113
|
+
};
|
|
114
|
+
credentials: {
|
|
115
|
+
id: number;
|
|
116
|
+
provider: string;
|
|
117
|
+
credential: {
|
|
118
|
+
apiEndpoint?: string | undefined;
|
|
119
|
+
type: "oauth";
|
|
120
|
+
refresh: "__remote__";
|
|
121
|
+
access: string;
|
|
122
|
+
expires: number;
|
|
123
|
+
enterpriseUrl?: string | undefined;
|
|
124
|
+
projectId?: string | undefined;
|
|
125
|
+
email?: string | undefined;
|
|
126
|
+
accountId?: string | undefined;
|
|
127
|
+
} | {
|
|
128
|
+
type: "api_key";
|
|
129
|
+
key: string;
|
|
130
|
+
};
|
|
131
|
+
identityKey: string | null;
|
|
132
|
+
rotatesInMs: number | null;
|
|
133
|
+
}[];
|
|
134
|
+
}, {}>;
|
|
135
|
+
/** First frame on connect — full snapshot embedded inline with a `kind` tag. */
|
|
136
|
+
export declare const snapshotStreamSnapshotEventSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
137
|
+
generation: number;
|
|
138
|
+
generatedAt: number;
|
|
139
|
+
serverNowMs: number;
|
|
140
|
+
refresher: {
|
|
141
|
+
enabled: boolean;
|
|
142
|
+
intervalMs: number;
|
|
143
|
+
skewMs: number;
|
|
144
|
+
nextSweepInMs: number;
|
|
145
|
+
};
|
|
146
|
+
credentials: {
|
|
147
|
+
id: number;
|
|
148
|
+
provider: string;
|
|
149
|
+
credential: {
|
|
150
|
+
apiEndpoint?: string | undefined;
|
|
151
|
+
type: "oauth";
|
|
152
|
+
refresh: "__remote__";
|
|
153
|
+
access: string;
|
|
154
|
+
expires: number;
|
|
155
|
+
enterpriseUrl?: string | undefined;
|
|
156
|
+
projectId?: string | undefined;
|
|
157
|
+
email?: string | undefined;
|
|
158
|
+
accountId?: string | undefined;
|
|
159
|
+
} | {
|
|
160
|
+
type: "api_key";
|
|
161
|
+
key: string;
|
|
162
|
+
};
|
|
163
|
+
identityKey: string | null;
|
|
164
|
+
rotatesInMs: number | null;
|
|
165
|
+
}[];
|
|
166
|
+
kind: "snapshot";
|
|
167
|
+
}, {}>;
|
|
168
|
+
/** Per-credential upsert/refresh delta. */
|
|
169
|
+
export declare const snapshotStreamEntryEventSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
170
|
+
kind: "entry";
|
|
171
|
+
generation: number;
|
|
172
|
+
serverNowMs: number;
|
|
173
|
+
refresher: {
|
|
174
|
+
enabled: boolean;
|
|
175
|
+
intervalMs: number;
|
|
176
|
+
skewMs: number;
|
|
177
|
+
nextSweepInMs: number;
|
|
178
|
+
};
|
|
179
|
+
entry: {
|
|
180
|
+
id: number;
|
|
181
|
+
provider: string;
|
|
182
|
+
credential: {
|
|
183
|
+
apiEndpoint?: string | undefined;
|
|
184
|
+
type: "oauth";
|
|
185
|
+
refresh: "__remote__";
|
|
186
|
+
access: string;
|
|
187
|
+
expires: number;
|
|
188
|
+
enterpriseUrl?: string | undefined;
|
|
189
|
+
projectId?: string | undefined;
|
|
190
|
+
email?: string | undefined;
|
|
191
|
+
accountId?: string | undefined;
|
|
192
|
+
} | {
|
|
193
|
+
type: "api_key";
|
|
194
|
+
key: string;
|
|
195
|
+
};
|
|
196
|
+
identityKey: string | null;
|
|
197
|
+
rotatesInMs: number | null;
|
|
198
|
+
};
|
|
199
|
+
}, {}>;
|
|
200
|
+
/** Per-credential delete delta. */
|
|
201
|
+
export declare const snapshotStreamRemovedEventSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
202
|
+
kind: "removed";
|
|
203
|
+
generation: number;
|
|
204
|
+
serverNowMs: number;
|
|
205
|
+
refresher: {
|
|
206
|
+
enabled: boolean;
|
|
207
|
+
intervalMs: number;
|
|
208
|
+
skewMs: number;
|
|
209
|
+
nextSweepInMs: number;
|
|
210
|
+
};
|
|
211
|
+
id: number;
|
|
212
|
+
}, {}>;
|
|
213
|
+
/** Discriminated union over every event frame the snapshot stream emits. */
|
|
214
|
+
export declare const snapshotStreamEventSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
215
|
+
generation: number;
|
|
216
|
+
generatedAt: number;
|
|
217
|
+
serverNowMs: number;
|
|
218
|
+
refresher: {
|
|
219
|
+
enabled: boolean;
|
|
220
|
+
intervalMs: number;
|
|
221
|
+
skewMs: number;
|
|
222
|
+
nextSweepInMs: number;
|
|
223
|
+
};
|
|
224
|
+
credentials: {
|
|
225
|
+
id: number;
|
|
226
|
+
provider: string;
|
|
227
|
+
credential: {
|
|
228
|
+
apiEndpoint?: string | undefined;
|
|
229
|
+
type: "oauth";
|
|
230
|
+
refresh: "__remote__";
|
|
231
|
+
access: string;
|
|
232
|
+
expires: number;
|
|
233
|
+
enterpriseUrl?: string | undefined;
|
|
234
|
+
projectId?: string | undefined;
|
|
235
|
+
email?: string | undefined;
|
|
236
|
+
accountId?: string | undefined;
|
|
237
|
+
} | {
|
|
238
|
+
type: "api_key";
|
|
239
|
+
key: string;
|
|
240
|
+
};
|
|
241
|
+
identityKey: string | null;
|
|
242
|
+
rotatesInMs: number | null;
|
|
243
|
+
}[];
|
|
244
|
+
kind: "snapshot";
|
|
245
|
+
} | {
|
|
246
|
+
kind: "entry";
|
|
247
|
+
generation: number;
|
|
248
|
+
serverNowMs: number;
|
|
249
|
+
refresher: {
|
|
250
|
+
enabled: boolean;
|
|
251
|
+
intervalMs: number;
|
|
252
|
+
skewMs: number;
|
|
253
|
+
nextSweepInMs: number;
|
|
254
|
+
};
|
|
255
|
+
entry: {
|
|
256
|
+
id: number;
|
|
257
|
+
provider: string;
|
|
258
|
+
credential: {
|
|
259
|
+
apiEndpoint?: string | undefined;
|
|
260
|
+
type: "oauth";
|
|
261
|
+
refresh: "__remote__";
|
|
262
|
+
access: string;
|
|
263
|
+
expires: number;
|
|
264
|
+
enterpriseUrl?: string | undefined;
|
|
265
|
+
projectId?: string | undefined;
|
|
266
|
+
email?: string | undefined;
|
|
267
|
+
accountId?: string | undefined;
|
|
268
|
+
} | {
|
|
269
|
+
type: "api_key";
|
|
270
|
+
key: string;
|
|
271
|
+
};
|
|
272
|
+
identityKey: string | null;
|
|
273
|
+
rotatesInMs: number | null;
|
|
274
|
+
};
|
|
275
|
+
} | {
|
|
276
|
+
kind: "removed";
|
|
277
|
+
generation: number;
|
|
278
|
+
serverNowMs: number;
|
|
279
|
+
refresher: {
|
|
280
|
+
enabled: boolean;
|
|
281
|
+
intervalMs: number;
|
|
282
|
+
skewMs: number;
|
|
283
|
+
nextSweepInMs: number;
|
|
284
|
+
};
|
|
285
|
+
id: number;
|
|
286
|
+
}, {}>;
|
|
287
|
+
export declare const healthzResponseSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
288
|
+
ok: boolean;
|
|
289
|
+
version?: string | undefined;
|
|
290
|
+
}, {}>;
|
|
291
|
+
/**
|
|
292
|
+
* Broker `/v1/usage` response. Reports are full {@link UsageReport}s minus the
|
|
293
|
+
* heavy provider-specific `raw` field (the server strips it before send) — we
|
|
294
|
+
* keep `raw` optional in the underlying schema so a misconfigured broker that
|
|
295
|
+
* forgot to strip still validates.
|
|
296
|
+
*/
|
|
297
|
+
export declare const usageResponseSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
298
|
+
generatedAt: number;
|
|
299
|
+
reports: {
|
|
300
|
+
provider: string;
|
|
301
|
+
fetchedAt: number;
|
|
302
|
+
limits: {
|
|
303
|
+
id: string;
|
|
304
|
+
label: string;
|
|
305
|
+
scope: {
|
|
306
|
+
provider: string;
|
|
307
|
+
accountId?: string | undefined;
|
|
308
|
+
projectId?: string | undefined;
|
|
309
|
+
orgId?: string | undefined;
|
|
310
|
+
modelId?: string | undefined;
|
|
311
|
+
tier?: string | undefined;
|
|
312
|
+
windowId?: string | undefined;
|
|
313
|
+
shared?: boolean | undefined;
|
|
314
|
+
};
|
|
315
|
+
window?: {
|
|
316
|
+
id: string;
|
|
317
|
+
label: string;
|
|
318
|
+
durationMs?: number | undefined;
|
|
319
|
+
resetsAt?: number | undefined;
|
|
320
|
+
} | undefined;
|
|
321
|
+
amount: {
|
|
322
|
+
used?: number | undefined;
|
|
323
|
+
limit?: number | undefined;
|
|
324
|
+
remaining?: number | undefined;
|
|
325
|
+
usedFraction?: number | undefined;
|
|
326
|
+
remainingFraction?: number | undefined;
|
|
327
|
+
unit: "bytes" | "minutes" | "percent" | "requests" | "tokens" | "unknown" | "usd";
|
|
328
|
+
};
|
|
329
|
+
status?: "exhausted" | "ok" | "unknown" | "warning" | undefined;
|
|
330
|
+
notes?: string[] | undefined;
|
|
331
|
+
}[];
|
|
332
|
+
resetCredits?: {
|
|
333
|
+
availableCount: number;
|
|
334
|
+
credits?: {
|
|
335
|
+
grantedAt?: string | undefined;
|
|
336
|
+
expiresAt?: string | undefined;
|
|
337
|
+
status?: string | undefined;
|
|
338
|
+
}[] | undefined;
|
|
339
|
+
} | undefined;
|
|
340
|
+
notes?: string[] | undefined;
|
|
341
|
+
metadata?: {
|
|
342
|
+
[x: string]: unknown;
|
|
343
|
+
} | undefined;
|
|
344
|
+
raw?: unknown;
|
|
345
|
+
}[];
|
|
346
|
+
}, {}>;
|
|
347
|
+
export declare const credentialRefreshResponseSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
348
|
+
entry: {
|
|
349
|
+
id: number;
|
|
350
|
+
provider: string;
|
|
351
|
+
credential: {
|
|
352
|
+
apiEndpoint?: string | undefined;
|
|
353
|
+
type: "oauth";
|
|
354
|
+
refresh: "__remote__";
|
|
355
|
+
access: string;
|
|
356
|
+
expires: number;
|
|
357
|
+
enterpriseUrl?: string | undefined;
|
|
358
|
+
projectId?: string | undefined;
|
|
359
|
+
email?: string | undefined;
|
|
360
|
+
accountId?: string | undefined;
|
|
361
|
+
} | {
|
|
362
|
+
type: "api_key";
|
|
363
|
+
key: string;
|
|
364
|
+
};
|
|
365
|
+
identityKey: string | null;
|
|
366
|
+
};
|
|
367
|
+
}, {}>;
|
|
368
|
+
export declare const credentialDisableRequestSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
369
|
+
cause?: string | undefined;
|
|
370
|
+
}, {}>;
|
|
371
|
+
export declare const credentialDisableResponseSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
372
|
+
ok: boolean;
|
|
373
|
+
}, {}>;
|
|
374
|
+
export declare const credentialUploadRequestSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
375
|
+
provider: string;
|
|
376
|
+
credential: {
|
|
377
|
+
apiEndpoint?: string | undefined;
|
|
378
|
+
type: "oauth";
|
|
379
|
+
refresh: string;
|
|
380
|
+
access: string;
|
|
381
|
+
expires: number;
|
|
382
|
+
enterpriseUrl?: string | undefined;
|
|
383
|
+
projectId?: string | undefined;
|
|
384
|
+
email?: string | undefined;
|
|
385
|
+
accountId?: string | undefined;
|
|
386
|
+
} | {
|
|
387
|
+
type: "api_key";
|
|
388
|
+
key: string;
|
|
389
|
+
};
|
|
390
|
+
}, {}>;
|
|
391
|
+
export declare const credentialUploadResponseSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
392
|
+
entries: {
|
|
393
|
+
id: number;
|
|
394
|
+
provider: string;
|
|
395
|
+
credential: {
|
|
396
|
+
apiEndpoint?: string | undefined;
|
|
397
|
+
type: "oauth";
|
|
398
|
+
refresh: "__remote__";
|
|
399
|
+
access: string;
|
|
400
|
+
expires: number;
|
|
401
|
+
enterpriseUrl?: string | undefined;
|
|
402
|
+
projectId?: string | undefined;
|
|
403
|
+
email?: string | undefined;
|
|
404
|
+
accountId?: string | undefined;
|
|
405
|
+
} | {
|
|
406
|
+
type: "api_key";
|
|
407
|
+
key: string;
|
|
408
|
+
};
|
|
409
|
+
identityKey: string | null;
|
|
410
|
+
}[];
|
|
411
|
+
}, {}>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export declare function json(status: number, body: unknown): Response;
|
|
2
|
+
export declare function resolvePeer(req: Request): string;
|
|
3
|
+
/**
|
|
4
|
+
* Constant-time byte comparison. Falls back to a manual XOR accumulator if
|
|
5
|
+
* `node:crypto.timingSafeEqual` isn't available. Always processes every byte
|
|
6
|
+
* of the longer input so length itself doesn't leak via timing.
|
|
7
|
+
*/
|
|
8
|
+
export declare function timingSafeEqual(a: Uint8Array, b: Uint8Array): boolean;
|
|
9
|
+
export declare function isAuthorized(req: Request, tokens: ReadonlySet<string>): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Extract allow-listed passthrough headers from an inbound request. Keys are
|
|
12
|
+
* lowercased; empty values are dropped. Called once per request in
|
|
13
|
+
* `handleFormatEndpoint`; parsers then read `options.headers`.
|
|
14
|
+
*/
|
|
15
|
+
export declare function captureRequestHeaders(headers: Headers): Record<string, string>;
|
|
16
|
+
/**
|
|
17
|
+
* Resolve a prompt-cache identity from inbound request body + headers.
|
|
18
|
+
* Order of precedence (first wins):
|
|
19
|
+
* 1. Body `prompt_cache_key`
|
|
20
|
+
* 2. Body `metadata.{prompt_cache_key,session_id,conversation_id}`
|
|
21
|
+
* 3. Header `x-prompt-cache-key`
|
|
22
|
+
* 4. Header `session_id` / `conversation_id` (Codex / ChatGPT-OAuth surface)
|
|
23
|
+
* 5. Header `x-session-id` / `x-conversation-id` (common informal)
|
|
24
|
+
* Returns undefined when none present; the gateway then derives a stable
|
|
25
|
+
* UUID from the request's stable parts.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolvePromptCacheKey(body: unknown, headers?: Headers): string | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* CORS headers for the auth-gateway. Currently echoes a wildcard origin; the
|
|
30
|
+
* request is accepted so future tightening can mirror `Origin` without
|
|
31
|
+
* threading the request through every caller.
|
|
32
|
+
*/
|
|
33
|
+
export declare function corsHeaders(_req: Request): Record<string, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Re-emit `response` with CORS headers merged. The original response body is
|
|
36
|
+
* passed through unchanged. Used by the gateway wrapper so every outbound
|
|
37
|
+
* format-endpoint response carries the same CORS surface as the preflight.
|
|
38
|
+
*/
|
|
39
|
+
export declare function withCors(response: Response, req: Request): Response;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* omp auth-gateway HTTP server.
|
|
3
|
+
*
|
|
4
|
+
* Accepts any provider-format request (OpenAI chat-completions, Anthropic
|
|
5
|
+
* messages, OpenAI Responses) and dispatches through pi-ai's `streamSimple()`
|
|
6
|
+
* — which handles credential injection, anthropic-beta headers, codex
|
|
7
|
+
* websocket transport, and all the per-provider intricacies. The gateway is
|
|
8
|
+
* pure protocol translation: foreign wire → omp Context → pi-ai stream() →
|
|
9
|
+
* omp events → foreign wire.
|
|
10
|
+
*
|
|
11
|
+
* Endpoints:
|
|
12
|
+
* GET /healthz → unauth; ok + version
|
|
13
|
+
* GET /v1/usage → aggregated provider usage (5-min per-credential cache via AuthStorage)
|
|
14
|
+
* GET /v1/credentials/check → per-credential auth probe (diagnose 401s in a multi-account pool)
|
|
15
|
+
* GET /v1/models → list known models from the registry
|
|
16
|
+
* POST /v1/chat/completions → OpenAI chat-completions in/out
|
|
17
|
+
* POST /v1/messages → Anthropic messages in/out
|
|
18
|
+
* POST /v1/responses → OpenAI Responses in/out
|
|
19
|
+
*/
|
|
20
|
+
import type { AuthStorage } from "../auth-storage";
|
|
21
|
+
import type { Api, Model } from "../types";
|
|
22
|
+
import type { AuthGatewayServerHandle, AuthGatewayServerOptions } from "./types";
|
|
23
|
+
export type ModelResolver = (modelId: string) => Model<Api> | undefined;
|
|
24
|
+
export interface AuthGatewayBootOptions extends AuthGatewayServerOptions {
|
|
25
|
+
/** Source of credentials. Caller wires this to a broker-backed AuthStorage. */
|
|
26
|
+
storage: AuthStorage;
|
|
27
|
+
/**
|
|
28
|
+
* Resolve a client-requested model id to a pi-ai Model. Caller supplies
|
|
29
|
+
* this from a ModelRegistry (lives in `coding-agent` to avoid an inverse
|
|
30
|
+
* dependency in `pi-ai`).
|
|
31
|
+
*/
|
|
32
|
+
resolveModel: ModelResolver;
|
|
33
|
+
/** Optional supplier for `/v1/models` listing. Returns the full model array. */
|
|
34
|
+
listModels?: () => Iterable<Model<Api>>;
|
|
35
|
+
}
|
|
36
|
+
export declare function startAuthGateway(opts: AuthGatewayBootOptions): AuthGatewayServerHandle;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { Effort } from "jeopi-catalog/effort";
|
|
2
|
+
import type { AssistantMessage, AssistantMessageEventStream, CacheRetention, Context, ServiceTier, TokenTaskBudget } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Wire types for the omp auth-gateway.
|
|
5
|
+
*
|
|
6
|
+
* The gateway sits between unauthenticated clients (containerized omp,
|
|
7
|
+
* llm-git, …) and the broker. It accepts provider-format HTTP requests
|
|
8
|
+
* (OpenAI chat-completions / Anthropic messages / OpenAI Responses),
|
|
9
|
+
* dispatches them through pi-ai's `streamSimple()`, and translates the
|
|
10
|
+
* canonical event stream back to the matching wire format. The gateway
|
|
11
|
+
* injects `Authorization` server-side so clients never see access tokens.
|
|
12
|
+
*/
|
|
13
|
+
/** Default bind. Loopback-only — front with reverse proxy for remote access. */
|
|
14
|
+
export declare const DEFAULT_AUTH_GATEWAY_BIND = "127.0.0.1:4000";
|
|
15
|
+
export type AuthGatewayToolChoice = "auto" | "none" | "required" | {
|
|
16
|
+
name: string;
|
|
17
|
+
};
|
|
18
|
+
export interface AuthGatewayParsedRequestOptions {
|
|
19
|
+
maxOutputTokens?: number;
|
|
20
|
+
temperature?: number;
|
|
21
|
+
topP?: number;
|
|
22
|
+
topK?: number;
|
|
23
|
+
/** OpenAI nucleus-min sampling (`min_p`). */
|
|
24
|
+
minP?: number;
|
|
25
|
+
/** Anthropic `stop_sequences` / OpenAI `stop`. */
|
|
26
|
+
stopSequences?: string[];
|
|
27
|
+
/** OpenAI `presence_penalty`. */
|
|
28
|
+
presencePenalty?: number;
|
|
29
|
+
/** OpenAI `frequency_penalty`. */
|
|
30
|
+
frequencyPenalty?: number;
|
|
31
|
+
/** OpenRouter / vLLM `repetition_penalty`. */
|
|
32
|
+
repetitionPenalty?: number;
|
|
33
|
+
/** OpenAI deterministic-sampling `seed`. */
|
|
34
|
+
seed?: number;
|
|
35
|
+
/** OpenAI `logit_bias` map (token id → bias). */
|
|
36
|
+
logitBias?: Record<string, number>;
|
|
37
|
+
/** OpenAI `response_format` (text | json_object | json_schema). Opaque passthrough. */
|
|
38
|
+
responseFormat?: unknown;
|
|
39
|
+
toolChoice?: AuthGatewayToolChoice;
|
|
40
|
+
/** OpenAI `parallel_tool_calls`. */
|
|
41
|
+
parallelToolCalls?: boolean;
|
|
42
|
+
/** Effort-level reasoning request (OpenAI Responses / Chat `reasoning_effort`). */
|
|
43
|
+
reasoning?: Effort;
|
|
44
|
+
/** Force-disable reasoning (Anthropic `thinking: { type: "disabled" }`). */
|
|
45
|
+
disableReasoning?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Explicit Anthropic `thinking.budget_tokens`. Mirrors Rust's
|
|
48
|
+
* `resolve_thinking_budget`: pins onto whichever effort the client
|
|
49
|
+
* requested (defaulting to High when unspecified). Preferred over the
|
|
50
|
+
* removed legacy single-number `thinkingBudget` for new code.
|
|
51
|
+
*/
|
|
52
|
+
explicitThinkingBudgetTokens?: number;
|
|
53
|
+
/** Per-effort thinking budget map. */
|
|
54
|
+
thinkingBudgets?: Partial<Record<Effort, number>>;
|
|
55
|
+
/** Suppress the provider's reasoning summary stream. */
|
|
56
|
+
hideThinkingSummary?: boolean;
|
|
57
|
+
/** Anthropic `output_config.task_budget` advisory loop budget. */
|
|
58
|
+
taskBudget?: TokenTaskBudget;
|
|
59
|
+
/** OpenAI service tier (auto|default|flex|scale|priority). */
|
|
60
|
+
serviceTier?: ServiceTier;
|
|
61
|
+
/** Cache retention hint derived from inbound `cache_control` markers. */
|
|
62
|
+
cacheRetention?: CacheRetention;
|
|
63
|
+
/** OpenAI Responses `prompt_cache_key`; also seeds provider routing when no separate session id exists. */
|
|
64
|
+
promptCacheKey?: string;
|
|
65
|
+
/** OpenAI Responses `previous_response_id` for response chaining. */
|
|
66
|
+
previousResponseId?: string;
|
|
67
|
+
/** OpenAI / abuse-tracking `user` field. */
|
|
68
|
+
user?: string;
|
|
69
|
+
/**
|
|
70
|
+
* Provider-specific metadata. Anthropic uses `metadata.user_id`; OpenRouter
|
|
71
|
+
* carries routing hints; xAI uses `search_parameters`; OpenAI accepts a
|
|
72
|
+
* free-form bag. The gateway forwards as-is.
|
|
73
|
+
*/
|
|
74
|
+
metadata?: Record<string, unknown>;
|
|
75
|
+
/**
|
|
76
|
+
* Captured allow-listed passthrough headers (anthropic-beta,
|
|
77
|
+
* anthropic-version, openai-organization, openai-project, openai-beta,
|
|
78
|
+
* x-stainless-*). Keys are lowercased.
|
|
79
|
+
*/
|
|
80
|
+
headers?: Record<string, string>;
|
|
81
|
+
/**
|
|
82
|
+
* Escape hatch for provider-specific request controls that don't yet have a
|
|
83
|
+
* first-class field. Prefer adding a typed field over widening this.
|
|
84
|
+
*/
|
|
85
|
+
extra?: Record<string, unknown>;
|
|
86
|
+
}
|
|
87
|
+
export interface AuthGatewayParsedRequest {
|
|
88
|
+
modelId: string;
|
|
89
|
+
context: Context;
|
|
90
|
+
stream: boolean;
|
|
91
|
+
options: AuthGatewayParsedRequestOptions;
|
|
92
|
+
}
|
|
93
|
+
export interface AuthGatewayStreamControl {
|
|
94
|
+
/** Gateway request signal. Encoders stop producing frames when it aborts. */
|
|
95
|
+
signal?: AbortSignal;
|
|
96
|
+
/** Called when the HTTP response body is cancelled by the client. */
|
|
97
|
+
onCancel?: (reason?: unknown) => void;
|
|
98
|
+
}
|
|
99
|
+
export interface AuthGatewayFormatModule {
|
|
100
|
+
parseRequest(body: unknown, headers?: Headers): AuthGatewayParsedRequest;
|
|
101
|
+
encodeResponse(message: AssistantMessage, requestedModelId: string): Record<string, unknown>;
|
|
102
|
+
encodeStream(events: AssistantMessageEventStream, requestedModelId: string, options?: AuthGatewayParsedRequestOptions, control?: AuthGatewayStreamControl): ReadableStream<Uint8Array>;
|
|
103
|
+
/**
|
|
104
|
+
* Emit a protocol-specific error envelope. OpenAI returns
|
|
105
|
+
* `{ error: { message, type } }`; Anthropic returns
|
|
106
|
+
* `{ type: "error", error: { type, message } }`.
|
|
107
|
+
*/
|
|
108
|
+
formatError(status: number, type: string, message: string): Response;
|
|
109
|
+
}
|
|
110
|
+
export interface AuthGatewayServerOptions {
|
|
111
|
+
/** Listen address. Default `127.0.0.1:4000`. */
|
|
112
|
+
bind?: string;
|
|
113
|
+
/** Accept any of these bearer tokens. Empty allows unauthenticated calls. */
|
|
114
|
+
bearerTokens: string[];
|
|
115
|
+
/** Version surfaced on `/healthz`. */
|
|
116
|
+
version?: string;
|
|
117
|
+
}
|
|
118
|
+
export interface AuthGatewayServerHandle {
|
|
119
|
+
url: string;
|
|
120
|
+
port: number;
|
|
121
|
+
hostname: string;
|
|
122
|
+
close(): Promise<void>;
|
|
123
|
+
}
|