@mastra/code-sdk 0.0.0-esbuild-bundle-worker-20260807173433
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 +1349 -0
- package/LICENSE.md +30 -0
- package/README.md +70 -0
- package/dist/acp/agent.d.ts +35 -0
- package/dist/acp/agent.d.ts.map +1 -0
- package/dist/acp/agent.js +161 -0
- package/dist/acp/agent.js.map +1 -0
- package/dist/acp/event-mapper.d.ts +22 -0
- package/dist/acp/event-mapper.d.ts.map +1 -0
- package/dist/acp/event-mapper.js +214 -0
- package/dist/acp/event-mapper.js.map +1 -0
- package/dist/acp/index.d.ts +8 -0
- package/dist/acp/index.d.ts.map +1 -0
- package/dist/acp/index.js +65 -0
- package/dist/acp/index.js.map +1 -0
- package/dist/acp/server.d.ts +7 -0
- package/dist/acp/server.d.ts.map +1 -0
- package/dist/acp/server.js +35 -0
- package/dist/acp/server.js.map +1 -0
- package/dist/acp.d.ts +2 -0
- package/dist/acp.d.ts.map +1 -0
- package/dist/acp.js +2 -0
- package/dist/agents/credential-resolver.d.ts +51 -0
- package/dist/agents/credential-resolver.d.ts.map +1 -0
- package/dist/agents/credential-resolver.js +52 -0
- package/dist/agents/credential-resolver.js.map +1 -0
- package/dist/agents/custom-provider-source.d.ts +35 -0
- package/dist/agents/custom-provider-source.d.ts.map +1 -0
- package/dist/agents/custom-provider-source.js +25 -0
- package/dist/agents/custom-provider-source.js.map +1 -0
- package/dist/agents/instructions.d.ts +6 -0
- package/dist/agents/instructions.d.ts.map +1 -0
- package/dist/agents/instructions.js +32 -0
- package/dist/agents/instructions.js.map +1 -0
- package/dist/agents/mastracode-gateway.d.ts +74 -0
- package/dist/agents/mastracode-gateway.d.ts.map +1 -0
- package/dist/agents/mastracode-gateway.js +400 -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 +116 -0
- package/dist/agents/memory.js.map +1 -0
- package/dist/agents/model.d.ts +59 -0
- package/dist/agents/model.d.ts.map +1 -0
- package/dist/agents/model.js +132 -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 +44 -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 +39 -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 +37 -0
- package/dist/agents/modes/plan.js.map +1 -0
- package/dist/agents/prompts/agent-instructions.d.ts +61 -0
- package/dist/agents/prompts/agent-instructions.d.ts.map +1 -0
- package/dist/agents/prompts/agent-instructions.js +201 -0
- package/dist/agents/prompts/agent-instructions.js.map +1 -0
- package/dist/agents/prompts/build.d.ts +12 -0
- package/dist/agents/prompts/build.d.ts.map +1 -0
- package/dist/agents/prompts/build.js +76 -0
- package/dist/agents/prompts/build.js.map +1 -0
- package/dist/agents/prompts/fast.d.ts +5 -0
- package/dist/agents/prompts/fast.d.ts.map +1 -0
- package/dist/agents/prompts/fast.js +26 -0
- package/dist/agents/prompts/fast.js.map +1 -0
- package/dist/agents/prompts/index.d.ts +19 -0
- package/dist/agents/prompts/index.d.ts.map +1 -0
- package/dist/agents/prompts/index.js +65 -0
- package/dist/agents/prompts/index.js.map +1 -0
- package/dist/agents/prompts/model.d.ts +5 -0
- package/dist/agents/prompts/model.d.ts.map +1 -0
- package/dist/agents/prompts/model.js +23 -0
- package/dist/agents/prompts/model.js.map +1 -0
- package/dist/agents/prompts/plan.d.ts +6 -0
- package/dist/agents/prompts/plan.d.ts.map +1 -0
- package/dist/agents/prompts/plan.js +111 -0
- package/dist/agents/prompts/plan.js.map +1 -0
- package/dist/agents/prompts/tool-guidance.d.ts +13 -0
- package/dist/agents/prompts/tool-guidance.d.ts.map +1 -0
- package/dist/agents/prompts/tool-guidance.js +149 -0
- package/dist/agents/prompts/tool-guidance.js.map +1 -0
- package/dist/agents/sandbox-filesystem.d.ts +99 -0
- package/dist/agents/sandbox-filesystem.d.ts.map +1 -0
- package/dist/agents/sandbox-filesystem.js +328 -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 +15 -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 +107 -0
- package/dist/agents/thread-caveman-state.js.map +1 -0
- package/dist/agents/tool-availability.d.ts +10 -0
- package/dist/agents/tool-availability.d.ts.map +1 -0
- package/dist/agents/tool-availability.js +87 -0
- package/dist/agents/tool-availability.js.map +1 -0
- package/dist/agents/tools.d.ts +19 -0
- package/dist/agents/tools.d.ts.map +1 -0
- package/dist/agents/tools.js +105 -0
- package/dist/agents/tools.js.map +1 -0
- package/dist/agents/workspace.d.ts +32 -0
- package/dist/agents/workspace.d.ts.map +1 -0
- package/dist/agents/workspace.js +251 -0
- package/dist/agents/workspace.js.map +1 -0
- package/dist/analytics.d.ts +18 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +163 -0
- package/dist/analytics.js.map +1 -0
- package/dist/auth/authorization-input.d.ts +16 -0
- package/dist/auth/authorization-input.d.ts.map +1 -0
- package/dist/auth/authorization-input.js +42 -0
- package/dist/auth/authorization-input.js.map +1 -0
- package/dist/auth/device-code.d.ts +93 -0
- package/dist/auth/device-code.d.ts.map +1 -0
- package/dist/auth/device-code.js +129 -0
- package/dist/auth/device-code.js.map +1 -0
- package/dist/auth/index.d.ts +10 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +6 -0
- package/dist/auth/pkce.d.ts +13 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/pkce.js +32 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/auth/providers/anthropic.d.ts +40 -0
- package/dist/auth/providers/anthropic.d.ts.map +1 -0
- package/dist/auth/providers/anthropic.js +126 -0
- package/dist/auth/providers/anthropic.js.map +1 -0
- package/dist/auth/providers/github-copilot.d.ts +154 -0
- package/dist/auth/providers/github-copilot.d.ts.map +1 -0
- package/dist/auth/providers/github-copilot.js +340 -0
- package/dist/auth/providers/github-copilot.js.map +1 -0
- package/dist/auth/providers/openai-codex.d.ts +139 -0
- package/dist/auth/providers/openai-codex.d.ts.map +1 -0
- package/dist/auth/providers/openai-codex.js +519 -0
- package/dist/auth/providers/openai-codex.js.map +1 -0
- package/dist/auth/providers/xai.d.ts +64 -0
- package/dist/auth/providers/xai.d.ts.map +1 -0
- package/dist/auth/providers/xai.js +205 -0
- package/dist/auth/providers/xai.js.map +1 -0
- package/dist/auth/storage.d.ts +91 -0
- package/dist/auth/storage.d.ts.map +1 -0
- package/dist/auth/storage.js +197 -0
- package/dist/auth/storage.js.map +1 -0
- package/dist/auth/types.d.ts +89 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +1 -0
- package/dist/clipboard/index.d.ts +26 -0
- package/dist/clipboard/index.d.ts.map +1 -0
- package/dist/clipboard/index.js +226 -0
- package/dist/clipboard/index.js.map +1 -0
- package/dist/constants.d.ts +10 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +18 -0
- package/dist/constants.js.map +1 -0
- package/dist/error-classification.d.ts +10 -0
- package/dist/error-classification.d.ts.map +1 -0
- package/dist/error-classification.js +22 -0
- package/dist/error-classification.js.map +1 -0
- package/dist/evals/context-builder.d.ts +41 -0
- package/dist/evals/context-builder.d.ts.map +1 -0
- package/dist/evals/context-builder.js +161 -0
- package/dist/evals/context-builder.js.map +1 -0
- package/dist/evals/index.d.ts +4 -0
- package/dist/evals/index.d.ts.map +1 -0
- package/dist/evals/index.js +5 -0
- package/dist/evals/scorers/classify-command.d.ts +31 -0
- package/dist/evals/scorers/classify-command.d.ts.map +1 -0
- package/dist/evals/scorers/classify-command.js +73 -0
- package/dist/evals/scorers/classify-command.js.map +1 -0
- package/dist/evals/scorers/efficiency.d.ts +44 -0
- package/dist/evals/scorers/efficiency.d.ts.map +1 -0
- package/dist/evals/scorers/efficiency.js +259 -0
- package/dist/evals/scorers/efficiency.js.map +1 -0
- package/dist/evals/scorers/extract-tools.d.ts +25 -0
- package/dist/evals/scorers/extract-tools.d.ts.map +1 -0
- package/dist/evals/scorers/extract-tools.js +60 -0
- package/dist/evals/scorers/extract-tools.js.map +1 -0
- package/dist/evals/scorers/index.d.ts +3 -0
- package/dist/evals/scorers/index.d.ts.map +1 -0
- package/dist/evals/scorers/index.js +3 -0
- package/dist/evals/scorers/outcome.d.ts +49 -0
- package/dist/evals/scorers/outcome.d.ts.map +1 -0
- package/dist/evals/scorers/outcome.js +347 -0
- package/dist/evals/scorers/outcome.js.map +1 -0
- package/dist/goal-manager.d.ts +78 -0
- package/dist/goal-manager.d.ts.map +1 -0
- package/dist/goal-manager.js +273 -0
- package/dist/goal-manager.js.map +1 -0
- package/dist/goal-signal.d.ts +14 -0
- package/dist/goal-signal.d.ts.map +1 -0
- package/dist/goal-signal.js +17 -0
- package/dist/goal-signal.js.map +1 -0
- package/dist/headless/cli.d.ts +42 -0
- package/dist/headless/cli.d.ts.map +1 -0
- package/dist/headless/cli.js +195 -0
- package/dist/headless/cli.js.map +1 -0
- package/dist/headless/flags.d.ts +33 -0
- package/dist/headless/flags.d.ts.map +1 -0
- package/dist/headless/flags.js +190 -0
- package/dist/headless/flags.js.map +1 -0
- package/dist/headless/format.d.ts +38 -0
- package/dist/headless/format.d.ts.map +1 -0
- package/dist/headless/format.js +89 -0
- package/dist/headless/format.js.map +1 -0
- package/dist/headless/index.d.ts +25 -0
- package/dist/headless/index.d.ts.map +1 -0
- package/dist/headless/index.js +6 -0
- package/dist/headless/policy.d.ts +17 -0
- package/dist/headless/policy.d.ts.map +1 -0
- package/dist/headless/policy.js +42 -0
- package/dist/headless/policy.js.map +1 -0
- package/dist/headless/run-mc.d.ts +7 -0
- package/dist/headless/run-mc.d.ts.map +1 -0
- package/dist/headless/run-mc.js +346 -0
- package/dist/headless/run-mc.js.map +1 -0
- package/dist/headless/types.d.ts +158 -0
- package/dist/headless/types.d.ts.map +1 -0
- package/dist/headless/types.js +18 -0
- package/dist/headless/types.js.map +1 -0
- package/dist/hooks/config.d.ts +11 -0
- package/dist/hooks/config.d.ts.map +1 -0
- package/dist/hooks/config.js +73 -0
- package/dist/hooks/config.js.map +1 -0
- package/dist/hooks/executor.d.ts +13 -0
- package/dist/hooks/executor.d.ts.map +1 -0
- package/dist/hooks/executor.js +128 -0
- package/dist/hooks/executor.js.map +1 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +5 -0
- package/dist/hooks/manager.d.ts +47 -0
- package/dist/hooks/manager.d.ts.map +1 -0
- package/dist/hooks/manager.js +225 -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 +8 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +258 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +740 -0
- package/dist/index.js.map +1 -0
- package/dist/ipc/ipc-reporter.d.ts +14 -0
- package/dist/ipc/ipc-reporter.d.ts.map +1 -0
- package/dist/ipc/ipc-reporter.js +21 -0
- package/dist/ipc/ipc-reporter.js.map +1 -0
- package/dist/lsp/client.d.ts +56 -0
- package/dist/lsp/client.d.ts.map +1 -0
- package/dist/lsp/client.js +251 -0
- package/dist/lsp/client.js.map +1 -0
- package/dist/lsp/index.d.ts +4 -0
- package/dist/lsp/index.d.ts.map +1 -0
- package/dist/lsp/index.js +4 -0
- package/dist/lsp/language.d.ts +9 -0
- package/dist/lsp/language.d.ts.map +1 -0
- package/dist/lsp/language.js +44 -0
- package/dist/lsp/language.js.map +1 -0
- package/dist/lsp/manager.d.ts +34 -0
- package/dist/lsp/manager.d.ts.map +1 -0
- package/dist/lsp/manager.js +82 -0
- package/dist/lsp/manager.js.map +1 -0
- package/dist/lsp/server.d.ts +27 -0
- package/dist/lsp/server.d.ts.map +1 -0
- package/dist/lsp/server.js +159 -0
- package/dist/lsp/server.js.map +1 -0
- package/dist/lsp/workspace.d.ts +9 -0
- package/dist/lsp/workspace.d.ts.map +1 -0
- package/dist/lsp/workspace.js +55 -0
- package/dist/lsp/workspace.js.map +1 -0
- package/dist/mcp/config.d.ts +54 -0
- package/dist/mcp/config.d.ts.map +1 -0
- package/dist/mcp/config.js +240 -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 +3 -0
- package/dist/mcp/manager.d.ts +98 -0
- package/dist/mcp/manager.d.ts.map +1 -0
- package/dist/mcp/manager.js +612 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/state.d.ts +33 -0
- package/dist/mcp/state.d.ts.map +1 -0
- package/dist/mcp/state.js +88 -0
- package/dist/mcp/state.js.map +1 -0
- package/dist/mcp/types.d.ts +120 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +1 -0
- package/dist/onboarding/custom-packs.d.ts +7 -0
- package/dist/onboarding/custom-packs.d.ts.map +1 -0
- package/dist/onboarding/custom-packs.js +17 -0
- package/dist/onboarding/custom-packs.js.map +1 -0
- package/dist/onboarding/custom-providers.d.ts +4 -0
- package/dist/onboarding/custom-providers.d.ts.map +1 -0
- package/dist/onboarding/custom-providers.js +30 -0
- package/dist/onboarding/custom-providers.js.map +1 -0
- package/dist/onboarding/index.d.ts +5 -0
- package/dist/onboarding/index.d.ts.map +1 -0
- package/dist/onboarding/index.js +3 -0
- package/dist/onboarding/om-settings.d.ts +25 -0
- package/dist/onboarding/om-settings.d.ts.map +1 -0
- package/dist/onboarding/om-settings.js +47 -0
- package/dist/onboarding/om-settings.js.map +1 -0
- package/dist/onboarding/packs.d.ts +46 -0
- package/dist/onboarding/packs.d.ts.map +1 -0
- package/dist/onboarding/packs.js +160 -0
- package/dist/onboarding/packs.js.map +1 -0
- package/dist/onboarding/settings.d.ts +338 -0
- package/dist/onboarding/settings.d.ts.map +1 -0
- package/dist/onboarding/settings.js +673 -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 +132 -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 +28 -0
- package/dist/plugin.js.map +1 -0
- package/dist/plugins/dependencies.d.ts +9 -0
- package/dist/plugins/dependencies.d.ts.map +1 -0
- package/dist/plugins/dependencies.js +88 -0
- package/dist/plugins/dependencies.js.map +1 -0
- package/dist/plugins/install.d.ts +21 -0
- package/dist/plugins/install.d.ts.map +1 -0
- package/dist/plugins/install.js +190 -0
- package/dist/plugins/install.js.map +1 -0
- package/dist/plugins/loader.d.ts +15 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +206 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manager.d.ts +64 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +384 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/manifest.d.ts +14 -0
- package/dist/plugins/manifest.d.ts.map +1 -0
- package/dist/plugins/manifest.js +50 -0
- package/dist/plugins/manifest.js.map +1 -0
- package/dist/plugins/package-link.d.ts +3 -0
- package/dist/plugins/package-link.d.ts.map +1 -0
- package/dist/plugins/package-link.js +61 -0
- package/dist/plugins/package-link.js.map +1 -0
- package/dist/plugins/paths.d.ts +10 -0
- package/dist/plugins/paths.d.ts.map +1 -0
- package/dist/plugins/paths.js +25 -0
- package/dist/plugins/paths.js.map +1 -0
- package/dist/plugins/registry.d.ts +8 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +112 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/scaffold.d.ts +10 -0
- package/dist/plugins/scaffold.d.ts.map +1 -0
- package/dist/plugins/scaffold.js +116 -0
- package/dist/plugins/scaffold.js.map +1 -0
- package/dist/plugins/types.d.ts +45 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +1 -0
- package/dist/processors/plan-rejection-abort.d.ts +12 -0
- package/dist/processors/plan-rejection-abort.d.ts.map +1 -0
- package/dist/processors/plan-rejection-abort.js +54 -0
- package/dist/processors/plan-rejection-abort.js.map +1 -0
- package/dist/providers/amazon-bedrock-gateway.d.ts +47 -0
- package/dist/providers/amazon-bedrock-gateway.d.ts.map +1 -0
- package/dist/providers/amazon-bedrock-gateway.js +152 -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 +83 -0
- package/dist/providers/amazon-bedrock.js.map +1 -0
- package/dist/providers/claude-max.d.ts +52 -0
- package/dist/providers/claude-max.d.ts.map +1 -0
- package/dist/providers/claude-max.js +171 -0
- package/dist/providers/claude-max.js.map +1 -0
- package/dist/providers/github-copilot.d.ts +60 -0
- package/dist/providers/github-copilot.d.ts.map +1 -0
- package/dist/providers/github-copilot.js +265 -0
- package/dist/providers/github-copilot.js.map +1 -0
- package/dist/providers/openai-codex.d.ts +72 -0
- package/dist/providers/openai-codex.d.ts.map +1 -0
- package/dist/providers/openai-codex.js +302 -0
- package/dist/providers/openai-codex.js.map +1 -0
- package/dist/providers/xai.d.ts +33 -0
- package/dist/providers/xai.d.ts.map +1 -0
- package/dist/providers/xai.js +70 -0
- package/dist/providers/xai.js.map +1 -0
- package/dist/schema.d.ts +192 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +98 -0
- package/dist/schema.js.map +1 -0
- package/dist/theme-palette.d.ts +17 -0
- package/dist/theme-palette.d.ts.map +1 -0
- package/dist/theme-palette.js +21 -0
- package/dist/theme-palette.js.map +1 -0
- package/dist/tool-names.d.ts +73 -0
- package/dist/tool-names.d.ts.map +1 -0
- package/dist/tool-names.js +52 -0
- package/dist/tool-names.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +3 -0
- package/dist/tools/request-sandbox-access.d.ts +6 -0
- package/dist/tools/request-sandbox-access.d.ts.map +1 -0
- package/dist/tools/request-sandbox-access.js +79 -0
- package/dist/tools/request-sandbox-access.js.map +1 -0
- package/dist/tools/utils.d.ts +20 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +32 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/tools/web-search.d.ts +35 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +61 -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 +78 -0
- package/dist/utils/binaries.js.map +1 -0
- package/dist/utils/debug-log.d.ts +12 -0
- package/dist/utils/debug-log.d.ts.map +1 -0
- package/dist/utils/debug-log.js +59 -0
- package/dist/utils/debug-log.js.map +1 -0
- package/dist/utils/errors.d.ts +36 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +172 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/gateway-sync.d.ts +26 -0
- package/dist/utils/gateway-sync.d.ts.map +1 -0
- package/dist/utils/gateway-sync.js +61 -0
- package/dist/utils/gateway-sync.js.map +1 -0
- package/dist/utils/path-security.d.ts +2 -0
- package/dist/utils/path-security.d.ts.map +1 -0
- package/dist/utils/path-security.js +10 -0
- package/dist/utils/path-security.js.map +1 -0
- package/dist/utils/plan-diff.d.ts +25 -0
- package/dist/utils/plan-diff.d.ts.map +1 -0
- package/dist/utils/plan-diff.js +62 -0
- package/dist/utils/plan-diff.js.map +1 -0
- package/dist/utils/plans.d.ts +56 -0
- package/dist/utils/plans.d.ts.map +1 -0
- package/dist/utils/plans.js +117 -0
- package/dist/utils/plans.js.map +1 -0
- package/dist/utils/project.d.ts +160 -0
- package/dist/utils/project.d.ts.map +1 -0
- package/dist/utils/project.js +364 -0
- package/dist/utils/project.js.map +1 -0
- package/dist/utils/signals-pubsub.d.ts +41 -0
- package/dist/utils/signals-pubsub.d.ts.map +1 -0
- package/dist/utils/signals-pubsub.js +122 -0
- package/dist/utils/signals-pubsub.js.map +1 -0
- package/dist/utils/slash-command-loader.d.ts +52 -0
- package/dist/utils/slash-command-loader.d.ts.map +1 -0
- package/dist/utils/slash-command-loader.js +141 -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 +105 -0
- package/dist/utils/slash-command-processor.js.map +1 -0
- package/dist/utils/stdin-pipe.d.ts +33 -0
- package/dist/utils/stdin-pipe.d.ts.map +1 -0
- package/dist/utils/stdin-pipe.js +96 -0
- package/dist/utils/stdin-pipe.js.map +1 -0
- package/dist/utils/storage-factory.d.ts +50 -0
- package/dist/utils/storage-factory.d.ts.map +1 -0
- package/dist/utils/storage-factory.js +121 -0
- package/dist/utils/storage-factory.js.map +1 -0
- package/dist/utils/storage-maintenance.d.ts +103 -0
- package/dist/utils/storage-maintenance.d.ts.map +1 -0
- package/dist/utils/storage-maintenance.js +274 -0
- package/dist/utils/storage-maintenance.js.map +1 -0
- package/dist/utils/thread-lock.d.ts +26 -0
- package/dist/utils/thread-lock.d.ts.map +1 -0
- package/dist/utils/thread-lock.js +112 -0
- package/dist/utils/thread-lock.js.map +1 -0
- package/dist/utils/token-estimator.d.ts +3 -0
- package/dist/utils/token-estimator.d.ts.map +1 -0
- package/dist/utils/token-estimator.js +21 -0
- package/dist/utils/token-estimator.js.map +1 -0
- package/dist/utils/update-check.d.ts +101 -0
- package/dist/utils/update-check.d.ts.map +1 -0
- package/dist/utils/update-check.js +383 -0
- package/dist/utils/update-check.js.map +1 -0
- package/dist/voice/stt-registry.d.ts +64 -0
- package/dist/voice/stt-registry.d.ts.map +1 -0
- package/dist/voice/stt-registry.js +144 -0
- package/dist/voice/stt-registry.js.map +1 -0
- package/package.json +96 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { VALID_MODES, VALID_PERMISSION_MODES, VALID_THINKING_LEVELS } from "./types.js";
|
|
2
|
+
//#region src/headless/flags.ts
|
|
3
|
+
const VALID_OUTPUTS = [
|
|
4
|
+
"human",
|
|
5
|
+
"json",
|
|
6
|
+
"jsonl"
|
|
7
|
+
];
|
|
8
|
+
/** Reusable validators. Each throws a descriptive Error or returns the typed value. */
|
|
9
|
+
const validate = {
|
|
10
|
+
/** Restrict to a fixed set of string literals. */
|
|
11
|
+
enum(flag, allowed) {
|
|
12
|
+
return (raw) => {
|
|
13
|
+
if (!allowed.includes(raw)) throw new Error(`${flag} must be one of: ${allowed.join(", ")}`);
|
|
14
|
+
return raw;
|
|
15
|
+
};
|
|
16
|
+
},
|
|
17
|
+
/** Require a positive (>0) integer. */
|
|
18
|
+
positiveInt(flag) {
|
|
19
|
+
return (raw) => {
|
|
20
|
+
const parsed = Number(raw);
|
|
21
|
+
if (!Number.isInteger(parsed) || parsed <= 0) throw new Error(`${flag} must be a positive integer`);
|
|
22
|
+
return parsed;
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
/** Pass a string through unchanged. */
|
|
26
|
+
string(raw) {
|
|
27
|
+
return raw;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const FLAGS = [
|
|
31
|
+
{
|
|
32
|
+
key: "prompt",
|
|
33
|
+
short: "p",
|
|
34
|
+
type: "string",
|
|
35
|
+
field: "prompt",
|
|
36
|
+
coerce: validate.string,
|
|
37
|
+
placeholder: "<text>",
|
|
38
|
+
help: "The task to execute (required, or pipe via stdin)"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
key: "continue",
|
|
42
|
+
short: "c",
|
|
43
|
+
type: "boolean",
|
|
44
|
+
field: "continue_",
|
|
45
|
+
help: "Resume the most recent thread instead of creating a new one"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
key: "thread",
|
|
49
|
+
short: "t",
|
|
50
|
+
type: "string",
|
|
51
|
+
field: "thread",
|
|
52
|
+
coerce: validate.string,
|
|
53
|
+
placeholder: "<id>",
|
|
54
|
+
help: "Resume a specific thread by ID"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
key: "title",
|
|
58
|
+
type: "string",
|
|
59
|
+
field: "title",
|
|
60
|
+
coerce: validate.string,
|
|
61
|
+
placeholder: "<title>",
|
|
62
|
+
help: "Set or rename the thread title"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
key: "clone-thread",
|
|
66
|
+
type: "boolean",
|
|
67
|
+
field: "cloneThread",
|
|
68
|
+
help: "Clone the current thread before running (work on a copy)"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
key: "resource-id",
|
|
72
|
+
type: "string",
|
|
73
|
+
field: "resourceId",
|
|
74
|
+
coerce: validate.string,
|
|
75
|
+
placeholder: "<id>",
|
|
76
|
+
help: "Set the resource ID for thread scoping"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
key: "timeout",
|
|
80
|
+
type: "string",
|
|
81
|
+
field: "timeout",
|
|
82
|
+
coerce: validate.positiveInt("--timeout"),
|
|
83
|
+
placeholder: "<seconds>",
|
|
84
|
+
help: "Exit with code 2 if not complete within timeout"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
key: "max-turns",
|
|
88
|
+
type: "string",
|
|
89
|
+
field: "maxTurns",
|
|
90
|
+
coerce: validate.positiveInt("--max-turns"),
|
|
91
|
+
placeholder: "<n>",
|
|
92
|
+
help: "Abort after N agentic turns (exit code 1)"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
key: "permission-mode",
|
|
96
|
+
type: "string",
|
|
97
|
+
field: "permissionMode",
|
|
98
|
+
coerce: validate.enum("--permission-mode", VALID_PERMISSION_MODES),
|
|
99
|
+
placeholder: "<mode>",
|
|
100
|
+
help: [
|
|
101
|
+
"How tool approvals/suspensions resolve:",
|
|
102
|
+
" auto approve everything (default)",
|
|
103
|
+
" deny refuse approvals, abort on suspension"
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
key: "output",
|
|
108
|
+
short: "o",
|
|
109
|
+
type: "string",
|
|
110
|
+
field: "output",
|
|
111
|
+
coerce: validate.enum("--output", VALID_OUTPUTS),
|
|
112
|
+
placeholder: "<mode>",
|
|
113
|
+
help: [
|
|
114
|
+
"Output mode: \"human\" (default), \"json\", or \"jsonl\"",
|
|
115
|
+
" human streaming text to stdout, activity to stderr",
|
|
116
|
+
" json single final JSON object (text, usage, tools)",
|
|
117
|
+
" jsonl newline-delimited JSON event stream"
|
|
118
|
+
]
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
key: "model",
|
|
122
|
+
short: "m",
|
|
123
|
+
type: "string",
|
|
124
|
+
field: "model",
|
|
125
|
+
coerce: validate.string,
|
|
126
|
+
placeholder: "<id>",
|
|
127
|
+
help: "Model override (e.g., a provider/model id)"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
key: "mode",
|
|
131
|
+
type: "string",
|
|
132
|
+
field: "mode",
|
|
133
|
+
coerce: validate.enum("--mode", VALID_MODES),
|
|
134
|
+
placeholder: "{build|plan|fast}",
|
|
135
|
+
help: "Execution mode — defaults to \"build\" if omitted"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
key: "thinking-level",
|
|
139
|
+
type: "string",
|
|
140
|
+
field: "thinkingLevel",
|
|
141
|
+
coerce: validate.enum("--thinking-level", VALID_THINKING_LEVELS),
|
|
142
|
+
placeholder: "<level>",
|
|
143
|
+
help: "Thinking level: off, low, medium, high, xhigh"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
key: "settings",
|
|
147
|
+
type: "string",
|
|
148
|
+
field: "settings",
|
|
149
|
+
coerce: validate.string,
|
|
150
|
+
placeholder: "<path>",
|
|
151
|
+
help: "Path to settings.json file (default: global settings)"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
key: "help",
|
|
155
|
+
short: "h",
|
|
156
|
+
type: "boolean",
|
|
157
|
+
help: "Show this help and exit"
|
|
158
|
+
}
|
|
159
|
+
];
|
|
160
|
+
/** `parseArgs` option config derived from {@link FLAGS}. */
|
|
161
|
+
function buildParseArgsOptions() {
|
|
162
|
+
const options = {};
|
|
163
|
+
for (const flag of FLAGS) {
|
|
164
|
+
options[flag.key] = flag.type === "boolean" ? {
|
|
165
|
+
type: "boolean",
|
|
166
|
+
default: false
|
|
167
|
+
} : { type: "string" };
|
|
168
|
+
if (flag.short) options[flag.key].short = flag.short;
|
|
169
|
+
}
|
|
170
|
+
return options;
|
|
171
|
+
}
|
|
172
|
+
/** Render the aligned `--flag description` block of the usage text from {@link FLAGS}. */
|
|
173
|
+
function renderFlagUsage() {
|
|
174
|
+
const left = (flag) => {
|
|
175
|
+
return ` ${`--${flag.key}`}${flag.short ? `, -${flag.short}` : ""}${flag.placeholder ? ` ${flag.placeholder}` : ""}`;
|
|
176
|
+
};
|
|
177
|
+
const rows = FLAGS.map((flag) => ({
|
|
178
|
+
flag,
|
|
179
|
+
label: left(flag)
|
|
180
|
+
}));
|
|
181
|
+
const width = Math.max(...rows.map((r) => r.label.length)) + 2;
|
|
182
|
+
return rows.map(({ flag, label }) => {
|
|
183
|
+
const lines = Array.isArray(flag.help) ? flag.help : [flag.help];
|
|
184
|
+
return [`${label.padEnd(width)}${lines[0]}`, ...lines.slice(1).map((line) => `${" ".repeat(width)}${line}`)].join("\n");
|
|
185
|
+
}).join("\n");
|
|
186
|
+
}
|
|
187
|
+
//#endregion
|
|
188
|
+
export { FLAGS, VALID_OUTPUTS, buildParseArgsOptions, renderFlagUsage };
|
|
189
|
+
|
|
190
|
+
//# sourceMappingURL=flags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flags.js","names":[],"sources":["../../src/headless/flags.ts"],"sourcesContent":["/**\n * Declarative flag specification for the headless CLI.\n *\n * A single table is the source of truth for three things that previously drifted\n * apart in `cli.ts`:\n * 1. the `node:util` `parseArgs` option config,\n * 2. per-flag value coercion + validation, and\n * 3. the `--help` usage text.\n *\n * Adding a flag means adding one row here; parsing, validation, and the usage\n * listing all follow automatically.\n */\nimport type { OutputMode } from './cli.js';\nimport type { PermissionMode, RunMode, ThinkingLevel } from './types.js';\nimport { VALID_MODES, VALID_PERMISSION_MODES, VALID_THINKING_LEVELS } from './types.js';\n\nexport const VALID_OUTPUTS = ['human', 'json', 'jsonl'] as const;\n\n/** Reusable validators. Each throws a descriptive Error or returns the typed value. */\nconst validate = {\n /** Restrict to a fixed set of string literals. */\n enum<T extends string>(flag: string, allowed: readonly T[]) {\n return (raw: string): T => {\n if (!(allowed as readonly string[]).includes(raw)) {\n throw new Error(`${flag} must be one of: ${allowed.join(', ')}`);\n }\n return raw as T;\n };\n },\n /** Require a positive (>0) integer. */\n positiveInt(flag: string) {\n return (raw: string): number => {\n const parsed = Number(raw);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n throw new Error(`${flag} must be a positive integer`);\n }\n return parsed;\n };\n },\n /** Pass a string through unchanged. */\n string(raw: string): string {\n return raw;\n },\n};\n\n/**\n * One CLI flag. `key` is the long name (e.g. `output`); `field` is the\n * {@link import('./cli.js').HeadlessArgs} property it populates. `coerce`\n * converts the raw string and validates it. Boolean flags omit `coerce` and set\n * `field` to `true` when present.\n */\nexport interface FlagSpec {\n /** Long flag name without the leading `--`. */\n key: string;\n /** Single-character alias (without the leading `-`), if any. */\n short?: string;\n /** Whether the flag takes a value (`string`) or is a switch (`boolean`). */\n type: 'string' | 'boolean';\n /** Target field on `HeadlessArgs`. Omit for flags handled out-of-band (e.g. help). */\n field?: string;\n /** Coerce/validate a string value. Required for `type: 'string'` flags that map to a field. */\n coerce?: (raw: string) => unknown;\n /** `<...>` value placeholder shown in usage, e.g. `<text>`. */\n placeholder?: string;\n /** One-line (or multi-line) help description shown in usage. */\n help: string | string[];\n}\n\nexport const FLAGS: FlagSpec[] = [\n {\n key: 'prompt',\n short: 'p',\n type: 'string',\n field: 'prompt',\n coerce: validate.string,\n placeholder: '<text>',\n help: 'The task to execute (required, or pipe via stdin)',\n },\n {\n key: 'continue',\n short: 'c',\n type: 'boolean',\n field: 'continue_',\n help: 'Resume the most recent thread instead of creating a new one',\n },\n {\n key: 'thread',\n short: 't',\n type: 'string',\n field: 'thread',\n coerce: validate.string,\n placeholder: '<id>',\n help: 'Resume a specific thread by ID',\n },\n {\n key: 'title',\n type: 'string',\n field: 'title',\n coerce: validate.string,\n placeholder: '<title>',\n help: 'Set or rename the thread title',\n },\n {\n key: 'clone-thread',\n type: 'boolean',\n field: 'cloneThread',\n help: 'Clone the current thread before running (work on a copy)',\n },\n {\n key: 'resource-id',\n type: 'string',\n field: 'resourceId',\n coerce: validate.string,\n placeholder: '<id>',\n help: 'Set the resource ID for thread scoping',\n },\n {\n key: 'timeout',\n type: 'string',\n field: 'timeout',\n coerce: validate.positiveInt('--timeout'),\n placeholder: '<seconds>',\n help: 'Exit with code 2 if not complete within timeout',\n },\n {\n key: 'max-turns',\n type: 'string',\n field: 'maxTurns',\n coerce: validate.positiveInt('--max-turns'),\n placeholder: '<n>',\n help: 'Abort after N agentic turns (exit code 1)',\n },\n {\n key: 'permission-mode',\n type: 'string',\n field: 'permissionMode',\n coerce: validate.enum<PermissionMode>('--permission-mode', VALID_PERMISSION_MODES),\n placeholder: '<mode>',\n help: [\n 'How tool approvals/suspensions resolve:',\n ' auto approve everything (default)',\n ' deny refuse approvals, abort on suspension',\n ],\n },\n {\n key: 'output',\n short: 'o',\n type: 'string',\n field: 'output',\n coerce: validate.enum<OutputMode>('--output', VALID_OUTPUTS),\n placeholder: '<mode>',\n help: [\n 'Output mode: \"human\" (default), \"json\", or \"jsonl\"',\n ' human streaming text to stdout, activity to stderr',\n ' json single final JSON object (text, usage, tools)',\n ' jsonl newline-delimited JSON event stream',\n ],\n },\n {\n key: 'model',\n short: 'm',\n type: 'string',\n field: 'model',\n coerce: validate.string,\n placeholder: '<id>',\n help: 'Model override (e.g., a provider/model id)',\n },\n {\n key: 'mode',\n type: 'string',\n field: 'mode',\n coerce: validate.enum<RunMode>('--mode', VALID_MODES),\n placeholder: '{build|plan|fast}',\n help: 'Execution mode — defaults to \"build\" if omitted',\n },\n {\n key: 'thinking-level',\n type: 'string',\n field: 'thinkingLevel',\n coerce: validate.enum<ThinkingLevel>('--thinking-level', VALID_THINKING_LEVELS),\n placeholder: '<level>',\n help: 'Thinking level: off, low, medium, high, xhigh',\n },\n {\n key: 'settings',\n type: 'string',\n field: 'settings',\n coerce: validate.string,\n placeholder: '<path>',\n help: 'Path to settings.json file (default: global settings)',\n },\n {\n key: 'help',\n short: 'h',\n type: 'boolean',\n help: 'Show this help and exit',\n },\n];\n\n/** `parseArgs` option config derived from {@link FLAGS}. */\nexport function buildParseArgsOptions() {\n const options: Record<string, { type: 'string' | 'boolean'; short?: string; default?: boolean }> = {};\n for (const flag of FLAGS) {\n options[flag.key] = flag.type === 'boolean' ? { type: 'boolean', default: false } : { type: 'string' };\n if (flag.short) options[flag.key]!.short = flag.short;\n }\n return options;\n}\n\n/** Render the aligned `--flag description` block of the usage text from {@link FLAGS}. */\nexport function renderFlagUsage(): string {\n const left = (flag: FlagSpec): string => {\n const long = `--${flag.key}`;\n const short = flag.short ? `, -${flag.short}` : '';\n const value = flag.placeholder ? ` ${flag.placeholder}` : '';\n return ` ${long}${short}${value}`;\n };\n\n const rows = FLAGS.map(flag => ({ flag, label: left(flag) }));\n const width = Math.max(...rows.map(r => r.label.length)) + 2;\n\n return rows\n .map(({ flag, label }) => {\n const lines = Array.isArray(flag.help) ? flag.help : [flag.help];\n const first = `${label.padEnd(width)}${lines[0]}`;\n const rest = lines.slice(1).map(line => `${' '.repeat(width)}${line}`);\n return [first, ...rest].join('\\n');\n })\n .join('\\n');\n}\n"],"mappings":";;AAgBA,MAAa,gBAAgB;CAAC;CAAS;CAAQ;AAAO;;AAGtD,MAAM,WAAW;;CAEf,KAAuB,MAAc,SAAuB;EAC1D,QAAQ,QAAmB;GACzB,IAAI,CAAE,QAA8B,SAAS,GAAG,GAC9C,MAAM,IAAI,MAAM,GAAG,KAAK,mBAAmB,QAAQ,KAAK,IAAI,GAAG;GAEjE,OAAO;EACT;CACF;;CAEA,YAAY,MAAc;EACxB,QAAQ,QAAwB;GAC9B,MAAM,SAAS,OAAO,GAAG;GACzB,IAAI,CAAC,OAAO,UAAU,MAAM,KAAK,UAAU,GACzC,MAAM,IAAI,MAAM,GAAG,KAAK,4BAA4B;GAEtD,OAAO;EACT;CACF;;CAEA,OAAO,KAAqB;EAC1B,OAAO;CACT;AACF;AAyBA,MAAa,QAAoB;CAC/B;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,OAAO;EACP,QAAQ,SAAS;EACjB,aAAa;EACb,MAAM;CACR;CACA;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,OAAO;EACP,MAAM;CACR;CACA;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,OAAO;EACP,QAAQ,SAAS;EACjB,aAAa;EACb,MAAM;CACR;CACA;EACE,KAAK;EACL,MAAM;EACN,OAAO;EACP,QAAQ,SAAS;EACjB,aAAa;EACb,MAAM;CACR;CACA;EACE,KAAK;EACL,MAAM;EACN,OAAO;EACP,MAAM;CACR;CACA;EACE,KAAK;EACL,MAAM;EACN,OAAO;EACP,QAAQ,SAAS;EACjB,aAAa;EACb,MAAM;CACR;CACA;EACE,KAAK;EACL,MAAM;EACN,OAAO;EACP,QAAQ,SAAS,YAAY,WAAW;EACxC,aAAa;EACb,MAAM;CACR;CACA;EACE,KAAK;EACL,MAAM;EACN,OAAO;EACP,QAAQ,SAAS,YAAY,aAAa;EAC1C,aAAa;EACb,MAAM;CACR;CACA;EACE,KAAK;EACL,MAAM;EACN,OAAO;EACP,QAAQ,SAAS,KAAqB,qBAAqB,sBAAsB;EACjF,aAAa;EACb,MAAM;GACJ;GACA;GACA;EACF;CACF;CACA;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,OAAO;EACP,QAAQ,SAAS,KAAiB,YAAY,aAAa;EAC3D,aAAa;EACb,MAAM;GACJ;GACA;GACA;GACA;EACF;CACF;CACA;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,OAAO;EACP,QAAQ,SAAS;EACjB,aAAa;EACb,MAAM;CACR;CACA;EACE,KAAK;EACL,MAAM;EACN,OAAO;EACP,QAAQ,SAAS,KAAc,UAAU,WAAW;EACpD,aAAa;EACb,MAAM;CACR;CACA;EACE,KAAK;EACL,MAAM;EACN,OAAO;EACP,QAAQ,SAAS,KAAoB,oBAAoB,qBAAqB;EAC9E,aAAa;EACb,MAAM;CACR;CACA;EACE,KAAK;EACL,MAAM;EACN,OAAO;EACP,QAAQ,SAAS;EACjB,aAAa;EACb,MAAM;CACR;CACA;EACE,KAAK;EACL,OAAO;EACP,MAAM;EACN,MAAM;CACR;AACF;;AAGA,SAAgB,wBAAwB;CACtC,MAAM,UAA6F,CAAC;CACpG,KAAK,MAAM,QAAQ,OAAO;EACxB,QAAQ,KAAK,OAAO,KAAK,SAAS,YAAY;GAAE,MAAM;GAAW,SAAS;EAAM,IAAI,EAAE,MAAM,SAAS;EACrG,IAAI,KAAK,OAAO,QAAQ,KAAK,IAAI,CAAE,QAAQ,KAAK;CAClD;CACA,OAAO;AACT;;AAGA,SAAgB,kBAA0B;CACxC,MAAM,QAAQ,SAA2B;EAIvC,OAAO,KAAK,KAHM,KAAK,QACT,KAAK,QAAQ,MAAM,KAAK,UAAU,KAClC,KAAK,cAAc,IAAI,KAAK,gBAAgB;CAE5D;CAEA,MAAM,OAAO,MAAM,KAAI,UAAS;EAAE;EAAM,OAAO,KAAK,IAAI;CAAE,EAAE;CAC5D,MAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,KAAI,MAAK,EAAE,MAAM,MAAM,CAAC,IAAI;CAE3D,OAAO,KACJ,KAAK,EAAE,MAAM,YAAY;EACxB,MAAM,QAAQ,MAAM,QAAQ,KAAK,IAAI,IAAI,KAAK,OAAO,CAAC,KAAK,IAAI;EAG/D,OAAO,CAAC,GAFS,MAAM,OAAO,KAAK,IAAI,MAAM,MAE9B,GADF,MAAM,MAAM,CAAC,CAAC,CAAC,KAAI,SAAQ,GAAG,IAAI,OAAO,KAAK,IAAI,MAC1C,CAAC,CAAC,CAAC,KAAK,IAAI;CACnC,CAAC,CAAC,CACD,KAAK,IAAI;AACd"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output formatters for headless runs. All functions here are pure — they take
|
|
3
|
+
* an event (or a final result) and return strings / plain objects. They never
|
|
4
|
+
* touch `process.*`; the CLI adapter owns the sinks.
|
|
5
|
+
*/
|
|
6
|
+
import type { AgentControllerEvent } from '@mastra/core/agent-controller';
|
|
7
|
+
import type { RunMCResult } from './types.js';
|
|
8
|
+
/** Truncate a string to `max` characters, appending "..." if truncated. */
|
|
9
|
+
export declare function truncate(s: string, max: number): string;
|
|
10
|
+
/** Mutable per-stream cursor used by {@link formatHuman} to stream assistant text. */
|
|
11
|
+
export interface HumanFormatState {
|
|
12
|
+
lastTextLength: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function createHumanFormatState(): HumanFormatState;
|
|
15
|
+
/** A chunk of formatted output destined for stdout and/or stderr. */
|
|
16
|
+
export interface FormattedOutput {
|
|
17
|
+
stdout?: string;
|
|
18
|
+
stderr?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Human-readable streaming formatter (the historical default). Assistant text
|
|
22
|
+
* streams to stdout; tool/subagent/shell/error activity goes to stderr. The
|
|
23
|
+
* `state` cursor is mutated so repeated `message_update` events only emit the
|
|
24
|
+
* newly-appended text.
|
|
25
|
+
*/
|
|
26
|
+
export declare function formatHuman(event: AgentControllerEvent, state: HumanFormatState): FormattedOutput;
|
|
27
|
+
/**
|
|
28
|
+
* JSONL (stream-json) formatter — returns a plain object to be `JSON.stringify`'d
|
|
29
|
+
* as one line per event by the sink. `Error` instances are normalized so their
|
|
30
|
+
* `name`/`message`/`stack` survive serialization (`JSON.stringify` turns a raw
|
|
31
|
+
* `Error` into `{}`).
|
|
32
|
+
*/
|
|
33
|
+
export declare function formatJsonl(event: AgentControllerEvent): Record<string, unknown>;
|
|
34
|
+
/** Render the final result for `--output text`: assistant text, newline-terminated. */
|
|
35
|
+
export declare function renderTextResult(result: RunMCResult): string;
|
|
36
|
+
/** Render the final result for `--output json`: one JSON object. */
|
|
37
|
+
export declare function renderJsonResult(result: RunMCResult): string;
|
|
38
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/headless/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAsC,MAAM,+BAA+B,CAAC;AAE9G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAUD,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,sBAAsB,IAAI,gBAAgB,CAEzD;AAED,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,gBAAgB,GAAG,eAAe,CA4CjG;AAOD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMhF;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAE5D;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAc5D"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
//#region src/headless/format.ts
|
|
2
|
+
/** Truncate a string to `max` characters, appending "..." if truncated. */
|
|
3
|
+
function truncate(s, max) {
|
|
4
|
+
return s.length > max ? s.slice(0, max) + "..." : s;
|
|
5
|
+
}
|
|
6
|
+
/** Concatenate the text of an assistant message's nested content parts. */
|
|
7
|
+
function messageText(message) {
|
|
8
|
+
return message.content.parts.filter((p) => p.type === "text" && typeof p.text === "string").map((p) => p.text).join("");
|
|
9
|
+
}
|
|
10
|
+
function createHumanFormatState() {
|
|
11
|
+
return { lastTextLength: 0 };
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Human-readable streaming formatter (the historical default). Assistant text
|
|
15
|
+
* streams to stdout; tool/subagent/shell/error activity goes to stderr. The
|
|
16
|
+
* `state` cursor is mutated so repeated `message_update` events only emit the
|
|
17
|
+
* newly-appended text.
|
|
18
|
+
*/
|
|
19
|
+
function formatHuman(event, state) {
|
|
20
|
+
switch (event.type) {
|
|
21
|
+
case "agent_start":
|
|
22
|
+
state.lastTextLength = 0;
|
|
23
|
+
return {};
|
|
24
|
+
case "message_update": {
|
|
25
|
+
const fullText = messageText(event.message);
|
|
26
|
+
if (fullText.length > state.lastTextLength) {
|
|
27
|
+
const delta = fullText.slice(state.lastTextLength);
|
|
28
|
+
state.lastTextLength = fullText.length;
|
|
29
|
+
return { stdout: delta };
|
|
30
|
+
}
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
case "message_end": {
|
|
34
|
+
if (event.message.role !== "assistant") return {};
|
|
35
|
+
const fullText = messageText(event.message);
|
|
36
|
+
const delta = fullText.length > state.lastTextLength ? fullText.slice(state.lastTextLength) : "";
|
|
37
|
+
state.lastTextLength = 0;
|
|
38
|
+
return { stdout: delta + "\n" };
|
|
39
|
+
}
|
|
40
|
+
case "tool_start": return { stderr: `[tool] ${event.toolName}\n` };
|
|
41
|
+
case "tool_end": return event.isError ? { stderr: `[tool error] ${truncate(String(event.result), 200)}\n` } : {};
|
|
42
|
+
case "shell_output": return { stderr: event.output };
|
|
43
|
+
case "subagent_start": return { stderr: `[subagent:${event.forked ? "forked:" : ""}${event.agentType}] ${truncate(event.task, 100)}\n` };
|
|
44
|
+
case "subagent_end": return event.isError ? { stderr: `[subagent error] ${truncate(event.result, 200)}\n` } : {};
|
|
45
|
+
case "error": return { stderr: `[error] ${event.error.message}\n` };
|
|
46
|
+
default: return {};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/** Convert an `Error` instance into a JSON-serializable plain object. */
|
|
50
|
+
function serializeError(err) {
|
|
51
|
+
return {
|
|
52
|
+
name: err.name,
|
|
53
|
+
message: err.message,
|
|
54
|
+
stack: err.stack
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* JSONL (stream-json) formatter — returns a plain object to be `JSON.stringify`'d
|
|
59
|
+
* as one line per event by the sink. `Error` instances are normalized so their
|
|
60
|
+
* `name`/`message`/`stack` survive serialization (`JSON.stringify` turns a raw
|
|
61
|
+
* `Error` into `{}`).
|
|
62
|
+
*/
|
|
63
|
+
function formatJsonl(event) {
|
|
64
|
+
const out = { ...event };
|
|
65
|
+
if ("error" in event && event.error instanceof Error) out.error = serializeError(event.error);
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
68
|
+
/** Render the final result for `--output text`: assistant text, newline-terminated. */
|
|
69
|
+
function renderTextResult(result) {
|
|
70
|
+
return result.text.endsWith("\n") ? result.text : result.text + "\n";
|
|
71
|
+
}
|
|
72
|
+
/** Render the final result for `--output json`: one JSON object. */
|
|
73
|
+
function renderJsonResult(result) {
|
|
74
|
+
return JSON.stringify({
|
|
75
|
+
status: result.status,
|
|
76
|
+
text: result.text,
|
|
77
|
+
finishReason: result.finishReason,
|
|
78
|
+
usage: result.usage,
|
|
79
|
+
toolCalls: result.toolCalls,
|
|
80
|
+
toolResults: result.toolResults,
|
|
81
|
+
error: result.error,
|
|
82
|
+
threadId: result.threadId,
|
|
83
|
+
exitCode: result.exitCode
|
|
84
|
+
}) + "\n";
|
|
85
|
+
}
|
|
86
|
+
//#endregion
|
|
87
|
+
export { createHumanFormatState, formatHuman, formatJsonl, renderJsonResult, renderTextResult, truncate };
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","names":[],"sources":["../../src/headless/format.ts"],"sourcesContent":["/**\n * Output formatters for headless runs. All functions here are pure — they take\n * an event (or a final result) and return strings / plain objects. They never\n * touch `process.*`; the CLI adapter owns the sinks.\n */\nimport type { AgentControllerEvent, MastraDBMessage, MastraMessagePart } from '@mastra/core/agent-controller';\n\nimport type { RunMCResult } from './types.js';\n\n/** Truncate a string to `max` characters, appending \"...\" if truncated. */\nexport function truncate(s: string, max: number): string {\n return s.length > max ? s.slice(0, max) + '...' : s;\n}\n\n/** Concatenate the text of an assistant message's nested content parts. */\nfunction messageText(message: MastraDBMessage): string {\n return message.content.parts\n .filter((p): p is MastraMessagePart & { text: string } => p.type === 'text' && typeof p.text === 'string')\n .map(p => p.text)\n .join('');\n}\n\n/** Mutable per-stream cursor used by {@link formatHuman} to stream assistant text. */\nexport interface HumanFormatState {\n lastTextLength: number;\n}\n\nexport function createHumanFormatState(): HumanFormatState {\n return { lastTextLength: 0 };\n}\n\n/** A chunk of formatted output destined for stdout and/or stderr. */\nexport interface FormattedOutput {\n stdout?: string;\n stderr?: string;\n}\n\n/**\n * Human-readable streaming formatter (the historical default). Assistant text\n * streams to stdout; tool/subagent/shell/error activity goes to stderr. The\n * `state` cursor is mutated so repeated `message_update` events only emit the\n * newly-appended text.\n */\nexport function formatHuman(event: AgentControllerEvent, state: HumanFormatState): FormattedOutput {\n switch (event.type) {\n case 'agent_start':\n state.lastTextLength = 0;\n return {};\n case 'message_update': {\n const fullText = messageText(event.message);\n if (fullText.length > state.lastTextLength) {\n const delta = fullText.slice(state.lastTextLength);\n state.lastTextLength = fullText.length;\n return { stdout: delta };\n }\n return {};\n }\n case 'message_end': {\n // Only assistant messages produce stdout. The controller also emits\n // message_end for the echoed user prompt (and system messages); emitting\n // those here would duplicate the prompt to stdout and corrupt the stream.\n if (event.message.role !== 'assistant') return {};\n // Emit any assistant text the message_update stream didn't already cover\n // (e.g. a run that only delivered the final text on message_end), then\n // terminate the line.\n const fullText = messageText(event.message);\n const delta = fullText.length > state.lastTextLength ? fullText.slice(state.lastTextLength) : '';\n state.lastTextLength = 0;\n return { stdout: delta + '\\n' };\n }\n case 'tool_start':\n return { stderr: `[tool] ${event.toolName}\\n` };\n case 'tool_end':\n return event.isError ? { stderr: `[tool error] ${truncate(String(event.result), 200)}\\n` } : {};\n case 'shell_output':\n return { stderr: event.output };\n case 'subagent_start':\n return {\n stderr: `[subagent:${event.forked ? 'forked:' : ''}${event.agentType}] ${truncate(event.task, 100)}\\n`,\n };\n case 'subagent_end':\n return event.isError ? { stderr: `[subagent error] ${truncate(event.result, 200)}\\n` } : {};\n case 'error':\n return { stderr: `[error] ${event.error.message}\\n` };\n default:\n return {};\n }\n}\n\n/** Convert an `Error` instance into a JSON-serializable plain object. */\nfunction serializeError(err: Error): { name: string; message: string; stack?: string } {\n return { name: err.name, message: err.message, stack: err.stack };\n}\n\n/**\n * JSONL (stream-json) formatter — returns a plain object to be `JSON.stringify`'d\n * as one line per event by the sink. `Error` instances are normalized so their\n * `name`/`message`/`stack` survive serialization (`JSON.stringify` turns a raw\n * `Error` into `{}`).\n */\nexport function formatJsonl(event: AgentControllerEvent): Record<string, unknown> {\n const out: Record<string, unknown> = { ...event };\n if ('error' in event && event.error instanceof Error) {\n out.error = serializeError(event.error);\n }\n return out;\n}\n\n/** Render the final result for `--output text`: assistant text, newline-terminated. */\nexport function renderTextResult(result: RunMCResult): string {\n return result.text.endsWith('\\n') ? result.text : result.text + '\\n';\n}\n\n/** Render the final result for `--output json`: one JSON object. */\nexport function renderJsonResult(result: RunMCResult): string {\n return (\n JSON.stringify({\n status: result.status,\n text: result.text,\n finishReason: result.finishReason,\n usage: result.usage,\n toolCalls: result.toolCalls,\n toolResults: result.toolResults,\n error: result.error,\n threadId: result.threadId,\n exitCode: result.exitCode,\n }) + '\\n'\n );\n}\n"],"mappings":";;AAUA,SAAgB,SAAS,GAAW,KAAqB;CACvD,OAAO,EAAE,SAAS,MAAM,EAAE,MAAM,GAAG,GAAG,IAAI,QAAQ;AACpD;;AAGA,SAAS,YAAY,SAAkC;CACrD,OAAO,QAAQ,QAAQ,MACpB,QAAQ,MAAiD,EAAE,SAAS,UAAU,OAAO,EAAE,SAAS,QAAQ,CAAC,CACzG,KAAI,MAAK,EAAE,IAAI,CAAC,CAChB,KAAK,EAAE;AACZ;AAOA,SAAgB,yBAA2C;CACzD,OAAO,EAAE,gBAAgB,EAAE;AAC7B;;;;;;;AAcA,SAAgB,YAAY,OAA6B,OAA0C;CACjG,QAAQ,MAAM,MAAd;EACE,KAAK;GACH,MAAM,iBAAiB;GACvB,OAAO,CAAC;EACV,KAAK,kBAAkB;GACrB,MAAM,WAAW,YAAY,MAAM,OAAO;GAC1C,IAAI,SAAS,SAAS,MAAM,gBAAgB;IAC1C,MAAM,QAAQ,SAAS,MAAM,MAAM,cAAc;IACjD,MAAM,iBAAiB,SAAS;IAChC,OAAO,EAAE,QAAQ,MAAM;GACzB;GACA,OAAO,CAAC;EACV;EACA,KAAK,eAAe;GAIlB,IAAI,MAAM,QAAQ,SAAS,aAAa,OAAO,CAAC;GAIhD,MAAM,WAAW,YAAY,MAAM,OAAO;GAC1C,MAAM,QAAQ,SAAS,SAAS,MAAM,iBAAiB,SAAS,MAAM,MAAM,cAAc,IAAI;GAC9F,MAAM,iBAAiB;GACvB,OAAO,EAAE,QAAQ,QAAQ,KAAK;EAChC;EACA,KAAK,cACH,OAAO,EAAE,QAAQ,UAAU,MAAM,SAAS,IAAI;EAChD,KAAK,YACH,OAAO,MAAM,UAAU,EAAE,QAAQ,gBAAgB,SAAS,OAAO,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC;EAChG,KAAK,gBACH,OAAO,EAAE,QAAQ,MAAM,OAAO;EAChC,KAAK,kBACH,OAAO,EACL,QAAQ,aAAa,MAAM,SAAS,YAAY,KAAK,MAAM,UAAU,IAAI,SAAS,MAAM,MAAM,GAAG,EAAE,IACrG;EACF,KAAK,gBACH,OAAO,MAAM,UAAU,EAAE,QAAQ,oBAAoB,SAAS,MAAM,QAAQ,GAAG,EAAE,IAAI,IAAI,CAAC;EAC5F,KAAK,SACH,OAAO,EAAE,QAAQ,WAAW,MAAM,MAAM,QAAQ,IAAI;EACtD,SACE,OAAO,CAAC;CACZ;AACF;;AAGA,SAAS,eAAe,KAA+D;CACrF,OAAO;EAAE,MAAM,IAAI;EAAM,SAAS,IAAI;EAAS,OAAO,IAAI;CAAM;AAClE;;;;;;;AAQA,SAAgB,YAAY,OAAsD;CAChF,MAAM,MAA+B,EAAE,GAAG,MAAM;CAChD,IAAI,WAAW,SAAS,MAAM,iBAAiB,OAC7C,IAAI,QAAQ,eAAe,MAAM,KAAK;CAExC,OAAO;AACT;;AAGA,SAAgB,iBAAiB,QAA6B;CAC5D,OAAO,OAAO,KAAK,SAAS,IAAI,IAAI,OAAO,OAAO,OAAO,OAAO;AAClE;;AAGA,SAAgB,iBAAiB,QAA6B;CAC5D,OACE,KAAK,UAAU;EACb,QAAQ,OAAO;EACf,MAAM,OAAO;EACb,cAAc,OAAO;EACrB,OAAO,OAAO;EACd,WAAW,OAAO;EAClB,aAAa,OAAO;EACpB,OAAO,OAAO;EACd,UAAU,OAAO;EACjB,UAAU,OAAO;CACnB,CAAC,IAAI;AAET"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public headless / programmatic API for MastraCode.
|
|
3
|
+
*
|
|
4
|
+
* Programmatic (CI / Node) usage:
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { createMastraCode } from 'mastracode';
|
|
7
|
+
* import { runMC } from 'mastracode/headless';
|
|
8
|
+
*
|
|
9
|
+
* const { controller, session } = await createMastraCode({ settingsPath });
|
|
10
|
+
* const run = runMC({ controller, session, prompt: 'Fix the bug' });
|
|
11
|
+
* for await (const event of run) { ... } // optional live events
|
|
12
|
+
* const result = await run.result; // typed RunMCResult
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* The CLI adapter (`runMCCli`) wraps the same `createMastraCode` → `runMC` flow.
|
|
16
|
+
*/
|
|
17
|
+
export { runMC } from './run-mc.js';
|
|
18
|
+
export { autoApprovePolicy, denyPolicy, permissionModeToPolicy } from './policy.js';
|
|
19
|
+
export { formatHuman, formatJsonl, renderTextResult, renderJsonResult, createHumanFormatState, truncate, } from './format.js';
|
|
20
|
+
export type { FormattedOutput, HumanFormatState } from './format.js';
|
|
21
|
+
export { runMCCli, hasHeadlessFlag, parseHeadlessArgs, printHeadlessUsage } from './cli.js';
|
|
22
|
+
export type { HeadlessArgs, OutputMode } from './cli.js';
|
|
23
|
+
export type { RunMCOptions, RunMCResult, RunMCStatus, RunMCUsage, RunMCToolCall, RunMCToolResult, RunMCError, RunMCThreadOptions, MCRun, RunMCGoalOptions, ResolutionPolicy, RunMode, ThinkingLevel, PermissionMode, } from './types.js';
|
|
24
|
+
export { VALID_MODES, VALID_THINKING_LEVELS, VALID_PERMISSION_MODES } from './types.js';
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/headless/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGpF,OAAO,EACL,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGrE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGzD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,KAAK,EACL,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { autoApprovePolicy, denyPolicy, permissionModeToPolicy } from "./policy.js";
|
|
2
|
+
import { runMC } from "./run-mc.js";
|
|
3
|
+
import { createHumanFormatState, formatHuman, formatJsonl, renderJsonResult, renderTextResult, truncate } from "./format.js";
|
|
4
|
+
import { VALID_MODES, VALID_PERMISSION_MODES, VALID_THINKING_LEVELS } from "./types.js";
|
|
5
|
+
import { hasHeadlessFlag, parseHeadlessArgs, printHeadlessUsage, runMCCli } from "./cli.js";
|
|
6
|
+
export { VALID_MODES, VALID_PERMISSION_MODES, VALID_THINKING_LEVELS, autoApprovePolicy, createHumanFormatState, denyPolicy, formatHuman, formatJsonl, hasHeadlessFlag, parseHeadlessArgs, permissionModeToPolicy, printHeadlessUsage, renderJsonResult, renderTextResult, runMC, runMCCli, truncate };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PermissionMode, ResolutionPolicy } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Default policy — reproduces the historical headless behavior:
|
|
4
|
+
* - approve every tool approval request,
|
|
5
|
+
* - auto-approve `request_access` / sandbox access suspensions ("Yes"),
|
|
6
|
+
* - auto-approve `submit_plan` suspensions (`{ action: 'approved' }`),
|
|
7
|
+
* - answer any other suspension with a "use your best judgment" instruction.
|
|
8
|
+
*/
|
|
9
|
+
export declare const autoApprovePolicy: ResolutionPolicy;
|
|
10
|
+
/**
|
|
11
|
+
* Strict policy — refuses every tool approval and aborts on any suspension.
|
|
12
|
+
* Useful for CI gating where unattended tool execution must not happen.
|
|
13
|
+
*/
|
|
14
|
+
export declare const denyPolicy: ResolutionPolicy;
|
|
15
|
+
/** Resolve a named {@link PermissionMode} to its built-in {@link ResolutionPolicy}. */
|
|
16
|
+
export declare function permissionModeToPolicy(mode: PermissionMode): ResolutionPolicy;
|
|
17
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/headless/policy.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,gBAoB/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,gBAUxB,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAQ7E"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
//#region src/headless/policy.ts
|
|
2
|
+
/**
|
|
3
|
+
* Default policy — reproduces the historical headless behavior:
|
|
4
|
+
* - approve every tool approval request,
|
|
5
|
+
* - auto-approve `request_access` / sandbox access suspensions ("Yes"),
|
|
6
|
+
* - auto-approve `submit_plan` suspensions (`{ action: 'approved' }`),
|
|
7
|
+
* - answer any other suspension with a "use your best judgment" instruction.
|
|
8
|
+
*/
|
|
9
|
+
const autoApprovePolicy = {
|
|
10
|
+
onToolApproval(_event) {
|
|
11
|
+
return "approve";
|
|
12
|
+
},
|
|
13
|
+
onSuspension(event) {
|
|
14
|
+
const payload = event.suspendPayload ?? {};
|
|
15
|
+
if (event.toolName === "request_access" || payload.kind === "sandbox_access_request") return { resumeData: "Yes" };
|
|
16
|
+
if (event.toolName === "submit_plan") return { resumeData: { action: "approved" } };
|
|
17
|
+
return { resumeData: "Proceed with your best judgment. Do not ask further questions." };
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Strict policy — refuses every tool approval and aborts on any suspension.
|
|
22
|
+
* Useful for CI gating where unattended tool execution must not happen.
|
|
23
|
+
*/
|
|
24
|
+
const denyPolicy = {
|
|
25
|
+
onToolApproval(_event) {
|
|
26
|
+
return "deny";
|
|
27
|
+
},
|
|
28
|
+
onSuspension(_event) {
|
|
29
|
+
return { abort: true };
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
/** Resolve a named {@link PermissionMode} to its built-in {@link ResolutionPolicy}. */
|
|
33
|
+
function permissionModeToPolicy(mode) {
|
|
34
|
+
switch (mode) {
|
|
35
|
+
case "deny": return denyPolicy;
|
|
36
|
+
default: return autoApprovePolicy;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
export { autoApprovePolicy, denyPolicy, permissionModeToPolicy };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","names":[],"sources":["../../src/headless/policy.ts"],"sourcesContent":["/**\n * Resolution policies decide how `runMC` resumes interactive events\n * (`tool_approval_required`, `tool_suspended`) without a human in the loop.\n *\n * Policies are pure decision objects: they inspect the event and return a\n * decision. The runner is responsible for applying the decision to the session\n * and for any side effects (emitting labels, etc.). This keeps policies testable\n * and lets CI swap in stricter behavior without touching the runner.\n */\nimport type { AgentControllerEvent } from '@mastra/core/agent-controller';\n\nimport type { PermissionMode, ResolutionPolicy } from './types.js';\n\n/**\n * Default policy — reproduces the historical headless behavior:\n * - approve every tool approval request,\n * - auto-approve `request_access` / sandbox access suspensions (\"Yes\"),\n * - auto-approve `submit_plan` suspensions (`{ action: 'approved' }`),\n * - answer any other suspension with a \"use your best judgment\" instruction.\n */\nexport const autoApprovePolicy: ResolutionPolicy = {\n onToolApproval(_event: Extract<AgentControllerEvent, { type: 'tool_approval_required' }>): 'approve' | 'deny' {\n return 'approve';\n },\n\n onSuspension(\n event: Extract<AgentControllerEvent, { type: 'tool_suspended' }>,\n ): { resumeData: unknown } | { abort: true } {\n const payload = (event.suspendPayload ?? {}) as Record<string, unknown>;\n\n if (event.toolName === 'request_access' || payload.kind === 'sandbox_access_request') {\n return { resumeData: 'Yes' };\n }\n\n if (event.toolName === 'submit_plan') {\n return { resumeData: { action: 'approved' } };\n }\n\n return { resumeData: 'Proceed with your best judgment. Do not ask further questions.' };\n },\n};\n\n/**\n * Strict policy — refuses every tool approval and aborts on any suspension.\n * Useful for CI gating where unattended tool execution must not happen.\n */\nexport const denyPolicy: ResolutionPolicy = {\n onToolApproval(_event: Extract<AgentControllerEvent, { type: 'tool_approval_required' }>): 'approve' | 'deny' {\n return 'deny';\n },\n\n onSuspension(\n _event: Extract<AgentControllerEvent, { type: 'tool_suspended' }>,\n ): { resumeData: unknown } | { abort: true } {\n return { abort: true };\n },\n};\n\n/** Resolve a named {@link PermissionMode} to its built-in {@link ResolutionPolicy}. */\nexport function permissionModeToPolicy(mode: PermissionMode): ResolutionPolicy {\n switch (mode) {\n case 'deny':\n return denyPolicy;\n case 'auto':\n default:\n return autoApprovePolicy;\n }\n}\n"],"mappings":";;;;;;;;AAoBA,MAAa,oBAAsC;CACjD,eAAe,QAA+F;EAC5G,OAAO;CACT;CAEA,aACE,OAC2C;EAC3C,MAAM,UAAW,MAAM,kBAAkB,CAAC;EAE1C,IAAI,MAAM,aAAa,oBAAoB,QAAQ,SAAS,0BAC1D,OAAO,EAAE,YAAY,MAAM;EAG7B,IAAI,MAAM,aAAa,eACrB,OAAO,EAAE,YAAY,EAAE,QAAQ,WAAW,EAAE;EAG9C,OAAO,EAAE,YAAY,iEAAiE;CACxF;AACF;;;;;AAMA,MAAa,aAA+B;CAC1C,eAAe,QAA+F;EAC5G,OAAO;CACT;CAEA,aACE,QAC2C;EAC3C,OAAO,EAAE,OAAO,KAAK;CACvB;AACF;;AAGA,SAAgB,uBAAuB,MAAwC;CAC7E,QAAQ,MAAR;EACE,KAAK,QACH,OAAO;EAET,SACE,OAAO;CACX;AACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { MCRun, RunMCOptions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Run a headless MastraCode turn. Returns an {@link MCRun} handle that is
|
|
4
|
+
* async-iterable over controller events and resolves to a {@link RunMCResult}.
|
|
5
|
+
*/
|
|
6
|
+
export declare function runMC<TState extends Record<string, unknown>>(options: RunMCOptions<TState>): MCRun;
|
|
7
|
+
//# sourceMappingURL=run-mc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-mc.d.ts","sourceRoot":"","sources":["../../src/headless/run-mc.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,KAAK,EAAoB,YAAY,EAA4B,MAAM,YAAY,CAAC;AA0IlG;;;GAGG;AACH,wBAAgB,KAAK,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,KAAK,CA8RlG"}
|