@vib-rato/ai 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3354 -0
- package/README.md +1194 -0
- package/dist/types/adapter-internals/provider-safety-stop.d.ts +45 -0
- package/dist/types/api-registry.d.ts +30 -0
- package/dist/types/auth-broker/client.d.ts +80 -0
- package/dist/types/auth-broker/index.d.ts +5 -0
- package/dist/types/auth-broker/redact.d.ts +7 -0
- package/dist/types/auth-broker/refresher.d.ts +25 -0
- package/dist/types/auth-broker/remote-store.d.ts +153 -0
- package/dist/types/auth-broker/server.d.ts +32 -0
- package/dist/types/auth-broker/types.d.ts +132 -0
- package/dist/types/auth-broker/wire-schemas.d.ts +555 -0
- package/dist/types/auth-gateway/http.d.ts +40 -0
- package/dist/types/auth-gateway/index.d.ts +3 -0
- package/dist/types/auth-gateway/server.d.ts +70 -0
- package/dist/types/auth-gateway/types.d.ts +129 -0
- package/dist/types/auth-storage.d.ts +1074 -0
- package/dist/types/cli.d.ts +2 -0
- package/dist/types/codex-tools.d.ts +4 -0
- package/dist/types/context-cap-policy.d.ts +68 -0
- package/dist/types/core.d.ts +35 -0
- package/dist/types/index.d.ts +55 -0
- package/dist/types/model-cache.d.ts +24 -0
- package/dist/types/model-manager.d.ts +77 -0
- package/dist/types/model-pricing.d.ts +3 -0
- package/dist/types/model-retirements.d.ts +6 -0
- package/dist/types/model-thinking.d.ts +100 -0
- package/dist/types/models.d.ts +21 -0
- package/dist/types/openai-completions-compat.d.ts +34 -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 +48 -0
- package/dist/types/provider-models/google.d.ts +20 -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 +293 -0
- package/dist/types/provider-models/special.d.ts +29 -0
- package/dist/types/providers/amazon-bedrock.d.ts +60 -0
- package/dist/types/providers/anthropic-messages-server-schema.d.ts +450 -0
- package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
- package/dist/types/providers/anthropic.d.ts +280 -0
- package/dist/types/providers/aws-credential-config.d.ts +19 -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 +22 -0
- package/dist/types/providers/composer-discipline.d.ts +32 -0
- package/dist/types/providers/cursor/client-version.d.ts +10 -0
- package/dist/types/providers/cursor/exec-modern.d.ts +98 -0
- package/dist/types/providers/cursor/gen/agent_pb.d.ts +16769 -0
- package/dist/types/providers/cursor-pi-args.d.ts +119 -0
- package/dist/types/providers/cursor.d.ts +72 -0
- package/dist/types/providers/dashscope-token-plan-headers.d.ts +57 -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 +26 -0
- package/dist/types/providers/google-gemini-cli.d.ts +75 -0
- package/dist/types/providers/google-gemini-headers.d.ts +43 -0
- package/dist/types/providers/google-shared.d.ts +183 -0
- package/dist/types/providers/google-types.d.ts +138 -0
- package/dist/types/providers/google-vertex.d.ts +11 -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/kiro-api-key.d.ts +50 -0
- package/dist/types/providers/kiro-codewhisperer.d.ts +11 -0
- package/dist/types/providers/mock.d.ts +189 -0
- package/dist/types/providers/ollama.d.ts +41 -0
- package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
- package/dist/types/providers/openai-bounded-rate-limits.d.ts +3 -0
- package/dist/types/providers/openai-chat-server-schema.d.ts +1733 -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 +50 -0
- package/dist/types/providers/openai-codex/response-handler.d.ts +18 -0
- package/dist/types/providers/openai-codex-responses.d.ts +71 -0
- package/dist/types/providers/openai-completions-compat.d.ts +6 -0
- package/dist/types/providers/openai-completions.d.ts +35 -0
- package/dist/types/providers/openai-opencodex-responses.d.ts +10 -0
- package/dist/types/providers/openai-request-transform.d.ts +4 -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 +106 -0
- package/dist/types/providers/openai-responses.d.ts +37 -0
- package/dist/types/providers/pi-native-client.d.ts +29 -0
- package/dist/types/providers/pi-native-server.d.ts +60 -0
- package/dist/types/providers/register-builtins.d.ts +59 -0
- package/dist/types/providers/synthetic.d.ts +26 -0
- package/dist/types/providers/transform-messages.d.ts +33 -0
- package/dist/types/providers/vision-guard.d.ts +8 -0
- package/dist/types/rate-limit-utils.d.ts +19 -0
- package/dist/types/stream.d.ts +45 -0
- package/dist/types/types.d.ts +1073 -0
- package/dist/types/usage/claude.d.ts +3 -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/grok-cli.d.ts +17 -0
- package/dist/types/usage/kimi.d.ts +4 -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 +264 -0
- package/dist/types/utils/abort.d.ts +19 -0
- package/dist/types/utils/anthropic-auth.d.ts +39 -0
- package/dist/types/utils/block-symbols.d.ts +6 -0
- package/dist/types/utils/discovery/antigravity.d.ts +67 -0
- package/dist/types/utils/discovery/codex.d.ts +38 -0
- package/dist/types/utils/discovery/cursor.d.ts +49 -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 +81 -0
- package/dist/types/utils/event-stream.d.ts +41 -0
- package/dist/types/utils/fallback-transport.d.ts +110 -0
- package/dist/types/utils/fireworks-model-id.d.ts +10 -0
- package/dist/types/utils/foundry.d.ts +11 -0
- package/dist/types/utils/h2-fetch.d.ts +22 -0
- package/dist/types/utils/http-inspector.d.ts +59 -0
- package/dist/types/utils/idle-iterator.d.ts +122 -0
- package/dist/types/utils/json-parse.d.ts +98 -0
- package/dist/types/utils/oauth/alibaba-token-plan.d.ts +19 -0
- package/dist/types/utils/oauth/anthropic.d.ts +41 -0
- package/dist/types/utils/oauth/api-key-login.d.ts +38 -0
- package/dist/types/utils/oauth/api-key-validation.d.ts +39 -0
- package/dist/types/utils/oauth/bizrouter.d.ts +1 -0
- package/dist/types/utils/oauth/callback-server.d.ts +80 -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/commandcode.d.ts +1 -0
- package/dist/types/utils/oauth/cursor.d.ts +15 -0
- package/dist/types/utils/oauth/deepinfra.d.ts +1 -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/fugu.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/glm-zcode.d.ts +71 -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 +39 -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 +17 -0
- package/dist/types/utils/oauth/kiro.d.ts +71 -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/mara.d.ts +1 -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/opengateway.d.ts +1 -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 +4 -0
- package/dist/types/utils/oauth/pkce.d.ts +8 -0
- 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/sglang.d.ts +16 -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 +56 -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/xai.d.ts +30 -0
- package/dist/types/utils/oauth/xiaomi.d.ts +25 -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/overflow.d.ts +14 -0
- package/dist/types/utils/parse-bind.d.ts +26 -0
- package/dist/types/utils/provider-response.d.ts +6 -0
- package/dist/types/utils/provider-safety-stop.d.ts +8 -0
- package/dist/types/utils/proxy.d.ts +7 -0
- package/dist/types/utils/retry-after.d.ts +3 -0
- package/dist/types/utils/retry-budget.d.ts +1 -0
- package/dist/types/utils/retry.d.ts +29 -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 +14 -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/root-combinator.d.ts +12 -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 +54 -0
- package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
- package/dist/types/utils/sse-debug.d.ts +10 -0
- package/dist/types/utils/tool-call-healing.d.ts +80 -0
- package/dist/types/utils/tool-choice-capability.d.ts +57 -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 +117 -0
- package/package.json +152 -0
- package/src/adapter-internals/provider-safety-stop.d.ts +45 -0
- package/src/adapter-internals/provider-safety-stop.ts +156 -0
- package/src/api-registry.d.ts +30 -0
- package/src/api-registry.ts +96 -0
- package/src/auth-broker/client.ts +444 -0
- package/src/auth-broker/index.ts +5 -0
- package/src/auth-broker/redact.ts +39 -0
- package/src/auth-broker/refresher.ts +130 -0
- package/src/auth-broker/remote-store.ts +1576 -0
- package/src/auth-broker/server.ts +764 -0
- package/src/auth-broker/types.ts +164 -0
- package/src/auth-broker/wire-schemas.ts +261 -0
- package/src/auth-gateway/http.ts +198 -0
- package/src/auth-gateway/index.ts +3 -0
- package/src/auth-gateway/server.ts +1315 -0
- package/src/auth-gateway/types.ts +160 -0
- package/src/auth-storage.ts +7312 -0
- package/src/cli.ts +269 -0
- package/src/codex-tools.d.ts +4 -0
- package/src/codex-tools.ts +24 -0
- package/src/context-cap-policy.d.ts +68 -0
- package/src/context-cap-policy.ts +123 -0
- package/src/core.ts +44 -0
- package/src/index.ts +61 -0
- package/src/model-cache.ts +236 -0
- package/src/model-manager.ts +744 -0
- package/src/model-pricing.d.ts +3 -0
- package/src/model-pricing.ts +68 -0
- package/src/model-retirements.d.ts +6 -0
- package/src/model-retirements.ts +19 -0
- package/src/model-thinking.d.ts +100 -0
- package/src/model-thinking.ts +1054 -0
- package/src/models.d.ts +21 -0
- package/src/models.json +94672 -0
- package/src/models.json.d.ts +9 -0
- package/src/models.ts +126 -0
- package/src/openai-completions-compat.d.ts +34 -0
- package/src/openai-completions-compat.ts +383 -0
- package/src/prompts/composer-bash-policy-recovery.md +1 -0
- package/src/prompts/cursor-composer-bash-policy-recovery.md +1 -0
- package/src/prompts/cursor-composer-edit-discipline.md +7 -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 +392 -0
- package/src/provider-models/google.ts +92 -0
- package/src/provider-models/index.ts +5 -0
- package/src/provider-models/ollama.ts +159 -0
- package/src/provider-models/openai-compat.ts +2920 -0
- package/src/provider-models/special.ts +185 -0
- package/src/providers/amazon-bedrock.d.ts +60 -0
- package/src/providers/amazon-bedrock.ts +939 -0
- package/src/providers/anthropic-messages-server-schema.ts +229 -0
- package/src/providers/anthropic-messages-server.ts +839 -0
- package/src/providers/anthropic.d.ts +280 -0
- package/src/providers/anthropic.ts +4421 -0
- package/src/providers/aws-credential-config.d.ts +19 -0
- package/src/providers/aws-credential-config.ts +179 -0
- package/src/providers/aws-credentials.d.ts +43 -0
- package/src/providers/aws-credentials.ts +457 -0
- package/src/providers/aws-eventstream.d.ts +38 -0
- package/src/providers/aws-eventstream.ts +185 -0
- package/src/providers/aws-sigv4.d.ts +55 -0
- package/src/providers/aws-sigv4.ts +218 -0
- package/src/providers/azure-openai-responses.d.ts +22 -0
- package/src/providers/azure-openai-responses.ts +447 -0
- package/src/providers/composer-discipline.d.ts +32 -0
- package/src/providers/composer-discipline.ts +95 -0
- package/src/providers/cursor/client-version.d.ts +10 -0
- package/src/providers/cursor/client-version.ts +10 -0
- package/src/providers/cursor/exec-modern.d.ts +98 -0
- package/src/providers/cursor/exec-modern.ts +497 -0
- package/src/providers/cursor/gen/agent_pb.d.ts +16769 -0
- package/src/providers/cursor/gen/agent_pb.ts +19780 -0
- package/src/providers/cursor/proto/agent.proto +4533 -0
- package/src/providers/cursor/proto/buf.gen.yaml +6 -0
- package/src/providers/cursor/proto/buf.yaml +17 -0
- package/src/providers/cursor-pi-args.d.ts +119 -0
- package/src/providers/cursor-pi-args.ts +187 -0
- package/src/providers/cursor.d.ts +72 -0
- package/src/providers/cursor.ts +3396 -0
- package/src/providers/dashscope-token-plan-headers.d.ts +57 -0
- package/src/providers/dashscope-token-plan-headers.ts +84 -0
- package/src/providers/error-message.d.ts +27 -0
- package/src/providers/error-message.ts +21 -0
- package/src/providers/github-copilot-headers.d.ts +40 -0
- package/src/providers/github-copilot-headers.ts +140 -0
- package/src/providers/gitlab-duo.d.ts +27 -0
- package/src/providers/gitlab-duo.ts +393 -0
- package/src/providers/google-auth.d.ts +26 -0
- package/src/providers/google-auth.ts +262 -0
- package/src/providers/google-gemini-cli.d.ts +75 -0
- package/src/providers/google-gemini-cli.ts +969 -0
- package/src/providers/google-gemini-headers.d.ts +43 -0
- package/src/providers/google-gemini-headers.ts +100 -0
- package/src/providers/google-shared.d.ts +183 -0
- package/src/providers/google-shared.ts +1105 -0
- package/src/providers/google-types.d.ts +138 -0
- package/src/providers/google-types.ts +167 -0
- package/src/providers/google-vertex.d.ts +11 -0
- package/src/providers/google-vertex.ts +124 -0
- package/src/providers/google.d.ts +4 -0
- package/src/providers/google.ts +41 -0
- package/src/providers/grammar.d.ts +1 -0
- package/src/providers/grammar.ts +70 -0
- package/src/providers/kimi.d.ts +27 -0
- package/src/providers/kimi.ts +52 -0
- package/src/providers/kiro-api-key.d.ts +50 -0
- package/src/providers/kiro-api-key.ts +786 -0
- package/src/providers/kiro-codewhisperer.d.ts +11 -0
- package/src/providers/kiro-codewhisperer.ts +600 -0
- package/src/providers/mock.ts +526 -0
- package/src/providers/ollama.d.ts +41 -0
- package/src/providers/ollama.ts +645 -0
- package/src/providers/openai-anthropic-shim.d.ts +31 -0
- package/src/providers/openai-anthropic-shim.ts +156 -0
- package/src/providers/openai-bounded-rate-limits.d.ts +3 -0
- package/src/providers/openai-bounded-rate-limits.ts +57 -0
- package/src/providers/openai-chat-server-schema.ts +254 -0
- package/src/providers/openai-chat-server.ts +724 -0
- package/src/providers/openai-codex/constants.d.ts +26 -0
- package/src/providers/openai-codex/constants.ts +43 -0
- package/src/providers/openai-codex/request-transformer.d.ts +50 -0
- package/src/providers/openai-codex/request-transformer.ts +219 -0
- package/src/providers/openai-codex/response-handler.d.ts +18 -0
- package/src/providers/openai-codex/response-handler.ts +111 -0
- package/src/providers/openai-codex-responses.d.ts +71 -0
- package/src/providers/openai-codex-responses.ts +3288 -0
- package/src/providers/openai-completions-compat.d.ts +6 -0
- package/src/providers/openai-completions-compat.ts +6 -0
- package/src/providers/openai-completions.d.ts +35 -0
- package/src/providers/openai-completions.ts +2294 -0
- package/src/providers/openai-opencodex-responses.ts +174 -0
- package/src/providers/openai-request-transform.d.ts +4 -0
- package/src/providers/openai-request-transform.ts +136 -0
- package/src/providers/openai-responses-server-schema.ts +290 -0
- package/src/providers/openai-responses-server.ts +1268 -0
- package/src/providers/openai-responses-shared.d.ts +106 -0
- package/src/providers/openai-responses-shared.ts +1253 -0
- package/src/providers/openai-responses.d.ts +37 -0
- package/src/providers/openai-responses.ts +989 -0
- package/src/providers/pi-native-client.d.ts +29 -0
- package/src/providers/pi-native-client.ts +243 -0
- package/src/providers/pi-native-server.ts +488 -0
- package/src/providers/register-builtins.d.ts +59 -0
- package/src/providers/register-builtins.ts +544 -0
- package/src/providers/synthetic.d.ts +26 -0
- package/src/providers/synthetic.ts +50 -0
- package/src/providers/transform-messages.d.ts +33 -0
- package/src/providers/transform-messages.ts +408 -0
- package/src/providers/vision-guard.d.ts +8 -0
- package/src/providers/vision-guard.ts +31 -0
- package/src/rate-limit-utils.d.ts +19 -0
- package/src/rate-limit-utils.ts +102 -0
- package/src/stream.d.ts +45 -0
- package/src/stream.ts +1306 -0
- package/src/types.d.ts +1073 -0
- package/src/types.ts +1305 -0
- package/src/usage/claude.ts +449 -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/grok-cli.ts +259 -0
- package/src/usage/kimi.ts +285 -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 +190 -0
- package/src/utils/abort.d.ts +19 -0
- package/src/utils/abort.ts +51 -0
- package/src/utils/anthropic-auth.ts +95 -0
- package/src/utils/block-symbols.d.ts +6 -0
- package/src/utils/block-symbols.ts +11 -0
- package/src/utils/discovery/antigravity.ts +275 -0
- package/src/utils/discovery/codex.ts +362 -0
- package/src/utils/discovery/cursor.ts +388 -0
- package/src/utils/discovery/gemini.ts +248 -0
- package/src/utils/discovery/index.ts +4 -0
- package/src/utils/discovery/openai-compatible.ts +379 -0
- package/src/utils/event-stream.d.ts +41 -0
- package/src/utils/event-stream.ts +269 -0
- package/src/utils/fallback-transport.d.ts +110 -0
- package/src/utils/fallback-transport.ts +411 -0
- package/src/utils/fireworks-model-id.d.ts +10 -0
- package/src/utils/fireworks-model-id.ts +30 -0
- package/src/utils/foundry.d.ts +11 -0
- package/src/utils/foundry.ts +18 -0
- package/src/utils/h2-fetch.ts +60 -0
- package/src/utils/http-inspector.d.ts +59 -0
- package/src/utils/http-inspector.ts +380 -0
- package/src/utils/idle-iterator.d.ts +122 -0
- package/src/utils/idle-iterator.ts +410 -0
- package/src/utils/json-parse.d.ts +98 -0
- package/src/utils/json-parse.ts +607 -0
- package/src/utils/oauth/alibaba-token-plan.ts +60 -0
- package/src/utils/oauth/anthropic.ts +233 -0
- package/src/utils/oauth/api-key-login.ts +98 -0
- package/src/utils/oauth/api-key-validation.ts +344 -0
- package/src/utils/oauth/bizrouter.ts +15 -0
- package/src/utils/oauth/callback-server.d.ts +80 -0
- package/src/utils/oauth/callback-server.ts +359 -0
- package/src/utils/oauth/cerebras.ts +16 -0
- package/src/utils/oauth/cloudflare-ai-gateway.ts +48 -0
- package/src/utils/oauth/commandcode.ts +17 -0
- package/src/utils/oauth/cursor.ts +157 -0
- package/src/utils/oauth/deepinfra.ts +15 -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/fugu.ts +15 -0
- package/src/utils/oauth/github-copilot.d.ts +38 -0
- package/src/utils/oauth/github-copilot.ts +362 -0
- package/src/utils/oauth/gitlab-duo.ts +123 -0
- package/src/utils/oauth/glm-zcode.d.ts +71 -0
- package/src/utils/oauth/glm-zcode.ts +433 -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 +558 -0
- package/src/utils/oauth/kagi.ts +47 -0
- package/src/utils/oauth/kilo.ts +87 -0
- package/src/utils/oauth/kimi.d.ts +17 -0
- package/src/utils/oauth/kimi.ts +275 -0
- package/src/utils/oauth/kiro.ts +448 -0
- package/src/utils/oauth/litellm.ts +47 -0
- package/src/utils/oauth/lm-studio.ts +38 -0
- package/src/utils/oauth/mara.ts +16 -0
- package/src/utils/oauth/minimax-code.ts +78 -0
- package/src/utils/oauth/moonshot.ts +16 -0
- package/src/utils/oauth/nanogpt.ts +15 -0
- package/src/utils/oauth/nvidia.ts +70 -0
- package/src/utils/oauth/oauth.html +199 -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/opengateway.ts +15 -0
- package/src/utils/oauth/openrouter.ts +16 -0
- package/src/utils/oauth/parallel.ts +46 -0
- package/src/utils/oauth/perplexity.ts +225 -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/sglang.ts +42 -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.d.ts +56 -0
- package/src/utils/oauth/types.ts +122 -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 +42 -0
- package/src/utils/oauth/xai.ts +246 -0
- package/src/utils/oauth/xiaomi.ts +199 -0
- package/src/utils/oauth/zai.ts +60 -0
- package/src/utils/oauth/zenmux.ts +15 -0
- package/src/utils/overflow.ts +275 -0
- package/src/utils/parse-bind.ts +81 -0
- package/src/utils/provider-response.d.ts +6 -0
- package/src/utils/provider-response.ts +30 -0
- package/src/utils/provider-safety-stop.ts +8 -0
- package/src/utils/proxy.d.ts +7 -0
- package/src/utils/proxy.ts +652 -0
- package/src/utils/retry-after.d.ts +3 -0
- package/src/utils/retry-after.ts +110 -0
- package/src/utils/retry-budget.d.ts +1 -0
- package/src/utils/retry-budget.ts +4 -0
- package/src/utils/retry.d.ts +29 -0
- package/src/utils/retry.ts +67 -0
- package/src/utils/schema/CONSTRAINTS.md +164 -0
- package/src/utils/schema/adapt.d.ts +24 -0
- package/src/utils/schema/adapt.ts +36 -0
- package/src/utils/schema/compatibility.d.ts +30 -0
- package/src/utils/schema/compatibility.ts +435 -0
- package/src/utils/schema/dereference.d.ts +11 -0
- package/src/utils/schema/dereference.ts +98 -0
- package/src/utils/schema/draft.d.ts +10 -0
- package/src/utils/schema/draft.ts +341 -0
- package/src/utils/schema/equality.d.ts +4 -0
- package/src/utils/schema/equality.ts +97 -0
- package/src/utils/schema/fields.d.ts +49 -0
- package/src/utils/schema/fields.ts +190 -0
- package/src/utils/schema/index.d.ts +14 -0
- package/src/utils/schema/index.ts +14 -0
- package/src/utils/schema/json-schema-validator.d.ts +12 -0
- package/src/utils/schema/json-schema-validator.ts +577 -0
- package/src/utils/schema/meta-validator.d.ts +2 -0
- package/src/utils/schema/meta-validator.ts +167 -0
- package/src/utils/schema/normalize.d.ts +93 -0
- package/src/utils/schema/normalize.ts +1588 -0
- package/src/utils/schema/root-combinator.d.ts +12 -0
- package/src/utils/schema/root-combinator.ts +143 -0
- package/src/utils/schema/spill.d.ts +8 -0
- package/src/utils/schema/spill.ts +43 -0
- package/src/utils/schema/stamps.d.ts +25 -0
- package/src/utils/schema/stamps.ts +97 -0
- package/src/utils/schema/types.d.ts +4 -0
- package/src/utils/schema/types.ts +11 -0
- package/src/utils/schema/wire.d.ts +54 -0
- package/src/utils/schema/wire.ts +213 -0
- package/src/utils/schema/zod-decontaminate.d.ts +31 -0
- package/src/utils/schema/zod-decontaminate.ts +331 -0
- package/src/utils/sse-debug.d.ts +10 -0
- package/src/utils/sse-debug.ts +289 -0
- package/src/utils/tool-call-healing.d.ts +80 -0
- package/src/utils/tool-call-healing.ts +298 -0
- package/src/utils/tool-choice-capability.d.ts +57 -0
- package/src/utils/tool-choice-capability.ts +633 -0
- package/src/utils/tool-choice.d.ts +50 -0
- package/src/utils/tool-choice.ts +99 -0
- package/src/utils/validation.ts +1080 -0
- package/src/utils.d.ts +117 -0
- package/src/utils.ts +523 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for Google Generative AI and Google Cloud Code Assist providers.
|
|
3
|
+
*/
|
|
4
|
+
import type { ProviderSafetyStopAdapterInvocation } from "../adapter-internals/provider-safety-stop";
|
|
5
|
+
import type { AssistantMessage, Context, FetchImpl, Model, StopReason, StreamOptions, TextContent, ThinkingContent, Tool, ToolCall } from "../types";
|
|
6
|
+
import { AssistantMessageEventStream } from "../utils/event-stream";
|
|
7
|
+
import { normalizeSchemaForGoogle } from "../utils/schema";
|
|
8
|
+
import type { Content, FinishReason, FunctionCallingConfigMode, GenerateContentParameters, GenerateContentResponse, Part } from "./google-types";
|
|
9
|
+
export type { Content, FunctionCallingConfigMode, GenerateContentParameters, GenerateContentResponse, ThinkingConfig, } from "./google-types";
|
|
10
|
+
export { normalizeSchemaForGoogle };
|
|
11
|
+
type GoogleApiType = "google-generative-ai" | "google-gemini-cli" | "google-vertex";
|
|
12
|
+
export declare const PROVIDER_SAFETY_STOP = "provider_safety_stop";
|
|
13
|
+
export declare function isGoogleCandidateSafetyStopReason(reason: string): boolean;
|
|
14
|
+
export declare function isGooglePromptSafetyStopReason(reason: string): boolean;
|
|
15
|
+
export declare function getGooglePromptBlockReason(promptFeedback: {
|
|
16
|
+
blockReason?: unknown;
|
|
17
|
+
} | undefined): string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Thinking level for Gemini 3 models. Mirrors Google's `ThinkingLevel` enum values.
|
|
20
|
+
* Defined here (not in any specific provider) so all Google providers can reference it
|
|
21
|
+
* without inducing a circular dependency.
|
|
22
|
+
*/
|
|
23
|
+
export type GoogleThinkingLevel = "THINKING_LEVEL_UNSPECIFIED" | "MINIMAL" | "LOW" | "MEDIUM" | "HIGH";
|
|
24
|
+
/**
|
|
25
|
+
* Sampling/thinking options shared by `streamGoogle` and `streamGoogleVertex`.
|
|
26
|
+
* `google-gemini-cli` uses a different transport and request shape — do not extend this for it.
|
|
27
|
+
*/
|
|
28
|
+
export interface GoogleSharedStreamOptions extends StreamOptions {
|
|
29
|
+
toolChoice?: "auto" | "none" | "any" | "required";
|
|
30
|
+
thinking?: {
|
|
31
|
+
enabled: boolean;
|
|
32
|
+
budgetTokens?: number;
|
|
33
|
+
level?: GoogleThinkingLevel;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Determines whether a streamed Gemini `Part` should be treated as "thinking".
|
|
38
|
+
*
|
|
39
|
+
* Protocol note (Gemini / Vertex AI thought signatures):
|
|
40
|
+
* - `thought: true` is the definitive marker for thinking content (thought summaries).
|
|
41
|
+
* - `thoughtSignature` is an encrypted representation of the model's internal thought process
|
|
42
|
+
* used to preserve reasoning context across multi-turn interactions.
|
|
43
|
+
* - `thoughtSignature` can appear on ANY part type (text, functionCall, etc.) - it does NOT
|
|
44
|
+
* indicate the part itself is thinking content.
|
|
45
|
+
* - For non-functionCall responses, the signature appears on the last part for context replay.
|
|
46
|
+
* - When persisting/replaying model outputs, signature-bearing parts must be preserved as-is;
|
|
47
|
+
* do not merge/move signatures across parts.
|
|
48
|
+
*
|
|
49
|
+
* See: https://ai.google.dev/gemini-api/docs/thought-signatures
|
|
50
|
+
*/
|
|
51
|
+
export declare function isThinkingPart(part: Pick<Part, "thought" | "thoughtSignature">): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Retain thought signatures during streaming.
|
|
54
|
+
*
|
|
55
|
+
* Some backends only send `thoughtSignature` on the first delta for a given part/block; later deltas may omit it.
|
|
56
|
+
* This helper preserves the last non-empty signature for the current block.
|
|
57
|
+
*
|
|
58
|
+
* Note: this does NOT merge or move signatures across distinct response parts. It only prevents
|
|
59
|
+
* a signature from being overwritten with `undefined` within the same streamed block.
|
|
60
|
+
*/
|
|
61
|
+
export declare function retainThoughtSignature(existing: string | undefined, incoming: string | undefined): string | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Anthropic model models via Google APIs require explicit tool call IDs in function calls/responses.
|
|
64
|
+
*/
|
|
65
|
+
export declare function requiresToolCallId(modelId: string): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Convert internal messages to Gemini Content[] format.
|
|
68
|
+
*/
|
|
69
|
+
export declare function convertMessages<T extends GoogleApiType>(model: Model<T>, context: Context): Content[];
|
|
70
|
+
/**
|
|
71
|
+
* Convert tools to Gemini function declarations format.
|
|
72
|
+
*
|
|
73
|
+
* We prefer `parametersJsonSchema` (full JSON Schema: anyOf/oneOf/const/etc.).
|
|
74
|
+
*
|
|
75
|
+
* Anthropic model models via Cloud Code Assist require the legacy `parameters` field; the API
|
|
76
|
+
* translates it into Anthropic's `input_schema`. When using that path, we sanitize the
|
|
77
|
+
* schema to remove Google-unsupported JSON Schema keywords.
|
|
78
|
+
*/
|
|
79
|
+
export declare function convertTools(tools: Tool[], model: Model<"google-generative-ai" | "google-gemini-cli" | "google-vertex">): {
|
|
80
|
+
functionDeclarations: Record<string, unknown>[];
|
|
81
|
+
}[] | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* Map tool choice string to Gemini FunctionCallingConfigMode.
|
|
84
|
+
*/
|
|
85
|
+
export declare function mapToolChoice(choice: string): FunctionCallingConfigMode;
|
|
86
|
+
/**
|
|
87
|
+
* Map Gemini FinishReason to our StopReason.
|
|
88
|
+
*/
|
|
89
|
+
export declare function mapStopReason(reason: FinishReason): StopReason;
|
|
90
|
+
/**
|
|
91
|
+
* Map string finish reason to our StopReason (for raw API responses).
|
|
92
|
+
*/
|
|
93
|
+
export declare function mapStopReasonString(reason: string): StopReason;
|
|
94
|
+
export declare function nextToolCallId(name: string): string;
|
|
95
|
+
/**
|
|
96
|
+
* Push the appropriate `text_end` / `thinking_end` event for the given block.
|
|
97
|
+
* Shared between the SDK-backed stream consumer and the gemini-cli SSE consumer so
|
|
98
|
+
* the end-of-block event shape stays in lockstep.
|
|
99
|
+
*/
|
|
100
|
+
export declare function pushBlockEndEvent(block: TextContent | ThinkingContent, contentIndex: number, output: AssistantMessage, stream: AssistantMessageEventStream): void;
|
|
101
|
+
/**
|
|
102
|
+
* Push the three lifecycle events (`toolcall_start` / `toolcall_delta` / `toolcall_end`) for a
|
|
103
|
+
* fully-assembled `ToolCall`. Caller is responsible for appending the toolCall to `output.content`
|
|
104
|
+
* before invoking — this helper does not mutate `output.content`.
|
|
105
|
+
*/
|
|
106
|
+
export declare function pushToolCallEvents(toolCall: ToolCall, contentIndex: number, output: AssistantMessage, stream: AssistantMessageEventStream): void;
|
|
107
|
+
/**
|
|
108
|
+
* Append a new text- or thinking-block to `output.content` and push the matching
|
|
109
|
+
* `text_start` / `thinking_start` event. `onBeforeStartEvent` lets the SSE consumer
|
|
110
|
+
* inject its `ensureStarted()` first-token side effect into the canonical event order.
|
|
111
|
+
*/
|
|
112
|
+
export declare function startTextOrThinkingBlock(isThinking: boolean, output: AssistantMessage, stream: AssistantMessageEventStream, onBeforeStartEvent?: () => void): TextContent | ThinkingContent;
|
|
113
|
+
/**
|
|
114
|
+
* Drives the chunked `generateContentStream` iterator into an `AssistantMessage` and
|
|
115
|
+
* the corresponding `AssistantMessageEventStream`. Shared between `streamGoogle` and
|
|
116
|
+
* `streamGoogleVertex` — every observable event order and stop-reason rule is preserved.
|
|
117
|
+
*
|
|
118
|
+
* The caller still owns: `output` construction, timing fields (`duration`/`ttft`),
|
|
119
|
+
* `rawRequestDump`, the `client.models.generateContentStream(params)` call itself,
|
|
120
|
+
* pushing `start`/`done`/`error` events, and the surrounding try/catch that translates
|
|
121
|
+
* thrown errors into `output.stopReason`/`errorMessage`.
|
|
122
|
+
*
|
|
123
|
+
* This helper handles: the chunk loop, currentBlock flush transitions, usage metadata
|
|
124
|
+
* decoding (`calculateCost` included), tool-call id collision avoidance, finish-reason
|
|
125
|
+
* mapping, and the abort/stop-reason post-checks that re-throw to bubble into the
|
|
126
|
+
* caller's catch.
|
|
127
|
+
*/
|
|
128
|
+
export declare function consumeGoogleStream<T extends GoogleApiType>(args: {
|
|
129
|
+
googleStream: AsyncIterable<GenerateContentResponse>;
|
|
130
|
+
output: AssistantMessage;
|
|
131
|
+
stream: AssistantMessageEventStream;
|
|
132
|
+
model: Model<T>;
|
|
133
|
+
options: {
|
|
134
|
+
signal?: AbortSignal;
|
|
135
|
+
fetch?: unknown;
|
|
136
|
+
} | undefined;
|
|
137
|
+
callerFetch?: unknown;
|
|
138
|
+
adapterInvocation?: ProviderSafetyStopAdapterInvocation;
|
|
139
|
+
/** Vertex preserves `textSignature` on streamed text deltas; google-generative-ai does not. */
|
|
140
|
+
retainTextSignature?: boolean;
|
|
141
|
+
onFirstToken?: () => void;
|
|
142
|
+
}): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Build the `GenerateContentParameters` payload for the public Gemini API and Vertex AI.
|
|
145
|
+
* Both surfaces accept the same `GenerateContentConfig` shape — every numeric/string knob,
|
|
146
|
+
* tool-config, thinking-config, and system-instruction conversion is identical.
|
|
147
|
+
*
|
|
148
|
+
* `google-gemini-cli` is NOT routed through here: its `CloudCodeAssistRequest` body has a
|
|
149
|
+
* distinct top-level shape (project/request/requestType) and a different thinking-config
|
|
150
|
+
* placement on `generationConfig`.
|
|
151
|
+
*/
|
|
152
|
+
export declare function buildGoogleGenerateContentParams<T extends "google-generative-ai" | "google-vertex">(model: Model<T>, context: Context, options: GoogleSharedStreamOptions): GenerateContentParameters;
|
|
153
|
+
/**
|
|
154
|
+
* Drive the `streamGoogle` / `streamGoogleVertex` event flow: build the assistant message,
|
|
155
|
+
* push start/done/error events, run `consumeGoogleStream`, and translate thrown errors into
|
|
156
|
+
* the canonical `error` event shape.
|
|
157
|
+
*
|
|
158
|
+
* Caller-supplied `prepare()` runs inside the try-block so any failure (missing project,
|
|
159
|
+
* bad auth, etc.) is funneled through the same error path as a streaming failure.
|
|
160
|
+
*/
|
|
161
|
+
export interface GoogleGenAIRequestPlan {
|
|
162
|
+
params: GenerateContentParameters;
|
|
163
|
+
url: string;
|
|
164
|
+
headers: Record<string, string>;
|
|
165
|
+
fetch?: FetchImpl;
|
|
166
|
+
}
|
|
167
|
+
export declare function streamGoogleGenAI<T extends "google-generative-ai" | "google-vertex">(args: {
|
|
168
|
+
model: Model<T>;
|
|
169
|
+
options: GoogleSharedStreamOptions | undefined;
|
|
170
|
+
api: T;
|
|
171
|
+
retainTextSignature?: boolean;
|
|
172
|
+
prepare: () => GoogleGenAIRequestPlan | Promise<GoogleGenAIRequestPlan>;
|
|
173
|
+
}): AssistantMessageEventStream;
|
|
174
|
+
/**
|
|
175
|
+
* Lift the SDK's `params.config` fields out of `config` and place them where the
|
|
176
|
+
* Gemini / Vertex AI REST API expects them on the request body. Mirrors the
|
|
177
|
+
* generateContentParametersTo{Mldev,Vertex} transformation in @google/genai
|
|
178
|
+
* for the subset of fields this codebase actually sets.
|
|
179
|
+
*
|
|
180
|
+
* `abortSignal` is intentionally dropped — the SDK propagates it via `fetch.signal`,
|
|
181
|
+
* which our caller already wires up through `options.signal`.
|
|
182
|
+
*/
|
|
183
|
+
export declare function paramsToWireBody(params: GenerateContentParameters): Record<string, unknown>;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local mirror of the subset of `@google/genai` types this package consumes.
|
|
3
|
+
*
|
|
4
|
+
* Field shapes match Gemini / Vertex AI wire format 1:1. Enum-shaped values are
|
|
5
|
+
* modelled as string literal unions so they pass through `JSON.stringify` and
|
|
6
|
+
* `JSON.parse` unchanged.
|
|
7
|
+
*
|
|
8
|
+
* Keep this file in sync with the actual request/response surface of:
|
|
9
|
+
* - `POST {generativelanguage,aiplatform}.googleapis.com/.../models/{model}:streamGenerateContent?alt=sse`
|
|
10
|
+
* - The Cloud Code Assist endpoint used by `google-gemini-cli.ts`
|
|
11
|
+
*/
|
|
12
|
+
/** Mirror of `@google/genai`'s `FinishReason` string enum. */
|
|
13
|
+
export type FinishReason = "FINISH_REASON_UNSPECIFIED" | "STOP" | "MAX_TOKENS" | "SAFETY" | "RECITATION" | "LANGUAGE" | "OTHER" | "BLOCKLIST" | "PROHIBITED_CONTENT" | "SPII" | "MALFORMED_FUNCTION_CALL" | "IMAGE_SAFETY" | "IMAGE_PROHIBITED_CONTENT" | "IMAGE_RECITATION" | "IMAGE_OTHER" | "UNEXPECTED_TOOL_CALL" | "NO_IMAGE";
|
|
14
|
+
/** Mirror of `@google/genai`'s `FunctionCallingConfigMode` string enum. */
|
|
15
|
+
export type FunctionCallingConfigMode = "MODE_UNSPECIFIED" | "AUTO" | "NONE" | "ANY" | "VALIDATED";
|
|
16
|
+
/** Mirror of `@google/genai`'s `ThinkingLevel` string enum. */
|
|
17
|
+
export type ThinkingLevel = "THINKING_LEVEL_UNSPECIFIED" | "MINIMAL" | "LOW" | "MEDIUM" | "HIGH";
|
|
18
|
+
/** Inline base64-encoded data part. */
|
|
19
|
+
export interface InlineDataPart {
|
|
20
|
+
mimeType: string;
|
|
21
|
+
data: string;
|
|
22
|
+
}
|
|
23
|
+
/** Function call emitted by the model. */
|
|
24
|
+
export interface FunctionCallPart {
|
|
25
|
+
name?: string;
|
|
26
|
+
args?: Record<string, unknown>;
|
|
27
|
+
id?: string;
|
|
28
|
+
}
|
|
29
|
+
/** Tool execution result fed back to the model. */
|
|
30
|
+
export interface FunctionResponsePart {
|
|
31
|
+
name: string;
|
|
32
|
+
response: Record<string, unknown>;
|
|
33
|
+
parts?: Part[];
|
|
34
|
+
id?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A single piece of a `Content` message. Mirrors the SDK's union by keeping
|
|
38
|
+
* every optional field — the model and the wire treat shape as discriminator.
|
|
39
|
+
*/
|
|
40
|
+
export interface Part {
|
|
41
|
+
text?: string;
|
|
42
|
+
thought?: boolean;
|
|
43
|
+
thoughtSignature?: string;
|
|
44
|
+
inlineData?: InlineDataPart;
|
|
45
|
+
functionCall?: FunctionCallPart;
|
|
46
|
+
functionResponse?: FunctionResponsePart;
|
|
47
|
+
}
|
|
48
|
+
/** Conversation turn. Roles: `"user"`, `"model"`, optionally absent for system instructions. */
|
|
49
|
+
export interface Content {
|
|
50
|
+
role?: string;
|
|
51
|
+
parts?: Part[];
|
|
52
|
+
}
|
|
53
|
+
/** Thinking/reasoning configuration shared by Gemini 2.x and 3.x models. */
|
|
54
|
+
export interface ThinkingConfig {
|
|
55
|
+
includeThoughts?: boolean;
|
|
56
|
+
thinkingBudget?: number;
|
|
57
|
+
thinkingLevel?: ThinkingLevel;
|
|
58
|
+
}
|
|
59
|
+
/** Function declaration entry inside `tools[].functionDeclarations`. */
|
|
60
|
+
export interface FunctionDeclaration {
|
|
61
|
+
name: string;
|
|
62
|
+
description?: string;
|
|
63
|
+
parameters?: Record<string, unknown>;
|
|
64
|
+
parametersJsonSchema?: Record<string, unknown>;
|
|
65
|
+
}
|
|
66
|
+
/** Tool group as accepted at the request top level. */
|
|
67
|
+
export interface ToolDeclaration {
|
|
68
|
+
functionDeclarations: Record<string, unknown>[];
|
|
69
|
+
}
|
|
70
|
+
/** Tool selection mode container. */
|
|
71
|
+
export interface ToolConfig {
|
|
72
|
+
functionCallingConfig?: {
|
|
73
|
+
mode: FunctionCallingConfigMode;
|
|
74
|
+
allowedFunctionNames?: string[];
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Generation/sampling and request-shape options passed via the SDK's `config`.
|
|
79
|
+
*
|
|
80
|
+
* Fields that the wire format places at the request body root (systemInstruction,
|
|
81
|
+
* tools, toolConfig, safetySettings, cachedContent) live here too — the
|
|
82
|
+
* transformer in `google-shared.ts` lifts them out when serializing.
|
|
83
|
+
*/
|
|
84
|
+
export interface GenerateContentConfig {
|
|
85
|
+
temperature?: number;
|
|
86
|
+
maxOutputTokens?: number;
|
|
87
|
+
topP?: number;
|
|
88
|
+
topK?: number;
|
|
89
|
+
candidateCount?: number;
|
|
90
|
+
stopSequences?: string[];
|
|
91
|
+
presencePenalty?: number;
|
|
92
|
+
frequencyPenalty?: number;
|
|
93
|
+
seed?: number;
|
|
94
|
+
responseMimeType?: string;
|
|
95
|
+
responseSchema?: Record<string, unknown>;
|
|
96
|
+
responseJsonSchema?: Record<string, unknown>;
|
|
97
|
+
responseModalities?: string[];
|
|
98
|
+
systemInstruction?: Content | {
|
|
99
|
+
role?: string;
|
|
100
|
+
parts: {
|
|
101
|
+
text: string;
|
|
102
|
+
}[];
|
|
103
|
+
};
|
|
104
|
+
tools?: ToolDeclaration[];
|
|
105
|
+
toolConfig?: ToolConfig;
|
|
106
|
+
safetySettings?: Array<Record<string, unknown>>;
|
|
107
|
+
cachedContent?: string;
|
|
108
|
+
thinkingConfig?: ThinkingConfig;
|
|
109
|
+
abortSignal?: AbortSignal;
|
|
110
|
+
}
|
|
111
|
+
/** Top-level argument to `generateContentStream`. */
|
|
112
|
+
export interface GenerateContentParameters {
|
|
113
|
+
model: string;
|
|
114
|
+
contents: Content[];
|
|
115
|
+
config?: GenerateContentConfig;
|
|
116
|
+
}
|
|
117
|
+
/** Per-stream candidate envelope. */
|
|
118
|
+
export interface Candidate {
|
|
119
|
+
content?: Content;
|
|
120
|
+
finishReason?: FinishReason;
|
|
121
|
+
index?: number;
|
|
122
|
+
}
|
|
123
|
+
/** Cumulative token accounting attached to the trailing chunk. */
|
|
124
|
+
export interface UsageMetadata {
|
|
125
|
+
promptTokenCount?: number;
|
|
126
|
+
candidatesTokenCount?: number;
|
|
127
|
+
thoughtsTokenCount?: number;
|
|
128
|
+
totalTokenCount?: number;
|
|
129
|
+
cachedContentTokenCount?: number;
|
|
130
|
+
}
|
|
131
|
+
/** Single SSE chunk's parsed JSON body. */
|
|
132
|
+
export interface GenerateContentResponse {
|
|
133
|
+
candidates?: Candidate[];
|
|
134
|
+
usageMetadata?: UsageMetadata;
|
|
135
|
+
modelVersion?: string;
|
|
136
|
+
responseId?: string;
|
|
137
|
+
promptFeedback?: Record<string, unknown>;
|
|
138
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { StreamFunction } from "../types";
|
|
2
|
+
import { type GoogleSharedStreamOptions } from "./google-shared";
|
|
3
|
+
export interface GoogleVertexOptions extends GoogleSharedStreamOptions {
|
|
4
|
+
project?: string;
|
|
5
|
+
location?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const streamGoogleVertex: StreamFunction<"google-vertex">;
|
|
8
|
+
/** Test seam: the Vertex API key as resolved from options plus trusted env. */
|
|
9
|
+
export declare function resolveVertexApiKeyForTest(options?: GoogleVertexOptions): string | undefined;
|
|
10
|
+
/** Test seam: the Vertex location as resolved from options plus trusted env. */
|
|
11
|
+
export declare function resolveVertexLocationForTest(options?: GoogleVertexOptions): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function compactGrammarDefinition(syntax: "lark" | "regex", definition: string): string;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kimi Code provider - wraps OpenAI or Anthropic API based on format setting.
|
|
3
|
+
*
|
|
4
|
+
* Kimi offers both OpenAI-compatible and Anthropic-compatible APIs:
|
|
5
|
+
* - OpenAI: https://api.kimi.com/coding/v1/chat/completions
|
|
6
|
+
* - Anthropic: https://api.kimi.com/coding/v1/messages
|
|
7
|
+
*
|
|
8
|
+
* The Anthropic API is generally more stable and recommended.
|
|
9
|
+
* Note: Kimi calculates TPM rate limits based on max_tokens, not actual output.
|
|
10
|
+
*/
|
|
11
|
+
import type { Api, Context, Model } from "../types";
|
|
12
|
+
import type { AssistantMessageEventStream } from "../utils/event-stream";
|
|
13
|
+
import { type OpenAIAnthropicApiFormat, type OpenAIAnthropicShimOptions } from "./openai-anthropic-shim";
|
|
14
|
+
export type KimiApiFormat = OpenAIAnthropicApiFormat;
|
|
15
|
+
export interface KimiOptions extends OpenAIAnthropicShimOptions {
|
|
16
|
+
/** API format: "openai" or "anthropic". Default: "anthropic" */
|
|
17
|
+
format?: KimiApiFormat;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Stream from Kimi Code, routing to either OpenAI or Anthropic API based on format.
|
|
21
|
+
* Returns synchronously like other providers - async header fetching happens internally.
|
|
22
|
+
*/
|
|
23
|
+
export declare function streamKimi(model: Model<"openai-completions">, context: Context, options?: KimiOptions): AssistantMessageEventStream;
|
|
24
|
+
/**
|
|
25
|
+
* Check if a model is a Kimi Code model.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isKimiModel(model: Model<Api>): boolean;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Model, StreamFunction } from "../types";
|
|
2
|
+
export declare function isKiroApiKey(value: string | undefined): value is string;
|
|
3
|
+
export declare function kiroApiRegion(options?: {
|
|
4
|
+
region?: string;
|
|
5
|
+
}): string;
|
|
6
|
+
export declare function kiroApiBaseUrl(region: string): string;
|
|
7
|
+
export declare function toKiroModelId(modelId: string): string;
|
|
8
|
+
export declare function kiroApiStaticModels(): Model<"kiro-codewhisperer-stream">[];
|
|
9
|
+
/** Discover models this API key can use. Returns null when the key is missing. */
|
|
10
|
+
export declare function fetchKiroApiModels(apiKey: string, region?: string): Promise<Model<"kiro-codewhisperer-stream">[]>;
|
|
11
|
+
type KiroStreamEvent = {
|
|
12
|
+
type: "content";
|
|
13
|
+
data: string;
|
|
14
|
+
} | {
|
|
15
|
+
type: "toolUse";
|
|
16
|
+
data: {
|
|
17
|
+
name: string;
|
|
18
|
+
toolUseId: string;
|
|
19
|
+
input: string;
|
|
20
|
+
stop?: boolean;
|
|
21
|
+
};
|
|
22
|
+
} | {
|
|
23
|
+
type: "toolUseInput";
|
|
24
|
+
data: {
|
|
25
|
+
input: string;
|
|
26
|
+
};
|
|
27
|
+
} | {
|
|
28
|
+
type: "toolUseStop";
|
|
29
|
+
data: {
|
|
30
|
+
stop: boolean;
|
|
31
|
+
};
|
|
32
|
+
} | {
|
|
33
|
+
type: "usage";
|
|
34
|
+
data: {
|
|
35
|
+
inputTokens?: number;
|
|
36
|
+
outputTokens?: number;
|
|
37
|
+
};
|
|
38
|
+
} | {
|
|
39
|
+
type: "error";
|
|
40
|
+
data: {
|
|
41
|
+
error: string;
|
|
42
|
+
message?: string;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export declare function parseKiroApiEvents(buffer: string): {
|
|
46
|
+
events: KiroStreamEvent[];
|
|
47
|
+
remaining: string;
|
|
48
|
+
};
|
|
49
|
+
export declare const streamKiroApiKey: StreamFunction<"kiro-codewhisperer-stream">;
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Effort } from "../model-thinking";
|
|
2
|
+
import type { StreamFunction, StreamOptions } from "../types";
|
|
3
|
+
export interface KiroCodeWhispererOptions extends StreamOptions {
|
|
4
|
+
/** Effort level for Kiro API-key reasoning. */
|
|
5
|
+
reasoning?: Effort | boolean;
|
|
6
|
+
/** AWS region for the CodeWhisperer streaming endpoint. */
|
|
7
|
+
region?: string;
|
|
8
|
+
/** Profile ARN for enterprise IAM Identity Center accounts. */
|
|
9
|
+
profileArn?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const streamKiroCodeWhisperer: StreamFunction<"kiro-codewhisperer-stream">;
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock provider for tests.
|
|
3
|
+
*
|
|
4
|
+
* Implements `Model<"mock">` + `streamMock` so test code can drive
|
|
5
|
+
* pi-agent-core / streamSimple-shaped consumers without an HTTP client.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
*
|
|
9
|
+
* import { createMockModel, registerMockApi } from "@vib-rato/ai/providers/mock";
|
|
10
|
+
*
|
|
11
|
+
* // 1. Array of responses, one per call.
|
|
12
|
+
* const mock = createMockModel({
|
|
13
|
+
* responses: [
|
|
14
|
+
* { content: [{ type: "toolCall", name: "read", arguments: { path: "/x" } }] },
|
|
15
|
+
* { content: ["done"] },
|
|
16
|
+
* ],
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // 2. Async generator — full state-machine power, can await between turns.
|
|
20
|
+
* const mock = createMockModel({
|
|
21
|
+
* responses: (async function* () {
|
|
22
|
+
* yield { content: [{ type: "toolCall", name: "fetch", arguments: { url } }] };
|
|
23
|
+
* // wait for external coordination
|
|
24
|
+
* await externalReady;
|
|
25
|
+
* yield { content: ["got it"] };
|
|
26
|
+
* })(),
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* // 3. Per-call handler (closure with access to the call).
|
|
30
|
+
* const mock = createMockModel({
|
|
31
|
+
* handler: (context) => ({ content: [`turn ${context.messages.length}`] }),
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* // 4. Use as a streamFn for agentLoop:
|
|
35
|
+
* await agentLoop(prompts, context, config, undefined, mock.stream).result();
|
|
36
|
+
*
|
|
37
|
+
* // 5. Or register globally and use stream():
|
|
38
|
+
* registerMockApi();
|
|
39
|
+
* stream(mock.model, context, options);
|
|
40
|
+
*
|
|
41
|
+
* // Inspect calls afterwards.
|
|
42
|
+
* expect(mock.calls).toHaveLength(2);
|
|
43
|
+
*/
|
|
44
|
+
import type { Api, AssistantMessage, Context, Model, SimpleStreamOptions, StopReason, Usage } from "../types";
|
|
45
|
+
import { AssistantMessageEventStream } from "../utils/event-stream";
|
|
46
|
+
import { type UnicodeEscapeEvidence } from "../utils/json-parse";
|
|
47
|
+
/** The API string this provider serves. */
|
|
48
|
+
export declare const MOCK_API: "mock";
|
|
49
|
+
export type MockApi = typeof MOCK_API;
|
|
50
|
+
/** Shorthand for a single content block. Strings become text blocks. */
|
|
51
|
+
export type MockContent = string | {
|
|
52
|
+
type: "text";
|
|
53
|
+
text: string;
|
|
54
|
+
} | {
|
|
55
|
+
type: "thinking";
|
|
56
|
+
thinking: string;
|
|
57
|
+
} | {
|
|
58
|
+
type: "toolCall";
|
|
59
|
+
/** Optional explicit id; auto-generated when omitted. */
|
|
60
|
+
id?: string;
|
|
61
|
+
name: string;
|
|
62
|
+
/** Object form is preferred; strings are passed through verbatim. */
|
|
63
|
+
arguments: Record<string, unknown> | string;
|
|
64
|
+
/** Simulate a provider-flagged truncated call (cut off mid-arguments). */
|
|
65
|
+
incompleteArguments?: boolean;
|
|
66
|
+
/** Typed reason matching `ToolCall.incompleteArgumentsReason`. Defaults to `"truncated"`. */
|
|
67
|
+
incompleteArgumentsReason?: "truncated" | "malformed" | "conflicting" | "ambiguous";
|
|
68
|
+
/** Simulate a provider-flagged `\uXXXX`-escaped non-ASCII argument payload. */
|
|
69
|
+
escapedNonAsciiArguments?: boolean;
|
|
70
|
+
escapedUnicodeArgumentEvidence?: UnicodeEscapeEvidence;
|
|
71
|
+
thoughtSignature?: string;
|
|
72
|
+
};
|
|
73
|
+
/** One scripted response. */
|
|
74
|
+
export interface MockResponse {
|
|
75
|
+
/** Content blocks to emit, in order. Strings become text blocks. */
|
|
76
|
+
content?: ReadonlyArray<MockContent>;
|
|
77
|
+
/** Stop reason. Defaults to `"toolUse"` when content has tool calls, else `"stop"`. */
|
|
78
|
+
stopReason?: StopReason;
|
|
79
|
+
/** Usage stats. Missing fields default to 0; missing `cost.total` is recomputed from components. */
|
|
80
|
+
usage?: Partial<Omit<Usage, "cost">> & {
|
|
81
|
+
cost?: Partial<Usage["cost"]>;
|
|
82
|
+
};
|
|
83
|
+
/** Pre-set responseId. */
|
|
84
|
+
responseId?: string;
|
|
85
|
+
/** Optional provider metadata copied onto the final assistant message. */
|
|
86
|
+
disabledFeatures?: string[];
|
|
87
|
+
providerPayload?: AssistantMessage["providerPayload"];
|
|
88
|
+
/** Optional typed provider failure metadata for retry/fallback tests. */
|
|
89
|
+
transportFailure?: AssistantMessage["transportFailure"];
|
|
90
|
+
/** If set, the stream emits a terminal error event instead of completing. */
|
|
91
|
+
throw?: string | Error;
|
|
92
|
+
/** Delay before any event is emitted. Honors the call's AbortSignal. */
|
|
93
|
+
delayMs?: number;
|
|
94
|
+
/**
|
|
95
|
+
* If set, the mock synthesizes a {@link ProviderResponseMetadata} and fires
|
|
96
|
+
* `options.onResponse` once before streaming events. Headers are forwarded
|
|
97
|
+
* verbatim (keys lowercased to match real provider plumbing).
|
|
98
|
+
*/
|
|
99
|
+
responseHeaders?: Readonly<Record<string, string>>;
|
|
100
|
+
/** HTTP status code paired with {@link responseHeaders}. Defaults to 200. */
|
|
101
|
+
responseStatus?: number;
|
|
102
|
+
/** Pre-set requestId surfaced via {@link ProviderResponseMetadata.requestId}. */
|
|
103
|
+
responseRequestId?: string;
|
|
104
|
+
}
|
|
105
|
+
/** Handler resolved per call: static script or function. */
|
|
106
|
+
export type MockHandler = MockResponse | ((context: Context, options?: SimpleStreamOptions) => MockResponse | Promise<MockResponse>);
|
|
107
|
+
/**
|
|
108
|
+
* A source of handlers, one per call.
|
|
109
|
+
*
|
|
110
|
+
* - Arrays / iterables consume one entry per call (most ergonomic for scripts).
|
|
111
|
+
* - Async iterables (e.g. `async function*()`) let the test pause between calls,
|
|
112
|
+
* coordinate with external events, or build state machines.
|
|
113
|
+
*
|
|
114
|
+
* The first call pulls the first entry, the second call pulls the second, and
|
|
115
|
+
* so on. When the source is exhausted, `MockModelOptions.handler` is used; if
|
|
116
|
+
* neither is set, the call rejects.
|
|
117
|
+
*/
|
|
118
|
+
export type MockResponseSource = Iterable<MockHandler> | AsyncIterable<MockHandler>;
|
|
119
|
+
/** Recorded call for inspection. */
|
|
120
|
+
export interface MockCall {
|
|
121
|
+
readonly context: Context;
|
|
122
|
+
readonly options?: SimpleStreamOptions;
|
|
123
|
+
}
|
|
124
|
+
/** Construction options. */
|
|
125
|
+
export interface MockModelOptions {
|
|
126
|
+
/** Model id. Defaults to `"mock-model"`. */
|
|
127
|
+
id?: string;
|
|
128
|
+
/** Provider string used in the returned AssistantMessage. Defaults to `"mock"`. */
|
|
129
|
+
provider?: string;
|
|
130
|
+
/** A sequence of responses, one per call. Accepts arrays, generators, or any iterable. */
|
|
131
|
+
responses?: MockResponseSource;
|
|
132
|
+
/** Fallback handler used when `responses` is exhausted. */
|
|
133
|
+
handler?: MockHandler;
|
|
134
|
+
/** Cost per million tokens. Defaults to zeros. */
|
|
135
|
+
cost?: Model["cost"];
|
|
136
|
+
/** Context window. Defaults to 200_000. */
|
|
137
|
+
contextWindow?: number;
|
|
138
|
+
/** Max output tokens. Defaults to 32_768. */
|
|
139
|
+
maxTokens?: number;
|
|
140
|
+
/** Whether the model claims to support reasoning. Defaults to false. */
|
|
141
|
+
reasoning?: boolean;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* A `Model<"mock">` that carries its own scripted state. Pass instances to
|
|
145
|
+
* `stream()` or agent configs, and use the same instance to inspect calls
|
|
146
|
+
* and feed additional handlers.
|
|
147
|
+
*/
|
|
148
|
+
export declare class MockModel implements Model<MockApi> {
|
|
149
|
+
readonly id: string;
|
|
150
|
+
readonly name: string;
|
|
151
|
+
readonly api: MockApi;
|
|
152
|
+
readonly provider: string;
|
|
153
|
+
readonly baseUrl = "mock://";
|
|
154
|
+
readonly reasoning: boolean;
|
|
155
|
+
readonly input: ("text" | "image")[];
|
|
156
|
+
readonly cost: Model["cost"];
|
|
157
|
+
readonly contextWindow: number;
|
|
158
|
+
readonly maxTokens: number;
|
|
159
|
+
/** Recorded calls in invocation order. */
|
|
160
|
+
readonly calls: MockCall[];
|
|
161
|
+
iterator?: Iterator<MockHandler> | AsyncIterator<MockHandler>;
|
|
162
|
+
exhausted: boolean;
|
|
163
|
+
readonly extras: MockHandler[];
|
|
164
|
+
fallback?: MockHandler;
|
|
165
|
+
toolCallCounter: number;
|
|
166
|
+
constructor(options?: MockModelOptions);
|
|
167
|
+
/** Back-compat alias: the model is its own handle. */
|
|
168
|
+
get model(): this;
|
|
169
|
+
/** A streamFn-compatible callable. Forward to `agentLoop` or pi `stream()`. */
|
|
170
|
+
stream: (_model: Model<Api>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStream;
|
|
171
|
+
/**
|
|
172
|
+
* Append a handler to the internal queue consumed AFTER the constructor
|
|
173
|
+
* `responses` source is exhausted (but before the fallback). Use this for
|
|
174
|
+
* interactive tests that decide responses after the model is created.
|
|
175
|
+
*/
|
|
176
|
+
push(response: MockHandler): void;
|
|
177
|
+
/** Reset recorded calls AND the extras queue. The constructor `responses` are NOT reset. */
|
|
178
|
+
reset(): void;
|
|
179
|
+
}
|
|
180
|
+
/** @deprecated Use {@link MockModel}; the class IS the handle. */
|
|
181
|
+
export type MockModelHandle = MockModel;
|
|
182
|
+
/** Check whether `model` was produced by `createMockModel`. */
|
|
183
|
+
export declare function isMockModel(model: Model<Api>): model is MockModel;
|
|
184
|
+
/** Construct a mock model. */
|
|
185
|
+
export declare function createMockModel(options?: MockModelOptions): MockModel;
|
|
186
|
+
/** Stream function for `Model<"mock">`. Matches the pi-ai per-provider stream signature. */
|
|
187
|
+
export declare function streamMock(model: Model<Api>, context: Context, options?: SimpleStreamOptions): AssistantMessageEventStream;
|
|
188
|
+
/** Convenience: register the mock provider with the global custom API registry. */
|
|
189
|
+
export declare function registerMockApi(sourceId?: string): void;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Context, Model, StreamFunction, StreamOptions, ToolChoice } from "../types";
|
|
2
|
+
export interface OllamaChatOptions extends StreamOptions {
|
|
3
|
+
reasoning?: "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
|
|
4
|
+
toolChoice?: ToolChoice;
|
|
5
|
+
}
|
|
6
|
+
type OllamaFunctionTool = {
|
|
7
|
+
type: "function";
|
|
8
|
+
function: {
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
parameters: Record<string, unknown>;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
type OllamaMessage = {
|
|
15
|
+
role: "system" | "user" | "assistant" | "tool";
|
|
16
|
+
content: string;
|
|
17
|
+
images?: string[];
|
|
18
|
+
thinking?: string;
|
|
19
|
+
tool_calls?: Array<{
|
|
20
|
+
type: "function";
|
|
21
|
+
function: {
|
|
22
|
+
index?: number;
|
|
23
|
+
name: string;
|
|
24
|
+
arguments: Record<string, unknown>;
|
|
25
|
+
};
|
|
26
|
+
}>;
|
|
27
|
+
tool_name?: string;
|
|
28
|
+
};
|
|
29
|
+
export declare function createChatBody(model: Model<"ollama-chat">, context: Context, options: OllamaChatOptions | undefined): {
|
|
30
|
+
model: string;
|
|
31
|
+
messages: OllamaMessage[];
|
|
32
|
+
tools?: OllamaFunctionTool[] | undefined;
|
|
33
|
+
think?: "high" | "low" | "medium" | boolean | undefined;
|
|
34
|
+
tool_choice?: "auto" | "none" | "required" | undefined;
|
|
35
|
+
options?: {
|
|
36
|
+
num_predict: number;
|
|
37
|
+
} | undefined;
|
|
38
|
+
stream: boolean;
|
|
39
|
+
};
|
|
40
|
+
export declare const streamOllama: StreamFunction<"ollama-chat">;
|
|
41
|
+
export {};
|