@mastra/code-sdk 0.0.0-mastracode-cloud-20260706153555
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 +22 -0
- package/LICENSE.md +30 -0
- package/README.md +50 -0
- package/dist/acp/agent.d.ts +35 -0
- package/dist/acp/agent.d.ts.map +1 -0
- package/dist/acp/agent.js +173 -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 +166 -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 +54 -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 +34 -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 +5 -0
- package/dist/acp.js.map +1 -0
- package/dist/agents/instructions.d.ts +6 -0
- package/dist/agents/instructions.d.ts.map +1 -0
- package/dist/agents/instructions.js +41 -0
- package/dist/agents/instructions.js.map +1 -0
- package/dist/agents/mastracode-gateway.d.ts +65 -0
- package/dist/agents/mastracode-gateway.d.ts.map +1 -0
- package/dist/agents/mastracode-gateway.js +442 -0
- package/dist/agents/mastracode-gateway.js.map +1 -0
- package/dist/agents/memory.d.ts +13 -0
- package/dist/agents/memory.d.ts.map +1 -0
- package/dist/agents/memory.js +107 -0
- package/dist/agents/memory.js.map +1 -0
- package/dist/agents/model.d.ts +55 -0
- package/dist/agents/model.d.ts.map +1 -0
- package/dist/agents/model.js +115 -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 +45 -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 +38 -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 +38 -0
- package/dist/agents/modes/plan.js.map +1 -0
- package/dist/agents/prompts/agent-instructions.d.ts +20 -0
- package/dist/agents/prompts/agent-instructions.d.ts.map +1 -0
- package/dist/agents/prompts/agent-instructions.js +82 -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 +73 -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 +22 -0
- package/dist/agents/prompts/fast.js.map +1 -0
- package/dist/agents/prompts/index.d.ts +19 -0
- package/dist/agents/prompts/index.d.ts.map +1 -0
- package/dist/agents/prompts/index.js +57 -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 +22 -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 +107 -0
- package/dist/agents/prompts/plan.js.map +1 -0
- package/dist/agents/prompts/tool-guidance.d.ts +13 -0
- package/dist/agents/prompts/tool-guidance.d.ts.map +1 -0
- package/dist/agents/prompts/tool-guidance.js +181 -0
- package/dist/agents/prompts/tool-guidance.js.map +1 -0
- package/dist/agents/sandbox-filesystem.d.ts +89 -0
- package/dist/agents/sandbox-filesystem.d.ts.map +1 -0
- package/dist/agents/sandbox-filesystem.js +268 -0
- package/dist/agents/sandbox-filesystem.js.map +1 -0
- package/dist/agents/sandbox-reattach.d.ts +19 -0
- package/dist/agents/sandbox-reattach.d.ts.map +1 -0
- package/dist/agents/sandbox-reattach.js +17 -0
- package/dist/agents/sandbox-reattach.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 +96 -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 +105 -0
- package/dist/agents/tool-availability.js.map +1 -0
- package/dist/agents/tools.d.ts +18 -0
- package/dist/agents/tools.d.ts.map +1 -0
- package/dist/agents/tools.js +126 -0
- package/dist/agents/tools.js.map +1 -0
- package/dist/agents/workspace.d.ts +22 -0
- package/dist/agents/workspace.d.ts.map +1 -0
- package/dist/agents/workspace.js +194 -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 +152 -0
- package/dist/analytics.js.map +1 -0
- package/dist/auth/index.d.ts +9 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +11 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/pkce.d.ts +13 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/pkce.js +21 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/auth/providers/anthropic.d.ts +17 -0
- package/dist/auth/providers/anthropic.d.ts.map +1 -0
- package/dist/auth/providers/anthropic.js +94 -0
- package/dist/auth/providers/anthropic.js.map +1 -0
- package/dist/auth/providers/github-copilot.d.ts +100 -0
- package/dist/auth/providers/github-copilot.d.ts.map +1 -0
- package/dist/auth/providers/github-copilot.js +302 -0
- package/dist/auth/providers/github-copilot.js.map +1 -0
- package/dist/auth/providers/openai-codex.d.ts +95 -0
- package/dist/auth/providers/openai-codex.d.ts.map +1 -0
- package/dist/auth/providers/openai-codex.js +527 -0
- package/dist/auth/providers/openai-codex.js.map +1 -0
- package/dist/auth/storage.d.ts +91 -0
- package/dist/auth/storage.d.ts.map +1 -0
- package/dist/auth/storage.js +187 -0
- package/dist/auth/storage.js.map +1 -0
- package/dist/auth/types.d.ts +68 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +1 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/clipboard/index.d.ts +26 -0
- package/dist/clipboard/index.d.ts.map +1 -0
- package/dist/clipboard/index.js +192 -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 +23 -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 +14 -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 +120 -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 +8 -0
- package/dist/evals/index.js.map +1 -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 +52 -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 +201 -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 +56 -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 +7 -0
- package/dist/evals/scorers/index.js.map +1 -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 +238 -0
- package/dist/evals/scorers/outcome.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 +196 -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 +188 -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 +85 -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 +32 -0
- package/dist/headless/index.js.map +1 -0
- package/dist/headless/policy.d.ts +17 -0
- package/dist/headless/policy.d.ts.map +1 -0
- package/dist/headless/policy.js +38 -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 +296 -0
- package/dist/headless/run-mc.js.map +1 -0
- package/dist/headless/types.d.ts +134 -0
- package/dist/headless/types.d.ts.map +1 -0
- package/dist/headless/types.js +9 -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 +78 -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 +125 -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 +16 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/manager.d.ts +47 -0
- package/dist/hooks/manager.d.ts.map +1 -0
- package/dist/hooks/manager.js +284 -0
- package/dist/hooks/manager.js.map +1 -0
- package/dist/hooks/types.d.ts +152 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +7 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +241 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +712 -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 +24 -0
- package/dist/ipc/ipc-reporter.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 +309 -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 +9 -0
- package/dist/lsp/index.js.map +1 -0
- package/dist/lsp/language.d.ts +9 -0
- package/dist/lsp/language.d.ts.map +1 -0
- package/dist/lsp/language.js +48 -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 +97 -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 +128 -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 +52 -0
- package/dist/lsp/workspace.js.map +1 -0
- package/dist/mcp/config.d.ts +34 -0
- package/dist/mcp/config.d.ts.map +1 -0
- package/dist/mcp/config.js +205 -0
- package/dist/mcp/config.js.map +1 -0
- package/dist/mcp/index.d.ts +5 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +10 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/manager.d.ts +49 -0
- package/dist/mcp/manager.d.ts.map +1 -0
- package/dist/mcp/manager.js +374 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/types.d.ts +85 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +1 -0
- package/dist/mcp/types.js.map +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 +20 -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 +28 -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 +21 -0
- package/dist/onboarding/index.js.map +1 -0
- package/dist/onboarding/om-settings.d.ts +20 -0
- package/dist/onboarding/om-settings.d.ts.map +1 -0
- package/dist/onboarding/om-settings.js +26 -0
- package/dist/onboarding/om-settings.js.map +1 -0
- package/dist/onboarding/packs.d.ts +48 -0
- package/dist/onboarding/packs.d.ts.map +1 -0
- package/dist/onboarding/packs.js +111 -0
- package/dist/onboarding/packs.js.map +1 -0
- package/dist/onboarding/settings.d.ts +323 -0
- package/dist/onboarding/settings.d.ts.map +1 -0
- package/dist/onboarding/settings.js +594 -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 +119 -0
- package/dist/permissions.js.map +1 -0
- package/dist/plugin.d.ts +81 -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/install.d.ts +20 -0
- package/dist/plugins/install.d.ts.map +1 -0
- package/dist/plugins/install.js +179 -0
- package/dist/plugins/install.js.map +1 -0
- package/dist/plugins/loader.d.ts +15 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +221 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manager.d.ts +60 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +369 -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 +75 -0
- package/dist/plugins/manifest.js.map +1 -0
- package/dist/plugins/package-link.d.ts +2 -0
- package/dist/plugins/package-link.d.ts.map +1 -0
- package/dist/plugins/package-link.js +20 -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 +26 -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 +96 -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 +152 -0
- package/dist/plugins/scaffold.js.map +1 -0
- package/dist/plugins/types.d.ts +45 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +1 -0
- package/dist/plugins/types.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 +53 -0
- package/dist/processors/plan-rejection-abort.js.map +1 -0
- package/dist/providers/amazon-bedrock-gateway.d.ts +40 -0
- package/dist/providers/amazon-bedrock-gateway.d.ts.map +1 -0
- package/dist/providers/amazon-bedrock-gateway.js +79 -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 +62 -0
- package/dist/providers/amazon-bedrock.js.map +1 -0
- package/dist/providers/claude-max.d.ts +50 -0
- package/dist/providers/claude-max.d.ts.map +1 -0
- package/dist/providers/claude-max.js +151 -0
- package/dist/providers/claude-max.js.map +1 -0
- package/dist/providers/github-copilot.d.ts +58 -0
- package/dist/providers/github-copilot.d.ts.map +1 -0
- package/dist/providers/github-copilot.js +263 -0
- package/dist/providers/github-copilot.js.map +1 -0
- package/dist/providers/openai-codex.d.ts +70 -0
- package/dist/providers/openai-codex.d.ts.map +1 -0
- package/dist/providers/openai-codex.js +291 -0
- package/dist/providers/openai-codex.js.map +1 -0
- package/dist/schema.d.ts +167 -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 +17 -0
- package/dist/theme-palette.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 +43 -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 +9 -0
- package/dist/tools/index.js.map +1 -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 +88 -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 +22 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/tools/web-search.d.ts +35 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +65 -0
- package/dist/tools/web-search.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 +74 -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 +55 -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 +207 -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 +49 -0
- package/dist/utils/gateway-sync.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 +43 -0
- package/dist/utils/plan-diff.js.map +1 -0
- package/dist/utils/plans.d.ts +56 -0
- package/dist/utils/plans.d.ts.map +1 -0
- package/dist/utils/plans.js +99 -0
- package/dist/utils/plans.js.map +1 -0
- package/dist/utils/project.d.ts +161 -0
- package/dist/utils/project.d.ts.map +1 -0
- package/dist/utils/project.js +302 -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 +104 -0
- package/dist/utils/signals-pubsub.js.map +1 -0
- package/dist/utils/slash-command-loader.d.ts +48 -0
- package/dist/utils/slash-command-loader.d.ts.map +1 -0
- package/dist/utils/slash-command-loader.js +155 -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 +96 -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 +72 -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 +98 -0
- package/dist/utils/storage-factory.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 +108 -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 +52 -0
- package/dist/utils/update-check.d.ts.map +1 -0
- package/dist/utils/update-check.js +177 -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 +126 -0
- package/dist/voice/stt-registry.js.map +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/acp/server.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAW,MAAM,+BAA+B,CAAC;AAGnG;;;GAGG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { Readable, Writable } from "node:stream";
|
|
3
|
+
import { AgentSideConnection, ndJsonStream } from "@agentclientprotocol/sdk";
|
|
4
|
+
import { MastraCodeAcpAgent } from "./agent.js";
|
|
5
|
+
async function runAcpServer(controller, modes, cleanup) {
|
|
6
|
+
const input = Readable.toWeb(process.stdin);
|
|
7
|
+
const output = Writable.toWeb(process.stdout);
|
|
8
|
+
const stream = ndJsonStream(output, input);
|
|
9
|
+
let session;
|
|
10
|
+
let agent;
|
|
11
|
+
try {
|
|
12
|
+
session = await controller.createSession({
|
|
13
|
+
id: `acp-${randomUUID()}`,
|
|
14
|
+
ownerId: `acp-owner-${randomUUID()}`
|
|
15
|
+
});
|
|
16
|
+
const activeSession = session;
|
|
17
|
+
const connection = new AgentSideConnection((conn) => {
|
|
18
|
+
agent = new MastraCodeAcpAgent(conn, controller, activeSession, modes);
|
|
19
|
+
return agent;
|
|
20
|
+
}, stream);
|
|
21
|
+
await connection.closed;
|
|
22
|
+
} finally {
|
|
23
|
+
agent?.dispose();
|
|
24
|
+
session?.thread.detachFromCurrent();
|
|
25
|
+
await session?.thread.clearAndReleaseLock();
|
|
26
|
+
if (cleanup) {
|
|
27
|
+
await cleanup();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
runAcpServer
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/acp/server.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { Readable, Writable } from 'node:stream';\nimport { AgentSideConnection, ndJsonStream } from '@agentclientprotocol/sdk';\nimport type { AgentController, AgentControllerMode, Session } from '@mastra/core/agent-controller';\nimport { MastraCodeAcpAgent } from './agent.js';\n\n/**\n * Run the ACP server over stdio.\n * This sets up the JSON-RPC stream and keeps the process alive until the client disconnects.\n */\nexport async function runAcpServer(\n controller: AgentController,\n modes: AgentControllerMode[],\n cleanup?: () => Promise<void>,\n): Promise<void> {\n // Create the ndJSON stream from stdin/stdout\n const input = Readable.toWeb(process.stdin) as ReadableStream<Uint8Array>;\n const output = Writable.toWeb(process.stdout) as WritableStream<Uint8Array>;\n const stream = ndJsonStream(output, input);\n let session: Session | undefined;\n let agent: MastraCodeAcpAgent | undefined;\n\n // Handle cleanup on disconnect (success or error)\n try {\n session = await controller.createSession({\n id: `acp-${randomUUID()}`,\n ownerId: `acp-owner-${randomUUID()}`,\n });\n const activeSession = session;\n\n // Create the agent-side connection\n const connection = new AgentSideConnection(conn => {\n agent = new MastraCodeAcpAgent(conn, controller, activeSession, modes);\n return agent;\n }, stream);\n\n await connection.closed;\n } finally {\n agent?.dispose();\n session?.thread.detachFromCurrent();\n await session?.thread.clearAndReleaseLock();\n if (cleanup) {\n await cleanup();\n }\n }\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,UAAU,gBAAgB;AACnC,SAAS,qBAAqB,oBAAoB;AAElD,SAAS,0BAA0B;AAMnC,eAAsB,aACpB,YACA,OACA,SACe;AAEf,QAAM,QAAQ,SAAS,MAAM,QAAQ,KAAK;AAC1C,QAAM,SAAS,SAAS,MAAM,QAAQ,MAAM;AAC5C,QAAM,SAAS,aAAa,QAAQ,KAAK;AACzC,MAAI;AACJ,MAAI;AAGJ,MAAI;AACF,cAAU,MAAM,WAAW,cAAc;AAAA,MACvC,IAAI,OAAO,WAAW,CAAC;AAAA,MACvB,SAAS,aAAa,WAAW,CAAC;AAAA,IACpC,CAAC;AACD,UAAM,gBAAgB;AAGtB,UAAM,aAAa,IAAI,oBAAoB,UAAQ;AACjD,cAAQ,IAAI,mBAAmB,MAAM,YAAY,eAAe,KAAK;AACrE,aAAO;AAAA,IACT,GAAG,MAAM;AAET,UAAM,WAAW;AAAA,EACnB,UAAE;AACA,WAAO,QAAQ;AACf,aAAS,OAAO,kBAAkB;AAClC,UAAM,SAAS,OAAO,oBAAoB;AAC1C,QAAI,SAAS;AACX,YAAM,QAAQ;AAAA,IAChB;AAAA,EACF;AACF;","names":[]}
|
package/dist/acp.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../src/acp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/acp.js
ADDED
package/dist/acp.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/acp.ts"],"sourcesContent":["export { MastraCodeAcpAgent } from './acp/agent.js';\n"],"mappings":"AAAA,SAAS,0BAA0B;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/agents/instructions.ts"],"names":[],"mappings":"AAOA,wBAAsB,sBAAsB,CAAC,EAAE,cAAc,EAAE,EAAE;IAAE,cAAc,EAAE;QAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAAE,mBAiCjH"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { detectCommonBinariesAsync } from "../utils/binaries.js";
|
|
2
|
+
import { getCurrentGitBranchAsync } from "../utils/project.js";
|
|
3
|
+
import { buildFullPrompt } from "./prompts/index.js";
|
|
4
|
+
async function getDynamicInstructions({ requestContext }) {
|
|
5
|
+
const agentControllerContext = requestContext.get("controller");
|
|
6
|
+
const state = agentControllerContext?.getState();
|
|
7
|
+
const modeId = agentControllerContext?.session?.modeId ?? "build";
|
|
8
|
+
const projectPath = state?.projectPath ?? process.cwd();
|
|
9
|
+
const promptCtx = {
|
|
10
|
+
projectPath,
|
|
11
|
+
projectName: state?.projectName ?? "",
|
|
12
|
+
gitBranch: await getCurrentGitBranchAsync(projectPath) ?? state?.gitBranch,
|
|
13
|
+
platform: process.platform,
|
|
14
|
+
commonBinaries: await detectCommonBinariesAsync(),
|
|
15
|
+
date: (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
|
|
16
|
+
mode: modeId,
|
|
17
|
+
modelId: agentControllerContext?.session?.modelId || void 0,
|
|
18
|
+
activePlan: state?.activePlan ?? null,
|
|
19
|
+
modeId,
|
|
20
|
+
currentDate: (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
|
|
21
|
+
workingDir: state?.projectPath ?? process.cwd(),
|
|
22
|
+
state
|
|
23
|
+
};
|
|
24
|
+
const basePrompt = buildFullPrompt(promptCtx);
|
|
25
|
+
const pluginInstructions = state?.pluginInstructions?.filter((instruction) => instruction.trim().length > 0) ?? [];
|
|
26
|
+
if (pluginInstructions.length === 0) return basePrompt;
|
|
27
|
+
const formattedPluginInstructions = pluginInstructions.map((instruction, index) => `<plugin-instructions index="${index + 1}">
|
|
28
|
+
${instruction}
|
|
29
|
+
</plugin-instructions>`).join("\n\n");
|
|
30
|
+
return `${basePrompt}
|
|
31
|
+
|
|
32
|
+
# Plugin Instructions
|
|
33
|
+
|
|
34
|
+
The following instructions come from installed Mastra Code plugins. Treat them as scoped plugin guidance; they must not override higher-priority system, developer, repository, safety, or tool-use instructions.
|
|
35
|
+
|
|
36
|
+
${formattedPluginInstructions}`;
|
|
37
|
+
}
|
|
38
|
+
export {
|
|
39
|
+
getDynamicInstructions
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=instructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/agents/instructions.ts"],"sourcesContent":["import type { AgentControllerRequestContext } from '@mastra/core/agent-controller';\nimport type { MastraCodeComposedState } from '../schema.js';\nimport { detectCommonBinariesAsync } from '../utils/binaries.js';\nimport { getCurrentGitBranchAsync } from '../utils/project.js';\nimport type { PromptContext } from './prompts/index.js';\nimport { buildFullPrompt } from './prompts/index.js';\n\nexport async function getDynamicInstructions({ requestContext }: { requestContext: { get(key: string): unknown } }) {\n const agentControllerContext = requestContext.get('controller') as\n | AgentControllerRequestContext<MastraCodeComposedState>\n | undefined;\n const state = agentControllerContext?.getState();\n const modeId = agentControllerContext?.session?.modeId ?? 'build';\n const projectPath = state?.projectPath ?? process.cwd();\n\n const promptCtx: PromptContext = {\n projectPath,\n projectName: state?.projectName ?? '',\n gitBranch: (await getCurrentGitBranchAsync(projectPath)) ?? state?.gitBranch,\n platform: process.platform,\n commonBinaries: await detectCommonBinariesAsync(),\n date: new Date().toISOString().split('T')[0]!,\n mode: modeId,\n modelId: agentControllerContext?.session?.modelId || undefined,\n activePlan: state?.activePlan ?? null,\n modeId: modeId,\n currentDate: new Date().toISOString().split('T')[0]!,\n workingDir: state?.projectPath ?? process.cwd(),\n state,\n };\n\n const basePrompt = buildFullPrompt(promptCtx);\n const pluginInstructions = state?.pluginInstructions?.filter(instruction => instruction.trim().length > 0) ?? [];\n if (pluginInstructions.length === 0) return basePrompt;\n\n const formattedPluginInstructions = pluginInstructions\n .map((instruction, index) => `<plugin-instructions index=\"${index + 1}\">\\n${instruction}\\n</plugin-instructions>`)\n .join('\\n\\n');\n\n return `${basePrompt}\\n\\n# Plugin Instructions\\n\\nThe following instructions come from installed Mastra Code plugins. Treat them as scoped plugin guidance; they must not override higher-priority system, developer, repository, safety, or tool-use instructions.\\n\\n${formattedPluginInstructions}`;\n}\n"],"mappings":"AAEA,SAAS,iCAAiC;AAC1C,SAAS,gCAAgC;AAEzC,SAAS,uBAAuB;AAEhC,eAAsB,uBAAuB,EAAE,eAAe,GAAsD;AAClH,QAAM,yBAAyB,eAAe,IAAI,YAAY;AAG9D,QAAM,QAAQ,wBAAwB,SAAS;AAC/C,QAAM,SAAS,wBAAwB,SAAS,UAAU;AAC1D,QAAM,cAAc,OAAO,eAAe,QAAQ,IAAI;AAEtD,QAAM,YAA2B;AAAA,IAC/B;AAAA,IACA,aAAa,OAAO,eAAe;AAAA,IACnC,WAAY,MAAM,yBAAyB,WAAW,KAAM,OAAO;AAAA,IACnE,UAAU,QAAQ;AAAA,IAClB,gBAAgB,MAAM,0BAA0B;AAAA,IAChD,OAAM,oBAAI,KAAK,GAAE,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC;AAAA,IAC3C,MAAM;AAAA,IACN,SAAS,wBAAwB,SAAS,WAAW;AAAA,IACrD,YAAY,OAAO,cAAc;AAAA,IACjC;AAAA,IACA,cAAa,oBAAI,KAAK,GAAE,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC;AAAA,IAClD,YAAY,OAAO,eAAe,QAAQ,IAAI;AAAA,IAC9C;AAAA,EACF;AAEA,QAAM,aAAa,gBAAgB,SAAS;AAC5C,QAAM,qBAAqB,OAAO,oBAAoB,OAAO,iBAAe,YAAY,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;AAC/G,MAAI,mBAAmB,WAAW,EAAG,QAAO;AAE5C,QAAM,8BAA8B,mBACjC,IAAI,CAAC,aAAa,UAAU,+BAA+B,QAAQ,CAAC;AAAA,EAAO,WAAW;AAAA,uBAA0B,EAChH,KAAK,MAAM;AAEd,SAAO,GAAG,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAqP,2BAA2B;AACtS;","names":[]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { CustomModelCatalogProvider } from '@mastra/core/agent-controller';
|
|
2
|
+
import { MastraModelGateway } from '@mastra/core/llm';
|
|
3
|
+
import type { GatewayAuthRequest, GatewayAuthResult, GatewayLanguageModel, MastraModelGatewayInterface, ProviderConfig } from '@mastra/core/llm';
|
|
4
|
+
import type { ThinkingLevel } from '../providers/openai-codex.js';
|
|
5
|
+
export declare const OPENAI_PREFIX = "openai/";
|
|
6
|
+
export declare const MASTRA_GATEWAY_PREFIX = "mastra/";
|
|
7
|
+
export declare const MASTRACODE_GATEWAY_ID = "mastracode";
|
|
8
|
+
export type MastraCodeCustomProvider = {
|
|
9
|
+
name: string;
|
|
10
|
+
url: string;
|
|
11
|
+
apiKey?: string;
|
|
12
|
+
models?: string[];
|
|
13
|
+
};
|
|
14
|
+
export type MastraCodeGatewayOptions = {
|
|
15
|
+
mastraGatewayBaseUrl: string;
|
|
16
|
+
mastraGatewayApiKey?: string;
|
|
17
|
+
routeThroughMastraGateway: boolean;
|
|
18
|
+
thinkingLevel?: ThinkingLevel;
|
|
19
|
+
customProviders?: MastraCodeCustomProvider[];
|
|
20
|
+
settingsPath?: string;
|
|
21
|
+
};
|
|
22
|
+
export declare function reloadAuthStorage(): void;
|
|
23
|
+
export declare function stripMastraGatewayPrefix(modelId: string): string;
|
|
24
|
+
export declare function remapOpenAIModelForCodexOAuth(modelId: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the Anthropic API key.
|
|
27
|
+
* Main slot → dedicated apikey: slot → env var.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getAnthropicApiKey(): string | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Resolve the OpenAI API key.
|
|
32
|
+
* Main slot → dedicated apikey: slot → env var.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getOpenAIApiKey(): string | undefined;
|
|
35
|
+
export declare function resolveAuth(request: GatewayAuthRequest, memoryGatewayApiKey?: string): GatewayAuthResult | undefined;
|
|
36
|
+
export declare class MastraCodeGateway extends MastraModelGateway {
|
|
37
|
+
#private;
|
|
38
|
+
readonly id = "mastracode";
|
|
39
|
+
readonly name = "MastraCode Gateway";
|
|
40
|
+
constructor({ mastraGatewayBaseUrl, mastraGatewayApiKey, routeThroughMastraGateway, thinkingLevel, customProviders, settingsPath, }: MastraCodeGatewayOptions);
|
|
41
|
+
static getMemoryGatewayApiKey(): string | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Claim an unprefixed model id (e.g. a bare `anthropic/...`) when this gateway
|
|
44
|
+
* can authenticate it via OAuth or a stored/env credential. This lets the
|
|
45
|
+
* shared gateway router select MastraCode for auth resolution, so the status
|
|
46
|
+
* bar and `/api-keys` reflect OAuth logins instead of only checking env vars.
|
|
47
|
+
*/
|
|
48
|
+
handlesModel(modelId: string): boolean;
|
|
49
|
+
static resolveProviderAuth(request: GatewayAuthRequest, memoryGatewayApiKey?: string): GatewayAuthResult | undefined;
|
|
50
|
+
static createModelCatalogProvider(gateway: MastraModelGatewayInterface): CustomModelCatalogProvider;
|
|
51
|
+
createModelCatalogProvider(): CustomModelCatalogProvider;
|
|
52
|
+
fetchProviders(): Promise<Record<string, ProviderConfig>>;
|
|
53
|
+
buildUrl(modelId: string): string | undefined | Promise<string | undefined>;
|
|
54
|
+
getApiKey(modelId: string): Promise<string>;
|
|
55
|
+
resolveAuth(request: GatewayAuthRequest): GatewayAuthResult | undefined;
|
|
56
|
+
resolveLanguageModel(args: {
|
|
57
|
+
modelId: string;
|
|
58
|
+
providerId: string;
|
|
59
|
+
apiKey: string;
|
|
60
|
+
headers?: Record<string, string>;
|
|
61
|
+
transport?: any;
|
|
62
|
+
responsesWebSocket?: any;
|
|
63
|
+
}): GatewayLanguageModel;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=mastracode-gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mastracode-gateway.d.ts","sourceRoot":"","sources":["../../src/agents/mastracode-gateway.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAwB,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AACtG,OAAO,EAGL,kBAAkB,EAGnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,EAC3B,cAAc,EACf,MAAM,kBAAkB,CAAC;AAkB1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAC/C,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAYlD,MAAM,MAAM,wBAAwB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEzG,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,EAAE,OAAO,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,wBAAgB,iBAAiB,SAEhC;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhE;AAMD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoBrE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAQvD;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAQpD;AA+BD,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEpH;AAgFD,qBAAa,iBAAkB,SAAQ,kBAAkB;;IACvD,QAAQ,CAAC,EAAE,gBAAyB;IACpC,QAAQ,CAAC,IAAI,wBAAwB;gBAUzB,EACV,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,aAAa,EACb,eAAe,EACf,YAAY,GACb,EAAE,wBAAwB;IAW3B,MAAM,CAAC,sBAAsB,IAAI,MAAM,GAAG,SAAS;IAInD;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAkBtC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAcpH,MAAM,CAAC,0BAA0B,CAAC,OAAO,EAAE,2BAA2B,GAAG,0BAA0B;IA+BnG,0BAA0B,IAAI,0BAA0B;IAQlD,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IA+B/D,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIrE,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMjD,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,SAAS;IAevE,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;CA0JzB"}
|
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
import { createAnthropic } from "@ai-sdk/anthropic";
|
|
2
|
+
import { createOpenAI } from "@ai-sdk/openai";
|
|
3
|
+
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
|
|
4
|
+
import {
|
|
5
|
+
GATEWAY_AUTH_HEADER,
|
|
6
|
+
MastraGateway,
|
|
7
|
+
MastraModelGateway,
|
|
8
|
+
ModelRouterLanguageModel,
|
|
9
|
+
PROVIDER_REGISTRY
|
|
10
|
+
} from "@mastra/core/llm";
|
|
11
|
+
import { wrapLanguageModel } from "ai";
|
|
12
|
+
import { AuthStorage } from "../auth/storage.js";
|
|
13
|
+
import { getCustomProviderId, loadSettings, MEMORY_GATEWAY_PROVIDER } from "../onboarding/settings.js";
|
|
14
|
+
import {
|
|
15
|
+
buildAnthropicOAuthFetch,
|
|
16
|
+
claudeCodeMiddleware,
|
|
17
|
+
opencodeClaudeMaxProvider,
|
|
18
|
+
promptCacheMiddleware
|
|
19
|
+
} from "../providers/claude-max.js";
|
|
20
|
+
import { getCopilotModelCatalog, githubCopilotProvider } from "../providers/github-copilot.js";
|
|
21
|
+
import {
|
|
22
|
+
buildOpenAICodexOAuthFetch,
|
|
23
|
+
createCodexMiddleware,
|
|
24
|
+
getEffectiveThinkingLevel,
|
|
25
|
+
openaiCodexProvider,
|
|
26
|
+
THINKING_LEVEL_TO_REASONING_EFFORT
|
|
27
|
+
} from "../providers/openai-codex.js";
|
|
28
|
+
const OPENAI_PREFIX = "openai/";
|
|
29
|
+
const MASTRA_GATEWAY_PREFIX = "mastra/";
|
|
30
|
+
const MASTRACODE_GATEWAY_ID = "mastracode";
|
|
31
|
+
const CODEX_OPENAI_MODEL_REMAPS = {
|
|
32
|
+
"gpt-5.3": "gpt-5.3-codex",
|
|
33
|
+
"gpt-5.2": "gpt-5.2-codex",
|
|
34
|
+
"gpt-5.1": "gpt-5.1-codex",
|
|
35
|
+
"gpt-5.1-mini": "gpt-5.1-codex-mini",
|
|
36
|
+
"gpt-5": "gpt-5-codex"
|
|
37
|
+
};
|
|
38
|
+
const authStorage = new AuthStorage();
|
|
39
|
+
function reloadAuthStorage() {
|
|
40
|
+
authStorage.reload();
|
|
41
|
+
}
|
|
42
|
+
function stripMastraGatewayPrefix(modelId) {
|
|
43
|
+
return modelId.startsWith(MASTRA_GATEWAY_PREFIX) ? modelId.substring(MASTRA_GATEWAY_PREFIX.length) : modelId;
|
|
44
|
+
}
|
|
45
|
+
function normalizeAnthropicModelId(modelId) {
|
|
46
|
+
return modelId.replace(/\.(?=\d)/g, "-");
|
|
47
|
+
}
|
|
48
|
+
function remapOpenAIModelForCodexOAuth(modelId) {
|
|
49
|
+
const normalizedModelId = stripMastraGatewayPrefix(modelId);
|
|
50
|
+
if (!normalizedModelId.startsWith(OPENAI_PREFIX)) {
|
|
51
|
+
return modelId;
|
|
52
|
+
}
|
|
53
|
+
const openaiModelId = normalizedModelId.substring(OPENAI_PREFIX.length);
|
|
54
|
+
if (openaiModelId.includes("-codex")) {
|
|
55
|
+
return modelId;
|
|
56
|
+
}
|
|
57
|
+
const codexModelId = CODEX_OPENAI_MODEL_REMAPS[openaiModelId];
|
|
58
|
+
if (!codexModelId) {
|
|
59
|
+
return modelId;
|
|
60
|
+
}
|
|
61
|
+
const remappedModelId = `${OPENAI_PREFIX}${codexModelId}`;
|
|
62
|
+
return modelId.startsWith(MASTRA_GATEWAY_PREFIX) ? `${MASTRA_GATEWAY_PREFIX}${remappedModelId}` : remappedModelId;
|
|
63
|
+
}
|
|
64
|
+
function getAnthropicApiKey() {
|
|
65
|
+
const storedCred = authStorage.get("anthropic");
|
|
66
|
+
if (storedCred?.type === "api_key" && storedCred.key.trim().length > 0) {
|
|
67
|
+
return storedCred.key.trim();
|
|
68
|
+
}
|
|
69
|
+
const dedicatedKey = authStorage.getStoredApiKey("anthropic")?.trim();
|
|
70
|
+
if (dedicatedKey) return dedicatedKey;
|
|
71
|
+
return process.env.ANTHROPIC_API_KEY?.trim() || void 0;
|
|
72
|
+
}
|
|
73
|
+
function getOpenAIApiKey() {
|
|
74
|
+
const storedCred = authStorage.get("openai-codex");
|
|
75
|
+
if (storedCred?.type === "api_key" && storedCred.key.trim().length > 0) {
|
|
76
|
+
return storedCred.key.trim();
|
|
77
|
+
}
|
|
78
|
+
const dedicatedKey = authStorage.getStoredApiKey("openai-codex")?.trim();
|
|
79
|
+
if (dedicatedKey) return dedicatedKey;
|
|
80
|
+
return process.env.OPENAI_API_KEY?.trim() || void 0;
|
|
81
|
+
}
|
|
82
|
+
function anthropicApiKeyProvider(modelId, apiKey, headers) {
|
|
83
|
+
const anthropic = createAnthropic({ apiKey, headers });
|
|
84
|
+
return wrapLanguageModel({
|
|
85
|
+
model: anthropic(modelId),
|
|
86
|
+
middleware: [promptCacheMiddleware]
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
function openaiApiKeyProvider(modelId, apiKey, headers) {
|
|
90
|
+
const openai = createOpenAI({ apiKey, baseURL: process.env.OPENAI_BASE_URL, headers });
|
|
91
|
+
return wrapLanguageModel({
|
|
92
|
+
model: openai.responses(modelId),
|
|
93
|
+
middleware: []
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
function getAuthProviderId(providerId) {
|
|
97
|
+
return providerId === "openai" ? "openai-codex" : providerId;
|
|
98
|
+
}
|
|
99
|
+
function getProviderAuthKey(providerId) {
|
|
100
|
+
const authProviderId = getAuthProviderId(providerId);
|
|
101
|
+
const storedCred = authStorage.get(authProviderId);
|
|
102
|
+
if (storedCred?.type === "api_key" && storedCred.key.trim().length > 0) {
|
|
103
|
+
return storedCred.key.trim();
|
|
104
|
+
}
|
|
105
|
+
return authStorage.getStoredApiKey(authProviderId)?.trim() || void 0;
|
|
106
|
+
}
|
|
107
|
+
function resolveAuth(request, memoryGatewayApiKey) {
|
|
108
|
+
return MastraCodeGateway.resolveProviderAuth(request, memoryGatewayApiKey);
|
|
109
|
+
}
|
|
110
|
+
function getGatewayProviderKey(gatewayId, providerId) {
|
|
111
|
+
if (gatewayId === "models.dev") return providerId;
|
|
112
|
+
return providerId === gatewayId ? gatewayId : `${gatewayId}/${providerId}`;
|
|
113
|
+
}
|
|
114
|
+
function parseGatewayRouterId(routerId, gateway) {
|
|
115
|
+
const [firstPart = "", secondPart = "", ...restParts] = routerId.split("/");
|
|
116
|
+
const gatewayId = gateway.id;
|
|
117
|
+
if (firstPart === gatewayId && secondPart) {
|
|
118
|
+
return {
|
|
119
|
+
gatewayId,
|
|
120
|
+
providerId: secondPart,
|
|
121
|
+
modelId: restParts.join("/")
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
gatewayId,
|
|
126
|
+
providerId: firstPart,
|
|
127
|
+
modelId: [secondPart, ...restParts].filter(Boolean).join("/")
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function hasResolvedAuth(auth) {
|
|
131
|
+
if (!auth) return false;
|
|
132
|
+
if (auth.apiKey || auth.bearerToken) return true;
|
|
133
|
+
return auth.headers ? Object.keys(auth.headers).length > 0 : false;
|
|
134
|
+
}
|
|
135
|
+
async function resolveGatewayProviderAuth(gateway, routerId) {
|
|
136
|
+
if (!gateway.resolveAuth) return void 0;
|
|
137
|
+
const parsed = parseGatewayRouterId(routerId, gateway);
|
|
138
|
+
try {
|
|
139
|
+
const result = await gateway.resolveAuth({
|
|
140
|
+
gatewayId: parsed.gatewayId,
|
|
141
|
+
providerId: parsed.providerId,
|
|
142
|
+
modelId: parsed.modelId,
|
|
143
|
+
routerId
|
|
144
|
+
});
|
|
145
|
+
return hasResolvedAuth(result) ? result : void 0;
|
|
146
|
+
} catch {
|
|
147
|
+
return void 0;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
async function getMastraCodeProviderConfigs(gateway) {
|
|
151
|
+
const providers = { ...PROVIDER_REGISTRY };
|
|
152
|
+
try {
|
|
153
|
+
const gatewayProviders = await gateway.fetchProviders();
|
|
154
|
+
for (const [providerId, config] of Object.entries(gatewayProviders)) {
|
|
155
|
+
providers[getGatewayProviderKey(gateway.id, providerId)] = {
|
|
156
|
+
...config,
|
|
157
|
+
gateway: gateway.id
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
} catch (error) {
|
|
161
|
+
console.warn(`Failed to load providers from gateway ${gateway.id}:`, error);
|
|
162
|
+
}
|
|
163
|
+
return providers;
|
|
164
|
+
}
|
|
165
|
+
function getApiKeyEnvVar(providerConfig) {
|
|
166
|
+
const envVars = providerConfig?.apiKeyEnvVar;
|
|
167
|
+
return Array.isArray(envVars) ? envVars[0] : envVars;
|
|
168
|
+
}
|
|
169
|
+
class MastraCodeGateway extends MastraModelGateway {
|
|
170
|
+
id = MASTRACODE_GATEWAY_ID;
|
|
171
|
+
name = "MastraCode Gateway";
|
|
172
|
+
#mastraGateway;
|
|
173
|
+
#mastraGatewayBaseUrl;
|
|
174
|
+
#mastraGatewayApiKey;
|
|
175
|
+
#routeThroughMastraGateway;
|
|
176
|
+
#thinkingLevel;
|
|
177
|
+
#customProviders;
|
|
178
|
+
#settingsPath;
|
|
179
|
+
constructor({
|
|
180
|
+
mastraGatewayBaseUrl,
|
|
181
|
+
mastraGatewayApiKey,
|
|
182
|
+
routeThroughMastraGateway,
|
|
183
|
+
thinkingLevel,
|
|
184
|
+
customProviders,
|
|
185
|
+
settingsPath
|
|
186
|
+
}) {
|
|
187
|
+
super();
|
|
188
|
+
this.#mastraGateway = new MastraGateway({ baseUrl: mastraGatewayBaseUrl });
|
|
189
|
+
this.#mastraGatewayBaseUrl = mastraGatewayBaseUrl;
|
|
190
|
+
this.#mastraGatewayApiKey = mastraGatewayApiKey;
|
|
191
|
+
this.#routeThroughMastraGateway = routeThroughMastraGateway;
|
|
192
|
+
this.#thinkingLevel = thinkingLevel;
|
|
193
|
+
this.#customProviders = customProviders;
|
|
194
|
+
this.#settingsPath = settingsPath;
|
|
195
|
+
}
|
|
196
|
+
static getMemoryGatewayApiKey() {
|
|
197
|
+
return authStorage.getStoredApiKey(MEMORY_GATEWAY_PROVIDER) ?? process.env["MASTRA_GATEWAY_API_KEY"];
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Claim an unprefixed model id (e.g. a bare `anthropic/...`) when this gateway
|
|
201
|
+
* can authenticate it via OAuth or a stored/env credential. This lets the
|
|
202
|
+
* shared gateway router select MastraCode for auth resolution, so the status
|
|
203
|
+
* bar and `/api-keys` reflect OAuth logins instead of only checking env vars.
|
|
204
|
+
*/
|
|
205
|
+
handlesModel(modelId) {
|
|
206
|
+
const parsed = parseGatewayRouterId(modelId, this);
|
|
207
|
+
if (!parsed.providerId || !parsed.modelId) return false;
|
|
208
|
+
if (this.#routeThroughMastraGateway && this.#mastraGatewayApiKey) return true;
|
|
209
|
+
const customProvider = this.#getCustomProviders().find(
|
|
210
|
+
(provider) => parsed.providerId === getCustomProviderId(provider.name)
|
|
211
|
+
);
|
|
212
|
+
if (customProvider?.apiKey) return true;
|
|
213
|
+
return hasResolvedAuth(
|
|
214
|
+
MastraCodeGateway.resolveProviderAuth({
|
|
215
|
+
gatewayId: this.id,
|
|
216
|
+
providerId: parsed.providerId,
|
|
217
|
+
modelId: parsed.modelId,
|
|
218
|
+
routerId: modelId
|
|
219
|
+
})
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
static resolveProviderAuth(request, memoryGatewayApiKey) {
|
|
223
|
+
if (request.gatewayId === "mastra" && memoryGatewayApiKey) {
|
|
224
|
+
return { apiKey: memoryGatewayApiKey, source: "gateway" };
|
|
225
|
+
}
|
|
226
|
+
const storedCred = authStorage.get(getAuthProviderId(request.providerId));
|
|
227
|
+
if (storedCred?.type === "oauth") {
|
|
228
|
+
return { bearerToken: "oauth", source: "gateway" };
|
|
229
|
+
}
|
|
230
|
+
const apiKey = getProviderAuthKey(request.providerId);
|
|
231
|
+
return apiKey ? { apiKey, source: "gateway" } : void 0;
|
|
232
|
+
}
|
|
233
|
+
static createModelCatalogProvider(gateway) {
|
|
234
|
+
return async () => {
|
|
235
|
+
const registry = await getMastraCodeProviderConfigs(gateway);
|
|
236
|
+
const models = [];
|
|
237
|
+
for (const [provider, providerConfig] of Object.entries(registry)) {
|
|
238
|
+
const apiKeyEnvVar = getApiKeyEnvVar(providerConfig);
|
|
239
|
+
const hasEnvKey = apiKeyEnvVar ? Boolean(process.env[apiKeyEnvVar]) : false;
|
|
240
|
+
const modelNames = providerConfig.models;
|
|
241
|
+
if (!Array.isArray(modelNames)) continue;
|
|
242
|
+
const gatewayAuth = modelNames[0] ? await resolveGatewayProviderAuth(gateway, `${provider}/${modelNames[0]}`) : void 0;
|
|
243
|
+
for (const modelName of modelNames) {
|
|
244
|
+
const id = `${provider}/${modelName}`;
|
|
245
|
+
models.push({
|
|
246
|
+
id,
|
|
247
|
+
provider,
|
|
248
|
+
modelName,
|
|
249
|
+
hasApiKey: hasEnvKey || Boolean(gatewayAuth),
|
|
250
|
+
apiKeyEnvVar: apiKeyEnvVar || void 0
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return models;
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
createModelCatalogProvider() {
|
|
258
|
+
return MastraCodeGateway.createModelCatalogProvider(this);
|
|
259
|
+
}
|
|
260
|
+
#getCustomProviders() {
|
|
261
|
+
return this.#customProviders ?? loadSettings(this.#settingsPath).customProviders;
|
|
262
|
+
}
|
|
263
|
+
async fetchProviders() {
|
|
264
|
+
const providers = {};
|
|
265
|
+
for (const provider of this.#getCustomProviders()) {
|
|
266
|
+
const models = provider.models ?? [];
|
|
267
|
+
if (!models.length) continue;
|
|
268
|
+
providers[getCustomProviderId(provider.name)] = {
|
|
269
|
+
name: provider.name,
|
|
270
|
+
url: provider.url,
|
|
271
|
+
apiKeyEnvVar: "",
|
|
272
|
+
apiKeyHeader: "Authorization",
|
|
273
|
+
gateway: this.id,
|
|
274
|
+
models
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
try {
|
|
278
|
+
const copilotModels = await getCopilotModelCatalog({ authStorage });
|
|
279
|
+
providers["github-copilot"] = {
|
|
280
|
+
name: "GitHub Copilot",
|
|
281
|
+
apiKeyEnvVar: "",
|
|
282
|
+
apiKeyHeader: "Authorization",
|
|
283
|
+
gateway: this.id,
|
|
284
|
+
models: copilotModels.map((model) => model.id)
|
|
285
|
+
};
|
|
286
|
+
} catch (error) {
|
|
287
|
+
console.warn("Failed to load GitHub Copilot model catalog:", error);
|
|
288
|
+
}
|
|
289
|
+
return providers;
|
|
290
|
+
}
|
|
291
|
+
buildUrl(modelId) {
|
|
292
|
+
return this.#routeThroughMastraGateway ? this.#mastraGateway.buildUrl(modelId) : modelId;
|
|
293
|
+
}
|
|
294
|
+
async getApiKey(modelId) {
|
|
295
|
+
const providerId = stripMastraGatewayPrefix(modelId).split("/", 1)[0];
|
|
296
|
+
if (this.#routeThroughMastraGateway) return this.#mastraGatewayApiKey ?? "";
|
|
297
|
+
return providerId ? getProviderAuthKey(providerId) ?? "" : "";
|
|
298
|
+
}
|
|
299
|
+
resolveAuth(request) {
|
|
300
|
+
if (this.#routeThroughMastraGateway && this.#mastraGatewayApiKey) {
|
|
301
|
+
return { apiKey: this.#mastraGatewayApiKey, source: "gateway" };
|
|
302
|
+
}
|
|
303
|
+
const customProvider = this.#getCustomProviders().find(
|
|
304
|
+
(provider) => request.providerId === getCustomProviderId(provider.name)
|
|
305
|
+
);
|
|
306
|
+
if (customProvider?.apiKey) {
|
|
307
|
+
return { apiKey: customProvider.apiKey, source: "gateway" };
|
|
308
|
+
}
|
|
309
|
+
return MastraCodeGateway.resolveProviderAuth(request);
|
|
310
|
+
}
|
|
311
|
+
resolveLanguageModel(args) {
|
|
312
|
+
const customProvider = this.#getCustomProviders().find(
|
|
313
|
+
(provider) => args.providerId === getCustomProviderId(provider.name)
|
|
314
|
+
);
|
|
315
|
+
if (customProvider) {
|
|
316
|
+
const provider = createOpenAICompatible({
|
|
317
|
+
name: args.providerId,
|
|
318
|
+
baseURL: customProvider.url,
|
|
319
|
+
apiKey: args.apiKey,
|
|
320
|
+
headers: args.headers
|
|
321
|
+
});
|
|
322
|
+
return provider.chatModel(args.modelId);
|
|
323
|
+
}
|
|
324
|
+
if (args.providerId === "github-copilot") {
|
|
325
|
+
return githubCopilotProvider(args.modelId, { headers: args.headers });
|
|
326
|
+
}
|
|
327
|
+
if (args.providerId === "moonshotai") {
|
|
328
|
+
if (!process.env.MOONSHOT_AI_API_KEY) {
|
|
329
|
+
throw new Error(`Need MOONSHOT_AI_API_KEY`);
|
|
330
|
+
}
|
|
331
|
+
return createAnthropic({
|
|
332
|
+
apiKey: process.env.MOONSHOT_AI_API_KEY,
|
|
333
|
+
baseURL: "https://api.moonshot.ai/anthropic/v1",
|
|
334
|
+
name: "moonshotai.anthropicv1",
|
|
335
|
+
headers: args.headers
|
|
336
|
+
})(args.modelId);
|
|
337
|
+
}
|
|
338
|
+
if (args.providerId === "anthropic") {
|
|
339
|
+
return this.#resolveAnthropicModel(args);
|
|
340
|
+
}
|
|
341
|
+
if (args.providerId === "openai") {
|
|
342
|
+
const openaiModel = this.#resolveOpenAIModel(args);
|
|
343
|
+
if (openaiModel) return openaiModel;
|
|
344
|
+
}
|
|
345
|
+
if (this.#routeThroughMastraGateway) {
|
|
346
|
+
return this.#mastraGateway.resolveLanguageModel(args);
|
|
347
|
+
}
|
|
348
|
+
return new ModelRouterLanguageModel({
|
|
349
|
+
id: `${args.providerId}/${args.modelId}`,
|
|
350
|
+
headers: args.headers
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
#resolveAnthropicModel(args) {
|
|
354
|
+
const bareModelId = normalizeAnthropicModelId(args.modelId);
|
|
355
|
+
const storedCred = authStorage.get("anthropic");
|
|
356
|
+
if (this.#routeThroughMastraGateway) {
|
|
357
|
+
if (storedCred?.type === "oauth") {
|
|
358
|
+
const anthropic = createAnthropic({
|
|
359
|
+
apiKey: "oauth-gateway-placeholder",
|
|
360
|
+
baseURL: `${this.#mastraGatewayBaseUrl}/v1`,
|
|
361
|
+
headers: {
|
|
362
|
+
[GATEWAY_AUTH_HEADER]: `Bearer ${args.apiKey}`,
|
|
363
|
+
...args.headers
|
|
364
|
+
},
|
|
365
|
+
fetch: buildAnthropicOAuthFetch({ authStorage })
|
|
366
|
+
});
|
|
367
|
+
return wrapLanguageModel({
|
|
368
|
+
model: anthropic(bareModelId),
|
|
369
|
+
middleware: [claudeCodeMiddleware, promptCacheMiddleware]
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
return this.#mastraGateway.resolveLanguageModel({ ...args, modelId: bareModelId });
|
|
373
|
+
}
|
|
374
|
+
if (storedCred?.type === "oauth") {
|
|
375
|
+
return opencodeClaudeMaxProvider(bareModelId, { headers: args.headers });
|
|
376
|
+
}
|
|
377
|
+
if (storedCred?.type === "api_key" && storedCred.key.trim().length > 0) {
|
|
378
|
+
return anthropicApiKeyProvider(
|
|
379
|
+
bareModelId,
|
|
380
|
+
storedCred.key.trim(),
|
|
381
|
+
args.headers
|
|
382
|
+
);
|
|
383
|
+
}
|
|
384
|
+
const apiKey = getAnthropicApiKey();
|
|
385
|
+
if (apiKey) {
|
|
386
|
+
return anthropicApiKeyProvider(bareModelId, apiKey, args.headers);
|
|
387
|
+
}
|
|
388
|
+
return opencodeClaudeMaxProvider(bareModelId, { headers: args.headers });
|
|
389
|
+
}
|
|
390
|
+
#resolveOpenAIModel(args) {
|
|
391
|
+
const storedCred = authStorage.get("openai-codex");
|
|
392
|
+
if (this.#routeThroughMastraGateway) {
|
|
393
|
+
if (storedCred?.type === "oauth") {
|
|
394
|
+
const resolvedModelId = remapOpenAIModelForCodexOAuth(`openai/${args.modelId}`);
|
|
395
|
+
const resolvedBareModelId = resolvedModelId.substring(OPENAI_PREFIX.length);
|
|
396
|
+
const requestedLevel = this.#thinkingLevel ?? "medium";
|
|
397
|
+
const effectiveLevel = getEffectiveThinkingLevel(resolvedBareModelId, requestedLevel);
|
|
398
|
+
const reasoningEffort = THINKING_LEVEL_TO_REASONING_EFFORT[effectiveLevel];
|
|
399
|
+
const middleware = createCodexMiddleware(reasoningEffort);
|
|
400
|
+
const openai = createOpenAI({
|
|
401
|
+
apiKey: "oauth-gateway-placeholder",
|
|
402
|
+
baseURL: `${this.#mastraGatewayBaseUrl}/v1`,
|
|
403
|
+
headers: {
|
|
404
|
+
[GATEWAY_AUTH_HEADER]: `Bearer ${args.apiKey}`,
|
|
405
|
+
...args.headers
|
|
406
|
+
},
|
|
407
|
+
fetch: buildOpenAICodexOAuthFetch({ authStorage, rewriteUrl: false })
|
|
408
|
+
});
|
|
409
|
+
return wrapLanguageModel({
|
|
410
|
+
model: openai.responses(resolvedBareModelId),
|
|
411
|
+
middleware: [middleware]
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
return this.#mastraGateway.resolveLanguageModel(args);
|
|
415
|
+
}
|
|
416
|
+
if (storedCred?.type === "oauth") {
|
|
417
|
+
const resolvedModelId = remapOpenAIModelForCodexOAuth(`openai/${args.modelId}`);
|
|
418
|
+
return openaiCodexProvider(resolvedModelId.substring(OPENAI_PREFIX.length), {
|
|
419
|
+
thinkingLevel: this.#thinkingLevel,
|
|
420
|
+
headers: args.headers
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
const apiKey = getOpenAIApiKey();
|
|
424
|
+
if (apiKey) {
|
|
425
|
+
return openaiApiKeyProvider(args.modelId, apiKey, args.headers);
|
|
426
|
+
}
|
|
427
|
+
return void 0;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
export {
|
|
431
|
+
MASTRACODE_GATEWAY_ID,
|
|
432
|
+
MASTRA_GATEWAY_PREFIX,
|
|
433
|
+
MastraCodeGateway,
|
|
434
|
+
OPENAI_PREFIX,
|
|
435
|
+
getAnthropicApiKey,
|
|
436
|
+
getOpenAIApiKey,
|
|
437
|
+
reloadAuthStorage,
|
|
438
|
+
remapOpenAIModelForCodexOAuth,
|
|
439
|
+
resolveAuth,
|
|
440
|
+
stripMastraGatewayPrefix
|
|
441
|
+
};
|
|
442
|
+
//# sourceMappingURL=mastracode-gateway.js.map
|