@mastra/code-sdk 0.0.0-client-tool-results-20260912062135
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/LICENSE.md +32 -0
- package/README.md +37 -0
- package/dist/acp/agent.d.ts +35 -0
- package/dist/acp/agent.d.ts.map +1 -0
- package/dist/acp/agent.js +161 -0
- package/dist/acp/agent.js.map +1 -0
- package/dist/acp/event-mapper.d.ts +22 -0
- package/dist/acp/event-mapper.d.ts.map +1 -0
- package/dist/acp/event-mapper.js +214 -0
- package/dist/acp/event-mapper.js.map +1 -0
- package/dist/acp/index.d.ts +8 -0
- package/dist/acp/index.d.ts.map +1 -0
- package/dist/acp/index.js +65 -0
- package/dist/acp/index.js.map +1 -0
- package/dist/acp/server.d.ts +7 -0
- package/dist/acp/server.d.ts.map +1 -0
- package/dist/acp/server.js +35 -0
- package/dist/acp/server.js.map +1 -0
- package/dist/acp.d.ts +2 -0
- package/dist/acp.d.ts.map +1 -0
- package/dist/acp.js +2 -0
- package/dist/agents/context-audit.d.ts +84 -0
- package/dist/agents/context-audit.d.ts.map +1 -0
- package/dist/agents/context-audit.js +118 -0
- package/dist/agents/context-audit.js.map +1 -0
- package/dist/agents/credential-resolver.d.ts +63 -0
- package/dist/agents/credential-resolver.d.ts.map +1 -0
- package/dist/agents/credential-resolver.js +97 -0
- package/dist/agents/credential-resolver.js.map +1 -0
- package/dist/agents/custom-provider-source.d.ts +35 -0
- package/dist/agents/custom-provider-source.d.ts.map +1 -0
- package/dist/agents/custom-provider-source.js +25 -0
- package/dist/agents/custom-provider-source.js.map +1 -0
- package/dist/agents/instructions.d.ts +29 -0
- package/dist/agents/instructions.d.ts.map +1 -0
- package/dist/agents/instructions.js +58 -0
- package/dist/agents/instructions.js.map +1 -0
- package/dist/agents/mastracode-gateway.d.ts +74 -0
- package/dist/agents/mastracode-gateway.d.ts.map +1 -0
- package/dist/agents/mastracode-gateway.js +431 -0
- package/dist/agents/mastracode-gateway.js.map +1 -0
- package/dist/agents/memory.d.ts +30 -0
- package/dist/agents/memory.d.ts.map +1 -0
- package/dist/agents/memory.js +171 -0
- package/dist/agents/memory.js.map +1 -0
- package/dist/agents/model.d.ts +81 -0
- package/dist/agents/model.d.ts.map +1 -0
- package/dist/agents/model.js +155 -0
- package/dist/agents/model.js.map +1 -0
- package/dist/agents/modes/build.d.ts +10 -0
- package/dist/agents/modes/build.d.ts.map +1 -0
- package/dist/agents/modes/build.js +49 -0
- package/dist/agents/modes/build.js.map +1 -0
- package/dist/agents/modes/explore.d.ts +10 -0
- package/dist/agents/modes/explore.d.ts.map +1 -0
- package/dist/agents/modes/explore.js +42 -0
- package/dist/agents/modes/explore.js.map +1 -0
- package/dist/agents/modes/plan.d.ts +6 -0
- package/dist/agents/modes/plan.d.ts.map +1 -0
- package/dist/agents/modes/plan.js +42 -0
- package/dist/agents/modes/plan.js.map +1 -0
- package/dist/agents/prompts/agent-instructions.d.ts +70 -0
- package/dist/agents/prompts/agent-instructions.d.ts.map +1 -0
- package/dist/agents/prompts/agent-instructions.js +211 -0
- package/dist/agents/prompts/agent-instructions.js.map +1 -0
- package/dist/agents/prompts/build.d.ts +12 -0
- package/dist/agents/prompts/build.d.ts.map +1 -0
- package/dist/agents/prompts/build.js +76 -0
- package/dist/agents/prompts/build.js.map +1 -0
- package/dist/agents/prompts/fast.d.ts +5 -0
- package/dist/agents/prompts/fast.d.ts.map +1 -0
- package/dist/agents/prompts/fast.js +26 -0
- package/dist/agents/prompts/fast.js.map +1 -0
- package/dist/agents/prompts/index.d.ts +50 -0
- package/dist/agents/prompts/index.d.ts.map +1 -0
- package/dist/agents/prompts/index.js +119 -0
- package/dist/agents/prompts/index.js.map +1 -0
- package/dist/agents/prompts/model.d.ts +5 -0
- package/dist/agents/prompts/model.d.ts.map +1 -0
- package/dist/agents/prompts/model.js +23 -0
- package/dist/agents/prompts/model.js.map +1 -0
- package/dist/agents/prompts/plan.d.ts +6 -0
- package/dist/agents/prompts/plan.d.ts.map +1 -0
- package/dist/agents/prompts/plan.js +111 -0
- package/dist/agents/prompts/plan.js.map +1 -0
- package/dist/agents/prompts/tool-guidance.d.ts +18 -0
- package/dist/agents/prompts/tool-guidance.d.ts.map +1 -0
- package/dist/agents/prompts/tool-guidance.js +180 -0
- package/dist/agents/prompts/tool-guidance.js.map +1 -0
- package/dist/agents/sandbox-filesystem.d.ts +117 -0
- package/dist/agents/sandbox-filesystem.d.ts.map +1 -0
- package/dist/agents/sandbox-filesystem.js +356 -0
- package/dist/agents/sandbox-filesystem.js.map +1 -0
- package/dist/agents/subagents/execute.d.ts +3 -0
- package/dist/agents/subagents/execute.d.ts.map +1 -0
- package/dist/agents/subagents/execute.js +27 -0
- package/dist/agents/subagents/execute.js.map +1 -0
- package/dist/agents/subagents/explore.d.ts +3 -0
- package/dist/agents/subagents/explore.d.ts.map +1 -0
- package/dist/agents/subagents/explore.js +18 -0
- package/dist/agents/subagents/explore.js.map +1 -0
- package/dist/agents/subagents/plan.d.ts +3 -0
- package/dist/agents/subagents/plan.d.ts.map +1 -0
- package/dist/agents/subagents/plan.js +18 -0
- package/dist/agents/subagents/plan.js.map +1 -0
- package/dist/agents/thread-caveman-state.d.ts +17 -0
- package/dist/agents/thread-caveman-state.d.ts.map +1 -0
- package/dist/agents/thread-caveman-state.js +107 -0
- package/dist/agents/thread-caveman-state.js.map +1 -0
- package/dist/agents/tool-availability.d.ts +10 -0
- package/dist/agents/tool-availability.d.ts.map +1 -0
- package/dist/agents/tool-availability.js +96 -0
- package/dist/agents/tool-availability.js.map +1 -0
- package/dist/agents/tools.d.ts +36 -0
- package/dist/agents/tools.d.ts.map +1 -0
- package/dist/agents/tools.js +117 -0
- package/dist/agents/tools.js.map +1 -0
- package/dist/agents/workflow-builder-agent.d.ts +2 -0
- package/dist/agents/workflow-builder-agent.d.ts.map +1 -0
- package/dist/agents/workflow-builder-agent.js +80 -0
- package/dist/agents/workflow-builder-agent.js.map +1 -0
- package/dist/agents/workspace.d.ts +32 -0
- package/dist/agents/workspace.d.ts.map +1 -0
- package/dist/agents/workspace.js +208 -0
- package/dist/agents/workspace.js.map +1 -0
- package/dist/analytics.d.ts +18 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +163 -0
- package/dist/analytics.js.map +1 -0
- package/dist/auth/authorization-input.d.ts +16 -0
- package/dist/auth/authorization-input.d.ts.map +1 -0
- package/dist/auth/authorization-input.js +42 -0
- package/dist/auth/authorization-input.js.map +1 -0
- package/dist/auth/device-code.d.ts +93 -0
- package/dist/auth/device-code.d.ts.map +1 -0
- package/dist/auth/device-code.js +129 -0
- package/dist/auth/device-code.js.map +1 -0
- package/dist/auth/index.d.ts +12 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +8 -0
- package/dist/auth/pkce.d.ts +13 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/pkce.js +32 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/auth/provider-auth-error.d.ts +12 -0
- package/dist/auth/provider-auth-error.d.ts.map +1 -0
- package/dist/auth/provider-auth-error.js +16 -0
- package/dist/auth/provider-auth-error.js.map +1 -0
- package/dist/auth/providers/anthropic.d.ts +40 -0
- package/dist/auth/providers/anthropic.d.ts.map +1 -0
- package/dist/auth/providers/anthropic.js +126 -0
- package/dist/auth/providers/anthropic.js.map +1 -0
- package/dist/auth/providers/github-copilot.d.ts +154 -0
- package/dist/auth/providers/github-copilot.d.ts.map +1 -0
- package/dist/auth/providers/github-copilot.js +340 -0
- package/dist/auth/providers/github-copilot.js.map +1 -0
- package/dist/auth/providers/kimi-coding.d.ts +38 -0
- package/dist/auth/providers/kimi-coding.d.ts.map +1 -0
- package/dist/auth/providers/kimi-coding.js +232 -0
- package/dist/auth/providers/kimi-coding.js.map +1 -0
- package/dist/auth/providers/openai-codex.d.ts +139 -0
- package/dist/auth/providers/openai-codex.d.ts.map +1 -0
- package/dist/auth/providers/openai-codex.js +519 -0
- package/dist/auth/providers/openai-codex.js.map +1 -0
- package/dist/auth/providers/xai.d.ts +64 -0
- package/dist/auth/providers/xai.d.ts.map +1 -0
- package/dist/auth/providers/xai.js +205 -0
- package/dist/auth/providers/xai.js.map +1 -0
- package/dist/auth/storage.d.ts +92 -0
- package/dist/auth/storage.d.ts.map +1 -0
- package/dist/auth/storage.js +211 -0
- package/dist/auth/storage.js.map +1 -0
- package/dist/auth/types.d.ts +89 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +1 -0
- package/dist/clipboard/index.d.ts +26 -0
- package/dist/clipboard/index.d.ts.map +1 -0
- package/dist/clipboard/index.js +226 -0
- package/dist/clipboard/index.js.map +1 -0
- package/dist/constants.d.ts +10 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +18 -0
- package/dist/constants.js.map +1 -0
- package/dist/error-classification.d.ts +10 -0
- package/dist/error-classification.d.ts.map +1 -0
- package/dist/error-classification.js +22 -0
- package/dist/error-classification.js.map +1 -0
- package/dist/evals/context-builder.d.ts +41 -0
- package/dist/evals/context-builder.d.ts.map +1 -0
- package/dist/evals/context-builder.js +161 -0
- package/dist/evals/context-builder.js.map +1 -0
- package/dist/evals/index.d.ts +4 -0
- package/dist/evals/index.d.ts.map +1 -0
- package/dist/evals/index.js +5 -0
- package/dist/evals/scorers/classify-command.d.ts +31 -0
- package/dist/evals/scorers/classify-command.d.ts.map +1 -0
- package/dist/evals/scorers/classify-command.js +73 -0
- package/dist/evals/scorers/classify-command.js.map +1 -0
- package/dist/evals/scorers/efficiency.d.ts +44 -0
- package/dist/evals/scorers/efficiency.d.ts.map +1 -0
- package/dist/evals/scorers/efficiency.js +259 -0
- package/dist/evals/scorers/efficiency.js.map +1 -0
- package/dist/evals/scorers/extract-tools.d.ts +25 -0
- package/dist/evals/scorers/extract-tools.d.ts.map +1 -0
- package/dist/evals/scorers/extract-tools.js +60 -0
- package/dist/evals/scorers/extract-tools.js.map +1 -0
- package/dist/evals/scorers/index.d.ts +3 -0
- package/dist/evals/scorers/index.d.ts.map +1 -0
- package/dist/evals/scorers/index.js +3 -0
- package/dist/evals/scorers/outcome.d.ts +49 -0
- package/dist/evals/scorers/outcome.d.ts.map +1 -0
- package/dist/evals/scorers/outcome.js +347 -0
- package/dist/evals/scorers/outcome.js.map +1 -0
- package/dist/goal-manager.d.ts +78 -0
- package/dist/goal-manager.d.ts.map +1 -0
- package/dist/goal-manager.js +273 -0
- package/dist/goal-manager.js.map +1 -0
- package/dist/goal-signal.d.ts +14 -0
- package/dist/goal-signal.d.ts.map +1 -0
- package/dist/goal-signal.js +17 -0
- package/dist/goal-signal.js.map +1 -0
- package/dist/headless/cli.d.ts +42 -0
- package/dist/headless/cli.d.ts.map +1 -0
- package/dist/headless/cli.js +209 -0
- package/dist/headless/cli.js.map +1 -0
- package/dist/headless/flags.d.ts +33 -0
- package/dist/headless/flags.d.ts.map +1 -0
- package/dist/headless/flags.js +190 -0
- package/dist/headless/flags.js.map +1 -0
- package/dist/headless/format.d.ts +38 -0
- package/dist/headless/format.d.ts.map +1 -0
- package/dist/headless/format.js +89 -0
- package/dist/headless/format.js.map +1 -0
- package/dist/headless/index.d.ts +25 -0
- package/dist/headless/index.d.ts.map +1 -0
- package/dist/headless/index.js +6 -0
- package/dist/headless/policy.d.ts +17 -0
- package/dist/headless/policy.d.ts.map +1 -0
- package/dist/headless/policy.js +42 -0
- package/dist/headless/policy.js.map +1 -0
- package/dist/headless/run-mc.d.ts +7 -0
- package/dist/headless/run-mc.d.ts.map +1 -0
- package/dist/headless/run-mc.js +346 -0
- package/dist/headless/run-mc.js.map +1 -0
- package/dist/headless/types.d.ts +158 -0
- package/dist/headless/types.d.ts.map +1 -0
- package/dist/headless/types.js +19 -0
- package/dist/headless/types.js.map +1 -0
- package/dist/hooks/config.d.ts +11 -0
- package/dist/hooks/config.d.ts.map +1 -0
- package/dist/hooks/config.js +73 -0
- package/dist/hooks/config.js.map +1 -0
- package/dist/hooks/executor.d.ts +13 -0
- package/dist/hooks/executor.d.ts.map +1 -0
- package/dist/hooks/executor.js +129 -0
- package/dist/hooks/executor.js.map +1 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +5 -0
- package/dist/hooks/manager.d.ts +54 -0
- package/dist/hooks/manager.d.ts.map +1 -0
- package/dist/hooks/manager.js +241 -0
- package/dist/hooks/manager.js.map +1 -0
- package/dist/hooks/types.d.ts +172 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +8 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +341 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +919 -0
- package/dist/index.js.map +1 -0
- package/dist/ipc/ipc-reporter.d.ts +14 -0
- package/dist/ipc/ipc-reporter.d.ts.map +1 -0
- package/dist/ipc/ipc-reporter.js +21 -0
- package/dist/ipc/ipc-reporter.js.map +1 -0
- package/dist/knowledge-inspector.d.ts +119 -0
- package/dist/knowledge-inspector.d.ts.map +1 -0
- package/dist/knowledge-inspector.js +508 -0
- package/dist/knowledge-inspector.js.map +1 -0
- package/dist/knowledge-scope.d.ts +35 -0
- package/dist/knowledge-scope.d.ts.map +1 -0
- package/dist/knowledge-scope.js +47 -0
- package/dist/knowledge-scope.js.map +1 -0
- package/dist/lsp/client.d.ts +56 -0
- package/dist/lsp/client.d.ts.map +1 -0
- package/dist/lsp/client.js +251 -0
- package/dist/lsp/client.js.map +1 -0
- package/dist/lsp/index.d.ts +4 -0
- package/dist/lsp/index.d.ts.map +1 -0
- package/dist/lsp/index.js +4 -0
- package/dist/lsp/language.d.ts +9 -0
- package/dist/lsp/language.d.ts.map +1 -0
- package/dist/lsp/language.js +44 -0
- package/dist/lsp/language.js.map +1 -0
- package/dist/lsp/manager.d.ts +34 -0
- package/dist/lsp/manager.d.ts.map +1 -0
- package/dist/lsp/manager.js +82 -0
- package/dist/lsp/manager.js.map +1 -0
- package/dist/lsp/server.d.ts +27 -0
- package/dist/lsp/server.d.ts.map +1 -0
- package/dist/lsp/server.js +159 -0
- package/dist/lsp/server.js.map +1 -0
- package/dist/lsp/workspace.d.ts +9 -0
- package/dist/lsp/workspace.d.ts.map +1 -0
- package/dist/lsp/workspace.js +55 -0
- package/dist/lsp/workspace.js.map +1 -0
- package/dist/mcp/config.d.ts +62 -0
- package/dist/mcp/config.d.ts.map +1 -0
- package/dist/mcp/config.js +301 -0
- package/dist/mcp/config.js.map +1 -0
- package/dist/mcp/index.d.ts +6 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +3 -0
- package/dist/mcp/manager.d.ts +101 -0
- package/dist/mcp/manager.d.ts.map +1 -0
- package/dist/mcp/manager.js +644 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/state.d.ts +35 -0
- package/dist/mcp/state.d.ts.map +1 -0
- package/dist/mcp/state.js +97 -0
- package/dist/mcp/state.js.map +1 -0
- package/dist/mcp/types.d.ts +125 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +1 -0
- package/dist/onboarding/custom-packs.d.ts +7 -0
- package/dist/onboarding/custom-packs.d.ts.map +1 -0
- package/dist/onboarding/custom-packs.js +17 -0
- package/dist/onboarding/custom-packs.js.map +1 -0
- package/dist/onboarding/custom-providers.d.ts +4 -0
- package/dist/onboarding/custom-providers.d.ts.map +1 -0
- package/dist/onboarding/custom-providers.js +30 -0
- package/dist/onboarding/custom-providers.js.map +1 -0
- package/dist/onboarding/index.d.ts +5 -0
- package/dist/onboarding/index.d.ts.map +1 -0
- package/dist/onboarding/index.js +3 -0
- package/dist/onboarding/om-settings.d.ts +25 -0
- package/dist/onboarding/om-settings.d.ts.map +1 -0
- package/dist/onboarding/om-settings.js +47 -0
- package/dist/onboarding/om-settings.js.map +1 -0
- package/dist/onboarding/packs.d.ts +49 -0
- package/dist/onboarding/packs.d.ts.map +1 -0
- package/dist/onboarding/packs.js +182 -0
- package/dist/onboarding/packs.js.map +1 -0
- package/dist/onboarding/settings.d.ts +438 -0
- package/dist/onboarding/settings.d.ts.map +1 -0
- package/dist/onboarding/settings.js +847 -0
- package/dist/onboarding/settings.js.map +1 -0
- package/dist/permissions.d.ts +55 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +137 -0
- package/dist/permissions.js.map +1 -0
- package/dist/plugin.d.ts +144 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +30 -0
- package/dist/plugin.js.map +1 -0
- package/dist/plugins/dependencies.d.ts +9 -0
- package/dist/plugins/dependencies.d.ts.map +1 -0
- package/dist/plugins/dependencies.js +88 -0
- package/dist/plugins/dependencies.js.map +1 -0
- package/dist/plugins/install.d.ts +21 -0
- package/dist/plugins/install.d.ts.map +1 -0
- package/dist/plugins/install.js +190 -0
- package/dist/plugins/install.js.map +1 -0
- package/dist/plugins/loader.d.ts +19 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +258 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manager.d.ts +98 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +456 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/manifest.d.ts +14 -0
- package/dist/plugins/manifest.d.ts.map +1 -0
- package/dist/plugins/manifest.js +50 -0
- package/dist/plugins/manifest.js.map +1 -0
- package/dist/plugins/package-link.d.ts +3 -0
- package/dist/plugins/package-link.d.ts.map +1 -0
- package/dist/plugins/package-link.js +61 -0
- package/dist/plugins/package-link.js.map +1 -0
- package/dist/plugins/paths.d.ts +10 -0
- package/dist/plugins/paths.d.ts.map +1 -0
- package/dist/plugins/paths.js +25 -0
- package/dist/plugins/paths.js.map +1 -0
- package/dist/plugins/registry.d.ts +8 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +112 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/scaffold.d.ts +10 -0
- package/dist/plugins/scaffold.d.ts.map +1 -0
- package/dist/plugins/scaffold.js +116 -0
- package/dist/plugins/scaffold.js.map +1 -0
- package/dist/plugins/signal-lane.d.ts +58 -0
- package/dist/plugins/signal-lane.d.ts.map +1 -0
- package/dist/plugins/signal-lane.js +166 -0
- package/dist/plugins/signal-lane.js.map +1 -0
- package/dist/plugins/types.d.ts +81 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +1 -0
- package/dist/process-memory-diagnostics.d.ts +135 -0
- package/dist/process-memory-diagnostics.d.ts.map +1 -0
- package/dist/process-memory-diagnostics.js +500 -0
- package/dist/process-memory-diagnostics.js.map +1 -0
- package/dist/processors/plan-rejection-abort.d.ts +12 -0
- package/dist/processors/plan-rejection-abort.d.ts.map +1 -0
- package/dist/processors/plan-rejection-abort.js +54 -0
- package/dist/processors/plan-rejection-abort.js.map +1 -0
- package/dist/providers/amazon-bedrock-gateway.d.ts +47 -0
- package/dist/providers/amazon-bedrock-gateway.d.ts.map +1 -0
- package/dist/providers/amazon-bedrock-gateway.js +153 -0
- package/dist/providers/amazon-bedrock-gateway.js.map +1 -0
- package/dist/providers/amazon-bedrock.d.ts +28 -0
- package/dist/providers/amazon-bedrock.d.ts.map +1 -0
- package/dist/providers/amazon-bedrock.js +102 -0
- package/dist/providers/amazon-bedrock.js.map +1 -0
- package/dist/providers/claude-max.d.ts +65 -0
- package/dist/providers/claude-max.d.ts.map +1 -0
- package/dist/providers/claude-max.js +252 -0
- package/dist/providers/claude-max.js.map +1 -0
- package/dist/providers/github-copilot.d.ts +60 -0
- package/dist/providers/github-copilot.d.ts.map +1 -0
- package/dist/providers/github-copilot.js +266 -0
- package/dist/providers/github-copilot.js.map +1 -0
- package/dist/providers/kimi-coding.d.ts +15 -0
- package/dist/providers/kimi-coding.d.ts.map +1 -0
- package/dist/providers/kimi-coding.js +69 -0
- package/dist/providers/kimi-coding.js.map +1 -0
- package/dist/providers/openai-codex.d.ts +73 -0
- package/dist/providers/openai-codex.d.ts.map +1 -0
- package/dist/providers/openai-codex.js +306 -0
- package/dist/providers/openai-codex.js.map +1 -0
- package/dist/providers/xai.d.ts +33 -0
- package/dist/providers/xai.d.ts.map +1 -0
- package/dist/providers/xai.js +71 -0
- package/dist/providers/xai.js.map +1 -0
- package/dist/schema.d.ts +200 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +92 -0
- package/dist/schema.js.map +1 -0
- package/dist/theme-palette.d.ts +17 -0
- package/dist/theme-palette.d.ts.map +1 -0
- package/dist/theme-palette.js +21 -0
- package/dist/theme-palette.js.map +1 -0
- package/dist/thinking.d.ts +33 -0
- package/dist/thinking.d.ts.map +1 -0
- package/dist/thinking.js +58 -0
- package/dist/thinking.js.map +1 -0
- package/dist/tool-names.d.ts +73 -0
- package/dist/tool-names.d.ts.map +1 -0
- package/dist/tool-names.js +52 -0
- package/dist/tool-names.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +3 -0
- package/dist/tools/request-sandbox-access.d.ts +6 -0
- package/dist/tools/request-sandbox-access.d.ts.map +1 -0
- package/dist/tools/request-sandbox-access.js +79 -0
- package/dist/tools/request-sandbox-access.js.map +1 -0
- package/dist/tools/utils.d.ts +20 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +32 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/tools/web-search.d.ts +114 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +155 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/tools/workflows/create-workflow.d.ts +7 -0
- package/dist/tools/workflows/create-workflow.d.ts.map +1 -0
- package/dist/tools/workflows/create-workflow.js +81 -0
- package/dist/tools/workflows/create-workflow.js.map +1 -0
- package/dist/tools/workflows/delete-workflow.d.ts +7 -0
- package/dist/tools/workflows/delete-workflow.d.ts.map +1 -0
- package/dist/tools/workflows/delete-workflow.js +21 -0
- package/dist/tools/workflows/delete-workflow.js.map +1 -0
- package/dist/tools/workflows/ephemeral-memory.d.ts +7 -0
- package/dist/tools/workflows/ephemeral-memory.d.ts.map +1 -0
- package/dist/tools/workflows/ephemeral-memory.js +45 -0
- package/dist/tools/workflows/ephemeral-memory.js.map +1 -0
- package/dist/tools/workflows/extract-json-schema.d.ts +12 -0
- package/dist/tools/workflows/extract-json-schema.d.ts.map +1 -0
- package/dist/tools/workflows/extract-json-schema.js +22 -0
- package/dist/tools/workflows/extract-json-schema.js.map +1 -0
- package/dist/tools/workflows/get-workflow.d.ts +11 -0
- package/dist/tools/workflows/get-workflow.d.ts.map +1 -0
- package/dist/tools/workflows/get-workflow.js +34 -0
- package/dist/tools/workflows/get-workflow.js.map +1 -0
- package/dist/tools/workflows/list-available-agents.d.ts +8 -0
- package/dist/tools/workflows/list-available-agents.d.ts.map +1 -0
- package/dist/tools/workflows/list-available-agents.js +32 -0
- package/dist/tools/workflows/list-available-agents.js.map +1 -0
- package/dist/tools/workflows/list-available-tools.d.ts +9 -0
- package/dist/tools/workflows/list-available-tools.d.ts.map +1 -0
- package/dist/tools/workflows/list-available-tools.js +40 -0
- package/dist/tools/workflows/list-available-tools.js.map +1 -0
- package/dist/tools/workflows/list-available-workflows.d.ts +9 -0
- package/dist/tools/workflows/list-available-workflows.d.ts.map +1 -0
- package/dist/tools/workflows/list-available-workflows.js +32 -0
- package/dist/tools/workflows/list-available-workflows.js.map +1 -0
- package/dist/tools/workflows/list-workflows.d.ts +9 -0
- package/dist/tools/workflows/list-workflows.d.ts.map +1 -0
- package/dist/tools/workflows/list-workflows.js +33 -0
- package/dist/tools/workflows/list-workflows.js.map +1 -0
- package/dist/tools/workflows/run-workflow.d.ts +9 -0
- package/dist/tools/workflows/run-workflow.d.ts.map +1 -0
- package/dist/tools/workflows/run-workflow.js +52 -0
- package/dist/tools/workflows/run-workflow.js.map +1 -0
- package/dist/tools/workflows/save-workflow.d.ts +1015 -0
- package/dist/tools/workflows/save-workflow.d.ts.map +1 -0
- package/dist/tools/workflows/save-workflow.js +28 -0
- package/dist/tools/workflows/save-workflow.js.map +1 -0
- package/dist/tools/workflows/tool-ids.d.ts +15 -0
- package/dist/tools/workflows/tool-ids.d.ts.map +1 -0
- package/dist/tools/workflows/tool-ids.js +19 -0
- package/dist/tools/workflows/tool-ids.js.map +1 -0
- package/dist/utils/binaries.d.ts +7 -0
- package/dist/utils/binaries.d.ts.map +1 -0
- package/dist/utils/binaries.js +78 -0
- package/dist/utils/binaries.js.map +1 -0
- package/dist/utils/debug-log.d.ts +12 -0
- package/dist/utils/debug-log.d.ts.map +1 -0
- package/dist/utils/debug-log.js +59 -0
- package/dist/utils/debug-log.js.map +1 -0
- package/dist/utils/errors.d.ts +36 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +196 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/gateway-sync.d.ts +26 -0
- package/dist/utils/gateway-sync.d.ts.map +1 -0
- package/dist/utils/gateway-sync.js +61 -0
- package/dist/utils/gateway-sync.js.map +1 -0
- package/dist/utils/path-security.d.ts +2 -0
- package/dist/utils/path-security.d.ts.map +1 -0
- package/dist/utils/path-security.js +10 -0
- package/dist/utils/path-security.js.map +1 -0
- package/dist/utils/plan-diff.d.ts +25 -0
- package/dist/utils/plan-diff.d.ts.map +1 -0
- package/dist/utils/plan-diff.js +62 -0
- package/dist/utils/plan-diff.js.map +1 -0
- package/dist/utils/plans.d.ts +59 -0
- package/dist/utils/plans.d.ts.map +1 -0
- package/dist/utils/plans.js +117 -0
- package/dist/utils/plans.js.map +1 -0
- package/dist/utils/project.d.ts +160 -0
- package/dist/utils/project.d.ts.map +1 -0
- package/dist/utils/project.js +364 -0
- package/dist/utils/project.js.map +1 -0
- package/dist/utils/signals-pubsub.d.ts +41 -0
- package/dist/utils/signals-pubsub.d.ts.map +1 -0
- package/dist/utils/signals-pubsub.js +122 -0
- package/dist/utils/signals-pubsub.js.map +1 -0
- package/dist/utils/slash-command-loader.d.ts +52 -0
- package/dist/utils/slash-command-loader.d.ts.map +1 -0
- package/dist/utils/slash-command-loader.js +142 -0
- package/dist/utils/slash-command-loader.js.map +1 -0
- package/dist/utils/slash-command-processor.d.ts +14 -0
- package/dist/utils/slash-command-processor.d.ts.map +1 -0
- package/dist/utils/slash-command-processor.js +109 -0
- package/dist/utils/slash-command-processor.js.map +1 -0
- package/dist/utils/stdin-pipe.d.ts +33 -0
- package/dist/utils/stdin-pipe.d.ts.map +1 -0
- package/dist/utils/stdin-pipe.js +96 -0
- package/dist/utils/stdin-pipe.js.map +1 -0
- package/dist/utils/storage-factory.d.ts +50 -0
- package/dist/utils/storage-factory.d.ts.map +1 -0
- package/dist/utils/storage-factory.js +121 -0
- package/dist/utils/storage-factory.js.map +1 -0
- package/dist/utils/storage-maintenance.d.ts +103 -0
- package/dist/utils/storage-maintenance.d.ts.map +1 -0
- package/dist/utils/storage-maintenance.js +274 -0
- package/dist/utils/storage-maintenance.js.map +1 -0
- package/dist/utils/thread-lock.d.ts +26 -0
- package/dist/utils/thread-lock.d.ts.map +1 -0
- package/dist/utils/thread-lock.js +112 -0
- package/dist/utils/thread-lock.js.map +1 -0
- package/dist/utils/token-estimator.d.ts +3 -0
- package/dist/utils/token-estimator.d.ts.map +1 -0
- package/dist/utils/token-estimator.js +21 -0
- package/dist/utils/token-estimator.js.map +1 -0
- package/dist/utils/update-check.d.ts +101 -0
- package/dist/utils/update-check.d.ts.map +1 -0
- package/dist/utils/update-check.js +383 -0
- package/dist/utils/update-check.js.map +1 -0
- package/dist/voice/stt-registry.d.ts +64 -0
- package/dist/voice/stt-registry.d.ts.map +1 -0
- package/dist/voice/stt-registry.js +144 -0
- package/dist/voice/stt-registry.js.map +1 -0
- package/dist/workflows/register-primitives.d.ts +52 -0
- package/dist/workflows/register-primitives.d.ts.map +1 -0
- package/dist/workflows/register-primitives.js +40 -0
- package/dist/workflows/register-primitives.js.map +1 -0
- package/dist/workflows/service.d.ts +64 -0
- package/dist/workflows/service.d.ts.map +1 -0
- package/dist/workflows/service.js +53 -0
- package/dist/workflows/service.js.map +1 -0
- package/package.json +97 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { createAmazonBedrock } from '@ai-sdk/amazon-bedrock';
|
|
2
|
+
import { MastraModelGateway } from '@mastra/core/llm';
|
|
3
|
+
import type { GatewayAuthRequest, GatewayAuthResult, GatewayLanguageModel, ProviderConfig } from '@mastra/core/llm';
|
|
4
|
+
type BedrockModel = ReturnType<ReturnType<typeof createAmazonBedrock>>;
|
|
5
|
+
type BedrockPrompt = Parameters<BedrockModel['doGenerate']>[0]['prompt'];
|
|
6
|
+
export declare function supportsBedrockPromptCaching(modelId: string): boolean;
|
|
7
|
+
export declare function addBedrockCachePoints(prompt: BedrockPrompt): BedrockPrompt;
|
|
8
|
+
export declare function withBedrockCache(model: BedrockModel): BedrockModel;
|
|
9
|
+
export declare const AMAZON_BEDROCK_GATEWAY_ID = "amazon-bedrock";
|
|
10
|
+
/**
|
|
11
|
+
* Whether AWS credentials look available for Bedrock.
|
|
12
|
+
*
|
|
13
|
+
* Amazon Bedrock authenticates with AWS SigV4 rather than a bearer API key, so
|
|
14
|
+
* this only governs whether Bedrock models are offered as "authenticated" in the
|
|
15
|
+
* picker. We look for the common signals (env vars, bearer token, a configured
|
|
16
|
+
* profile, or a shared credentials/config file) rather than resolving
|
|
17
|
+
* credentials here, since the auth checker must stay sync.
|
|
18
|
+
*/
|
|
19
|
+
export declare function hasAwsCredentials(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Standalone Amazon Bedrock gateway.
|
|
22
|
+
*
|
|
23
|
+
* Bedrock is resolved directly via AWS SigV4 (not through the model router) and
|
|
24
|
+
* its models are surfaced from the public models.dev catalog. It is exposed as
|
|
25
|
+
* its own gateway/provider (`amazon-bedrock/...`) rather than nested under the
|
|
26
|
+
* MastraCode gateway namespace.
|
|
27
|
+
*/
|
|
28
|
+
export declare class AmazonBedrockGateway extends MastraModelGateway {
|
|
29
|
+
readonly id = "amazon-bedrock";
|
|
30
|
+
readonly name = "Amazon Bedrock";
|
|
31
|
+
shouldEnable(): boolean;
|
|
32
|
+
fetchProviders(): Promise<Record<string, ProviderConfig>>;
|
|
33
|
+
buildUrl(_modelId: string): string | undefined;
|
|
34
|
+
getApiKey(_modelId: string): Promise<string>;
|
|
35
|
+
resolveAuth(_request: GatewayAuthRequest): GatewayAuthResult | undefined;
|
|
36
|
+
resolveLanguageModel(args: {
|
|
37
|
+
modelId: string;
|
|
38
|
+
providerId: string;
|
|
39
|
+
apiKey: string;
|
|
40
|
+
headers?: Record<string, string>;
|
|
41
|
+
transport?: any;
|
|
42
|
+
responsesWebSocket?: any;
|
|
43
|
+
}): GatewayLanguageModel;
|
|
44
|
+
}
|
|
45
|
+
export declare function createAmazonBedrockGateway(): AmazonBedrockGateway;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=amazon-bedrock-gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amazon-bedrock-gateway.d.ts","sourceRoot":"","sources":["../../src/providers/amazon-bedrock-gateway.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIpH,KAAK,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC;AACvE,KAAK,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAczE,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAsC1E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAclE;AAED,eAAO,MAAM,yBAAyB,mBAAmB,CAAC;AAE1D;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAuB3C;AA0BD;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC1D,QAAQ,CAAC,EAAE,oBAA6B;IACxC,QAAQ,CAAC,IAAI,oBAAoB;IAEjC,YAAY,IAAI,OAAO;IAIjB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAiB/D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD,WAAW,CAAC,QAAQ,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,SAAS;IAUxE,oBAAoB,CAAC,IAAI,EAAE;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,SAAS,CAAC,EAAE,GAAG,CAAC;QAChB,kBAAkB,CAAC,EAAE,GAAG,CAAC;KAC1B,GAAG,oBAAoB;CAGzB;AAED,wBAAgB,0BAA0B,IAAI,oBAAoB,CAEjE"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { getBedrockModelCatalog } from "./amazon-bedrock.js";
|
|
2
|
+
import { existsSync } from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { MastraModelGateway } from "@mastra/core/llm";
|
|
5
|
+
import { createAmazonBedrock } from "@ai-sdk/amazon-bedrock";
|
|
6
|
+
import { fromNodeProviderChain } from "@aws-sdk/credential-providers";
|
|
7
|
+
//#region src/providers/amazon-bedrock-gateway.ts
|
|
8
|
+
const CACHEABLE_BEDROCK_MODEL_IDS = [
|
|
9
|
+
"anthropic.claude-3-5-haiku-",
|
|
10
|
+
"anthropic.claude-3-5-sonnet-20241022-v2:0",
|
|
11
|
+
"anthropic.claude-3-7-sonnet-",
|
|
12
|
+
"anthropic.claude-fable-5",
|
|
13
|
+
"anthropic.claude-haiku-4-5-",
|
|
14
|
+
"anthropic.claude-opus-4-",
|
|
15
|
+
"anthropic.claude-opus-5",
|
|
16
|
+
"anthropic.claude-sonnet-4-",
|
|
17
|
+
"anthropic.claude-sonnet-5"
|
|
18
|
+
];
|
|
19
|
+
function supportsBedrockPromptCaching(modelId) {
|
|
20
|
+
return CACHEABLE_BEDROCK_MODEL_IDS.some((cacheableModelId) => modelId.includes(cacheableModelId));
|
|
21
|
+
}
|
|
22
|
+
function addBedrockCachePoints(prompt) {
|
|
23
|
+
const result = [...prompt];
|
|
24
|
+
const markCachePoint = (message) => ({
|
|
25
|
+
...message,
|
|
26
|
+
providerOptions: {
|
|
27
|
+
...message.providerOptions,
|
|
28
|
+
bedrock: {
|
|
29
|
+
...message.providerOptions?.bedrock,
|
|
30
|
+
cachePoint: { type: "default" }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
let lastSystemIndex = -1;
|
|
35
|
+
for (let index = result.length - 1; index >= 0; index--) if (result[index].role === "system") {
|
|
36
|
+
lastSystemIndex = index;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
if (lastSystemIndex >= 0) result[lastSystemIndex] = markCachePoint(result[lastSystemIndex]);
|
|
40
|
+
let lastNonSystemIndex = -1;
|
|
41
|
+
for (let index = result.length - 1; index >= 0; index--) if (result[index].role !== "system") {
|
|
42
|
+
lastNonSystemIndex = index;
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
if (lastNonSystemIndex >= 0) result[lastNonSystemIndex] = markCachePoint(result[lastNonSystemIndex]);
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
function withBedrockCache(model) {
|
|
49
|
+
return new Proxy(model, { get(target, property, receiver) {
|
|
50
|
+
if (property === "doGenerate") return (options) => target.doGenerate({
|
|
51
|
+
...options,
|
|
52
|
+
prompt: addBedrockCachePoints(options.prompt)
|
|
53
|
+
});
|
|
54
|
+
if (property === "doStream") return (options) => target.doStream({
|
|
55
|
+
...options,
|
|
56
|
+
prompt: addBedrockCachePoints(options.prompt)
|
|
57
|
+
});
|
|
58
|
+
return Reflect.get(target, property, receiver);
|
|
59
|
+
} });
|
|
60
|
+
}
|
|
61
|
+
const AMAZON_BEDROCK_GATEWAY_ID = "amazon-bedrock";
|
|
62
|
+
/**
|
|
63
|
+
* Whether AWS credentials look available for Bedrock.
|
|
64
|
+
*
|
|
65
|
+
* Amazon Bedrock authenticates with AWS SigV4 rather than a bearer API key, so
|
|
66
|
+
* this only governs whether Bedrock models are offered as "authenticated" in the
|
|
67
|
+
* picker. We look for the common signals (env vars, bearer token, a configured
|
|
68
|
+
* profile, or a shared credentials/config file) rather than resolving
|
|
69
|
+
* credentials here, since the auth checker must stay sync.
|
|
70
|
+
*/
|
|
71
|
+
function hasAwsCredentials() {
|
|
72
|
+
if (process.env.AWS_BEARER_TOKEN_BEDROCK || process.env.AWS_ACCESS_KEY_ID && process.env.AWS_SECRET_ACCESS_KEY || process.env.AWS_SHARED_CREDENTIALS_FILE || process.env.AWS_CONFIG_FILE || process.env.AWS_PROFILE || process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI || process.env.AWS_CONTAINER_CREDENTIALS_FULL_URI || process.env.AWS_WEB_IDENTITY_TOKEN_FILE) return true;
|
|
73
|
+
const home = process.env.HOME || process.env.USERPROFILE;
|
|
74
|
+
if (home) {
|
|
75
|
+
const awsDir = path.join(home, ".aws");
|
|
76
|
+
const credentialsPath = process.env.AWS_SHARED_CREDENTIALS_FILE ?? path.join(awsDir, "credentials");
|
|
77
|
+
const configPath = process.env.AWS_CONFIG_FILE ?? path.join(awsDir, "config");
|
|
78
|
+
if (existsSync(credentialsPath) || existsSync(configPath)) return true;
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Create an Amazon Bedrock model.
|
|
84
|
+
*
|
|
85
|
+
* Bedrock authenticates with AWS SigV4 rather than a bearer API key, so this
|
|
86
|
+
* resolves credentials through the standard AWS provider chain
|
|
87
|
+
* (`fromNodeProviderChain`): environment variables, shared `~/.aws` config and
|
|
88
|
+
* SSO profiles, and container/instance roles — the same resolution order the AWS
|
|
89
|
+
* CLI uses. The region falls back to `us-east-1` to match the AWS SDK default.
|
|
90
|
+
*
|
|
91
|
+
* When `AWS_BEARER_TOKEN_BEDROCK` is set, `@ai-sdk/amazon-bedrock` uses bearer
|
|
92
|
+
* auth instead and ignores the credential provider, so we leave that path to the
|
|
93
|
+
* SDK and only wire up SigV4 here.
|
|
94
|
+
*/
|
|
95
|
+
function bedrockProvider(modelId, headers) {
|
|
96
|
+
const model = createAmazonBedrock({
|
|
97
|
+
region: process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION || "us-east-1",
|
|
98
|
+
credentialProvider: fromNodeProviderChain(),
|
|
99
|
+
headers
|
|
100
|
+
})(modelId);
|
|
101
|
+
return supportsBedrockPromptCaching(modelId) ? withBedrockCache(model) : model;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Standalone Amazon Bedrock gateway.
|
|
105
|
+
*
|
|
106
|
+
* Bedrock is resolved directly via AWS SigV4 (not through the model router) and
|
|
107
|
+
* its models are surfaced from the public models.dev catalog. It is exposed as
|
|
108
|
+
* its own gateway/provider (`amazon-bedrock/...`) rather than nested under the
|
|
109
|
+
* MastraCode gateway namespace.
|
|
110
|
+
*/
|
|
111
|
+
var AmazonBedrockGateway = class extends MastraModelGateway {
|
|
112
|
+
id = AMAZON_BEDROCK_GATEWAY_ID;
|
|
113
|
+
name = "Amazon Bedrock";
|
|
114
|
+
shouldEnable() {
|
|
115
|
+
return hasAwsCredentials();
|
|
116
|
+
}
|
|
117
|
+
async fetchProviders() {
|
|
118
|
+
const providers = {};
|
|
119
|
+
try {
|
|
120
|
+
const bedrockModels = await getBedrockModelCatalog();
|
|
121
|
+
providers["amazon-bedrock"] = {
|
|
122
|
+
name: "Amazon Bedrock",
|
|
123
|
+
apiKeyEnvVar: "",
|
|
124
|
+
apiKeyHeader: "Authorization",
|
|
125
|
+
gateway: this.id,
|
|
126
|
+
models: bedrockModels.map((model) => model.id)
|
|
127
|
+
};
|
|
128
|
+
} catch (error) {
|
|
129
|
+
console.warn("Failed to load Amazon Bedrock model catalog:", error);
|
|
130
|
+
}
|
|
131
|
+
return providers;
|
|
132
|
+
}
|
|
133
|
+
buildUrl(_modelId) {}
|
|
134
|
+
async getApiKey(_modelId) {
|
|
135
|
+
return hasAwsCredentials() ? "aws-credential-chain" : "";
|
|
136
|
+
}
|
|
137
|
+
resolveAuth(_request) {
|
|
138
|
+
if (hasAwsCredentials()) return {
|
|
139
|
+
apiKey: "aws-credential-chain",
|
|
140
|
+
source: "gateway"
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
resolveLanguageModel(args) {
|
|
144
|
+
return bedrockProvider(args.modelId, args.headers);
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
function createAmazonBedrockGateway() {
|
|
148
|
+
return new AmazonBedrockGateway();
|
|
149
|
+
}
|
|
150
|
+
//#endregion
|
|
151
|
+
export { AMAZON_BEDROCK_GATEWAY_ID, AmazonBedrockGateway, addBedrockCachePoints, createAmazonBedrockGateway, hasAwsCredentials, supportsBedrockPromptCaching, withBedrockCache };
|
|
152
|
+
|
|
153
|
+
//# sourceMappingURL=amazon-bedrock-gateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amazon-bedrock-gateway.js","names":[],"sources":["../../src/providers/amazon-bedrock-gateway.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport path from 'node:path';\nimport { createAmazonBedrock } from '@ai-sdk/amazon-bedrock';\nimport { fromNodeProviderChain } from '@aws-sdk/credential-providers';\nimport { MastraModelGateway } from '@mastra/core/llm';\nimport type { GatewayAuthRequest, GatewayAuthResult, GatewayLanguageModel, ProviderConfig } from '@mastra/core/llm';\nimport { getBedrockModelCatalog } from './amazon-bedrock.js';\n\ntype ModelRequestHeaders = Record<string, string>;\ntype BedrockModel = ReturnType<ReturnType<typeof createAmazonBedrock>>;\ntype BedrockPrompt = Parameters<BedrockModel['doGenerate']>[0]['prompt'];\n\nconst CACHEABLE_BEDROCK_MODEL_IDS = [\n 'anthropic.claude-3-5-haiku-',\n 'anthropic.claude-3-5-sonnet-20241022-v2:0',\n 'anthropic.claude-3-7-sonnet-',\n 'anthropic.claude-fable-5',\n 'anthropic.claude-haiku-4-5-',\n 'anthropic.claude-opus-4-',\n 'anthropic.claude-opus-5',\n 'anthropic.claude-sonnet-4-',\n 'anthropic.claude-sonnet-5',\n];\n\nexport function supportsBedrockPromptCaching(modelId: string): boolean {\n return CACHEABLE_BEDROCK_MODEL_IDS.some(cacheableModelId => modelId.includes(cacheableModelId));\n}\n\nexport function addBedrockCachePoints(prompt: BedrockPrompt): BedrockPrompt {\n const result = [...prompt];\n const markCachePoint = (message: (typeof result)[number]) => ({\n ...message,\n providerOptions: {\n ...message.providerOptions,\n bedrock: {\n ...message.providerOptions?.bedrock,\n cachePoint: { type: 'default' },\n },\n },\n });\n\n let lastSystemIndex = -1;\n for (let index = result.length - 1; index >= 0; index--) {\n if (result[index]!.role === 'system') {\n lastSystemIndex = index;\n break;\n }\n }\n\n if (lastSystemIndex >= 0) {\n result[lastSystemIndex] = markCachePoint(result[lastSystemIndex]!);\n }\n\n let lastNonSystemIndex = -1;\n for (let index = result.length - 1; index >= 0; index--) {\n if (result[index]!.role !== 'system') {\n lastNonSystemIndex = index;\n break;\n }\n }\n\n if (lastNonSystemIndex >= 0) {\n result[lastNonSystemIndex] = markCachePoint(result[lastNonSystemIndex]!);\n }\n\n return result;\n}\n\nexport function withBedrockCache(model: BedrockModel): BedrockModel {\n return new Proxy(model, {\n get(target, property, receiver) {\n if (property === 'doGenerate') {\n return (options: Parameters<BedrockModel['doGenerate']>[0]) =>\n target.doGenerate({ ...options, prompt: addBedrockCachePoints(options.prompt) });\n }\n if (property === 'doStream') {\n return (options: Parameters<BedrockModel['doStream']>[0]) =>\n target.doStream({ ...options, prompt: addBedrockCachePoints(options.prompt) });\n }\n return Reflect.get(target, property, receiver);\n },\n });\n}\n\nexport const AMAZON_BEDROCK_GATEWAY_ID = 'amazon-bedrock';\n\n/**\n * Whether AWS credentials look available for Bedrock.\n *\n * Amazon Bedrock authenticates with AWS SigV4 rather than a bearer API key, so\n * this only governs whether Bedrock models are offered as \"authenticated\" in the\n * picker. We look for the common signals (env vars, bearer token, a configured\n * profile, or a shared credentials/config file) rather than resolving\n * credentials here, since the auth checker must stay sync.\n */\nexport function hasAwsCredentials(): boolean {\n if (\n process.env.AWS_BEARER_TOKEN_BEDROCK ||\n (process.env.AWS_ACCESS_KEY_ID && process.env.AWS_SECRET_ACCESS_KEY) ||\n process.env.AWS_SHARED_CREDENTIALS_FILE ||\n process.env.AWS_CONFIG_FILE ||\n process.env.AWS_PROFILE ||\n process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI ||\n process.env.AWS_CONTAINER_CREDENTIALS_FULL_URI ||\n process.env.AWS_WEB_IDENTITY_TOKEN_FILE\n ) {\n return true;\n }\n const home = process.env.HOME || process.env.USERPROFILE;\n if (home) {\n const awsDir = path.join(home, '.aws');\n const credentialsPath = process.env.AWS_SHARED_CREDENTIALS_FILE ?? path.join(awsDir, 'credentials');\n const configPath = process.env.AWS_CONFIG_FILE ?? path.join(awsDir, 'config');\n if (existsSync(credentialsPath) || existsSync(configPath)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Create an Amazon Bedrock model.\n *\n * Bedrock authenticates with AWS SigV4 rather than a bearer API key, so this\n * resolves credentials through the standard AWS provider chain\n * (`fromNodeProviderChain`): environment variables, shared `~/.aws` config and\n * SSO profiles, and container/instance roles — the same resolution order the AWS\n * CLI uses. The region falls back to `us-east-1` to match the AWS SDK default.\n *\n * When `AWS_BEARER_TOKEN_BEDROCK` is set, `@ai-sdk/amazon-bedrock` uses bearer\n * auth instead and ignores the credential provider, so we leave that path to the\n * SDK and only wire up SigV4 here.\n */\nfunction bedrockProvider(modelId: string, headers?: ModelRequestHeaders) {\n const region = process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION || 'us-east-1';\n const bedrock = createAmazonBedrock({\n region,\n credentialProvider: fromNodeProviderChain(),\n headers,\n });\n const model = bedrock(modelId);\n return supportsBedrockPromptCaching(modelId) ? withBedrockCache(model) : model;\n}\n\n/**\n * Standalone Amazon Bedrock gateway.\n *\n * Bedrock is resolved directly via AWS SigV4 (not through the model router) and\n * its models are surfaced from the public models.dev catalog. It is exposed as\n * its own gateway/provider (`amazon-bedrock/...`) rather than nested under the\n * MastraCode gateway namespace.\n */\nexport class AmazonBedrockGateway extends MastraModelGateway {\n readonly id = AMAZON_BEDROCK_GATEWAY_ID;\n readonly name = 'Amazon Bedrock';\n\n shouldEnable(): boolean {\n return hasAwsCredentials();\n }\n\n async fetchProviders(): Promise<Record<string, ProviderConfig>> {\n const providers: Record<string, ProviderConfig> = {};\n try {\n const bedrockModels = await getBedrockModelCatalog();\n providers['amazon-bedrock'] = {\n name: 'Amazon Bedrock',\n apiKeyEnvVar: '',\n apiKeyHeader: 'Authorization',\n gateway: this.id,\n models: bedrockModels.map(model => model.id),\n };\n } catch (error) {\n console.warn('Failed to load Amazon Bedrock model catalog:', error);\n }\n return providers;\n }\n\n buildUrl(_modelId: string): string | undefined {\n return undefined;\n }\n\n async getApiKey(_modelId: string): Promise<string> {\n return hasAwsCredentials() ? 'aws-credential-chain' : '';\n }\n\n resolveAuth(_request: GatewayAuthRequest): GatewayAuthResult | undefined {\n // Amazon Bedrock authenticates via the AWS credential chain rather than a\n // stored API key, so report it as authenticated whenever AWS credentials look\n // available. The actual SigV4 signing happens inside `bedrockProvider()`.\n if (hasAwsCredentials()) {\n return { apiKey: 'aws-credential-chain', source: 'gateway' };\n }\n return undefined;\n }\n\n resolveLanguageModel(args: {\n modelId: string;\n providerId: string;\n apiKey: string;\n headers?: Record<string, string>;\n transport?: any;\n responsesWebSocket?: any;\n }): GatewayLanguageModel {\n return bedrockProvider(args.modelId, args.headers) as unknown as GatewayLanguageModel;\n }\n}\n\nexport function createAmazonBedrockGateway(): AmazonBedrockGateway {\n return new AmazonBedrockGateway();\n}\n"],"mappings":";;;;;;;AAYA,MAAM,8BAA8B;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,SAAgB,6BAA6B,SAA0B;CACrE,OAAO,4BAA4B,MAAK,qBAAoB,QAAQ,SAAS,gBAAgB,CAAC;AAChG;AAEA,SAAgB,sBAAsB,QAAsC;CAC1E,MAAM,SAAS,CAAC,GAAG,MAAM;CACzB,MAAM,kBAAkB,aAAsC;EAC5D,GAAG;EACH,iBAAiB;GACf,GAAG,QAAQ;GACX,SAAS;IACP,GAAG,QAAQ,iBAAiB;IAC5B,YAAY,EAAE,MAAM,UAAU;GAChC;EACF;CACF;CAEA,IAAI,kBAAkB;CACtB,KAAK,IAAI,QAAQ,OAAO,SAAS,GAAG,SAAS,GAAG,SAC9C,IAAI,OAAO,MAAM,CAAE,SAAS,UAAU;EACpC,kBAAkB;EAClB;CACF;CAGF,IAAI,mBAAmB,GACrB,OAAO,mBAAmB,eAAe,OAAO,gBAAiB;CAGnE,IAAI,qBAAqB;CACzB,KAAK,IAAI,QAAQ,OAAO,SAAS,GAAG,SAAS,GAAG,SAC9C,IAAI,OAAO,MAAM,CAAE,SAAS,UAAU;EACpC,qBAAqB;EACrB;CACF;CAGF,IAAI,sBAAsB,GACxB,OAAO,sBAAsB,eAAe,OAAO,mBAAoB;CAGzE,OAAO;AACT;AAEA,SAAgB,iBAAiB,OAAmC;CAClE,OAAO,IAAI,MAAM,OAAO,EACtB,IAAI,QAAQ,UAAU,UAAU;EAC9B,IAAI,aAAa,cACf,QAAQ,YACN,OAAO,WAAW;GAAE,GAAG;GAAS,QAAQ,sBAAsB,QAAQ,MAAM;EAAE,CAAC;EAEnF,IAAI,aAAa,YACf,QAAQ,YACN,OAAO,SAAS;GAAE,GAAG;GAAS,QAAQ,sBAAsB,QAAQ,MAAM;EAAE,CAAC;EAEjF,OAAO,QAAQ,IAAI,QAAQ,UAAU,QAAQ;CAC/C,EACF,CAAC;AACH;AAEA,MAAa,4BAA4B;;;;;;;;;;AAWzC,SAAgB,oBAA6B;CAC3C,IACE,QAAQ,IAAI,4BACX,QAAQ,IAAI,qBAAqB,QAAQ,IAAI,yBAC9C,QAAQ,IAAI,+BACZ,QAAQ,IAAI,mBACZ,QAAQ,IAAI,eACZ,QAAQ,IAAI,0CACZ,QAAQ,IAAI,sCACZ,QAAQ,IAAI,6BAEZ,OAAO;CAET,MAAM,OAAO,QAAQ,IAAI,QAAQ,QAAQ,IAAI;CAC7C,IAAI,MAAM;EACR,MAAM,SAAS,KAAK,KAAK,MAAM,MAAM;EACrC,MAAM,kBAAkB,QAAQ,IAAI,+BAA+B,KAAK,KAAK,QAAQ,aAAa;EAClG,MAAM,aAAa,QAAQ,IAAI,mBAAmB,KAAK,KAAK,QAAQ,QAAQ;EAC5E,IAAI,WAAW,eAAe,KAAK,WAAW,UAAU,GACtD,OAAO;CAEX;CACA,OAAO;AACT;;;;;;;;;;;;;;AAeA,SAAS,gBAAgB,SAAiB,SAA+B;CAOvE,MAAM,QALU,oBAAoB;EAClC,QAFa,QAAQ,IAAI,cAAc,QAAQ,IAAI,sBAAsB;EAGzE,oBAAoB,sBAAsB;EAC1C;CACF,CACoB,CAAC,CAAC,OAAO;CAC7B,OAAO,6BAA6B,OAAO,IAAI,iBAAiB,KAAK,IAAI;AAC3E;;;;;;;;;AAUA,IAAa,uBAAb,cAA0C,mBAAmB;CAC3D,KAAc;CACd,OAAgB;CAEhB,eAAwB;EACtB,OAAO,kBAAkB;CAC3B;CAEA,MAAM,iBAA0D;EAC9D,MAAM,YAA4C,CAAC;EACnD,IAAI;GACF,MAAM,gBAAgB,MAAM,uBAAuB;GACnD,UAAU,oBAAoB;IAC5B,MAAM;IACN,cAAc;IACd,cAAc;IACd,SAAS,KAAK;IACd,QAAQ,cAAc,KAAI,UAAS,MAAM,EAAE;GAC7C;EACF,SAAS,OAAO;GACd,QAAQ,KAAK,gDAAgD,KAAK;EACpE;EACA,OAAO;CACT;CAEA,SAAS,UAAsC,CAE/C;CAEA,MAAM,UAAU,UAAmC;EACjD,OAAO,kBAAkB,IAAI,yBAAyB;CACxD;CAEA,YAAY,UAA6D;EAIvE,IAAI,kBAAkB,GACpB,OAAO;GAAE,QAAQ;GAAwB,QAAQ;EAAU;CAG/D;CAEA,qBAAqB,MAOI;EACvB,OAAO,gBAAgB,KAAK,SAAS,KAAK,OAAO;CACnD;AACF;AAEA,SAAgB,6BAAmD;CACjE,OAAO,IAAI,qBAAqB;AAClC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Amazon Bedrock model catalog.
|
|
3
|
+
*
|
|
4
|
+
* Bedrock is not part of mastracode's gateway-synced model router (it
|
|
5
|
+
* authenticates with AWS SigV4 rather than an API key / base URL, so it is
|
|
6
|
+
* resolved directly in `agents/model.ts`). To still offer Bedrock models in the
|
|
7
|
+
* `/models` picker and packs, we fetch the public models.dev catalog — the same
|
|
8
|
+
* source the model router uses — and expose the `amazon-bedrock` provider's
|
|
9
|
+
* model list. This mirrors the GitHub Copilot catalog approach.
|
|
10
|
+
*/
|
|
11
|
+
export interface BedrockModelEntry {
|
|
12
|
+
id: string;
|
|
13
|
+
}
|
|
14
|
+
/** Reset the in-process Bedrock catalog cache (test seam). */
|
|
15
|
+
export declare function clearBedrockCatalogCache(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Return the available Amazon Bedrock models.
|
|
18
|
+
*
|
|
19
|
+
* - Returns the cached list when a recent fetch succeeded.
|
|
20
|
+
* - On cache miss / expiry, fetches the models.dev catalog with a 5s timeout and
|
|
21
|
+
* caches it for an hour.
|
|
22
|
+
* - On fetch failure, returns a small hard-coded fallback (so packs still work
|
|
23
|
+
* offline) and caches that briefly to avoid hammering the network.
|
|
24
|
+
*
|
|
25
|
+
* Concurrent calls during a fetch share the inflight promise.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getBedrockModelCatalog(): Promise<BedrockModelEntry[]>;
|
|
28
|
+
//# sourceMappingURL=amazon-bedrock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amazon-bedrock.d.ts","sourceRoot":"","sources":["../../src/providers/amazon-bedrock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;CACZ;AAyDD,8DAA8D;AAC9D,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAiBD;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAiC3E"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
//#region src/providers/amazon-bedrock.ts
|
|
2
|
+
/**
|
|
3
|
+
* Amazon Bedrock model catalog.
|
|
4
|
+
*
|
|
5
|
+
* Bedrock is not part of mastracode's gateway-synced model router (it
|
|
6
|
+
* authenticates with AWS SigV4 rather than an API key / base URL, so it is
|
|
7
|
+
* resolved directly in `agents/model.ts`). To still offer Bedrock models in the
|
|
8
|
+
* `/models` picker and packs, we fetch the public models.dev catalog — the same
|
|
9
|
+
* source the model router uses — and expose the `amazon-bedrock` provider's
|
|
10
|
+
* model list. This mirrors the GitHub Copilot catalog approach.
|
|
11
|
+
*/
|
|
12
|
+
const MODELS_DEV_API_URL = "https://models.dev/api.json";
|
|
13
|
+
const BEDROCK_PROVIDER_ID = "amazon-bedrock";
|
|
14
|
+
const CATALOG_TTL_MS = 3600 * 1e3;
|
|
15
|
+
const CATALOG_FAILURE_TTL_MS = 60 * 1e3;
|
|
16
|
+
const CATALOG_FETCH_TIMEOUT_MS = 5e3;
|
|
17
|
+
/**
|
|
18
|
+
* True when the catalog entry asks for a transport this catalog cannot serve.
|
|
19
|
+
*
|
|
20
|
+
* Every id returned here is handed to `createAmazonBedrock()(modelId)` by
|
|
21
|
+
* `amazon-bedrock-gateway.ts`, i.e. the Converse API, unconditionally. A
|
|
22
|
+
* `provider` override in the catalog means the model wants a different endpoint
|
|
23
|
+
* and API shape: the nine `bedrock-mantle` models point at
|
|
24
|
+
* `https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1` with
|
|
25
|
+
* `shape: "responses"`. Advertising them makes them selectable in `/models` and
|
|
26
|
+
* in packs even though the request that follows cannot reach them.
|
|
27
|
+
*
|
|
28
|
+
* Filtering is deliberately conservative: it hides what is currently unusable
|
|
29
|
+
* rather than guessing at a transport. Routing these to Mantle properly is a
|
|
30
|
+
* separate change and a design call for the maintainers.
|
|
31
|
+
*/
|
|
32
|
+
function needsUnsupportedTransport(entry) {
|
|
33
|
+
const provider = entry?.provider;
|
|
34
|
+
return Boolean(provider && (provider.npm || provider.api || provider.shape));
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A small, stable fallback so Bedrock packs keep working offline or when
|
|
38
|
+
* models.dev is unreachable. Intentionally minimal — the live catalog is the
|
|
39
|
+
* source of truth and supersedes this within one fetch.
|
|
40
|
+
*/
|
|
41
|
+
const BEDROCK_FALLBACK_MODELS = [
|
|
42
|
+
{ id: "us.anthropic.claude-opus-4-6-v1" },
|
|
43
|
+
{ id: "us.anthropic.claude-sonnet-4-5-20250929-v1:0" },
|
|
44
|
+
{ id: "us.anthropic.claude-haiku-4-5-20251001-v1:0" }
|
|
45
|
+
];
|
|
46
|
+
let catalogCache = null;
|
|
47
|
+
let inflightFetch = null;
|
|
48
|
+
/** Reset the in-process Bedrock catalog cache (test seam). */
|
|
49
|
+
function clearBedrockCatalogCache() {
|
|
50
|
+
catalogCache = null;
|
|
51
|
+
inflightFetch = null;
|
|
52
|
+
}
|
|
53
|
+
async function fetchBedrockModels(signal) {
|
|
54
|
+
const response = await fetch(MODELS_DEV_API_URL, { signal });
|
|
55
|
+
if (!response.ok) throw new Error(`models.dev returned ${response.status}`);
|
|
56
|
+
const models = (await response.json())[BEDROCK_PROVIDER_ID]?.models ?? {};
|
|
57
|
+
return Object.entries(models).filter(([, entry]) => !needsUnsupportedTransport(entry)).map(([id]) => id).sort().map((id) => ({ id }));
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Return the available Amazon Bedrock models.
|
|
61
|
+
*
|
|
62
|
+
* - Returns the cached list when a recent fetch succeeded.
|
|
63
|
+
* - On cache miss / expiry, fetches the models.dev catalog with a 5s timeout and
|
|
64
|
+
* caches it for an hour.
|
|
65
|
+
* - On fetch failure, returns a small hard-coded fallback (so packs still work
|
|
66
|
+
* offline) and caches that briefly to avoid hammering the network.
|
|
67
|
+
*
|
|
68
|
+
* Concurrent calls during a fetch share the inflight promise.
|
|
69
|
+
*/
|
|
70
|
+
async function getBedrockModelCatalog() {
|
|
71
|
+
if (catalogCache && Date.now() - catalogCache.fetchedAt < catalogCache.ttl) return catalogCache.models;
|
|
72
|
+
if (inflightFetch) return inflightFetch;
|
|
73
|
+
inflightFetch = (async () => {
|
|
74
|
+
const controller = new AbortController();
|
|
75
|
+
const timer = setTimeout(() => controller.abort(), CATALOG_FETCH_TIMEOUT_MS);
|
|
76
|
+
try {
|
|
77
|
+
const models = await fetchBedrockModels(controller.signal);
|
|
78
|
+
catalogCache = {
|
|
79
|
+
fetchedAt: Date.now(),
|
|
80
|
+
ttl: CATALOG_TTL_MS,
|
|
81
|
+
models
|
|
82
|
+
};
|
|
83
|
+
return models;
|
|
84
|
+
} catch (error) {
|
|
85
|
+
catalogCache = {
|
|
86
|
+
fetchedAt: Date.now(),
|
|
87
|
+
ttl: CATALOG_FAILURE_TTL_MS,
|
|
88
|
+
models: BEDROCK_FALLBACK_MODELS
|
|
89
|
+
};
|
|
90
|
+
console.warn("Failed to fetch live Amazon Bedrock models, using fallback list:", error instanceof Error ? error.message : error);
|
|
91
|
+
return BEDROCK_FALLBACK_MODELS;
|
|
92
|
+
} finally {
|
|
93
|
+
clearTimeout(timer);
|
|
94
|
+
inflightFetch = null;
|
|
95
|
+
}
|
|
96
|
+
})();
|
|
97
|
+
return inflightFetch;
|
|
98
|
+
}
|
|
99
|
+
//#endregion
|
|
100
|
+
export { clearBedrockCatalogCache, getBedrockModelCatalog };
|
|
101
|
+
|
|
102
|
+
//# sourceMappingURL=amazon-bedrock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amazon-bedrock.js","names":[],"sources":["../../src/providers/amazon-bedrock.ts"],"sourcesContent":["/**\n * Amazon Bedrock model catalog.\n *\n * Bedrock is not part of mastracode's gateway-synced model router (it\n * authenticates with AWS SigV4 rather than an API key / base URL, so it is\n * resolved directly in `agents/model.ts`). To still offer Bedrock models in the\n * `/models` picker and packs, we fetch the public models.dev catalog — the same\n * source the model router uses — and expose the `amazon-bedrock` provider's\n * model list. This mirrors the GitHub Copilot catalog approach.\n */\n\nconst MODELS_DEV_API_URL = 'https://models.dev/api.json';\nconst BEDROCK_PROVIDER_ID = 'amazon-bedrock';\n\nconst CATALOG_TTL_MS = 60 * 60 * 1000;\nconst CATALOG_FAILURE_TTL_MS = 60 * 1000;\nconst CATALOG_FETCH_TIMEOUT_MS = 5_000;\n\nexport interface BedrockModelEntry {\n id: string;\n}\n\n/**\n * A models.dev catalog entry for one Bedrock model.\n *\n * Most entries carry no `provider` block: they are served by the SigV4\n * `bedrock-runtime` Converse API, which is what this catalog feeds. An entry\n * that *does* carry one is overriding that transport.\n */\ninterface BedrockCatalogEntry {\n provider?: {\n npm?: string;\n api?: string;\n shape?: string;\n };\n}\n\n/**\n * True when the catalog entry asks for a transport this catalog cannot serve.\n *\n * Every id returned here is handed to `createAmazonBedrock()(modelId)` by\n * `amazon-bedrock-gateway.ts`, i.e. the Converse API, unconditionally. A\n * `provider` override in the catalog means the model wants a different endpoint\n * and API shape: the nine `bedrock-mantle` models point at\n * `https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1` with\n * `shape: \"responses\"`. Advertising them makes them selectable in `/models` and\n * in packs even though the request that follows cannot reach them.\n *\n * Filtering is deliberately conservative: it hides what is currently unusable\n * rather than guessing at a transport. Routing these to Mantle properly is a\n * separate change and a design call for the maintainers.\n */\nfunction needsUnsupportedTransport(entry: unknown): boolean {\n const provider = (entry as BedrockCatalogEntry | null)?.provider;\n return Boolean(provider && (provider.npm || provider.api || provider.shape));\n}\n\n/**\n * A small, stable fallback so Bedrock packs keep working offline or when\n * models.dev is unreachable. Intentionally minimal — the live catalog is the\n * source of truth and supersedes this within one fetch.\n */\nconst BEDROCK_FALLBACK_MODELS: BedrockModelEntry[] = [\n { id: 'us.anthropic.claude-opus-4-6-v1' },\n { id: 'us.anthropic.claude-sonnet-4-5-20250929-v1:0' },\n { id: 'us.anthropic.claude-haiku-4-5-20251001-v1:0' },\n];\n\ninterface CatalogCacheEntry {\n fetchedAt: number;\n ttl: number;\n models: BedrockModelEntry[];\n}\n\nlet catalogCache: CatalogCacheEntry | null = null;\nlet inflightFetch: Promise<BedrockModelEntry[]> | null = null;\n\n/** Reset the in-process Bedrock catalog cache (test seam). */\nexport function clearBedrockCatalogCache(): void {\n catalogCache = null;\n inflightFetch = null;\n}\n\nasync function fetchBedrockModels(signal: AbortSignal): Promise<BedrockModelEntry[]> {\n const response = await fetch(MODELS_DEV_API_URL, { signal });\n if (!response.ok) {\n throw new Error(`models.dev returned ${response.status}`);\n }\n const data = (await response.json()) as Record<string, { models?: Record<string, unknown> }>;\n const provider = data[BEDROCK_PROVIDER_ID];\n const models = provider?.models ?? {};\n return Object.entries(models)\n .filter(([, entry]) => !needsUnsupportedTransport(entry))\n .map(([id]) => id)\n .sort()\n .map(id => ({ id }));\n}\n\n/**\n * Return the available Amazon Bedrock models.\n *\n * - Returns the cached list when a recent fetch succeeded.\n * - On cache miss / expiry, fetches the models.dev catalog with a 5s timeout and\n * caches it for an hour.\n * - On fetch failure, returns a small hard-coded fallback (so packs still work\n * offline) and caches that briefly to avoid hammering the network.\n *\n * Concurrent calls during a fetch share the inflight promise.\n */\nexport async function getBedrockModelCatalog(): Promise<BedrockModelEntry[]> {\n const now = Date.now();\n if (catalogCache && now - catalogCache.fetchedAt < catalogCache.ttl) {\n return catalogCache.models;\n }\n\n if (inflightFetch) return inflightFetch;\n\n inflightFetch = (async (): Promise<BedrockModelEntry[]> => {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), CATALOG_FETCH_TIMEOUT_MS);\n try {\n const models = await fetchBedrockModels(controller.signal);\n catalogCache = { fetchedAt: Date.now(), ttl: CATALOG_TTL_MS, models };\n return models;\n } catch (error) {\n catalogCache = {\n fetchedAt: Date.now(),\n ttl: CATALOG_FAILURE_TTL_MS,\n models: BEDROCK_FALLBACK_MODELS,\n };\n console.warn(\n 'Failed to fetch live Amazon Bedrock models, using fallback list:',\n error instanceof Error ? error.message : error,\n );\n return BEDROCK_FALLBACK_MODELS;\n } finally {\n clearTimeout(timer);\n inflightFetch = null;\n }\n })();\n\n return inflightFetch;\n}\n"],"mappings":";;;;;;;;;;;AAWA,MAAM,qBAAqB;AAC3B,MAAM,sBAAsB;AAE5B,MAAM,iBAAiB,OAAU;AACjC,MAAM,yBAAyB,KAAK;AACpC,MAAM,2BAA2B;;;;;;;;;;;;;;;;AAoCjC,SAAS,0BAA0B,OAAyB;CAC1D,MAAM,WAAY,OAAsC;CACxD,OAAO,QAAQ,aAAa,SAAS,OAAO,SAAS,OAAO,SAAS,MAAM;AAC7E;;;;;;AAOA,MAAM,0BAA+C;CACnD,EAAE,IAAI,kCAAkC;CACxC,EAAE,IAAI,+CAA+C;CACrD,EAAE,IAAI,8CAA8C;AACtD;AAQA,IAAI,eAAyC;AAC7C,IAAI,gBAAqD;;AAGzD,SAAgB,2BAAiC;CAC/C,eAAe;CACf,gBAAgB;AAClB;AAEA,eAAe,mBAAmB,QAAmD;CACnF,MAAM,WAAW,MAAM,MAAM,oBAAoB,EAAE,OAAO,CAAC;CAC3D,IAAI,CAAC,SAAS,IACZ,MAAM,IAAI,MAAM,uBAAuB,SAAS,QAAQ;CAI1D,MAAM,UADW,MADG,SAAS,KAAK,EAAA,CACZ,oBACC,EAAE,UAAU,CAAC;CACpC,OAAO,OAAO,QAAQ,MAAM,CAAC,CAC1B,QAAQ,GAAG,WAAW,CAAC,0BAA0B,KAAK,CAAC,CAAC,CACxD,KAAK,CAAC,QAAQ,EAAE,CAAC,CACjB,KAAK,CAAC,CACN,KAAI,QAAO,EAAE,GAAG,EAAE;AACvB;;;;;;;;;;;;AAaA,eAAsB,yBAAuD;CAE3E,IAAI,gBADQ,KAAK,IACK,IAAI,aAAa,YAAY,aAAa,KAC9D,OAAO,aAAa;CAGtB,IAAI,eAAe,OAAO;CAE1B,iBAAiB,YAA0C;EACzD,MAAM,aAAa,IAAI,gBAAgB;EACvC,MAAM,QAAQ,iBAAiB,WAAW,MAAM,GAAG,wBAAwB;EAC3E,IAAI;GACF,MAAM,SAAS,MAAM,mBAAmB,WAAW,MAAM;GACzD,eAAe;IAAE,WAAW,KAAK,IAAI;IAAG,KAAK;IAAgB;GAAO;GACpE,OAAO;EACT,SAAS,OAAO;GACd,eAAe;IACb,WAAW,KAAK,IAAI;IACpB,KAAK;IACL,QAAQ;GACV;GACA,QAAQ,KACN,oEACA,iBAAiB,QAAQ,MAAM,UAAU,KAC3C;GACA,OAAO;EACT,UAAU;GACR,aAAa,KAAK;GAClB,gBAAgB;EAClB;CACF,EAAA,CAAG;CAEH,OAAO;AACT"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Max OAuth Provider
|
|
3
|
+
*
|
|
4
|
+
* Uses OAuth tokens from AuthStorage to authenticate with Claude Max plan.
|
|
5
|
+
* The OAuth endpoint requires a specific system message to be present.
|
|
6
|
+
*/
|
|
7
|
+
import type { MastraModelConfig } from '@mastra/core/llm';
|
|
8
|
+
import type { LanguageModelMiddleware } from 'ai';
|
|
9
|
+
import { AuthStorage } from '../auth/storage.js';
|
|
10
|
+
import type { CredentialStore } from '../auth/types.js';
|
|
11
|
+
import type { ThinkingLevel } from './openai-codex.js';
|
|
12
|
+
/**
|
|
13
|
+
* Get or create the shared AuthStorage instance
|
|
14
|
+
*/
|
|
15
|
+
export declare function getAuthStorage(): AuthStorage;
|
|
16
|
+
/**
|
|
17
|
+
* Set a custom AuthStorage instance (useful for TUI integration)
|
|
18
|
+
*/
|
|
19
|
+
export declare function setAuthStorage(storage: AuthStorage | undefined): void;
|
|
20
|
+
/**
|
|
21
|
+
* Middleware that injects the Claude Code identity system message
|
|
22
|
+
* Required for Claude Max OAuth authentication
|
|
23
|
+
*/
|
|
24
|
+
export declare const claudeCodeMiddleware: LanguageModelMiddleware;
|
|
25
|
+
/**
|
|
26
|
+
* Prompt caching middleware for Anthropic
|
|
27
|
+
*
|
|
28
|
+
* Adds cache breakpoints at strategic locations:
|
|
29
|
+
* 1. Last system message (end of static instructions + dynamic memory)
|
|
30
|
+
* 2. Most recent user/assistant message (conversation context)
|
|
31
|
+
*
|
|
32
|
+
* This allows Anthropic to cache:
|
|
33
|
+
* - System prompts and instructions (rarely change)
|
|
34
|
+
* - Conversation history up to the last message
|
|
35
|
+
*/
|
|
36
|
+
export declare const promptCacheMiddleware: LanguageModelMiddleware;
|
|
37
|
+
/**
|
|
38
|
+
* Middleware that maps the session thinking level onto Anthropic extended
|
|
39
|
+
* thinking. Returns `undefined` (no middleware) when the level is `off` or the
|
|
40
|
+
* model doesn't support thinking, preserving the previous request shape.
|
|
41
|
+
*
|
|
42
|
+
* - Adaptive-era models (Sonnet 4.6+/Opus 4.6+): `thinking: adaptive` plus
|
|
43
|
+
* `output_config.effort` mapped 1:1 from the level (including `max`).
|
|
44
|
+
* - Budget-era models (Claude 3.7 – Opus 4.5): `thinking: enabled` with a
|
|
45
|
+
* `budget_tokens` value derived from the level.
|
|
46
|
+
*/
|
|
47
|
+
export declare function createAnthropicThinkingMiddleware(modelId: string, thinkingLevel?: ThinkingLevel): LanguageModelMiddleware | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Build a fetch function that handles Anthropic OAuth.
|
|
50
|
+
* Preserves non-auth headers from init (critical for gateway auth header to survive
|
|
51
|
+
* when used with the gateway). Strips `authorization` and `x-api-key`.
|
|
52
|
+
*/
|
|
53
|
+
export declare function buildAnthropicOAuthFetch(opts?: {
|
|
54
|
+
authStorage?: CredentialStore;
|
|
55
|
+
}): typeof fetch;
|
|
56
|
+
/**
|
|
57
|
+
* Creates an Anthropic model using Claude Max OAuth authentication
|
|
58
|
+
* Uses OAuth tokens from AuthStorage (auto-refreshes when needed)
|
|
59
|
+
*/
|
|
60
|
+
export declare function opencodeClaudeMaxProvider(modelId?: string, options?: {
|
|
61
|
+
headers?: Record<string, string>;
|
|
62
|
+
authStorage?: CredentialStore;
|
|
63
|
+
thinkingLevel?: ThinkingLevel;
|
|
64
|
+
}): MastraModelConfig;
|
|
65
|
+
//# sourceMappingURL=claude-max.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-max.d.ts","sourceRoot":"","sources":["../../src/providers/claude-max.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,IAAI,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAoBvD;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAK5C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAErE;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,uBAkBlC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,EAAE,uBA2DnC,CAAC;AA+CF;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,aAAa,GAC5B,uBAAuB,GAAG,SAAS,CAiCrC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,eAAe,CAAA;CAAO,GAAG,OAAO,KAAK,CAmDnG;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,MAAmC,EAC5C,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,WAAW,CAAC,EAAE,eAAe,CAAC;IAAC,aAAa,CAAC,EAAE,aAAa,CAAA;CAAE,GAC3G,iBAAiB,CA4BnB"}
|