@aryee337/aery-ai 0.1.148 → 0.2.10
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 +2914 -0
- package/README.md +614 -813
- package/dist/types/api-registry.d.ts +30 -0
- package/dist/types/auth-broker/client.d.ts +66 -0
- package/dist/types/auth-broker/index.d.ts +5 -0
- package/dist/types/auth-broker/refresher.d.ts +25 -0
- package/dist/types/auth-broker/remote-store.d.ts +96 -0
- package/dist/types/auth-broker/server.d.ts +32 -0
- package/dist/types/auth-broker/types.d.ts +105 -0
- package/dist/types/auth-broker/wire-schemas.d.ts +412 -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 +117 -0
- package/dist/types/auth-storage.d.ts +739 -0
- package/dist/types/index.d.ts +49 -0
- package/dist/types/model-cache.d.ts +17 -0
- package/dist/types/model-manager.d.ts +64 -0
- package/dist/types/model-thinking.d.ts +100 -0
- package/dist/types/models.d.ts +12 -0
- package/dist/types/provider-details.d.ts +24 -0
- package/dist/types/provider-models/bundled-references.d.ts +4 -0
- package/dist/types/provider-models/descriptors.d.ts +50 -0
- package/dist/types/provider-models/google.d.ts +24 -0
- package/dist/types/provider-models/index.d.ts +5 -0
- package/dist/types/provider-models/ollama.d.ts +7 -0
- package/dist/types/provider-models/openai-compat.d.ts +296 -0
- package/dist/types/provider-models/special.d.ts +16 -0
- package/dist/types/providers/aery-native-client.d.ts +13 -0
- package/dist/types/providers/aery-native-server.d.ts +68 -0
- package/dist/types/providers/amazon-bedrock.d.ts +38 -0
- package/dist/types/providers/anthropic-client.d.ts +99 -0
- package/dist/types/providers/anthropic-messages-server-schema.d.ts +465 -0
- package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
- package/dist/types/providers/anthropic-wire.d.ts +262 -0
- package/dist/types/providers/anthropic.d.ts +206 -0
- package/dist/types/providers/aws-credentials.d.ts +43 -0
- package/dist/types/providers/aws-eventstream.d.ts +38 -0
- package/dist/types/providers/aws-sigv4.d.ts +55 -0
- package/dist/types/providers/azure-openai-responses.d.ts +15 -0
- package/dist/types/providers/cursor/gen/agent_pb.d.ts +13022 -0
- package/dist/types/providers/cursor.d.ts +43 -0
- package/dist/types/providers/error-message.d.ts +27 -0
- package/dist/types/providers/github-copilot-headers.d.ts +40 -0
- package/dist/types/providers/gitlab-duo.d.ts +27 -0
- package/dist/types/providers/google-auth.d.ts +24 -0
- package/dist/types/providers/google-gemini-cli.d.ts +81 -0
- package/dist/types/providers/google-gemini-headers.d.ts +18 -0
- package/dist/types/providers/google-shared.d.ts +171 -0
- package/dist/types/providers/google-types.d.ts +138 -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 +173 -0
- package/dist/types/providers/ollama.d.ts +6 -0
- package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
- package/dist/types/providers/openai-chat-server-schema.d.ts +817 -0
- package/dist/types/providers/openai-chat-server.d.ts +16 -0
- package/dist/types/providers/openai-codex/constants.d.ts +26 -0
- package/dist/types/providers/openai-codex/request-transformer.d.ts +49 -0
- package/dist/types/providers/openai-codex/response-handler.d.ts +17 -0
- package/dist/types/providers/openai-codex-responses.d.ts +67 -0
- package/dist/types/providers/openai-completions-compat.d.ts +25 -0
- package/dist/types/providers/openai-completions.d.ts +54 -0
- package/dist/types/providers/openai-responses-server-schema.d.ts +392 -0
- package/dist/types/providers/openai-responses-server.d.ts +17 -0
- package/dist/types/providers/openai-responses-shared.d.ts +100 -0
- package/dist/types/providers/openai-responses.d.ts +66 -0
- package/dist/types/providers/register-builtins.d.ts +31 -0
- package/dist/types/providers/synthetic.d.ts +26 -0
- package/dist/{providers → types/providers}/transform-messages.d.ts +6 -2
- package/dist/types/providers/vision-guard.d.ts +8 -0
- package/dist/types/providers/xai-responses.d.ts +23 -0
- package/dist/types/rate-limit-utils.d.ts +19 -0
- package/dist/types/stream.d.ts +28 -0
- package/dist/types/types.d.ts +801 -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 +2 -0
- package/dist/types/usage/kimi.d.ts +2 -0
- package/dist/types/usage/minimax-code.d.ts +2 -0
- package/dist/types/usage/openai-codex.d.ts +3 -0
- package/dist/types/usage/shared.d.ts +1 -0
- package/dist/types/usage/zai.d.ts +2 -0
- package/dist/types/usage.d.ts +260 -0
- package/dist/types/utils/abort.d.ts +19 -0
- package/dist/types/utils/abortable-iterator.d.ts +4 -0
- package/dist/types/utils/anthropic-auth.d.ts +35 -0
- package/dist/types/utils/discovery/antigravity.d.ts +61 -0
- package/dist/types/utils/discovery/codex.d.ts +38 -0
- package/dist/types/utils/discovery/cursor.d.ts +23 -0
- package/dist/types/utils/discovery/gemini.d.ts +25 -0
- package/dist/types/utils/discovery/index.d.ts +4 -0
- package/dist/types/utils/discovery/openai-compatible.d.ts +72 -0
- package/dist/types/utils/event-stream.d.ts +28 -0
- package/dist/types/utils/fireworks-model-id.d.ts +10 -0
- package/dist/types/utils/foundry.d.ts +1 -0
- package/dist/types/utils/http-inspector.d.ts +31 -0
- package/dist/types/utils/idle-iterator.d.ts +78 -0
- package/dist/types/utils/json-parse.d.ts +37 -0
- package/dist/types/utils/oauth/__tests__/xai-oauth.test.d.ts +1 -0
- package/dist/types/utils/oauth/alibaba-coding-plan.d.ts +18 -0
- package/dist/types/utils/oauth/anthropic.d.ts +22 -0
- package/dist/types/utils/oauth/api-key-login.d.ts +35 -0
- package/dist/types/utils/oauth/api-key-validation.d.ts +27 -0
- package/dist/types/utils/oauth/callback-server.d.ts +57 -0
- package/dist/types/utils/oauth/cerebras.d.ts +1 -0
- package/dist/types/utils/oauth/cloudflare-ai-gateway.d.ts +18 -0
- package/dist/types/utils/oauth/cursor.d.ts +15 -0
- package/dist/types/utils/oauth/deepseek.d.ts +10 -0
- package/dist/types/utils/oauth/firepass.d.ts +1 -0
- package/dist/types/utils/oauth/fireworks.d.ts +1 -0
- package/dist/types/utils/oauth/github-copilot.d.ts +38 -0
- package/dist/types/utils/oauth/gitlab-duo.d.ts +3 -0
- package/dist/types/utils/oauth/google-antigravity.d.ts +11 -0
- package/dist/types/utils/oauth/google-gemini-cli.d.ts +10 -0
- package/dist/types/utils/oauth/google-oauth-shared.d.ts +28 -0
- package/dist/types/utils/oauth/huggingface.d.ts +19 -0
- package/dist/types/utils/oauth/index.d.ts +38 -0
- package/dist/types/utils/oauth/kagi.d.ts +17 -0
- package/dist/types/utils/oauth/kilo.d.ts +5 -0
- package/dist/types/utils/oauth/kimi.d.ts +21 -0
- package/dist/types/utils/oauth/litellm.d.ts +18 -0
- package/dist/types/utils/oauth/lm-studio.d.ts +17 -0
- package/dist/types/utils/oauth/minimax-code.d.ts +28 -0
- package/dist/types/utils/oauth/moonshot.d.ts +1 -0
- package/dist/types/utils/oauth/nanogpt.d.ts +1 -0
- package/dist/types/utils/oauth/nvidia.d.ts +18 -0
- package/dist/types/utils/oauth/ollama-cloud.d.ts +2 -0
- package/dist/types/utils/oauth/ollama.d.ts +18 -0
- package/dist/types/utils/oauth/openai-codex.d.ts +21 -0
- package/dist/types/utils/oauth/opencode.d.ts +18 -0
- package/dist/types/utils/oauth/openrouter.d.ts +1 -0
- package/dist/types/utils/oauth/parallel.d.ts +17 -0
- package/dist/types/utils/oauth/perplexity.d.ts +9 -0
- package/dist/{utils → types/utils}/oauth/pkce.d.ts +0 -5
- package/dist/types/utils/oauth/qianfan.d.ts +17 -0
- package/dist/types/utils/oauth/qwen-portal.d.ts +19 -0
- package/dist/types/utils/oauth/synthetic.d.ts +1 -0
- package/dist/types/utils/oauth/tavily.d.ts +17 -0
- package/dist/types/utils/oauth/together.d.ts +1 -0
- package/dist/types/utils/oauth/types.d.ts +44 -0
- package/dist/types/utils/oauth/venice.d.ts +18 -0
- package/dist/types/utils/oauth/vercel-ai-gateway.d.ts +18 -0
- package/dist/types/utils/oauth/vllm.d.ts +16 -0
- package/dist/types/utils/oauth/wafer.d.ts +2 -0
- package/dist/types/utils/oauth/xai-oauth.d.ts +60 -0
- package/dist/types/utils/oauth/xiaomi.d.ts +19 -0
- package/dist/types/utils/oauth/zai.d.ts +18 -0
- package/dist/types/utils/oauth/zenmux.d.ts +1 -0
- package/dist/types/utils/oauth/zhipu.d.ts +18 -0
- package/dist/{utils → types/utils}/overflow.d.ts +9 -11
- package/dist/types/utils/parse-bind.d.ts +23 -0
- package/dist/types/utils/provider-response.d.ts +3 -0
- package/dist/types/utils/request-debug.d.ts +29 -0
- package/dist/types/utils/retry-after.d.ts +3 -0
- package/dist/types/utils/retry.d.ts +26 -0
- package/dist/types/utils/schema/adapt.d.ts +24 -0
- package/dist/types/utils/schema/compatibility.d.ts +30 -0
- package/dist/types/utils/schema/dereference.d.ts +11 -0
- package/dist/types/utils/schema/draft.d.ts +10 -0
- package/dist/types/utils/schema/equality.d.ts +4 -0
- package/dist/types/utils/schema/fields.d.ts +49 -0
- package/dist/types/utils/schema/index.d.ts +13 -0
- package/dist/types/utils/schema/json-schema-validator.d.ts +12 -0
- package/dist/types/utils/schema/meta-validator.d.ts +2 -0
- package/dist/types/utils/schema/normalize.d.ts +93 -0
- package/dist/types/utils/schema/spill.d.ts +8 -0
- package/dist/types/utils/schema/stamps.d.ts +25 -0
- package/dist/types/utils/schema/types.d.ts +4 -0
- package/dist/types/utils/schema/wire.d.ts +53 -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 +10 -0
- package/dist/types/utils/stream-markup-healing.d.ts +80 -0
- package/dist/types/utils/tool-choice.d.ts +50 -0
- package/dist/types/utils/validation.d.ts +17 -0
- package/dist/types/utils.d.ts +28 -0
- package/package.json +139 -105
- package/src/api-registry.ts +96 -0
- package/src/auth-broker/client.ts +358 -0
- package/src/auth-broker/index.ts +5 -0
- package/src/auth-broker/refresher.ts +117 -0
- package/src/auth-broker/remote-store.ts +623 -0
- package/src/auth-broker/server.ts +644 -0
- package/src/auth-broker/types.ts +127 -0
- package/src/auth-broker/wire-schemas.ts +200 -0
- package/src/auth-gateway/http.ts +194 -0
- package/src/auth-gateway/index.ts +3 -0
- package/src/auth-gateway/server.ts +818 -0
- package/src/auth-gateway/types.ts +143 -0
- package/src/auth-storage.ts +4422 -0
- package/src/index.ts +54 -0
- package/src/model-cache.ts +129 -0
- package/src/model-manager.ts +469 -0
- package/src/model-thinking.ts +782 -0
- package/src/models.json +83530 -0
- package/src/models.json.d.ts +9 -0
- package/src/models.ts +56 -0
- package/src/prompts/turn-aborted-guidance.md +4 -0
- package/src/provider-details.ts +90 -0
- package/src/provider-models/bundled-references.ts +38 -0
- package/src/provider-models/descriptors.ts +355 -0
- package/src/provider-models/google.ts +88 -0
- package/src/provider-models/index.ts +5 -0
- package/src/provider-models/ollama.ts +153 -0
- package/src/provider-models/openai-compat.ts +2817 -0
- package/src/provider-models/special.ts +67 -0
- package/src/providers/aery-native-client.ts +228 -0
- package/src/providers/aery-native-server.ts +212 -0
- package/src/providers/amazon-bedrock.ts +873 -0
- package/src/providers/anthropic-client.ts +318 -0
- package/src/providers/anthropic-messages-server-schema.ts +243 -0
- package/src/providers/anthropic-messages-server.ts +683 -0
- package/src/providers/anthropic-wire.ts +268 -0
- package/src/providers/anthropic.ts +3094 -0
- package/src/providers/aws-credentials.ts +501 -0
- package/src/providers/aws-eventstream.ts +185 -0
- package/src/providers/aws-sigv4.ts +218 -0
- package/src/providers/azure-openai-responses.ts +361 -0
- package/src/providers/cursor/gen/agent_pb.ts +15274 -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 +2621 -0
- package/src/providers/error-message.ts +21 -0
- package/src/providers/github-copilot-headers.ts +140 -0
- package/src/providers/gitlab-duo.ts +372 -0
- package/src/providers/google-auth.ts +252 -0
- package/src/providers/google-gemini-cli.ts +809 -0
- package/src/providers/google-gemini-headers.ts +41 -0
- package/src/providers/google-shared.ts +917 -0
- package/src/providers/google-types.ts +167 -0
- package/src/providers/google-vertex.ts +91 -0
- package/src/providers/google.ts +41 -0
- package/src/providers/grammar.ts +70 -0
- package/src/providers/kimi.ts +52 -0
- package/src/providers/mock.ts +496 -0
- package/src/providers/ollama.ts +644 -0
- package/src/providers/openai-anthropic-shim.ts +138 -0
- package/src/providers/openai-chat-server-schema.ts +252 -0
- package/src/providers/openai-chat-server.ts +647 -0
- package/src/providers/openai-codex/constants.ts +43 -0
- package/src/providers/openai-codex/request-transformer.ts +161 -0
- package/src/providers/openai-codex/response-handler.ts +81 -0
- package/src/providers/openai-codex-responses.ts +3018 -0
- package/src/providers/openai-completions-compat.ts +300 -0
- package/src/providers/openai-completions.ts +1979 -0
- package/src/providers/openai-responses-server-schema.ts +290 -0
- package/src/providers/openai-responses-server.ts +1183 -0
- package/src/providers/openai-responses-shared.ts +873 -0
- package/src/providers/openai-responses.ts +679 -0
- package/src/providers/register-builtins.ts +436 -0
- package/src/providers/synthetic.ts +50 -0
- package/src/providers/transform-messages.ts +382 -0
- package/src/providers/vision-guard.ts +31 -0
- package/src/providers/xai-responses.ts +82 -0
- package/src/rate-limit-utils.ts +84 -0
- package/src/stream.ts +1065 -0
- package/src/types.ts +944 -0
- package/src/usage/claude.ts +482 -0
- package/src/usage/gemini.ts +250 -0
- package/src/usage/github-copilot.ts +421 -0
- package/src/usage/google-antigravity.ts +201 -0
- package/src/usage/kimi.ts +271 -0
- package/src/usage/minimax-code.ts +31 -0
- package/src/usage/openai-codex.ts +503 -0
- package/src/usage/shared.ts +10 -0
- package/src/usage/zai.ts +247 -0
- package/src/usage.ts +185 -0
- package/src/utils/abort.ts +51 -0
- package/src/utils/abortable-iterator.ts +69 -0
- package/src/utils/anthropic-auth.ts +93 -0
- package/src/utils/discovery/antigravity.ts +261 -0
- package/src/utils/discovery/codex.ts +371 -0
- package/src/utils/discovery/cursor.ts +306 -0
- package/src/utils/discovery/gemini.ts +248 -0
- package/src/utils/discovery/index.ts +4 -0
- package/src/utils/discovery/openai-compatible.ts +224 -0
- package/src/utils/event-stream.ts +142 -0
- package/src/utils/fireworks-model-id.ts +30 -0
- package/src/utils/foundry.ts +8 -0
- package/src/utils/http-inspector.ts +176 -0
- package/src/utils/idle-iterator.ts +267 -0
- package/src/utils/json-parse.ts +182 -0
- package/src/utils/oauth/__tests__/xai-oauth.test.ts +107 -0
- package/src/utils/oauth/alibaba-coding-plan.ts +59 -0
- package/src/utils/oauth/anthropic.ts +273 -0
- package/src/utils/oauth/api-key-login.ts +87 -0
- package/src/utils/oauth/api-key-validation.ts +92 -0
- package/src/utils/oauth/callback-server.ts +276 -0
- package/src/utils/oauth/cerebras.ts +16 -0
- package/src/utils/oauth/cloudflare-ai-gateway.ts +48 -0
- package/src/utils/oauth/cursor.ts +157 -0
- package/src/utils/oauth/deepseek.ts +53 -0
- package/src/utils/oauth/firepass.ts +24 -0
- package/src/utils/oauth/fireworks.ts +15 -0
- package/src/utils/oauth/github-copilot.ts +362 -0
- package/src/utils/oauth/gitlab-duo.ts +123 -0
- package/src/utils/oauth/google-antigravity.ts +200 -0
- package/src/utils/oauth/google-gemini-cli.ts +256 -0
- package/src/utils/oauth/google-oauth-shared.ts +110 -0
- package/src/utils/oauth/huggingface.ts +62 -0
- package/src/utils/oauth/index.ts +484 -0
- package/src/utils/oauth/kagi.ts +47 -0
- package/src/utils/oauth/kilo.ts +87 -0
- package/src/utils/oauth/kimi.ts +254 -0
- package/src/utils/oauth/litellm.ts +47 -0
- package/src/utils/oauth/lm-studio.ts +38 -0
- package/src/utils/oauth/minimax-code.ts +78 -0
- package/src/utils/oauth/moonshot.ts +23 -0
- package/src/utils/oauth/nanogpt.ts +15 -0
- package/src/utils/oauth/nvidia.ts +70 -0
- package/src/utils/oauth/oauth.html +203 -0
- package/src/utils/oauth/ollama-cloud.ts +28 -0
- package/src/utils/oauth/ollama.ts +47 -0
- package/src/utils/oauth/openai-codex.ts +299 -0
- package/src/utils/oauth/opencode.ts +49 -0
- package/src/utils/oauth/openrouter.ts +20 -0
- package/src/utils/oauth/parallel.ts +46 -0
- package/src/utils/oauth/perplexity.ts +206 -0
- package/src/utils/oauth/pkce.ts +18 -0
- package/src/utils/oauth/qianfan.ts +58 -0
- package/src/utils/oauth/qwen-portal.ts +60 -0
- package/src/utils/oauth/synthetic.ts +15 -0
- package/src/utils/oauth/tavily.ts +46 -0
- package/src/utils/oauth/together.ts +16 -0
- package/src/utils/oauth/types.ts +99 -0
- package/src/utils/oauth/venice.ts +59 -0
- package/src/utils/oauth/vercel-ai-gateway.ts +47 -0
- package/src/utils/oauth/vllm.ts +40 -0
- package/src/utils/oauth/wafer.ts +50 -0
- package/src/utils/oauth/xai-oauth.ts +342 -0
- package/src/utils/oauth/xiaomi.ts +139 -0
- package/src/utils/oauth/zai.ts +60 -0
- package/src/utils/oauth/zenmux.ts +15 -0
- package/src/utils/oauth/zhipu.ts +60 -0
- package/src/utils/overflow.ts +137 -0
- package/src/utils/parse-bind.ts +54 -0
- package/src/utils/provider-response.ts +30 -0
- package/src/utils/request-debug.ts +336 -0
- package/src/utils/retry-after.ts +110 -0
- package/src/utils/retry.ts +54 -0
- package/src/utils/schema/CONSTRAINTS.md +164 -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 +191 -0
- package/src/utils/schema/index.ts +13 -0
- package/src/utils/schema/json-schema-validator.ts +577 -0
- package/src/utils/schema/meta-validator.ts +167 -0
- package/src/utils/schema/normalize.ts +1588 -0
- package/src/utils/schema/spill.ts +43 -0
- package/src/utils/schema/stamps.ts +97 -0
- package/src/utils/schema/types.ts +10 -0
- package/src/utils/schema/wire.ts +293 -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 +289 -0
- package/src/utils/stream-markup-healing.ts +612 -0
- package/src/utils/tool-choice.ts +99 -0
- package/src/utils/validation.ts +1024 -0
- package/src/utils.ts +166 -0
- package/dist/api-registry.d.ts +0 -20
- package/dist/api-registry.d.ts.map +0 -1
- package/dist/api-registry.js +0 -44
- package/dist/api-registry.js.map +0 -1
- package/dist/bedrock-provider.d.ts +0 -5
- package/dist/bedrock-provider.d.ts.map +0 -1
- package/dist/bedrock-provider.js +0 -6
- package/dist/bedrock-provider.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -130
- package/dist/cli.js.map +0 -1
- package/dist/env-api-keys.d.ts +0 -18
- package/dist/env-api-keys.d.ts.map +0 -1
- package/dist/env-api-keys.js +0 -178
- package/dist/env-api-keys.js.map +0 -1
- package/dist/image-models.d.ts +0 -10
- package/dist/image-models.d.ts.map +0 -1
- package/dist/image-models.generated.d.ts +0 -440
- package/dist/image-models.generated.d.ts.map +0 -1
- package/dist/image-models.generated.js +0 -442
- package/dist/image-models.generated.js.map +0 -1
- package/dist/image-models.js +0 -23
- package/dist/image-models.js.map +0 -1
- package/dist/images-api-registry.d.ts +0 -14
- package/dist/images-api-registry.d.ts.map +0 -1
- package/dist/images-api-registry.js +0 -22
- package/dist/images-api-registry.js.map +0 -1
- package/dist/images.d.ts +0 -4
- package/dist/images.d.ts.map +0 -1
- package/dist/images.js +0 -14
- package/dist/images.js.map +0 -1
- package/dist/index.d.ts +0 -32
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -20
- package/dist/index.js.map +0 -1
- package/dist/models.d.ts +0 -18
- package/dist/models.d.ts.map +0 -1
- package/dist/models.generated.d.ts +0 -17480
- package/dist/models.generated.d.ts.map +0 -1
- package/dist/models.generated.js +0 -16339
- package/dist/models.generated.js.map +0 -1
- package/dist/models.js +0 -71
- package/dist/models.js.map +0 -1
- package/dist/oauth.d.ts +0 -2
- package/dist/oauth.d.ts.map +0 -1
- package/dist/oauth.js +0 -2
- package/dist/oauth.js.map +0 -1
- package/dist/providers/aery-error-formatting.d.ts +0 -13
- package/dist/providers/aery-error-formatting.d.ts.map +0 -1
- package/dist/providers/aery-error-formatting.js +0 -112
- package/dist/providers/aery-error-formatting.js.map +0 -1
- package/dist/providers/amazon-bedrock.d.ts +0 -38
- package/dist/providers/amazon-bedrock.d.ts.map +0 -1
- package/dist/providers/amazon-bedrock.js +0 -763
- package/dist/providers/amazon-bedrock.js.map +0 -1
- package/dist/providers/anthropic.d.ts +0 -71
- package/dist/providers/anthropic.d.ts.map +0 -1
- package/dist/providers/anthropic.js +0 -949
- package/dist/providers/anthropic.js.map +0 -1
- package/dist/providers/azure-openai-responses.d.ts +0 -15
- package/dist/providers/azure-openai-responses.d.ts.map +0 -1
- package/dist/providers/azure-openai-responses.js +0 -225
- package/dist/providers/azure-openai-responses.js.map +0 -1
- package/dist/providers/cloudflare.d.ts +0 -13
- package/dist/providers/cloudflare.d.ts.map +0 -1
- package/dist/providers/cloudflare.js +0 -26
- package/dist/providers/cloudflare.js.map +0 -1
- package/dist/providers/faux.d.ts +0 -56
- package/dist/providers/faux.d.ts.map +0 -1
- package/dist/providers/faux.js +0 -368
- package/dist/providers/faux.js.map +0 -1
- package/dist/providers/github-copilot-headers.d.ts +0 -8
- package/dist/providers/github-copilot-headers.d.ts.map +0 -1
- package/dist/providers/github-copilot-headers.js +0 -29
- package/dist/providers/github-copilot-headers.js.map +0 -1
- package/dist/providers/google-gemini-cli.d.ts +0 -74
- package/dist/providers/google-gemini-cli.d.ts.map +0 -1
- package/dist/providers/google-gemini-cli.js +0 -779
- package/dist/providers/google-gemini-cli.js.map +0 -1
- package/dist/providers/google-shared.d.ts +0 -70
- package/dist/providers/google-shared.d.ts.map +0 -1
- package/dist/providers/google-shared.js +0 -329
- package/dist/providers/google-shared.js.map +0 -1
- package/dist/providers/google-vertex.d.ts +0 -15
- package/dist/providers/google-vertex.d.ts.map +0 -1
- package/dist/providers/google-vertex.js +0 -442
- package/dist/providers/google-vertex.js.map +0 -1
- package/dist/providers/google.d.ts +0 -13
- package/dist/providers/google.d.ts.map +0 -1
- package/dist/providers/google.js +0 -400
- package/dist/providers/google.js.map +0 -1
- package/dist/providers/images/openrouter.d.ts +0 -3
- package/dist/providers/images/openrouter.d.ts.map +0 -1
- package/dist/providers/images/openrouter.js +0 -129
- package/dist/providers/images/openrouter.js.map +0 -1
- package/dist/providers/images/register-builtins.d.ts +0 -4
- package/dist/providers/images/register-builtins.d.ts.map +0 -1
- package/dist/providers/images/register-builtins.js +0 -34
- package/dist/providers/images/register-builtins.js.map +0 -1
- package/dist/providers/mistral.d.ts +0 -25
- package/dist/providers/mistral.d.ts.map +0 -1
- package/dist/providers/mistral.js +0 -535
- package/dist/providers/mistral.js.map +0 -1
- package/dist/providers/openai-codex-responses.d.ts +0 -30
- package/dist/providers/openai-codex-responses.d.ts.map +0 -1
- package/dist/providers/openai-codex-responses.js +0 -1090
- package/dist/providers/openai-codex-responses.js.map +0 -1
- package/dist/providers/openai-completions.d.ts +0 -19
- package/dist/providers/openai-completions.d.ts.map +0 -1
- package/dist/providers/openai-completions.js +0 -950
- package/dist/providers/openai-completions.js.map +0 -1
- package/dist/providers/openai-prompt-cache.d.ts +0 -3
- package/dist/providers/openai-prompt-cache.d.ts.map +0 -1
- package/dist/providers/openai-prompt-cache.js +0 -10
- package/dist/providers/openai-prompt-cache.js.map +0 -1
- package/dist/providers/openai-responses-shared.d.ts +0 -18
- package/dist/providers/openai-responses-shared.d.ts.map +0 -1
- package/dist/providers/openai-responses-shared.js +0 -492
- package/dist/providers/openai-responses-shared.js.map +0 -1
- package/dist/providers/openai-responses.d.ts +0 -13
- package/dist/providers/openai-responses.d.ts.map +0 -1
- package/dist/providers/openai-responses.js +0 -237
- package/dist/providers/openai-responses.js.map +0 -1
- package/dist/providers/register-builtins.d.ts +0 -38
- package/dist/providers/register-builtins.d.ts.map +0 -1
- package/dist/providers/register-builtins.js +0 -278
- package/dist/providers/register-builtins.js.map +0 -1
- package/dist/providers/simple-options.d.ts +0 -8
- package/dist/providers/simple-options.d.ts.map +0 -1
- package/dist/providers/simple-options.js +0 -41
- package/dist/providers/simple-options.js.map +0 -1
- package/dist/providers/transform-messages.d.ts.map +0 -1
- package/dist/providers/transform-messages.js +0 -184
- package/dist/providers/transform-messages.js.map +0 -1
- package/dist/session-resources.d.ts +0 -4
- package/dist/session-resources.d.ts.map +0 -1
- package/dist/session-resources.js +0 -22
- package/dist/session-resources.js.map +0 -1
- package/dist/stream.d.ts +0 -8
- package/dist/stream.d.ts.map +0 -1
- package/dist/stream.js +0 -27
- package/dist/stream.js.map +0 -1
- package/dist/types.d.ts +0 -498
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils/diagnostics.d.ts +0 -19
- package/dist/utils/diagnostics.d.ts.map +0 -1
- package/dist/utils/diagnostics.js +0 -25
- package/dist/utils/diagnostics.js.map +0 -1
- package/dist/utils/event-stream.d.ts +0 -21
- package/dist/utils/event-stream.d.ts.map +0 -1
- package/dist/utils/event-stream.js +0 -81
- package/dist/utils/event-stream.js.map +0 -1
- package/dist/utils/hash.d.ts +0 -3
- package/dist/utils/hash.d.ts.map +0 -1
- package/dist/utils/hash.js +0 -14
- package/dist/utils/hash.js.map +0 -1
- package/dist/utils/headers.d.ts +0 -2
- package/dist/utils/headers.d.ts.map +0 -1
- package/dist/utils/headers.js +0 -8
- package/dist/utils/headers.js.map +0 -1
- package/dist/utils/json-parse.d.ts +0 -16
- package/dist/utils/json-parse.d.ts.map +0 -1
- package/dist/utils/json-parse.js +0 -113
- package/dist/utils/json-parse.js.map +0 -1
- package/dist/utils/node-http-proxy.d.ts +0 -10
- package/dist/utils/node-http-proxy.d.ts.map +0 -1
- package/dist/utils/node-http-proxy.js +0 -97
- package/dist/utils/node-http-proxy.js.map +0 -1
- package/dist/utils/oauth/anthropic.d.ts +0 -25
- package/dist/utils/oauth/anthropic.d.ts.map +0 -1
- package/dist/utils/oauth/anthropic.js +0 -335
- package/dist/utils/oauth/anthropic.js.map +0 -1
- package/dist/utils/oauth/device-code.d.ts +0 -19
- package/dist/utils/oauth/device-code.d.ts.map +0 -1
- package/dist/utils/oauth/device-code.js +0 -55
- package/dist/utils/oauth/device-code.js.map +0 -1
- package/dist/utils/oauth/github-copilot.d.ts +0 -30
- package/dist/utils/oauth/github-copilot.d.ts.map +0 -1
- package/dist/utils/oauth/github-copilot.js +0 -268
- package/dist/utils/oauth/github-copilot.js.map +0 -1
- package/dist/utils/oauth/google-antigravity.d.ts +0 -26
- package/dist/utils/oauth/google-antigravity.d.ts.map +0 -1
- package/dist/utils/oauth/google-antigravity.js +0 -377
- package/dist/utils/oauth/google-antigravity.js.map +0 -1
- package/dist/utils/oauth/google-gemini-cli.d.ts +0 -26
- package/dist/utils/oauth/google-gemini-cli.d.ts.map +0 -1
- package/dist/utils/oauth/google-gemini-cli.js +0 -482
- package/dist/utils/oauth/google-gemini-cli.js.map +0 -1
- package/dist/utils/oauth/index.d.ts +0 -63
- package/dist/utils/oauth/index.d.ts.map +0 -1
- package/dist/utils/oauth/index.js +0 -131
- package/dist/utils/oauth/index.js.map +0 -1
- package/dist/utils/oauth/oauth-page.d.ts +0 -3
- package/dist/utils/oauth/oauth-page.d.ts.map +0 -1
- package/dist/utils/oauth/oauth-page.js +0 -105
- package/dist/utils/oauth/oauth-page.js.map +0 -1
- package/dist/utils/oauth/openai-codex.d.ts +0 -34
- package/dist/utils/oauth/openai-codex.d.ts.map +0 -1
- package/dist/utils/oauth/openai-codex.js +0 -385
- package/dist/utils/oauth/openai-codex.js.map +0 -1
- package/dist/utils/oauth/pkce.d.ts.map +0 -1
- package/dist/utils/oauth/pkce.js +0 -31
- package/dist/utils/oauth/pkce.js.map +0 -1
- package/dist/utils/oauth/types.d.ts +0 -64
- package/dist/utils/oauth/types.d.ts.map +0 -1
- package/dist/utils/oauth/types.js +0 -2
- package/dist/utils/oauth/types.js.map +0 -1
- package/dist/utils/overflow.d.ts.map +0 -1
- package/dist/utils/overflow.js +0 -151
- package/dist/utils/overflow.js.map +0 -1
- package/dist/utils/sanitize-unicode.d.ts +0 -22
- package/dist/utils/sanitize-unicode.d.ts.map +0 -1
- package/dist/utils/sanitize-unicode.js +0 -26
- package/dist/utils/sanitize-unicode.js.map +0 -1
- package/dist/utils/typebox-helpers.d.ts +0 -17
- package/dist/utils/typebox-helpers.d.ts.map +0 -1
- package/dist/utils/typebox-helpers.js +0 -21
- package/dist/utils/typebox-helpers.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -18
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -281
- package/dist/utils/validation.js.map +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field classification sets for JSON Schema sanitization across providers.
|
|
3
|
+
*
|
|
4
|
+
* Each set serves a different provider need. They overlap intentionally —
|
|
5
|
+
* co-locating them makes the overlap visible and maintainable.
|
|
6
|
+
*
|
|
7
|
+
* All keysets here are static and small (≤ ~40 entries) so they live as
|
|
8
|
+
* `Record<string, true>` literals — `k in REC` resolves through hidden
|
|
9
|
+
* class inline caches without the per-call hashtable cost of `Set.has`.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Google Generative AI unsupported schema fields.
|
|
13
|
+
* Stripped during normalizeSchemaForGoogle / normalizeSchemaForCCA.
|
|
14
|
+
*/
|
|
15
|
+
export declare const UNSUPPORTED_SCHEMA_FIELDS: Record<string, true>;
|
|
16
|
+
/**
|
|
17
|
+
* Human-meaningful validation/decorative keywords that can be preserved in a
|
|
18
|
+
* sibling description when a provider-specific normalizer strips them from the
|
|
19
|
+
* wire schema.
|
|
20
|
+
*/
|
|
21
|
+
export declare const LIFTABLE_TO_DESCRIPTION_FIELDS: Record<string, true>;
|
|
22
|
+
/**
|
|
23
|
+
* Non-structural schema keys stripped during OpenAI strict mode sanitization.
|
|
24
|
+
* These are decorative/validation-only keywords that don't affect the structural
|
|
25
|
+
* shape OpenAI's strict mode enforces.
|
|
26
|
+
*/
|
|
27
|
+
export declare const NON_STRUCTURAL_SCHEMA_KEYS: Record<string, true>;
|
|
28
|
+
/**
|
|
29
|
+
* Cloud Code Assist type-specific allowed keys per JSON Schema type.
|
|
30
|
+
* Used when collapsing mixed-type combiner variants for CCA Claude.
|
|
31
|
+
*/
|
|
32
|
+
export declare const CLOUD_CODE_ASSIST_TYPE_SPECIFIC_KEYS: Record<string, Record<string, true>>;
|
|
33
|
+
/**
|
|
34
|
+
* Cloud Code Assist shared schema keys allowed on any type.
|
|
35
|
+
* Used alongside CLOUD_CODE_ASSIST_TYPE_SPECIFIC_KEYS for CCA combiner collapsing.
|
|
36
|
+
*/
|
|
37
|
+
export declare const CLOUD_CODE_ASSIST_SHARED_SCHEMA_KEYS: Record<string, true>;
|
|
38
|
+
/**
|
|
39
|
+
* Combinator keys used across schema sanitization modules.
|
|
40
|
+
* Defined once to avoid duplication in strict-mode.ts and normalize.ts.
|
|
41
|
+
*/
|
|
42
|
+
export declare const COMBINATOR_KEYS: readonly ["anyOf", "allOf", "oneOf"];
|
|
43
|
+
/**
|
|
44
|
+
* Cloud Code Assist Claude unsupported schema fields.
|
|
45
|
+
* Much smaller than UNSUPPORTED_SCHEMA_FIELDS (Google) because CCA supports
|
|
46
|
+
* validation keywords like additionalProperties, minLength, pattern, etc.
|
|
47
|
+
* Meta/reference keywords plus object-key validators that CCA cannot resolve are stripped.
|
|
48
|
+
*/
|
|
49
|
+
export declare const CCA_UNSUPPORTED_SCHEMA_FIELDS: Record<string, true>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "./adapt";
|
|
2
|
+
export * from "./compatibility";
|
|
3
|
+
export * from "./dereference";
|
|
4
|
+
export * from "./draft";
|
|
5
|
+
export * from "./equality";
|
|
6
|
+
export * from "./fields";
|
|
7
|
+
export * from "./json-schema-validator";
|
|
8
|
+
export * from "./meta-validator";
|
|
9
|
+
export * from "./normalize";
|
|
10
|
+
export * from "./spill";
|
|
11
|
+
export * from "./types";
|
|
12
|
+
export * from "./wire";
|
|
13
|
+
export * from "./zod-decontaminate";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface JsonSchemaValidationIssue {
|
|
2
|
+
path: PropertyKey[];
|
|
3
|
+
message: string;
|
|
4
|
+
expectedTypes?: string[];
|
|
5
|
+
keyword?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface JsonSchemaValidationResult {
|
|
8
|
+
success: boolean;
|
|
9
|
+
issues: JsonSchemaValidationIssue[];
|
|
10
|
+
}
|
|
11
|
+
export declare function validateJsonSchemaValue(schema: unknown, value: unknown): JsonSchemaValidationResult;
|
|
12
|
+
export declare function isJsonSchemaValueValid(schema: unknown, value: unknown): boolean;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { type DescriptionSpillFormat } from "./spill";
|
|
2
|
+
import { type JsonObject } from "./types";
|
|
3
|
+
export type ResidualSchemaIncompatibility = "type-array" | "type-null" | "nullable" | "combiners";
|
|
4
|
+
export interface NormalizeSchemaOptions {
|
|
5
|
+
unsupportedFields: (key: string) => boolean;
|
|
6
|
+
normalizeFieldNames: boolean;
|
|
7
|
+
collapseNullFields: boolean;
|
|
8
|
+
normalizeTypeArrayToNullable: boolean;
|
|
9
|
+
stripNullableKeyword: boolean;
|
|
10
|
+
autoPropertyOrdering: boolean;
|
|
11
|
+
ensureObjectProperties: boolean;
|
|
12
|
+
liftStrippedToDescription: false | {
|
|
13
|
+
keys?: (key: string) => boolean;
|
|
14
|
+
format?: DescriptionSpillFormat;
|
|
15
|
+
};
|
|
16
|
+
mergeObjectCombiners: boolean;
|
|
17
|
+
collapseSameTypeCombiners: boolean;
|
|
18
|
+
collapseMixedTypeCombiners: boolean;
|
|
19
|
+
stripResidualCombinersFixpoint: boolean;
|
|
20
|
+
extractNullableFromUnions: boolean;
|
|
21
|
+
rejectResidualIncompatibilities?: ReadonlyArray<ResidualSchemaIncompatibility>;
|
|
22
|
+
validateAndFallback?: {
|
|
23
|
+
fallback: unknown;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** Copy all keys from a schema except the specified combiner key. */
|
|
27
|
+
export declare function copySchemaWithout(schema: JsonObject, combiner: string): JsonObject;
|
|
28
|
+
/**
|
|
29
|
+
* Recursively strip any remaining anyOf/oneOf that same-type or mixed-type
|
|
30
|
+
* collapse can handle. This is needed because object-combiner merging can
|
|
31
|
+
* create new anyOf in merged subtrees after child normalization already ran.
|
|
32
|
+
*/
|
|
33
|
+
export declare function stripResidualCombiners(value: unknown, epoch?: number): unknown;
|
|
34
|
+
export declare function normalizeSchema(value: unknown, options: NormalizeSchemaOptions): unknown;
|
|
35
|
+
export declare function normalizeSchemaForGoogle(value: unknown): unknown;
|
|
36
|
+
export declare function normalizeSchemaForCCA(value: unknown): unknown;
|
|
37
|
+
export declare function normalizeSchemaForMCP(value: unknown): unknown;
|
|
38
|
+
/**
|
|
39
|
+
* OpenAI Responses rejects `oneOf` in tool schemas even when strict mode is
|
|
40
|
+
* disabled, and rejects every schema node with `type: "object"` unless it has
|
|
41
|
+
* a `properties` member. Normalize only schema-valued positions so literal
|
|
42
|
+
* payloads under `enum`, `const`, `default`, and `examples` remain unchanged.
|
|
43
|
+
*
|
|
44
|
+
* Identity-preserving: returns the input reference unchanged when no rewrite
|
|
45
|
+
* occurred so callers can dedupe via reference equality (and the strict-mode
|
|
46
|
+
* cache stays warm). If a node has both `oneOf` and `anyOf`, the two are
|
|
47
|
+
* concatenated (the wire payload accepts a single union; preserving both
|
|
48
|
+
* would not survive).
|
|
49
|
+
*/
|
|
50
|
+
export declare function sanitizeSchemaForOpenAIResponses(schema: JsonObject): JsonObject;
|
|
51
|
+
/**
|
|
52
|
+
* Alias for {@link sanitizeSchemaForOpenAIResponses} matching the
|
|
53
|
+
* `normalizeSchemaFor*` dispatcher naming used elsewhere in this module.
|
|
54
|
+
*/
|
|
55
|
+
export declare const normalizeSchemaForOpenAIResponses: (schema: JsonObject) => JsonObject;
|
|
56
|
+
/**
|
|
57
|
+
* First pass of strict-mode preparation.
|
|
58
|
+
*
|
|
59
|
+
* Rewrites everything strict mode forbids into something it accepts:
|
|
60
|
+
* - Drops non-structural keywords (`format`, `pattern`, `examples`, …),
|
|
61
|
+
* `const`, `nullable`, and `additionalProperties` (re-added by
|
|
62
|
+
* `enforceStrictSchema` as `false`).
|
|
63
|
+
* - `type: [a, b]` → `anyOf: [{type: a, …}, {type: b, …}]`, copying only the
|
|
64
|
+
* keywords each variant can use (e.g. `properties` stays only on the
|
|
65
|
+
* object variant).
|
|
66
|
+
* - `const` → single-entry `enum`.
|
|
67
|
+
* - Description carries a `(default: X)` suffix so the model still sees the
|
|
68
|
+
* documented default after the keyword is stripped.
|
|
69
|
+
* - `nullable: true` wraps the whole node in `anyOf:[T,{type:"null"}]`.
|
|
70
|
+
*
|
|
71
|
+
* Recurses into properties, items, prefixItems, combinators, and $defs. The
|
|
72
|
+
* `cache` WeakMap dedupes shared subgraphs; the `epoch` is the cycle guard.
|
|
73
|
+
*/
|
|
74
|
+
export declare function sanitizeSchemaForStrictMode(schema: Record<string, unknown>, epoch?: number, cache?: WeakMap<Record<string, unknown>, Record<string, unknown>>, root?: Record<string, unknown>): Record<string, unknown>;
|
|
75
|
+
/**
|
|
76
|
+
* Recursively enforces JSON Schema constraints required by OpenAI/Codex strict mode:
|
|
77
|
+
* - `additionalProperties: false` on every object node
|
|
78
|
+
* - every key in `properties` present in `required`
|
|
79
|
+
*
|
|
80
|
+
* Properties absent from the original `required` array were TypeBox-optional.
|
|
81
|
+
* They are made nullable (`anyOf: [T, { type: "null" }]`) so the model can
|
|
82
|
+
* signal omission by outputting null rather than omitting the key entirely.
|
|
83
|
+
*
|
|
84
|
+
* @throws {Error} When a schema node has no `type`, array-based combinator
|
|
85
|
+
* (`anyOf`/`allOf`/`oneOf`), object-based combinator (`not`), or `$ref` —
|
|
86
|
+
* i.e. the node is not representable in strict mode. Prefer
|
|
87
|
+
* {@link tryEnforceStrictSchema} which catches this and degrades gracefully.
|
|
88
|
+
*/
|
|
89
|
+
export declare function enforceStrictSchema(schema: Record<string, unknown>, cache?: WeakMap<Record<string, unknown>, Record<string, unknown>>): Record<string, unknown>;
|
|
90
|
+
export declare function tryEnforceStrictSchema(schema: Record<string, unknown>): {
|
|
91
|
+
schema: Record<string, unknown>;
|
|
92
|
+
strict: boolean;
|
|
93
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { JsonObject } from "./types";
|
|
2
|
+
export type DescriptionSpillFormat = "spill" | "paren";
|
|
3
|
+
/**
|
|
4
|
+
* Demote stripped JSON Schema keywords into a node's `description` so the model
|
|
5
|
+
* still receives the constraint as natural-language context after the wire
|
|
6
|
+
* schema drops it.
|
|
7
|
+
*/
|
|
8
|
+
export declare function spillToDescription(node: JsonObject, entries: ReadonlyArray<readonly [string, unknown]>, format?: DescriptionSpillFormat): void;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol-keyed lazy memoization stamped directly onto the host object.
|
|
3
|
+
*
|
|
4
|
+
* Faster than a module-level `WeakMap` in V8/JSC because the symbol slot is
|
|
5
|
+
* resolved through the object's hidden class instead of a side-table hash
|
|
6
|
+
* lookup. The slot is defined as a non-enumerable property so the stamp
|
|
7
|
+
* does not leak through `{...spread}`, `Object.keys`, `JSON.stringify`, or
|
|
8
|
+
* `toEqual`-style deep equality.
|
|
9
|
+
*
|
|
10
|
+
* Caveats: the stamp lives as long as the host object, even after callers
|
|
11
|
+
* release their references to the cached value — only use this for caches
|
|
12
|
+
* whose lifetime should match the host. Frozen hosts will throw on write in
|
|
13
|
+
* strict mode; callers that may receive frozen input must handle that.
|
|
14
|
+
*/
|
|
15
|
+
export declare function stamp<T extends object, V>(target: T, key: symbol, compute: (target: T) => V): V;
|
|
16
|
+
export declare function epochNext(): number;
|
|
17
|
+
/**
|
|
18
|
+
* Marks `target` as visited for this `epoch`. Returns `true` the first time
|
|
19
|
+
* it is called for a given (target, epoch) pair and `false` on every
|
|
20
|
+
* subsequent call within the same epoch.
|
|
21
|
+
*/
|
|
22
|
+
export declare function once<T extends object>(target: T, epoch: number): boolean;
|
|
23
|
+
/** Returns `true` on first entry, `false` if `target` is already on the current path. */
|
|
24
|
+
export declare function enter<T extends object>(target: T): boolean;
|
|
25
|
+
export declare function exit<T extends object>(target: T): void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type JsonObject = Record<string, unknown>;
|
|
2
|
+
export declare function isJsonObject(value: unknown): value is JsonObject;
|
|
3
|
+
/** True when `value` is a plain JSON object with no own enumerable keys. */
|
|
4
|
+
export declare function isJsonObjectEmpty(value: JsonObject): boolean;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compute the wire (JSON Schema) representation of a tool's parameters and
|
|
3
|
+
* convert TypeBox-style schemas into Zod for internal validation.
|
|
4
|
+
*
|
|
5
|
+
* Tools may author parameters in two shapes:
|
|
6
|
+
* 1. Zod (canonical going forward) — converted to JSON Schema on demand.
|
|
7
|
+
* 2. TypeBox / plain JSON Schema (legacy + extension compat) — upgraded to
|
|
8
|
+
* draft 2020-12 without converting through Zod.
|
|
9
|
+
*
|
|
10
|
+
* Both are normalized at the boundary so providers and validators see the same
|
|
11
|
+
* JSON Schema dialect.
|
|
12
|
+
*/
|
|
13
|
+
import { type ZodType } from "zod/v4";
|
|
14
|
+
import type { Tool } from "../../types";
|
|
15
|
+
/**
|
|
16
|
+
* True when `value` is a live Zod schema instance.
|
|
17
|
+
*
|
|
18
|
+
* The check is stricter than "has a `_zod` property" because a JSON
|
|
19
|
+
* round-trip preserves the `_zod` key as a plain object and would otherwise
|
|
20
|
+
* fool the predicate — see issue #1101, where MCP servers ship
|
|
21
|
+
* `JSON.stringify(zodSchemaInstance)` as a tool's `inputSchema` and the
|
|
22
|
+
* resulting plain object then explodes `z.toJSONSchema` because the prototype
|
|
23
|
+
* (and every Zod parsing method) is gone.
|
|
24
|
+
*
|
|
25
|
+
* Live Zod instances always carry a `.parse` function on the prototype;
|
|
26
|
+
* impostors do not.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isZodSchema(value: unknown): value is ZodType;
|
|
29
|
+
/**
|
|
30
|
+
* Normalize `{}` (empty JSON Schema = `z.unknown()` / unconstrained value) to
|
|
31
|
+
* boolean `true` in every schema-valued position. JSON Schema draft 2020-12
|
|
32
|
+
* §4.3.1: `{}` and `true` are semantically equivalent ("any JSON value").
|
|
33
|
+
* Grammar-constrained samplers (llama.cpp, etc.) treat the object form as
|
|
34
|
+
* "generate an empty object" rather than "any JSON value", causing open-typed
|
|
35
|
+
* fields like `extra.title` (from `z.record(z.string(), z.unknown())`) to
|
|
36
|
+
* always emit `{}` instead of the intended string/number/etc. (issue #1179).
|
|
37
|
+
*
|
|
38
|
+
* Mutates in place. Provider-agnostic — applied to every tool wire schema so
|
|
39
|
+
* Anthropic, Google, OpenAI, Ollama, Bedrock, and Cursor all see the
|
|
40
|
+
* normalized form, regardless of whether the source was Zod or TypeBox.
|
|
41
|
+
*/
|
|
42
|
+
export declare function normalizeEmptySchemas(node: unknown): void;
|
|
43
|
+
/** Convert a Zod schema into the JSON Schema shape providers consume. */
|
|
44
|
+
export declare function zodToWireSchema(schema: ZodType): Record<string, unknown>;
|
|
45
|
+
/**
|
|
46
|
+
* Resolve a tool's parameters to a JSON Schema object suitable for sending
|
|
47
|
+
* over the wire. Zod schemas are converted (and cached); legacy TypeBox / raw
|
|
48
|
+
* JSON Schema parameters are upgraded to draft 2020-12 (and cached).
|
|
49
|
+
*
|
|
50
|
+
* Zod schemas also receive Zod-artifact cleanup; both branches normalize
|
|
51
|
+
* schema-valued positions and nullable scalar unions.
|
|
52
|
+
*/
|
|
53
|
+
export declare function toolWireSchema(tool: Tool): Record<string, unknown>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defensive rewrite for nodes that look like `JSON.stringify(zodSchemaInstance)`
|
|
3
|
+
* output rather than JSON Schema. MCP servers using Zod 4 sometimes ship a
|
|
4
|
+
* serialised schema instance directly as a tool's `inputSchema`, because the
|
|
5
|
+
* fields Zod surfaces on its instances (`type`, `enum`, `options`, `def`) shadow
|
|
6
|
+
* (and clash with) JSON Schema keywords. The resulting payload is neither valid
|
|
7
|
+
* Zod nor valid JSON Schema 2020-12 and Anthropic's strict validator rejects
|
|
8
|
+
* the whole tool list.
|
|
9
|
+
*
|
|
10
|
+
* Symptoms we've observed (gitnexus_impact.direction):
|
|
11
|
+
* {
|
|
12
|
+
* def: { type: "enum", entries: { upstream: "upstream", ... } },
|
|
13
|
+
* type: "enum", // <- invalid `type` value
|
|
14
|
+
* enum: { upstream: "upstream", ... }, // <- `enum` MUST be an array
|
|
15
|
+
* options: ["upstream", "downstream"],
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* This module recognises the shape (`def.type === node.type` and `def.type` is
|
|
19
|
+
* a known Zod kind) and rewrites it to clean JSON Schema where deterministic.
|
|
20
|
+
* For Zod kinds we don't fully model, we strip the toxic siblings (`def`,
|
|
21
|
+
* `options`, object-shaped `enum`) and drop an invalid `type` so the remainder
|
|
22
|
+
* passes meta-schema validation as a permissive node.
|
|
23
|
+
*
|
|
24
|
+
* Pure / identity-preserving: returns the input reference when nothing changes.
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* Walks a JSON value and rewrites every Zod-instance-shaped node into clean
|
|
28
|
+
* JSON Schema 2020-12. Identity-preserving when no rewrite fires. Tolerates
|
|
29
|
+
* self-referential graphs — a revisited node returns as-is.
|
|
30
|
+
*/
|
|
31
|
+
export declare function decontaminateZodInstance(value: unknown): unknown;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for mapping `StreamOptions.streamFirstEventTimeoutMs` onto
|
|
3
|
+
* underlying SDK request-timeout options.
|
|
4
|
+
*
|
|
5
|
+
* The hint is intentionally not a watchdog — it just narrows the SDK's
|
|
6
|
+
* "transport timeout" window so a stuck pre-stream request fails fast
|
|
7
|
+
* instead of hanging on the default (often multi-minute) SDK timeout. Once
|
|
8
|
+
* the stream actually starts, silence is not failure; callers must abort
|
|
9
|
+
* to interrupt a quiet stream.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Coerce a caller-supplied `streamFirstEventTimeoutMs` into a positive integer suitable
|
|
13
|
+
* for the SDK's `timeout` option. Returns `undefined` when the caller passed nothing,
|
|
14
|
+
* a non-finite value, or a non-positive value (preserving the SDK's default).
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveSdkTimeoutMs(streamFirstEventTimeoutMs: number | undefined): number | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Build per-request SDK options that combine an abort signal with the optional
|
|
19
|
+
* `streamFirstEventTimeoutMs` request-timeout hint.
|
|
20
|
+
*
|
|
21
|
+
* The returned `{ signal, timeout?, maxRetries? }` shape is compatible with both
|
|
22
|
+
* OpenAI's and Anthropic's `RequestOptions` (and any other SDK that follows the
|
|
23
|
+
* Stainless conventions), so callers from any of those providers can spread the
|
|
24
|
+
* result directly into `client.X.create(params, requestOptions)`.
|
|
25
|
+
*
|
|
26
|
+
* When the hint is set, retries are forced to zero so the SDK does not silently
|
|
27
|
+
* extend the caller's explicit deadline by re-attempting after a timeout.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createSdkStreamRequestOptions(signal: AbortSignal, streamFirstEventTimeoutMs: number | undefined): {
|
|
30
|
+
signal: AbortSignal;
|
|
31
|
+
timeout?: number;
|
|
32
|
+
maxRetries?: number;
|
|
33
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ServerSentEvent } from "@aryee337/aery-utils";
|
|
2
|
+
import type { RawSseEvent } from "../types";
|
|
3
|
+
type FetchFunction = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
|
|
4
|
+
type FetchWithPreconnect = FetchFunction & {
|
|
5
|
+
preconnect?: typeof fetch.preconnect;
|
|
6
|
+
};
|
|
7
|
+
type RawSseObserver = (event: RawSseEvent) => void;
|
|
8
|
+
export declare function notifyRawSseEvent(observer: RawSseObserver | undefined, event: ServerSentEvent | RawSseEvent): void;
|
|
9
|
+
export declare function wrapFetchForSseDebug(fetchImpl: FetchWithPreconnect, observer: RawSseObserver | undefined): FetchWithPreconnect;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streaming-safe filters for leaked chat-template tool-call and thinking markup.
|
|
3
|
+
*
|
|
4
|
+
* Hosted models sometimes leak raw template markup into visible `content` instead
|
|
5
|
+
* of returning structured events. One `StreamMarkupHealing` instance owns one stream
|
|
6
|
+
* and one grammar selected by options:
|
|
7
|
+
*
|
|
8
|
+
* - `kimi`: Kimi K2 `<|tool_calls_section_begin|>` sections.
|
|
9
|
+
* - `dsml`: DeepSeek `<|DSML|tool_calls>` envelopes.
|
|
10
|
+
* - `thinking`: plain `<think>` / `<thinking>` blocks used by MiniMax-style streams.
|
|
11
|
+
*
|
|
12
|
+
* The parser strips marker bytes, reconstructs embedded calls, emits thinking
|
|
13
|
+
* deltas for thinking blocks, and holds partial tags across chunk boundaries.
|
|
14
|
+
*/
|
|
15
|
+
export interface HealedToolCall {
|
|
16
|
+
readonly id: string;
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly arguments: string;
|
|
19
|
+
}
|
|
20
|
+
export type StreamMarkupHealingPattern = "kimi" | "dsml" | "thinking";
|
|
21
|
+
export interface StreamMarkupHealingOptions {
|
|
22
|
+
readonly pattern: StreamMarkupHealingPattern;
|
|
23
|
+
}
|
|
24
|
+
export type StreamMarkupHealingEvent = {
|
|
25
|
+
readonly type: "text";
|
|
26
|
+
readonly text: string;
|
|
27
|
+
} | {
|
|
28
|
+
readonly type: "thinking";
|
|
29
|
+
readonly thinking: string;
|
|
30
|
+
} | {
|
|
31
|
+
readonly type: "toolCall";
|
|
32
|
+
readonly call: HealedToolCall;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* State machine that consumes streamed visible text and emits cleaned text,
|
|
36
|
+
* thinking deltas, and reconstructed tool calls.
|
|
37
|
+
*
|
|
38
|
+
* Feed only one stream channel (usually `delta.content` / `message.content`).
|
|
39
|
+
* Mixing reasoning and visible text into the same instance can corrupt the
|
|
40
|
+
* held-back partial tag buffer.
|
|
41
|
+
*/
|
|
42
|
+
export declare class StreamMarkupHealing {
|
|
43
|
+
#private;
|
|
44
|
+
constructor(options: StreamMarkupHealingOptions);
|
|
45
|
+
get pattern(): StreamMarkupHealingPattern;
|
|
46
|
+
/**
|
|
47
|
+
* Feed a chunk and return visible text only. Reconstructed tool calls are
|
|
48
|
+
* stored for {@link drainCompleted}; thinking blocks are intentionally not
|
|
49
|
+
* returned by this compatibility helper. Use {@link feedEvents} when the
|
|
50
|
+
* caller needs ordered text/thinking/tool-call events.
|
|
51
|
+
*/
|
|
52
|
+
feed(text: string): string;
|
|
53
|
+
/** Feed a chunk and return cleaned text/thinking/tool-call events in stream order. */
|
|
54
|
+
feedEvents(text: string): StreamMarkupHealingEvent[];
|
|
55
|
+
/**
|
|
56
|
+
* Like {@link feed}, but discards completed calls. Used when the upstream
|
|
57
|
+
* chunk also carries structured `tool_calls`, keeping that structured payload
|
|
58
|
+
* as the single source of truth.
|
|
59
|
+
*/
|
|
60
|
+
consumeWithoutCalls(text: string): string;
|
|
61
|
+
/** Drain accumulated tool calls from calls to {@link feed}. */
|
|
62
|
+
drainCompleted(): HealedToolCall[];
|
|
63
|
+
/**
|
|
64
|
+
* Flush held-back stream-end fragments as ordered events. Partial tool-call
|
|
65
|
+
* sections/envelopes are dropped; unterminated thinking blocks are emitted as
|
|
66
|
+
* thinking, matching the previous MiniMax parser behavior.
|
|
67
|
+
*/
|
|
68
|
+
flushEvents(): StreamMarkupHealingEvent[];
|
|
69
|
+
/** Flush held-back text only. Reconstructed calls are retained for {@link drainCompleted}. */
|
|
70
|
+
flushPending(): string;
|
|
71
|
+
/** True once any configured tool-call section/envelope has fully closed. */
|
|
72
|
+
get sectionClosed(): boolean;
|
|
73
|
+
}
|
|
74
|
+
/** Cheap model/provider gate for Kimi-K2 chat-template token leaks. */
|
|
75
|
+
export declare function modelMayLeakKimiToolCalls(provider: string, modelId: string): boolean;
|
|
76
|
+
/** Cheap model/provider gate for DeepSeek DSML envelope leaks. */
|
|
77
|
+
export declare function modelMayLeakDsmlToolCalls(provider: string, modelId: string): boolean;
|
|
78
|
+
export declare function getStreamMarkupHealingPattern(provider: string, modelId: string, options?: {
|
|
79
|
+
readonly parseThinkingTags?: boolean;
|
|
80
|
+
}): StreamMarkupHealingPattern | undefined;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for mapping unified ToolChoice to provider-specific formats.
|
|
3
|
+
*/
|
|
4
|
+
import type { ToolChoice } from "../types";
|
|
5
|
+
/** OpenAI Completions API tool choice format */
|
|
6
|
+
export type OpenAICompletionsToolChoice = "auto" | "none" | "required" | {
|
|
7
|
+
type: "function";
|
|
8
|
+
function: {
|
|
9
|
+
name: string;
|
|
10
|
+
};
|
|
11
|
+
} | undefined;
|
|
12
|
+
/** OpenAI Responses API tool choice format (flat structure) */
|
|
13
|
+
export type OpenAIResponsesToolChoice = "auto" | "none" | "required" | {
|
|
14
|
+
type: "function";
|
|
15
|
+
name: string;
|
|
16
|
+
} | {
|
|
17
|
+
type: "custom";
|
|
18
|
+
name: string;
|
|
19
|
+
} | undefined;
|
|
20
|
+
/** Anthropic-compatible tool choice format */
|
|
21
|
+
export type AnthropicToolChoice = "auto" | "none" | "any" | {
|
|
22
|
+
type: "tool";
|
|
23
|
+
name: string;
|
|
24
|
+
} | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Map unified ToolChoice to OpenAI Completions API format.
|
|
27
|
+
* - "any" → "required"
|
|
28
|
+
* - { type: "tool", name } → { type: "function", function: { name } }
|
|
29
|
+
*/
|
|
30
|
+
export declare function mapToOpenAICompletionsToolChoice(choice?: ToolChoice): OpenAICompletionsToolChoice;
|
|
31
|
+
/**
|
|
32
|
+
* Returns true when an OpenAI-completions `tool_choice` value forces a tool
|
|
33
|
+
* call (`"required"` or a function-name pin), as opposed to leaving it open
|
|
34
|
+
* (`"auto"`, `"none"`, or unset). Accepts `unknown` because the param shape
|
|
35
|
+
* pulled from the OpenAI SDK (`ChatCompletionToolChoiceOption`) widens with
|
|
36
|
+
* each release; this check only needs the open/forced bit.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isForcedToolChoice(choice: unknown): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Map unified ToolChoice to OpenAI Responses API format.
|
|
41
|
+
* - "any" → "required"
|
|
42
|
+
* - { type: "tool", name } → { type: "function", name } (flat structure)
|
|
43
|
+
*/
|
|
44
|
+
export declare function mapToOpenAIResponsesToolChoice(choice?: ToolChoice): OpenAIResponsesToolChoice;
|
|
45
|
+
/**
|
|
46
|
+
* Map unified ToolChoice to Anthropic-compatible format.
|
|
47
|
+
* - "required" → "any"
|
|
48
|
+
* - { type: "function", ... } → { type: "tool", name }
|
|
49
|
+
*/
|
|
50
|
+
export declare function mapToAnthropicToolChoice(choice?: ToolChoice): AnthropicToolChoice;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Tool, ToolCall } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Finds a tool by name and validates the tool call arguments against its schema.
|
|
4
|
+
* @param tools Array of tool definitions
|
|
5
|
+
* @param toolCall The tool call from the LLM
|
|
6
|
+
* @returns The validated arguments
|
|
7
|
+
* @throws Error if tool is not found or validation fails
|
|
8
|
+
*/
|
|
9
|
+
export declare function validateToolCall(tools: Tool[], toolCall: ToolCall): ToolCall["arguments"];
|
|
10
|
+
/**
|
|
11
|
+
* Validates tool call arguments against the tool's schema (Zod or plain JSON
|
|
12
|
+
* Schema). Applies LLM-quirk coercions (numeric strings, JSON-string
|
|
13
|
+
* containers, null-for-optional, null-for-default) before declaring failure.
|
|
14
|
+
*
|
|
15
|
+
* @throws Error with a formatted message when validation cannot be reconciled.
|
|
16
|
+
*/
|
|
17
|
+
export declare function validateToolArguments(tool: Tool, toolCall: ToolCall): ToolCall["arguments"];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ResponseInput } from "openai/resources/responses/responses";
|
|
2
|
+
import type { CacheRetention, OpenAIResponsesHistoryPayload, ProviderPayload } from "./types";
|
|
3
|
+
export { isRecord } from "@aryee337/aery-utils";
|
|
4
|
+
export declare function normalizeSystemPrompts(systemPrompt: readonly string[] | string | undefined | null): string[];
|
|
5
|
+
export declare function toNumber(value: unknown): number | undefined;
|
|
6
|
+
export declare function toPositiveNumber(value: unknown, fallback: number): number;
|
|
7
|
+
export declare function toBoolean(value: unknown): boolean | undefined;
|
|
8
|
+
export declare function normalizeToolCallId(id: string): string;
|
|
9
|
+
type ResponsesToolItemIdPrefix = "fc" | "ctc";
|
|
10
|
+
export declare function normalizeResponsesToolCallId(id: string, itemPrefix?: ResponsesToolItemIdPrefix): {
|
|
11
|
+
callId: string;
|
|
12
|
+
itemId: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Truncate an OpenAI Responses API item ID to 64 characters.
|
|
16
|
+
* IDs exceeding the limit are replaced with a hash-based ID using the given prefix.
|
|
17
|
+
*/
|
|
18
|
+
export declare function truncateResponseItemId(id: string, prefix: string): string;
|
|
19
|
+
export declare function sanitizeOpenAIResponsesHistoryItemsForReplay(items: Array<Record<string, unknown>>): ResponseInput;
|
|
20
|
+
export declare function createOpenAIResponsesHistoryPayload(provider: string, items: Array<Record<string, unknown>>, incremental?: boolean): OpenAIResponsesHistoryPayload;
|
|
21
|
+
export declare function getOpenAIResponsesHistoryPayload(providerPayload: ProviderPayload | undefined, currentProvider: string, fallbackProvider?: string): OpenAIResponsesHistoryPayload | undefined;
|
|
22
|
+
export declare function getOpenAIResponsesHistoryItems(providerPayload: ProviderPayload | undefined, currentProvider: string, fallbackProvider?: string): Array<Record<string, unknown>> | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Resolve cache retention preference.
|
|
25
|
+
* Defaults to "short" and uses PI_CACHE_RETENTION for backward compatibility.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveCacheRetention(cacheRetention?: CacheRetention): CacheRetention;
|
|
28
|
+
export declare function isAnthropicOAuthToken(key: string): boolean;
|