@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,177 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { readFileSync, realpathSync } from "node:fs";
|
|
3
|
+
import { dirname, resolve } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
const PACKAGE_NAME = "mastracode";
|
|
6
|
+
const NPM_REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
|
|
7
|
+
const FETCH_TIMEOUT_MS = 5e3;
|
|
8
|
+
function matchPM(str) {
|
|
9
|
+
if (/pnpm/i.test(str)) return "pnpm";
|
|
10
|
+
if (/\byarn\b/i.test(str)) return "yarn";
|
|
11
|
+
if (/\bbun\b/i.test(str)) return "bun";
|
|
12
|
+
if (/\bnpm\b/i.test(str)) return "npm";
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
async function detectPackageManager() {
|
|
16
|
+
const userAgent = process.env.npm_config_user_agent;
|
|
17
|
+
if (userAgent) {
|
|
18
|
+
const pm = matchPM(userAgent);
|
|
19
|
+
if (pm) return pm;
|
|
20
|
+
}
|
|
21
|
+
const execPath = process.env.npm_execpath;
|
|
22
|
+
if (execPath) {
|
|
23
|
+
const pm = matchPM(execPath);
|
|
24
|
+
if (pm) return pm;
|
|
25
|
+
}
|
|
26
|
+
const nodePath = process.env.NODE_PATH;
|
|
27
|
+
if (nodePath) {
|
|
28
|
+
if (/[/\\]\.pnpm[/\\]/.test(nodePath) || /[/\\]pnpm[/\\]/.test(nodePath)) return "pnpm";
|
|
29
|
+
if (/[/\\]\.yarn[/\\]/.test(nodePath)) return "yarn";
|
|
30
|
+
if (/[/\\]\.bun[/\\]/.test(nodePath)) return "bun";
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
const scriptPath = realpathSync(process.argv[1] ?? "");
|
|
34
|
+
if (/[/\\]\.?pnpm[/\\]/.test(scriptPath)) return "pnpm";
|
|
35
|
+
if (/[/\\]\.?yarn[/\\]/.test(scriptPath)) return "yarn";
|
|
36
|
+
if (/[/\\]\.?bun[/\\]/.test(scriptPath)) return "bun";
|
|
37
|
+
} catch {
|
|
38
|
+
}
|
|
39
|
+
const pnpmResult = await new Promise((resolve2) => {
|
|
40
|
+
execFile("pnpm", ["list", "-g", "--depth=0", PACKAGE_NAME], { timeout: 3e3 }, (error, stdout) => {
|
|
41
|
+
resolve2(!error && stdout.includes(PACKAGE_NAME));
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
if (pnpmResult) return "pnpm";
|
|
45
|
+
return "npm";
|
|
46
|
+
}
|
|
47
|
+
function getInstallCommand(pm, version) {
|
|
48
|
+
const pkg = version ? `${PACKAGE_NAME}@${version}` : `${PACKAGE_NAME}@latest`;
|
|
49
|
+
switch (pm) {
|
|
50
|
+
case "pnpm":
|
|
51
|
+
return `pnpm add -g ${pkg}`;
|
|
52
|
+
case "yarn":
|
|
53
|
+
return `yarn global add ${pkg}`;
|
|
54
|
+
case "bun":
|
|
55
|
+
return `bun add -g ${pkg}`;
|
|
56
|
+
default:
|
|
57
|
+
return `npm install -g ${pkg}`;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function getCurrentVersion() {
|
|
61
|
+
if (typeof MASTRACODE_VERSION !== "undefined") {
|
|
62
|
+
return MASTRACODE_VERSION;
|
|
63
|
+
}
|
|
64
|
+
const dir = dirname(fileURLToPath(import.meta.url));
|
|
65
|
+
const pkgPath = resolve(dir, "../../package.json");
|
|
66
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
67
|
+
return pkg.version;
|
|
68
|
+
}
|
|
69
|
+
async function fetchLatestVersion() {
|
|
70
|
+
if (process.env.MASTRACODE_UPDATE_LATEST_VERSION) return process.env.MASTRACODE_UPDATE_LATEST_VERSION;
|
|
71
|
+
try {
|
|
72
|
+
const controller = new AbortController();
|
|
73
|
+
const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
74
|
+
const res = await fetch(NPM_REGISTRY_URL, { signal: controller.signal });
|
|
75
|
+
clearTimeout(timeout);
|
|
76
|
+
if (!res.ok) return null;
|
|
77
|
+
const data = await res.json();
|
|
78
|
+
return data.version ?? null;
|
|
79
|
+
} catch {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function isNewerVersion(current, latest) {
|
|
84
|
+
const parse = (v) => v.replace(/^v/, "").split("-")[0].split(".").map((s) => {
|
|
85
|
+
const n = Number(s);
|
|
86
|
+
return Number.isFinite(n) ? n : 0;
|
|
87
|
+
});
|
|
88
|
+
const [cMajor = 0, cMinor = 0, cPatch = 0] = parse(current);
|
|
89
|
+
const [lMajor = 0, lMinor = 0, lPatch = 0] = parse(latest);
|
|
90
|
+
if (lMajor !== cMajor) return lMajor > cMajor;
|
|
91
|
+
if (lMinor !== cMinor) return lMinor > cMinor;
|
|
92
|
+
return lPatch > cPatch;
|
|
93
|
+
}
|
|
94
|
+
const MAX_CHANGELOG_ENTRIES = 20;
|
|
95
|
+
async function fetchChangelog(version) {
|
|
96
|
+
if (process.env.MASTRACODE_UPDATE_CHANGELOG) return process.env.MASTRACODE_UPDATE_CHANGELOG;
|
|
97
|
+
try {
|
|
98
|
+
const url = `https://unpkg.com/${PACKAGE_NAME}@${version}/CHANGELOG.md`;
|
|
99
|
+
const controller = new AbortController();
|
|
100
|
+
const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
101
|
+
const res = await fetch(url, { signal: controller.signal });
|
|
102
|
+
clearTimeout(timeout);
|
|
103
|
+
if (!res.ok) return null;
|
|
104
|
+
const text = await res.text();
|
|
105
|
+
return parseChangelog(text, version);
|
|
106
|
+
} catch {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function parseChangelog(markdown, version) {
|
|
111
|
+
const versionHeader = `## ${version}`;
|
|
112
|
+
const startIdx = markdown.indexOf(versionHeader);
|
|
113
|
+
if (startIdx === -1) return null;
|
|
114
|
+
const afterHeader = startIdx + versionHeader.length;
|
|
115
|
+
const nextHeaderIdx = markdown.indexOf("\n## ", afterHeader);
|
|
116
|
+
const section = nextHeaderIdx === -1 ? markdown.slice(afterHeader) : markdown.slice(afterHeader, nextHeaderIdx);
|
|
117
|
+
const lines = section.split("\n");
|
|
118
|
+
const entries = [];
|
|
119
|
+
let skipIndented = false;
|
|
120
|
+
for (let i = 0; i < lines.length; i++) {
|
|
121
|
+
const raw = lines[i];
|
|
122
|
+
const trimmed = raw.trim();
|
|
123
|
+
const isTopLevel = raw === trimmed && trimmed.startsWith("- ");
|
|
124
|
+
if (!isTopLevel) {
|
|
125
|
+
if (skipIndented && /^\s+-\s/.test(raw)) continue;
|
|
126
|
+
skipIndented = false;
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
if (/^- Updated dependenc/i.test(trimmed)) {
|
|
130
|
+
skipIndented = true;
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
skipIndented = false;
|
|
134
|
+
let entry = trimmed.slice(2);
|
|
135
|
+
entry = entry.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1");
|
|
136
|
+
entry = entry.replace(/\s*\(#\d+\)\s*/g, " ");
|
|
137
|
+
entry = entry.replace(/\s*\(`[a-f0-9]+`\)\s*/g, " ");
|
|
138
|
+
entry = entry.replace(/\.\s*$/, "");
|
|
139
|
+
entry = entry.trim();
|
|
140
|
+
if (entry) entries.push(entry);
|
|
141
|
+
if (entries.length >= MAX_CHANGELOG_ENTRIES) break;
|
|
142
|
+
}
|
|
143
|
+
if (entries.length === 0) return null;
|
|
144
|
+
return entries.map((e) => ` \u2022 ${e}`).join("\n");
|
|
145
|
+
}
|
|
146
|
+
function runUpdate(pm, targetVersion) {
|
|
147
|
+
const args = buildInstallArgs(pm, targetVersion);
|
|
148
|
+
return new Promise((resolve2) => {
|
|
149
|
+
execFile(pm, args, { timeout: 6e4 }, (error) => {
|
|
150
|
+
resolve2(!error);
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
function buildInstallArgs(pm, version) {
|
|
155
|
+
const pkg = `${PACKAGE_NAME}@${version}`;
|
|
156
|
+
switch (pm) {
|
|
157
|
+
case "pnpm":
|
|
158
|
+
return ["add", "-g", pkg];
|
|
159
|
+
case "yarn":
|
|
160
|
+
return ["global", "add", pkg];
|
|
161
|
+
case "bun":
|
|
162
|
+
return ["add", "-g", pkg];
|
|
163
|
+
default:
|
|
164
|
+
return ["install", "-g", pkg];
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
export {
|
|
168
|
+
detectPackageManager,
|
|
169
|
+
fetchChangelog,
|
|
170
|
+
fetchLatestVersion,
|
|
171
|
+
getCurrentVersion,
|
|
172
|
+
getInstallCommand,
|
|
173
|
+
isNewerVersion,
|
|
174
|
+
parseChangelog,
|
|
175
|
+
runUpdate
|
|
176
|
+
};
|
|
177
|
+
//# sourceMappingURL=update-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/update-check.ts"],"sourcesContent":["/**\n * Check for newer versions of mastracode on npm.\n */\n\nimport { execFile } from 'node:child_process';\nimport { readFileSync, realpathSync } from 'node:fs';\nimport { dirname, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\ndeclare const MASTRACODE_VERSION: string | undefined;\n\nconst PACKAGE_NAME = 'mastracode';\nconst NPM_REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;\n\n/** Timeout for the npm registry fetch (ms). */\nconst FETCH_TIMEOUT_MS = 5_000;\n\nexport type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun';\n\nfunction matchPM(str: string): PackageManager | null {\n // Order matters: check pnpm before npm since \"npm\" is a substring of some paths\n if (/pnpm/i.test(str)) return 'pnpm';\n if (/\\byarn\\b/i.test(str)) return 'yarn';\n if (/\\bbun\\b/i.test(str)) return 'bun';\n if (/\\bnpm\\b/i.test(str)) return 'npm';\n return null;\n}\n\n/**\n * Detect which package manager was used to install mastracode globally.\n *\n * Uses a multi-tier approach:\n * 1. npm_config_user_agent env var (set when run via `pnpm run`, `npm run`, etc.)\n * 2. npm_execpath env var (fallback for script-based invocation)\n * 3. NODE_PATH env var (set by pnpm global bin stubs)\n * 4. Resolved path of the running script (process.argv[1])\n * 5. Shell-out to `pnpm list -g` to check if pnpm manages the package\n * 6. Falls back to 'npm'\n */\nexport async function detectPackageManager(): Promise<PackageManager> {\n // Tier 1: npm_config_user_agent (most reliable when available)\n const userAgent = process.env.npm_config_user_agent;\n if (userAgent) {\n const pm = matchPM(userAgent);\n if (pm) return pm;\n }\n\n // Tier 2: npm_execpath\n const execPath = process.env.npm_execpath;\n if (execPath) {\n const pm = matchPM(execPath);\n if (pm) return pm;\n }\n\n // Tier 3: NODE_PATH (pnpm global stubs set this to paths containing .pnpm)\n const nodePath = process.env.NODE_PATH;\n if (nodePath) {\n if (/[/\\\\]\\.pnpm[/\\\\]/.test(nodePath) || /[/\\\\]pnpm[/\\\\]/.test(nodePath)) return 'pnpm';\n if (/[/\\\\]\\.yarn[/\\\\]/.test(nodePath)) return 'yarn';\n if (/[/\\\\]\\.bun[/\\\\]/.test(nodePath)) return 'bun';\n }\n\n // Tier 4: Resolved script path\n try {\n const scriptPath = realpathSync(process.argv[1] ?? '');\n if (/[/\\\\]\\.?pnpm[/\\\\]/.test(scriptPath)) return 'pnpm';\n if (/[/\\\\]\\.?yarn[/\\\\]/.test(scriptPath)) return 'yarn';\n if (/[/\\\\]\\.?bun[/\\\\]/.test(scriptPath)) return 'bun';\n } catch {\n // realpathSync can fail if argv[1] is missing/broken — fall through\n }\n\n // Tier 5: Check if the package is in pnpm's global store (non-blocking)\n const pnpmResult = await new Promise<boolean>(resolve => {\n execFile('pnpm', ['list', '-g', '--depth=0', PACKAGE_NAME], { timeout: 3_000 }, (error, stdout) => {\n resolve(!error && stdout.includes(PACKAGE_NAME));\n });\n });\n if (pnpmResult) return 'pnpm';\n\n return 'npm';\n}\n\n/**\n * Build the shell command string a user would run to install/update globally.\n */\nexport function getInstallCommand(pm: PackageManager, version?: string): string {\n const pkg = version ? `${PACKAGE_NAME}@${version}` : `${PACKAGE_NAME}@latest`;\n switch (pm) {\n case 'pnpm':\n return `pnpm add -g ${pkg}`;\n case 'yarn':\n return `yarn global add ${pkg}`;\n case 'bun':\n return `bun add -g ${pkg}`;\n default:\n return `npm install -g ${pkg}`;\n }\n}\n\n/**\n * Read the current version, injected at build time by tsup's `define` option.\n * Falls back to reading package.json at runtime (e.g. when running from source with tsx).\n */\nexport function getCurrentVersion(): string {\n if (typeof MASTRACODE_VERSION !== 'undefined') {\n return MASTRACODE_VERSION;\n }\n // Fallback for running from source (e.g. pnpx tsx mastracode/src/main.ts)\n const dir = dirname(fileURLToPath(import.meta.url));\n const pkgPath = resolve(dir, '../../package.json');\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));\n return pkg.version;\n}\n\n/**\n * Fetch the latest published version from npm.\n * Returns null if the fetch fails (network error, timeout, etc.).\n */\nexport async function fetchLatestVersion(): Promise<string | null> {\n if (process.env.MASTRACODE_UPDATE_LATEST_VERSION) return process.env.MASTRACODE_UPDATE_LATEST_VERSION;\n\n try {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);\n const res = await fetch(NPM_REGISTRY_URL, { signal: controller.signal });\n clearTimeout(timeout);\n if (!res.ok) return null;\n const data = (await res.json()) as { version?: string };\n return data.version ?? null;\n } catch {\n return null;\n }\n}\n\n/**\n * Simple semver comparison: returns true if `latest` is newer than `current`.\n * Handles standard x.y.z versions. Ignores pre-release tags.\n */\nexport function isNewerVersion(current: string, latest: string): boolean {\n const parse = (v: string) =>\n v\n .replace(/^v/, '')\n .split('-')[0]!\n .split('.')\n .map(s => {\n const n = Number(s);\n return Number.isFinite(n) ? n : 0;\n });\n const [cMajor = 0, cMinor = 0, cPatch = 0] = parse(current);\n const [lMajor = 0, lMinor = 0, lPatch = 0] = parse(latest);\n if (lMajor !== cMajor) return lMajor > cMajor;\n if (lMinor !== cMinor) return lMinor > cMinor;\n return lPatch > cPatch;\n}\n\n/** Max entries to show in the changelog summary. */\nconst MAX_CHANGELOG_ENTRIES = 20;\n\n/**\n * Fetch the CHANGELOG.md for a specific published version from the npm CDN\n * and extract a human-readable summary of changes.\n * Returns null if the fetch fails or the changelog can't be parsed.\n */\nexport async function fetchChangelog(version: string): Promise<string | null> {\n if (process.env.MASTRACODE_UPDATE_CHANGELOG) return process.env.MASTRACODE_UPDATE_CHANGELOG;\n\n try {\n const url = `https://unpkg.com/${PACKAGE_NAME}@${version}/CHANGELOG.md`;\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);\n const res = await fetch(url, { signal: controller.signal });\n clearTimeout(timeout);\n if (!res.ok) return null;\n const text = await res.text();\n return parseChangelog(text, version);\n } catch {\n return null;\n }\n}\n\n/**\n * Extract the changelog section for a specific version and format it\n * as a concise bullet list suitable for terminal display.\n */\nexport function parseChangelog(markdown: string, version: string): string | null {\n const versionHeader = `## ${version}`;\n const startIdx = markdown.indexOf(versionHeader);\n if (startIdx === -1) return null;\n\n const afterHeader = startIdx + versionHeader.length;\n const nextHeaderIdx = markdown.indexOf('\\n## ', afterHeader);\n const section = nextHeaderIdx === -1 ? markdown.slice(afterHeader) : markdown.slice(afterHeader, nextHeaderIdx);\n\n const lines = section.split('\\n');\n const entries: string[] = [];\n let skipIndented = false;\n\n for (let i = 0; i < lines.length; i++) {\n const raw = lines[i]!;\n const trimmed = raw.trim();\n\n // Only match top-level entries (no leading whitespace before \"- \")\n const isTopLevel = raw === trimmed && trimmed.startsWith('- ');\n if (!isTopLevel) {\n // Skip indented sub-items (e.g. dependency list entries)\n if (skipIndented && /^\\s+-\\s/.test(raw)) continue;\n skipIndented = false;\n continue;\n }\n\n // Skip dependency update entries and their sub-items\n if (/^- Updated dependenc/i.test(trimmed)) {\n skipIndented = true;\n continue;\n }\n skipIndented = false;\n\n let entry = trimmed.slice(2);\n // Strip markdown links: [text](url) → text\n entry = entry.replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1');\n // Strip PR references like (#15760)\n entry = entry.replace(/\\s*\\(#\\d+\\)\\s*/g, ' ');\n // Strip commit SHA references like (`abc123`)\n entry = entry.replace(/\\s*\\(`[a-f0-9]+`\\)\\s*/g, ' ');\n // Trim trailing periods for cleaner bullet display\n entry = entry.replace(/\\.\\s*$/, '');\n entry = entry.trim();\n if (entry) entries.push(entry);\n if (entries.length >= MAX_CHANGELOG_ENTRIES) break;\n }\n\n if (entries.length === 0) return null;\n return entries.map(e => ` • ${e}`).join('\\n');\n}\n\n/**\n * Run the appropriate global install command to update mastracode.\n * Returns true on success, false on failure.\n */\nexport function runUpdate(pm: PackageManager, targetVersion: string): Promise<boolean> {\n const args = buildInstallArgs(pm, targetVersion);\n return new Promise(resolve => {\n execFile(pm, args, { timeout: 60_000 }, error => {\n resolve(!error);\n });\n });\n}\n\nfunction buildInstallArgs(pm: PackageManager, version: string): string[] {\n const pkg = `${PACKAGE_NAME}@${version}`;\n switch (pm) {\n case 'pnpm':\n return ['add', '-g', pkg];\n case 'yarn':\n return ['global', 'add', pkg];\n case 'bun':\n return ['add', '-g', pkg];\n default:\n return ['install', '-g', pkg];\n }\n}\n"],"mappings":"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","names":["resolve"]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Speech-to-text (STT) model registry for push-to-talk voice input.
|
|
3
|
+
*
|
|
4
|
+
* This is the single source of truth shared by the `/voice` settings picker,
|
|
5
|
+
* settings validation, and the cloud transcription resolver. Entries are
|
|
6
|
+
* derived from models.dev (https://models.dev/api.json): a model is treated as
|
|
7
|
+
* STT when its modalities are audio-in / text-out with no text input.
|
|
8
|
+
*
|
|
9
|
+
* Most cloud providers here speak the OpenAI `/audio/transcriptions` shape, so
|
|
10
|
+
* the cloud engine resolves them through Mastra's `OpenAIVoice` (`MastraVoice`)
|
|
11
|
+
* built on the OpenAI client — `openai` uses the default endpoint, every other
|
|
12
|
+
* OpenAI-compatible host supplies its `baseURL`. Deepgram is the exception: it
|
|
13
|
+
* is not OpenAI-compatible, so it resolves through `@mastra/voice-deepgram`
|
|
14
|
+
* (`DeepgramVoice`). Deepgram is not in the models.dev STT snapshot but is a
|
|
15
|
+
* first-class hosted STT provider, so it is added deliberately.
|
|
16
|
+
*
|
|
17
|
+
* The accompanying snapshot test (`__tests__/stt-registry.test.ts`) re-derives
|
|
18
|
+
* the models.dev-backed entries from a checked-in snapshot so this list stays
|
|
19
|
+
* honest and can be refreshed deliberately rather than drifting by hand.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* How a provider's transcription model is constructed.
|
|
23
|
+
* - `openai`: `OpenAIVoice` with the default OpenAI endpoint.
|
|
24
|
+
* - `openai-compatible`: `OpenAIVoice` pointed at the host's `baseURL`
|
|
25
|
+
* (its `/audio/transcriptions` endpoint follows the OpenAI shape).
|
|
26
|
+
* - `deepgram`: `DeepgramVoice` from `@mastra/voice-deepgram` (not
|
|
27
|
+
* OpenAI-compatible; uses the Deepgram SDK).
|
|
28
|
+
*/
|
|
29
|
+
export type STTResolver = 'openai' | 'openai-compatible' | 'deepgram';
|
|
30
|
+
export interface STTModel {
|
|
31
|
+
/** models.dev provider id (also the AuthStorage key for the API key). */
|
|
32
|
+
provider: string;
|
|
33
|
+
/** Bare model id passed to the provider's transcription factory. */
|
|
34
|
+
model: string;
|
|
35
|
+
/** Human-friendly label for the picker. */
|
|
36
|
+
label: string;
|
|
37
|
+
/** How to build the transcription model. */
|
|
38
|
+
resolver: STTResolver;
|
|
39
|
+
/** Base URL for `openai-compatible` providers (from models.dev `api`). */
|
|
40
|
+
baseURL?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The curated STT catalog. Order matters: the first entry for a provider is its
|
|
44
|
+
* default model, and the first overall entry (`openai`/`whisper-1`) is the
|
|
45
|
+
* global default.
|
|
46
|
+
*/
|
|
47
|
+
export declare const STT_MODELS: readonly STTModel[];
|
|
48
|
+
/** The global default STT model (first registry entry). */
|
|
49
|
+
export declare const DEFAULT_STT_MODEL: STTModel;
|
|
50
|
+
/** The default STT provider when none is configured. */
|
|
51
|
+
export declare const DEFAULT_STT_PROVIDER: string;
|
|
52
|
+
/** Unique provider ids in registry order. */
|
|
53
|
+
export declare function sttProviders(): string[];
|
|
54
|
+
/** All models offered for a provider, in registry order. */
|
|
55
|
+
export declare function sttModelsForProvider(provider: string): STTModel[];
|
|
56
|
+
/** The default (first) model for a provider, or undefined if unknown. */
|
|
57
|
+
export declare function defaultModelForProvider(provider: string): STTModel | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Resolve a provider/model pair to a concrete registry entry.
|
|
60
|
+
* Falls back to the provider default (then the global default) so callers
|
|
61
|
+
* always get a usable entry even if settings name an unknown model.
|
|
62
|
+
*/
|
|
63
|
+
export declare function resolveSTTModel(provider?: string, model?: string): STTModel;
|
|
64
|
+
//# sourceMappingURL=stt-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stt-registry.d.ts","sourceRoot":"","sources":["../../src/voice/stt-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,mBAAmB,GAAG,UAAU,CAAC;AAEtE,MAAM,WAAW,QAAQ;IACvB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,QAAQ,EAAE,WAAW,CAAC;IACtB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAqFhC,CAAC;AAEX,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,EAAE,QAAyB,CAAC;AAE1D,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,QAA6B,CAAC;AAE/D,6CAA6C;AAC7C,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAUvC;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAEjE;AAED,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE9E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAU3E"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
const STT_MODELS = [
|
|
2
|
+
// OpenAI — default provider.
|
|
3
|
+
{ provider: "openai", model: "whisper-1", label: "OpenAI Whisper", resolver: "openai" },
|
|
4
|
+
{ provider: "openai", model: "gpt-4o-transcribe", label: "OpenAI GPT-4o Transcribe", resolver: "openai" },
|
|
5
|
+
{
|
|
6
|
+
provider: "openai",
|
|
7
|
+
model: "gpt-4o-mini-transcribe",
|
|
8
|
+
label: "OpenAI GPT-4o mini Transcribe",
|
|
9
|
+
resolver: "openai"
|
|
10
|
+
},
|
|
11
|
+
// Groq — fast, cheap whisper hosting via its OpenAI-compatible endpoint.
|
|
12
|
+
{
|
|
13
|
+
provider: "groq",
|
|
14
|
+
model: "whisper-large-v3-turbo",
|
|
15
|
+
label: "Groq Whisper Large v3 Turbo",
|
|
16
|
+
resolver: "openai-compatible",
|
|
17
|
+
baseURL: "https://api.groq.com/openai/v1"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
provider: "groq",
|
|
21
|
+
model: "whisper-large-v3",
|
|
22
|
+
label: "Groq Whisper Large v3",
|
|
23
|
+
resolver: "openai-compatible",
|
|
24
|
+
baseURL: "https://api.groq.com/openai/v1"
|
|
25
|
+
},
|
|
26
|
+
// Deepgram — dedicated STT provider (not OpenAI-compatible); via @mastra/voice-deepgram.
|
|
27
|
+
{ provider: "deepgram", model: "nova-3", label: "Deepgram Nova-3", resolver: "deepgram" },
|
|
28
|
+
// Alibaba Qwen ASR (OpenAI-compatible endpoints).
|
|
29
|
+
{
|
|
30
|
+
provider: "alibaba",
|
|
31
|
+
model: "qwen3-asr-flash",
|
|
32
|
+
label: "Alibaba Qwen3 ASR Flash",
|
|
33
|
+
resolver: "openai-compatible",
|
|
34
|
+
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
provider: "alibaba-cn",
|
|
38
|
+
model: "qwen3-asr-flash",
|
|
39
|
+
label: "Alibaba Qwen3 ASR Flash (China)",
|
|
40
|
+
resolver: "openai-compatible",
|
|
41
|
+
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
|
|
42
|
+
},
|
|
43
|
+
// Whisper hosts (OpenAI-compatible endpoints).
|
|
44
|
+
{
|
|
45
|
+
provider: "scaleway",
|
|
46
|
+
model: "whisper-large-v3",
|
|
47
|
+
label: "Scaleway Whisper Large v3",
|
|
48
|
+
resolver: "openai-compatible",
|
|
49
|
+
baseURL: "https://api.scaleway.ai/v1"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
provider: "nvidia",
|
|
53
|
+
model: "openai/whisper-large-v3",
|
|
54
|
+
label: "Nvidia Whisper Large v3",
|
|
55
|
+
resolver: "openai-compatible",
|
|
56
|
+
baseURL: "https://integrate.api.nvidia.com/v1"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
provider: "nearai",
|
|
60
|
+
model: "openai/whisper-large-v3",
|
|
61
|
+
label: "NEAR AI Whisper Large v3",
|
|
62
|
+
resolver: "openai-compatible",
|
|
63
|
+
baseURL: "https://cloud-api.near.ai/v1"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
provider: "evroc",
|
|
67
|
+
model: "openai/whisper-large-v3-turbo",
|
|
68
|
+
label: "evroc Whisper Large v3 Turbo",
|
|
69
|
+
resolver: "openai-compatible",
|
|
70
|
+
baseURL: "https://models.think.evroc.com/v1"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
provider: "evroc",
|
|
74
|
+
model: "openai/whisper-large-v3",
|
|
75
|
+
label: "evroc Whisper Large v3",
|
|
76
|
+
resolver: "openai-compatible",
|
|
77
|
+
baseURL: "https://models.think.evroc.com/v1"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
provider: "evroc",
|
|
81
|
+
model: "KBLab/kb-whisper-large",
|
|
82
|
+
label: "evroc KB-Whisper Large",
|
|
83
|
+
resolver: "openai-compatible",
|
|
84
|
+
baseURL: "https://models.think.evroc.com/v1"
|
|
85
|
+
}
|
|
86
|
+
];
|
|
87
|
+
const DEFAULT_STT_MODEL = STT_MODELS[0];
|
|
88
|
+
const DEFAULT_STT_PROVIDER = DEFAULT_STT_MODEL.provider;
|
|
89
|
+
function sttProviders() {
|
|
90
|
+
const seen = /* @__PURE__ */ new Set();
|
|
91
|
+
const out = [];
|
|
92
|
+
for (const m of STT_MODELS) {
|
|
93
|
+
if (!seen.has(m.provider)) {
|
|
94
|
+
seen.add(m.provider);
|
|
95
|
+
out.push(m.provider);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return out;
|
|
99
|
+
}
|
|
100
|
+
function sttModelsForProvider(provider) {
|
|
101
|
+
return STT_MODELS.filter((m) => m.provider === provider);
|
|
102
|
+
}
|
|
103
|
+
function defaultModelForProvider(provider) {
|
|
104
|
+
return STT_MODELS.find((m) => m.provider === provider);
|
|
105
|
+
}
|
|
106
|
+
function resolveSTTModel(provider, model) {
|
|
107
|
+
if (provider) {
|
|
108
|
+
if (model) {
|
|
109
|
+
const exact = STT_MODELS.find((m) => m.provider === provider && m.model === model);
|
|
110
|
+
if (exact) return exact;
|
|
111
|
+
}
|
|
112
|
+
const providerDefault = defaultModelForProvider(provider);
|
|
113
|
+
if (providerDefault) return providerDefault;
|
|
114
|
+
}
|
|
115
|
+
return DEFAULT_STT_MODEL;
|
|
116
|
+
}
|
|
117
|
+
export {
|
|
118
|
+
DEFAULT_STT_MODEL,
|
|
119
|
+
DEFAULT_STT_PROVIDER,
|
|
120
|
+
STT_MODELS,
|
|
121
|
+
defaultModelForProvider,
|
|
122
|
+
resolveSTTModel,
|
|
123
|
+
sttModelsForProvider,
|
|
124
|
+
sttProviders
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=stt-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/voice/stt-registry.ts"],"sourcesContent":["/**\n * Speech-to-text (STT) model registry for push-to-talk voice input.\n *\n * This is the single source of truth shared by the `/voice` settings picker,\n * settings validation, and the cloud transcription resolver. Entries are\n * derived from models.dev (https://models.dev/api.json): a model is treated as\n * STT when its modalities are audio-in / text-out with no text input.\n *\n * Most cloud providers here speak the OpenAI `/audio/transcriptions` shape, so\n * the cloud engine resolves them through Mastra's `OpenAIVoice` (`MastraVoice`)\n * built on the OpenAI client — `openai` uses the default endpoint, every other\n * OpenAI-compatible host supplies its `baseURL`. Deepgram is the exception: it\n * is not OpenAI-compatible, so it resolves through `@mastra/voice-deepgram`\n * (`DeepgramVoice`). Deepgram is not in the models.dev STT snapshot but is a\n * first-class hosted STT provider, so it is added deliberately.\n *\n * The accompanying snapshot test (`__tests__/stt-registry.test.ts`) re-derives\n * the models.dev-backed entries from a checked-in snapshot so this list stays\n * honest and can be refreshed deliberately rather than drifting by hand.\n */\n\n/**\n * How a provider's transcription model is constructed.\n * - `openai`: `OpenAIVoice` with the default OpenAI endpoint.\n * - `openai-compatible`: `OpenAIVoice` pointed at the host's `baseURL`\n * (its `/audio/transcriptions` endpoint follows the OpenAI shape).\n * - `deepgram`: `DeepgramVoice` from `@mastra/voice-deepgram` (not\n * OpenAI-compatible; uses the Deepgram SDK).\n */\nexport type STTResolver = 'openai' | 'openai-compatible' | 'deepgram';\n\nexport interface STTModel {\n /** models.dev provider id (also the AuthStorage key for the API key). */\n provider: string;\n /** Bare model id passed to the provider's transcription factory. */\n model: string;\n /** Human-friendly label for the picker. */\n label: string;\n /** How to build the transcription model. */\n resolver: STTResolver;\n /** Base URL for `openai-compatible` providers (from models.dev `api`). */\n baseURL?: string;\n}\n\n/**\n * The curated STT catalog. Order matters: the first entry for a provider is its\n * default model, and the first overall entry (`openai`/`whisper-1`) is the\n * global default.\n */\nexport const STT_MODELS: readonly STTModel[] = [\n // OpenAI — default provider.\n { provider: 'openai', model: 'whisper-1', label: 'OpenAI Whisper', resolver: 'openai' },\n { provider: 'openai', model: 'gpt-4o-transcribe', label: 'OpenAI GPT-4o Transcribe', resolver: 'openai' },\n {\n provider: 'openai',\n model: 'gpt-4o-mini-transcribe',\n label: 'OpenAI GPT-4o mini Transcribe',\n resolver: 'openai',\n },\n // Groq — fast, cheap whisper hosting via its OpenAI-compatible endpoint.\n {\n provider: 'groq',\n model: 'whisper-large-v3-turbo',\n label: 'Groq Whisper Large v3 Turbo',\n resolver: 'openai-compatible',\n baseURL: 'https://api.groq.com/openai/v1',\n },\n {\n provider: 'groq',\n model: 'whisper-large-v3',\n label: 'Groq Whisper Large v3',\n resolver: 'openai-compatible',\n baseURL: 'https://api.groq.com/openai/v1',\n },\n // Deepgram — dedicated STT provider (not OpenAI-compatible); via @mastra/voice-deepgram.\n { provider: 'deepgram', model: 'nova-3', label: 'Deepgram Nova-3', resolver: 'deepgram' },\n // Alibaba Qwen ASR (OpenAI-compatible endpoints).\n {\n provider: 'alibaba',\n model: 'qwen3-asr-flash',\n label: 'Alibaba Qwen3 ASR Flash',\n resolver: 'openai-compatible',\n baseURL: 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1',\n },\n {\n provider: 'alibaba-cn',\n model: 'qwen3-asr-flash',\n label: 'Alibaba Qwen3 ASR Flash (China)',\n resolver: 'openai-compatible',\n baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1',\n },\n // Whisper hosts (OpenAI-compatible endpoints).\n {\n provider: 'scaleway',\n model: 'whisper-large-v3',\n label: 'Scaleway Whisper Large v3',\n resolver: 'openai-compatible',\n baseURL: 'https://api.scaleway.ai/v1',\n },\n {\n provider: 'nvidia',\n model: 'openai/whisper-large-v3',\n label: 'Nvidia Whisper Large v3',\n resolver: 'openai-compatible',\n baseURL: 'https://integrate.api.nvidia.com/v1',\n },\n {\n provider: 'nearai',\n model: 'openai/whisper-large-v3',\n label: 'NEAR AI Whisper Large v3',\n resolver: 'openai-compatible',\n baseURL: 'https://cloud-api.near.ai/v1',\n },\n {\n provider: 'evroc',\n model: 'openai/whisper-large-v3-turbo',\n label: 'evroc Whisper Large v3 Turbo',\n resolver: 'openai-compatible',\n baseURL: 'https://models.think.evroc.com/v1',\n },\n {\n provider: 'evroc',\n model: 'openai/whisper-large-v3',\n label: 'evroc Whisper Large v3',\n resolver: 'openai-compatible',\n baseURL: 'https://models.think.evroc.com/v1',\n },\n {\n provider: 'evroc',\n model: 'KBLab/kb-whisper-large',\n label: 'evroc KB-Whisper Large',\n resolver: 'openai-compatible',\n baseURL: 'https://models.think.evroc.com/v1',\n },\n] as const;\n\n/** The global default STT model (first registry entry). */\nexport const DEFAULT_STT_MODEL: STTModel = STT_MODELS[0]!;\n\n/** The default STT provider when none is configured. */\nexport const DEFAULT_STT_PROVIDER = DEFAULT_STT_MODEL.provider;\n\n/** Unique provider ids in registry order. */\nexport function sttProviders(): string[] {\n const seen = new Set<string>();\n const out: string[] = [];\n for (const m of STT_MODELS) {\n if (!seen.has(m.provider)) {\n seen.add(m.provider);\n out.push(m.provider);\n }\n }\n return out;\n}\n\n/** All models offered for a provider, in registry order. */\nexport function sttModelsForProvider(provider: string): STTModel[] {\n return STT_MODELS.filter(m => m.provider === provider);\n}\n\n/** The default (first) model for a provider, or undefined if unknown. */\nexport function defaultModelForProvider(provider: string): STTModel | undefined {\n return STT_MODELS.find(m => m.provider === provider);\n}\n\n/**\n * Resolve a provider/model pair to a concrete registry entry.\n * Falls back to the provider default (then the global default) so callers\n * always get a usable entry even if settings name an unknown model.\n */\nexport function resolveSTTModel(provider?: string, model?: string): STTModel {\n if (provider) {\n if (model) {\n const exact = STT_MODELS.find(m => m.provider === provider && m.model === model);\n if (exact) return exact;\n }\n const providerDefault = defaultModelForProvider(provider);\n if (providerDefault) return providerDefault;\n }\n return DEFAULT_STT_MODEL;\n}\n"],"mappings":"AAiDO,MAAM,aAAkC;AAAA;AAAA,EAE7C,EAAE,UAAU,UAAU,OAAO,aAAa,OAAO,kBAAkB,UAAU,SAAS;AAAA,EACtF,EAAE,UAAU,UAAU,OAAO,qBAAqB,OAAO,4BAA4B,UAAU,SAAS;AAAA,EACxG;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA;AAAA,EAEA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA;AAAA,EAEA,EAAE,UAAU,YAAY,OAAO,UAAU,OAAO,mBAAmB,UAAU,WAAW;AAAA;AAAA,EAExF;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA;AAAA,EAEA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AACF;AAGO,MAAM,oBAA8B,WAAW,CAAC;AAGhD,MAAM,uBAAuB,kBAAkB;AAG/C,SAAS,eAAyB;AACvC,QAAM,OAAO,oBAAI,IAAY;AAC7B,QAAM,MAAgB,CAAC;AACvB,aAAW,KAAK,YAAY;AAC1B,QAAI,CAAC,KAAK,IAAI,EAAE,QAAQ,GAAG;AACzB,WAAK,IAAI,EAAE,QAAQ;AACnB,UAAI,KAAK,EAAE,QAAQ;AAAA,IACrB;AAAA,EACF;AACA,SAAO;AACT;AAGO,SAAS,qBAAqB,UAA8B;AACjE,SAAO,WAAW,OAAO,OAAK,EAAE,aAAa,QAAQ;AACvD;AAGO,SAAS,wBAAwB,UAAwC;AAC9E,SAAO,WAAW,KAAK,OAAK,EAAE,aAAa,QAAQ;AACrD;AAOO,SAAS,gBAAgB,UAAmB,OAA0B;AAC3E,MAAI,UAAU;AACZ,QAAI,OAAO;AACT,YAAM,QAAQ,WAAW,KAAK,OAAK,EAAE,aAAa,YAAY,EAAE,UAAU,KAAK;AAC/E,UAAI,MAAO,QAAO;AAAA,IACpB;AACA,UAAM,kBAAkB,wBAAwB,QAAQ;AACxD,QAAI,gBAAiB,QAAO;AAAA,EAC9B;AACA,SAAO;AACT;","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mastra/code-sdk",
|
|
3
|
+
"version": "0.0.0-mastracode-cloud-20260706153555",
|
|
4
|
+
"description": "Mastra Code SDK: the agent core behind Mastra Code (everything except the TUI) — build your own UIs and surfaces on top of it",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"CHANGELOG.md"
|
|
12
|
+
],
|
|
13
|
+
"main": "dist/index.js",
|
|
14
|
+
"types": "dist/index.d.ts",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"import": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"default": "./dist/index.js"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"./*": {
|
|
23
|
+
"import": {
|
|
24
|
+
"types": "./dist/*.d.ts",
|
|
25
|
+
"default": "./dist/*.js"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"./package.json": "./package.json"
|
|
29
|
+
},
|
|
30
|
+
"keywords": [],
|
|
31
|
+
"author": "",
|
|
32
|
+
"license": "Apache-2.0",
|
|
33
|
+
"homepage": "https://mastra.ai",
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "git+https://github.com/mastra-ai/mastra.git",
|
|
37
|
+
"directory": "mastracode/core"
|
|
38
|
+
},
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/mastra-ai/mastra/issues"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@agentclientprotocol/sdk": "^0.21.0",
|
|
44
|
+
"@ai-sdk/amazon-bedrock": "^3.0.102",
|
|
45
|
+
"@ai-sdk/anthropic": "^3.0.82",
|
|
46
|
+
"@ai-sdk/openai": "^3.0.63",
|
|
47
|
+
"@ai-sdk/openai-compatible": "^2.0.47",
|
|
48
|
+
"@ast-grep/napi": "^0.42.0",
|
|
49
|
+
"@aws-sdk/credential-providers": "^3.864.0",
|
|
50
|
+
"ai": "^6.0.176",
|
|
51
|
+
"execa": "^9.6.1",
|
|
52
|
+
"posthog-node": "^5.37.0",
|
|
53
|
+
"tokenx": "^1.3.0",
|
|
54
|
+
"vscode-jsonrpc": "^8.2.1",
|
|
55
|
+
"vscode-languageserver-protocol": "^3.17.5",
|
|
56
|
+
"yaml": "^2.7.1",
|
|
57
|
+
"zod": "^4.3.6",
|
|
58
|
+
"@mastra/agent-browser": "0.0.0-mastracode-cloud-20260706153555",
|
|
59
|
+
"@mastra/core": "0.0.0-mastracode-cloud-20260706153555",
|
|
60
|
+
"@mastra/fastembed": "1.2.0",
|
|
61
|
+
"@mastra/duckdb": "0.0.0-mastracode-cloud-20260706153555",
|
|
62
|
+
"@mastra/mcp": "0.0.0-mastracode-cloud-20260706153555",
|
|
63
|
+
"@mastra/memory": "0.0.0-mastracode-cloud-20260706153555",
|
|
64
|
+
"@mastra/observability": "0.0.0-mastracode-cloud-20260706153555",
|
|
65
|
+
"@mastra/github-signals": "0.0.0-mastracode-cloud-20260706153555",
|
|
66
|
+
"@mastra/pg": "0.0.0-mastracode-cloud-20260706153555",
|
|
67
|
+
"@mastra/libsql": "0.0.0-mastracode-cloud-20260706153555",
|
|
68
|
+
"@mastra/schema-compat": "1.3.3",
|
|
69
|
+
"@mastra/stagehand": "0.0.0-mastracode-cloud-20260706153555",
|
|
70
|
+
"@mastra/tavily": "0.0.0-mastracode-cloud-20260706153555"
|
|
71
|
+
},
|
|
72
|
+
"devDependencies": {
|
|
73
|
+
"@types/node": "22.19.21",
|
|
74
|
+
"eslint": "^10.4.1",
|
|
75
|
+
"tsup": "^8.5.1",
|
|
76
|
+
"tsx": "^4.22.4",
|
|
77
|
+
"typescript": "^6.0.3",
|
|
78
|
+
"typescript-eslint": "^8.57.0",
|
|
79
|
+
"vitest": "4.1.8",
|
|
80
|
+
"@internal/types-builder": "0.0.0-mastracode-cloud-20260706153555",
|
|
81
|
+
"@internal/lint": "0.0.0-mastracode-cloud-20260706153555"
|
|
82
|
+
},
|
|
83
|
+
"engines": {
|
|
84
|
+
"node": ">=22.19.0"
|
|
85
|
+
},
|
|
86
|
+
"scripts": {
|
|
87
|
+
"build:lib": "tsup --silent --config tsup.config.ts",
|
|
88
|
+
"check": "tsc --noEmit",
|
|
89
|
+
"test": "vitest run",
|
|
90
|
+
"lint": "eslint ."
|
|
91
|
+
}
|
|
92
|
+
}
|