catui-agent 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +267 -0
- package/dist/build-meta.json +6 -0
- package/dist/builtin-extensions.d.ts +47 -0
- package/dist/builtin-extensions.js +1 -0
- package/dist/catui-defaults.d.ts +555 -0
- package/dist/catui-defaults.js +22 -0
- package/dist/cli/args.d.ts +70 -0
- package/dist/cli/args.js +158 -0
- package/dist/cli/config-selector.d.ts +10 -0
- package/dist/cli/config-selector.js +1 -0
- package/dist/cli/file-processor.d.ts +11 -0
- package/dist/cli/file-processor.js +6 -0
- package/dist/cli/list-models.d.ts +12 -0
- package/dist/cli/list-models.js +2 -0
- package/dist/cli/session-picker.d.ts +5 -0
- package/dist/cli/session-picker.js +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +2 -0
- package/dist/config.d.ts +103 -0
- package/dist/config.js +1 -0
- package/dist/core/agent-dir/agent-dir-context.d.ts +60 -0
- package/dist/core/agent-dir/agent-dir-context.js +1 -0
- package/dist/core/agent-dir/agent-metadata.d.ts +48 -0
- package/dist/core/agent-dir/agent-metadata.js +1 -0
- package/dist/core/agent-dir/migration-tool.d.ts +40 -0
- package/dist/core/agent-dir/migration-tool.js +7 -0
- package/dist/core/export-html/AGENT.md +12 -0
- package/dist/core/export-html/ansi-to-html.d.ts +9 -0
- package/dist/core/export-html/ansi-to-html.js +2 -0
- package/dist/core/export-html/index.d.ts +39 -0
- package/dist/core/export-html/index.js +2 -0
- package/dist/core/export-html/template.css +971 -0
- package/dist/core/export-html/template.html +54 -0
- package/dist/core/export-html/template.js +66 -0
- package/dist/core/export-html/tool-renderer.d.ts +28 -0
- package/dist/core/export-html/tool-renderer.js +1 -0
- package/dist/core/export-html/vendor/highlight.min.js +4 -0
- package/dist/core/export-html/vendor/marked.min.js +56 -0
- package/dist/core/extensions-host/index.d.ts +13 -0
- package/dist/core/extensions-host/index.js +1 -0
- package/dist/core/extensions-host/loader.d.ts +21 -0
- package/dist/core/extensions-host/loader.js +1 -0
- package/dist/core/extensions-host/runner.d.ts +233 -0
- package/dist/core/extensions-host/runner.js +3 -0
- package/dist/core/extensions-host/types.d.ts +1079 -0
- package/dist/core/extensions-host/types.js +1 -0
- package/dist/core/extensions-host/wrapper.d.ts +29 -0
- package/dist/core/extensions-host/wrapper.js +2 -0
- package/dist/core/index.d.ts +17 -0
- package/dist/core/index.js +1 -0
- package/dist/core/lib/agent-core/src/agent-loop-continuations.d.ts +17 -0
- package/dist/core/lib/agent-core/src/agent-loop-continuations.js +1 -0
- package/dist/core/lib/agent-core/src/agent-loop-stream-events.d.ts +19 -0
- package/dist/core/lib/agent-core/src/agent-loop-stream-events.js +1 -0
- package/dist/core/lib/agent-core/src/agent-loop-tool-results.d.ts +10 -0
- package/dist/core/lib/agent-core/src/agent-loop-tool-results.js +3 -0
- package/dist/core/lib/agent-core/src/agent-loop-tool-summaries.d.ts +22 -0
- package/dist/core/lib/agent-core/src/agent-loop-tool-summaries.js +1 -0
- package/dist/core/lib/agent-core/src/agent-loop.d.ts +26 -0
- package/dist/core/lib/agent-core/src/agent-loop.js +4 -0
- package/dist/core/lib/agent-core/src/agent-run-result.d.ts +9 -0
- package/dist/core/lib/agent-core/src/agent-run-result.js +1 -0
- package/dist/core/lib/agent-core/src/agent.d.ts +215 -0
- package/dist/core/lib/agent-core/src/agent.js +1 -0
- package/dist/core/lib/agent-core/src/errors.d.ts +62 -0
- package/dist/core/lib/agent-core/src/errors.js +1 -0
- package/dist/core/lib/agent-core/src/index.d.ts +14 -0
- package/dist/core/lib/agent-core/src/index.js +1 -0
- package/dist/core/lib/agent-core/src/proxy.d.ts +91 -0
- package/dist/core/lib/agent-core/src/proxy.js +2 -0
- package/dist/core/lib/agent-core/src/structured-adaptive-agent-loop.d.ts +15 -0
- package/dist/core/lib/agent-core/src/structured-adaptive-agent-loop.js +2 -0
- package/dist/core/lib/agent-core/src/structured-adaptive-streaming-tool-executor.d.ts +33 -0
- package/dist/core/lib/agent-core/src/structured-adaptive-streaming-tool-executor.js +1 -0
- package/dist/core/lib/agent-core/src/structured-adaptive-tool-orchestration.d.ts +35 -0
- package/dist/core/lib/agent-core/src/structured-adaptive-tool-orchestration.js +3 -0
- package/dist/core/lib/agent-core/src/types.d.ts +417 -0
- package/dist/core/lib/agent-core/src/types.js +1 -0
- package/dist/core/lib/ai/src/api-registry.d.ts +27 -0
- package/dist/core/lib/ai/src/api-registry.js +1 -0
- package/dist/core/lib/ai/src/config-path.d.ts +1 -0
- package/dist/core/lib/ai/src/config-path.js +1 -0
- package/dist/core/lib/ai/src/debug-logger.d.ts +94 -0
- package/dist/core/lib/ai/src/debug-logger.js +4 -0
- package/dist/core/lib/ai/src/env-api-keys.d.ts +8 -0
- package/dist/core/lib/ai/src/env-api-keys.js +1 -0
- package/dist/core/lib/ai/src/env.d.ts +7 -0
- package/dist/core/lib/ai/src/env.js +1 -0
- package/dist/core/lib/ai/src/events.d.ts +8 -0
- package/dist/core/lib/ai/src/events.js +1 -0
- package/dist/core/lib/ai/src/index.d.ts +27 -0
- package/dist/core/lib/ai/src/index.js +1 -0
- package/dist/core/lib/ai/src/json.d.ts +7 -0
- package/dist/core/lib/ai/src/json.js +1 -0
- package/dist/core/lib/ai/src/models.d.ts +31 -0
- package/dist/core/lib/ai/src/models.generated.d.ts +15315 -0
- package/dist/core/lib/ai/src/models.generated.js +1 -0
- package/dist/core/lib/ai/src/models.js +1 -0
- package/dist/core/lib/ai/src/overflow.d.ts +7 -0
- package/dist/core/lib/ai/src/overflow.js +1 -0
- package/dist/core/lib/ai/src/providers/amazon-bedrock.d.ts +20 -0
- package/dist/core/lib/ai/src/providers/amazon-bedrock.js +1 -0
- package/dist/core/lib/ai/src/providers/anthropic.d.ts +38 -0
- package/dist/core/lib/ai/src/providers/anthropic.js +2 -0
- package/dist/core/lib/ai/src/providers/azure-openai-responses.d.ts +21 -0
- package/dist/core/lib/ai/src/providers/azure-openai-responses.js +1 -0
- package/dist/core/lib/ai/src/providers/github-copilot-headers.d.ts +13 -0
- package/dist/core/lib/ai/src/providers/github-copilot-headers.js +1 -0
- package/dist/core/lib/ai/src/providers/google-gemini-cli.d.ts +79 -0
- package/dist/core/lib/ai/src/providers/google-gemini-cli.js +2 -0
- package/dist/core/lib/ai/src/providers/google-shared.d.ts +70 -0
- package/dist/core/lib/ai/src/providers/google-shared.js +2 -0
- package/dist/core/lib/ai/src/providers/google-vertex.d.ts +20 -0
- package/dist/core/lib/ai/src/providers/google-vertex.js +1 -0
- package/dist/core/lib/ai/src/providers/google.d.ts +18 -0
- package/dist/core/lib/ai/src/providers/google.js +1 -0
- package/dist/core/lib/ai/src/providers/openai-codex-responses.d.ts +8 -0
- package/dist/core/lib/ai/src/providers/openai-codex-responses.js +7 -0
- package/dist/core/lib/ai/src/providers/openai-completions.d.ts +20 -0
- package/dist/core/lib/ai/src/providers/openai-completions.js +6 -0
- package/dist/core/lib/ai/src/providers/openai-responses-shared.d.ts +22 -0
- package/dist/core/lib/ai/src/providers/openai-responses-shared.js +10 -0
- package/dist/core/lib/ai/src/providers/openai-responses.d.ts +19 -0
- package/dist/core/lib/ai/src/providers/openai-responses.js +1 -0
- package/dist/core/lib/ai/src/providers/register-builtins.d.ts +8 -0
- package/dist/core/lib/ai/src/providers/register-builtins.js +1 -0
- package/dist/core/lib/ai/src/providers/simple-options.d.ts +13 -0
- package/dist/core/lib/ai/src/providers/simple-options.js +1 -0
- package/dist/core/lib/ai/src/providers/transform-messages.d.ts +13 -0
- package/dist/core/lib/ai/src/providers/transform-messages.js +1 -0
- package/dist/core/lib/ai/src/registry.d.ts +8 -0
- package/dist/core/lib/ai/src/registry.js +1 -0
- package/dist/core/lib/ai/src/schema.d.ts +10 -0
- package/dist/core/lib/ai/src/schema.js +1 -0
- package/dist/core/lib/ai/src/stream.d.ts +33 -0
- package/dist/core/lib/ai/src/stream.js +1 -0
- package/dist/core/lib/ai/src/types.d.ts +331 -0
- package/dist/core/lib/ai/src/types.js +0 -0
- package/dist/core/lib/ai/src/utils/event-stream-types.d.ts +12 -0
- package/dist/core/lib/ai/src/utils/event-stream-types.js +0 -0
- package/dist/core/lib/ai/src/utils/event-stream.d.ts +31 -0
- package/dist/core/lib/ai/src/utils/event-stream.js +1 -0
- package/dist/core/lib/ai/src/utils/http-proxy.d.ts +13 -0
- package/dist/core/lib/ai/src/utils/http-proxy.js +1 -0
- package/dist/core/lib/ai/src/utils/json-parse.d.ts +14 -0
- package/dist/core/lib/ai/src/utils/json-parse.js +1 -0
- package/dist/core/lib/ai/src/utils/oauth/anthropic.d.ts +22 -0
- package/dist/core/lib/ai/src/utils/oauth/anthropic.js +1 -0
- package/dist/core/lib/ai/src/utils/oauth/decode-credential.d.ts +12 -0
- package/dist/core/lib/ai/src/utils/oauth/decode-credential.js +1 -0
- package/dist/core/lib/ai/src/utils/oauth/github-copilot.d.ts +35 -0
- package/dist/core/lib/ai/src/utils/oauth/github-copilot.js +1 -0
- package/dist/core/lib/ai/src/utils/oauth/google-antigravity.d.ts +31 -0
- package/dist/core/lib/ai/src/utils/oauth/google-antigravity.js +1 -0
- package/dist/core/lib/ai/src/utils/oauth/google-gemini-cli.d.ts +31 -0
- package/dist/core/lib/ai/src/utils/oauth/google-gemini-cli.js +1 -0
- package/dist/core/lib/ai/src/utils/oauth/index.d.ts +60 -0
- package/dist/core/lib/ai/src/utils/oauth/index.js +1 -0
- package/dist/core/lib/ai/src/utils/oauth/openai-codex.d.ts +39 -0
- package/dist/core/lib/ai/src/utils/oauth/openai-codex.js +11 -0
- package/dist/core/lib/ai/src/utils/oauth/pkce.d.ts +18 -0
- package/dist/core/lib/ai/src/utils/oauth/pkce.js +1 -0
- package/dist/core/lib/ai/src/utils/oauth/types.d.ts +52 -0
- package/dist/core/lib/ai/src/utils/oauth/types.js +0 -0
- package/dist/core/lib/ai/src/utils/overflow.d.ts +57 -0
- package/dist/core/lib/ai/src/utils/overflow.js +1 -0
- package/dist/core/lib/ai/src/utils/sanitize-unicode.d.ts +16 -0
- package/dist/core/lib/ai/src/utils/sanitize-unicode.js +1 -0
- package/dist/core/lib/ai/src/utils/typebox-helpers.d.ts +22 -0
- package/dist/core/lib/ai/src/utils/typebox-helpers.js +1 -0
- package/dist/core/lib/ai/src/utils/validation.d.ts +23 -0
- package/dist/core/lib/ai/src/utils/validation.js +6 -0
- package/dist/core/lib/tui/src/autocomplete.d.ts +62 -0
- package/dist/core/lib/tui/src/autocomplete.js +2 -0
- package/dist/core/lib/tui/src/components/box.d.ts +27 -0
- package/dist/core/lib/tui/src/components/box.js +1 -0
- package/dist/core/lib/tui/src/components/cached-container.d.ts +42 -0
- package/dist/core/lib/tui/src/components/cached-container.js +1 -0
- package/dist/core/lib/tui/src/components/cancellable-loader.d.ts +27 -0
- package/dist/core/lib/tui/src/components/cancellable-loader.js +1 -0
- package/dist/core/lib/tui/src/components/editor.d.ts +222 -0
- package/dist/core/lib/tui/src/components/editor.js +21 -0
- package/dist/core/lib/tui/src/components/image.d.ts +33 -0
- package/dist/core/lib/tui/src/components/image.js +1 -0
- package/dist/core/lib/tui/src/components/input.d.ts +42 -0
- package/dist/core/lib/tui/src/components/input.js +2 -0
- package/dist/core/lib/tui/src/components/loader.d.ts +26 -0
- package/dist/core/lib/tui/src/components/loader.js +1 -0
- package/dist/core/lib/tui/src/components/markdown.d.ts +100 -0
- package/dist/core/lib/tui/src/components/markdown.js +7 -0
- package/dist/core/lib/tui/src/components/select-list.d.ts +37 -0
- package/dist/core/lib/tui/src/components/select-list.js +1 -0
- package/dist/core/lib/tui/src/components/settings-list.d.ts +55 -0
- package/dist/core/lib/tui/src/components/settings-list.js +1 -0
- package/dist/core/lib/tui/src/components/spacer.d.ts +17 -0
- package/dist/core/lib/tui/src/components/spacer.js +1 -0
- package/dist/core/lib/tui/src/components/text.d.ts +24 -0
- package/dist/core/lib/tui/src/components/text.js +1 -0
- package/dist/core/lib/tui/src/components/truncated-text.d.ts +18 -0
- package/dist/core/lib/tui/src/components/truncated-text.js +2 -0
- package/dist/core/lib/tui/src/editor-component.d.ts +51 -0
- package/dist/core/lib/tui/src/editor-component.js +0 -0
- package/dist/core/lib/tui/src/fuzzy.d.ts +32 -0
- package/dist/core/lib/tui/src/fuzzy.js +1 -0
- package/dist/core/lib/tui/src/index.d.ts +29 -0
- package/dist/core/lib/tui/src/index.js +1 -0
- package/dist/core/lib/tui/src/keybindings.d.ts +44 -0
- package/dist/core/lib/tui/src/keybindings.js +1 -0
- package/dist/core/lib/tui/src/keys.d.ts +149 -0
- package/dist/core/lib/tui/src/keys.js +5 -0
- package/dist/core/lib/tui/src/kill-ring.d.ts +33 -0
- package/dist/core/lib/tui/src/kill-ring.js +1 -0
- package/dist/core/lib/tui/src/stdin-buffer.d.ts +38 -0
- package/dist/core/lib/tui/src/stdin-buffer.js +1 -0
- package/dist/core/lib/tui/src/terminal-image.d.ts +73 -0
- package/dist/core/lib/tui/src/terminal-image.js +1 -0
- package/dist/core/lib/tui/src/terminal.d.ts +86 -0
- package/dist/core/lib/tui/src/terminal.js +1 -0
- package/dist/core/lib/tui/src/tui.d.ts +220 -0
- package/dist/core/lib/tui/src/tui.js +12 -0
- package/dist/core/lib/tui/src/undo-stack.d.ts +22 -0
- package/dist/core/lib/tui/src/undo-stack.js +1 -0
- package/dist/core/lib/tui/src/utils.d.ts +83 -0
- package/dist/core/lib/tui/src/utils.js +2 -0
- package/dist/core/mcp/figma-auth.d.ts +21 -0
- package/dist/core/mcp/figma-auth.js +22 -0
- package/dist/core/mcp/index.d.ts +11 -0
- package/dist/core/mcp/index.js +1 -0
- package/dist/core/mcp/mcp-adapter.d.ts +21 -0
- package/dist/core/mcp/mcp-adapter.js +3 -0
- package/dist/core/mcp/mcp-client.d.ts +91 -0
- package/dist/core/mcp/mcp-client.js +6 -0
- package/dist/core/mcp/mcp-config.d.ts +55 -0
- package/dist/core/mcp/mcp-config.js +1 -0
- package/dist/core/mcp/mcp-guidance.d.ts +52 -0
- package/dist/core/mcp/mcp-guidance.js +54 -0
- package/dist/core/mcp/mcp-manager.d.ts +51 -0
- package/dist/core/mcp/mcp-manager.js +1 -0
- package/dist/core/mcp/mcp-types.d.ts +62 -0
- package/dist/core/mcp/mcp-types.js +0 -0
- package/dist/core/messages.d.ts +77 -0
- package/dist/core/messages.js +17 -0
- package/dist/core/model/custom-providers.d.ts +34 -0
- package/dist/core/model/custom-providers.js +1 -0
- package/dist/core/model/discovery-cache.d.ts +65 -0
- package/dist/core/model/discovery-cache.js +1 -0
- package/dist/core/model/discovery-cache.test.d.ts +7 -0
- package/dist/core/model/discovery-cache.test.js +1 -0
- package/dist/core/model/discovery.d.ts +79 -0
- package/dist/core/model/discovery.js +1 -0
- package/dist/core/model/discovery.test.d.ts +7 -0
- package/dist/core/model/discovery.test.js +1 -0
- package/dist/core/model/index.d.ts +10 -0
- package/dist/core/model/index.js +1 -0
- package/dist/core/model/known-models.d.ts +65 -0
- package/dist/core/model/known-models.generated.d.ts +2 -0
- package/dist/core/model/known-models.generated.js +1 -0
- package/dist/core/model/known-models.js +1 -0
- package/dist/core/model/switcher.d.ts +80 -0
- package/dist/core/model/switcher.js +1 -0
- package/dist/core/model-registry.d.ts +186 -0
- package/dist/core/model-registry.js +9 -0
- package/dist/core/model-resolver.d.ts +106 -0
- package/dist/core/model-resolver.js +1 -0
- package/dist/core/package-manager.d.ts +156 -0
- package/dist/core/package-manager.js +3 -0
- package/dist/core/persona/persona-manager.d.ts +35 -0
- package/dist/core/persona/persona-manager.js +5 -0
- package/dist/core/platform/abort-slot.d.ts +26 -0
- package/dist/core/platform/abort-slot.js +1 -0
- package/dist/core/platform/config/auth-storage.d.ts +126 -0
- package/dist/core/platform/config/auth-storage.js +1 -0
- package/dist/core/platform/config/defaults.d.ts +8 -0
- package/dist/core/platform/config/defaults.js +1 -0
- package/dist/core/platform/config/diagnostics.d.ts +20 -0
- package/dist/core/platform/config/diagnostics.js +0 -0
- package/dist/core/platform/config/resolve-config-value.d.ts +12 -0
- package/dist/core/platform/config/resolve-config-value.js +1 -0
- package/dist/core/platform/config/resource-loader.d.ts +188 -0
- package/dist/core/platform/config/resource-loader.js +2 -0
- package/dist/core/platform/config/settings-manager.d.ts +314 -0
- package/dist/core/platform/config/settings-manager.js +1 -0
- package/dist/core/platform/exec/bash-executor.d.ts +41 -0
- package/dist/core/platform/exec/bash-executor.js +1 -0
- package/dist/core/platform/exec/exec.d.ts +25 -0
- package/dist/core/platform/exec/exec.js +1 -0
- package/dist/core/platform/i18n/index.d.ts +26 -0
- package/dist/core/platform/i18n/index.js +1 -0
- package/dist/core/platform/i18n/messages.d.ts +56 -0
- package/dist/core/platform/i18n/messages.js +1 -0
- package/dist/core/platform/i18n/messages.zh.d.ts +56 -0
- package/dist/core/platform/i18n/messages.zh.js +1 -0
- package/dist/core/platform/i18n/slash-commands.d.ts +53 -0
- package/dist/core/platform/i18n/slash-commands.js +1 -0
- package/dist/core/platform/i18n/slash-commands.zh.d.ts +53 -0
- package/dist/core/platform/i18n/slash-commands.zh.js +1 -0
- package/dist/core/platform/i18n/themes.d.ts +11 -0
- package/dist/core/platform/i18n/themes.js +1 -0
- package/dist/core/platform/i18n/themes.zh.d.ts +11 -0
- package/dist/core/platform/i18n/themes.zh.js +1 -0
- package/dist/core/platform/keybindings.d.ts +61 -0
- package/dist/core/platform/keybindings.js +1 -0
- package/dist/core/platform/listeners.d.ts +21 -0
- package/dist/core/platform/listeners.js +1 -0
- package/dist/core/platform/telemetry/batching-dispatcher.d.ts +41 -0
- package/dist/core/platform/telemetry/batching-dispatcher.js +1 -0
- package/dist/core/platform/telemetry/build-meta.d.ts +12 -0
- package/dist/core/platform/telemetry/build-meta.js +1 -0
- package/dist/core/platform/telemetry/caller-context.d.ts +32 -0
- package/dist/core/platform/telemetry/caller-context.js +1 -0
- package/dist/core/platform/telemetry/credentials.d.ts +27 -0
- package/dist/core/platform/telemetry/credentials.js +1 -0
- package/dist/core/platform/telemetry/ext-events.d.ts +89 -0
- package/dist/core/platform/telemetry/ext-events.js +1 -0
- package/dist/core/platform/telemetry/index.d.ts +13 -0
- package/dist/core/platform/telemetry/index.js +1 -0
- package/dist/core/platform/telemetry/insforge-base.d.ts +37 -0
- package/dist/core/platform/telemetry/insforge-base.js +1 -0
- package/dist/core/platform/telemetry/types.d.ts +33 -0
- package/dist/core/platform/telemetry/types.js +0 -0
- package/dist/core/platform/timings.d.ts +2 -0
- package/dist/core/platform/timings.js +3 -0
- package/dist/core/platform/utils/logger.d.ts +75 -0
- package/dist/core/platform/utils/logger.js +1 -0
- package/dist/core/platform/utils/shell.d.ts +25 -0
- package/dist/core/platform/utils/shell.js +9 -0
- package/dist/core/platform/utils/sleep.d.ts +7 -0
- package/dist/core/platform/utils/sleep.js +1 -0
- package/dist/core/platform/utils/tools-manager.d.ts +19 -0
- package/dist/core/platform/utils/tools-manager.js +1 -0
- package/dist/core/prompt/prompt-templates.d.ts +49 -0
- package/dist/core/prompt/prompt-templates.js +2 -0
- package/dist/core/prompt/system-prompt.d.ts +24 -0
- package/dist/core/prompt/system-prompt.js +139 -0
- package/dist/core/runtime/agent-session.d.ts +676 -0
- package/dist/core/runtime/agent-session.js +15 -0
- package/dist/core/runtime/bash-runner.d.ts +56 -0
- package/dist/core/runtime/bash-runner.js +2 -0
- package/dist/core/runtime/catui-agent.d.ts +182 -0
- package/dist/core/runtime/catui-agent.js +1 -0
- package/dist/core/runtime/compaction-controller.d.ts +43 -0
- package/dist/core/runtime/compaction-controller.js +1 -0
- package/dist/core/runtime/default-tools.d.ts +9 -0
- package/dist/core/runtime/default-tools.js +1 -0
- package/dist/core/runtime/event-bridge.d.ts +21 -0
- package/dist/core/runtime/event-bridge.js +1 -0
- package/dist/core/runtime/event-bus.d.ts +8 -0
- package/dist/core/runtime/event-bus.js +1 -0
- package/dist/core/runtime/export-bridge.d.ts +23 -0
- package/dist/core/runtime/export-bridge.js +1 -0
- package/dist/core/runtime/extension-core-bindings.d.ts +46 -0
- package/dist/core/runtime/extension-core-bindings.js +3 -0
- package/dist/core/runtime/model-controller.d.ts +84 -0
- package/dist/core/runtime/model-controller.js +1 -0
- package/dist/core/runtime/model-cycle.d.ts +20 -0
- package/dist/core/runtime/model-cycle.js +1 -0
- package/dist/core/runtime/prompt-assembly.d.ts +20 -0
- package/dist/core/runtime/prompt-assembly.js +3 -0
- package/dist/core/runtime/retry-coordinator.d.ts +84 -0
- package/dist/core/runtime/retry-coordinator.js +1 -0
- package/dist/core/runtime/sdk.d.ts +163 -0
- package/dist/core/runtime/sdk.js +1 -0
- package/dist/core/runtime/session-context.d.ts +155 -0
- package/dist/core/runtime/session-context.js +0 -0
- package/dist/core/runtime/session-lifecycle-controller.d.ts +42 -0
- package/dist/core/runtime/session-lifecycle-controller.js +1 -0
- package/dist/core/runtime/session-tree-controller.d.ts +40 -0
- package/dist/core/runtime/session-tree-controller.js +1 -0
- package/dist/core/runtime/slash-command-catalog.d.ts +27 -0
- package/dist/core/runtime/slash-command-catalog.js +1 -0
- package/dist/core/runtime/thinking-levels.d.ts +31 -0
- package/dist/core/runtime/thinking-levels.js +1 -0
- package/dist/core/runtime/tool-runtime-controller.d.ts +35 -0
- package/dist/core/runtime/tool-runtime-controller.js +1 -0
- package/dist/core/runtime/turn-context.d.ts +52 -0
- package/dist/core/runtime/turn-context.js +1 -0
- package/dist/core/session/compaction/branch-summarization.d.ts +85 -0
- package/dist/core/session/compaction/branch-summarization.js +38 -0
- package/dist/core/session/compaction/compaction.d.ts +120 -0
- package/dist/core/session/compaction/compaction.js +104 -0
- package/dist/core/session/compaction/index.d.ts +9 -0
- package/dist/core/session/compaction/index.js +1 -0
- package/dist/core/session/compaction/utils.d.ts +37 -0
- package/dist/core/session/compaction/utils.js +17 -0
- package/dist/core/session/session-manager.d.ts +359 -0
- package/dist/core/session/session-manager.js +14 -0
- package/dist/core/skills.d.ts +57 -0
- package/dist/core/skills.js +4 -0
- package/dist/core/slash-commands.d.ts +36 -0
- package/dist/core/slash-commands.js +1 -0
- package/dist/core/soul-integration.d.ts +77 -0
- package/dist/core/soul-integration.js +1 -0
- package/dist/core/soul-options-contract.d.ts +10 -0
- package/dist/core/soul-options-contract.js +0 -0
- package/dist/core/sub-agent/agent-definition-loader.d.ts +96 -0
- package/dist/core/sub-agent/agent-definition-loader.js +2 -0
- package/dist/core/sub-agent/agent-definition.d.ts +162 -0
- package/dist/core/sub-agent/agent-definition.js +6 -0
- package/dist/core/sub-agent/agent-handoff-safety.d.ts +39 -0
- package/dist/core/sub-agent/agent-handoff-safety.js +1 -0
- package/dist/core/sub-agent/agent-input-output.d.ts +143 -0
- package/dist/core/sub-agent/agent-input-output.js +1 -0
- package/dist/core/sub-agent/agent-output-persistence.d.ts +43 -0
- package/dist/core/sub-agent/agent-output-persistence.js +3 -0
- package/dist/core/sub-agent/agent-prompt-builder.d.ts +37 -0
- package/dist/core/sub-agent/agent-prompt-builder.js +2 -0
- package/dist/core/sub-agent/agent-registry.d.ts +145 -0
- package/dist/core/sub-agent/agent-registry.js +1 -0
- package/dist/core/sub-agent/agent-result-extractor.d.ts +28 -0
- package/dist/core/sub-agent/agent-result-extractor.js +3 -0
- package/dist/core/sub-agent/agent-telemetry.d.ts +71 -0
- package/dist/core/sub-agent/agent-telemetry.js +1 -0
- package/dist/core/sub-agent/agent-tool-filter.d.ts +89 -0
- package/dist/core/sub-agent/agent-tool-filter.js +2 -0
- package/dist/core/sub-agent/agent-tool.d.ts +69 -0
- package/dist/core/sub-agent/agent-tool.js +11 -0
- package/dist/core/sub-agent/index.d.ts +26 -0
- package/dist/core/sub-agent/index.js +1 -0
- package/dist/core/sub-agent/send-message-tool.d.ts +33 -0
- package/dist/core/sub-agent/send-message-tool.js +2 -0
- package/dist/core/sub-agent/sub-agent-backend.d.ts +26 -0
- package/dist/core/sub-agent/sub-agent-backend.js +7 -0
- package/dist/core/sub-agent/sub-agent-runtime.d.ts +34 -0
- package/dist/core/sub-agent/sub-agent-runtime.js +1 -0
- package/dist/core/sub-agent/sub-agent-types.d.ts +138 -0
- package/dist/core/sub-agent/sub-agent-types.js +0 -0
- package/dist/core/sub-agent/subprocess-backend.d.ts +35 -0
- package/dist/core/sub-agent/subprocess-backend.js +1 -0
- package/dist/core/sub-agent/subprocess-worker.d.ts +12 -0
- package/dist/core/sub-agent/subprocess-worker.js +1 -0
- package/dist/core/theme-contract.d.ts +32 -0
- package/dist/core/theme-contract.js +0 -0
- package/dist/core/tools/bash.d.ts +73 -0
- package/dist/core/tools/bash.js +21 -0
- package/dist/core/tools/edit-diff.d.ts +58 -0
- package/dist/core/tools/edit-diff.js +16 -0
- package/dist/core/tools/edit.d.ts +46 -0
- package/dist/core/tools/edit.js +1 -0
- package/dist/core/tools/file-state-cache.d.ts +30 -0
- package/dist/core/tools/file-state-cache.js +1 -0
- package/dist/core/tools/find.d.ts +46 -0
- package/dist/core/tools/find.js +8 -0
- package/dist/core/tools/grep.d.ts +58 -0
- package/dist/core/tools/grep.js +13 -0
- package/dist/core/tools/index.d.ts +116 -0
- package/dist/core/tools/index.js +1 -0
- package/dist/core/tools/input-validation.d.ts +13 -0
- package/dist/core/tools/input-validation.js +1 -0
- package/dist/core/tools/ls.d.ts +45 -0
- package/dist/core/tools/ls.js +4 -0
- package/dist/core/tools/orchestrator.d.ts +76 -0
- package/dist/core/tools/orchestrator.js +1 -0
- package/dist/core/tools/path-utils.d.ts +7 -0
- package/dist/core/tools/path-utils.js +1 -0
- package/dist/core/tools/pdf-extract.d.ts +11 -0
- package/dist/core/tools/pdf-extract.js +1 -0
- package/dist/core/tools/read.d.ts +46 -0
- package/dist/core/tools/read.js +11 -0
- package/dist/core/tools/source.d.ts +78 -0
- package/dist/core/tools/source.js +1 -0
- package/dist/core/tools/time.d.ts +19 -0
- package/dist/core/tools/time.js +2 -0
- package/dist/core/tools/truncate.d.ts +66 -0
- package/dist/core/tools/truncate.js +5 -0
- package/dist/core/tools/write-guard.d.ts +2 -0
- package/dist/core/tools/write-guard.js +1 -0
- package/dist/core/tools/write.d.ts +36 -0
- package/dist/core/tools/write.js +1 -0
- package/dist/core/workspace/index.d.ts +8 -0
- package/dist/core/workspace/index.js +1 -0
- package/dist/core/workspace/worktree-manager.d.ts +73 -0
- package/dist/core/workspace/worktree-manager.js +3 -0
- package/dist/extensions/builtin/AGENT.md +115 -0
- package/dist/extensions/builtin/ask-user-question/ask-user-question-tool.d.ts +9 -0
- package/dist/extensions/builtin/ask-user-question/ask-user-question-tool.js +4 -0
- package/dist/extensions/builtin/ask-user-question/index.d.ts +8 -0
- package/dist/extensions/builtin/ask-user-question/index.js +1 -0
- package/dist/extensions/builtin/ask-user-question/prompt.d.ts +14 -0
- package/dist/extensions/builtin/ask-user-question/prompt.js +30 -0
- package/dist/extensions/builtin/ask-user-question/types.d.ts +69 -0
- package/dist/extensions/builtin/ask-user-question/types.js +1 -0
- package/dist/extensions/builtin/browser/AGENT.md +17 -0
- package/dist/extensions/builtin/browser/agent-workspace/agent_helpers.py +12 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/amazon/product-search.md +198 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/archive-org/scraping.md +341 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/arxiv/scraping.md +311 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/arxiv-bulk/scraping.md +333 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/atlas/overview.md +70 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/booking-com/scraping.md +578 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/capterra/scraping.md +440 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/centilebrain/generate-estimates.md +110 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coingecko/scraping.md +325 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coinmarketcap/scraping.md +463 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coursera/scraping.md +360 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/craigslist/scraping.md +390 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/crossref/scraping.md +568 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/dev-to/scraping.md +323 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/duckduckgo/scraping.md +349 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/ebay/scraping.md +435 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/etsy/scraping.md +506 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/eventbrite/scraping.md +363 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/expedia/automation.md +168 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/facebook/groups.md +236 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/facebook/pages.md +295 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/framer/editor.md +108 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/fred/scraping.md +493 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/g2/scraping.md +580 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/genius/scraping.md +511 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/github/repo-actions.md +65 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/github/scraping.md +184 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/glassdoor/scraping.md +543 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/gmail/compose.md +122 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/goodreads/scraping.md +461 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/gutenberg/scraping.md +383 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/hackernews/scraping.md +243 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/howlongtobeat/scraping.md +473 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/imdb/scraping.md +271 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/itch-io/scraping.md +436 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/job-boards/indeed-glassdoor.md +1021 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/letterboxd/scraping.md +349 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/linkedin/invitation-manager.md +109 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/loom/folder-enumeration.md +170 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/macrotrends/scraping.md +537 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/medium/article-hydration.md +120 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/medium/scraping.md +414 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/metacritic/scraping.md +477 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/musicbrainz/scraping.md +478 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/nasa/scraping.md +339 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/news-aggregation/multi-source.md +205 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/open-library/scraping.md +472 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/openalex/scraping.md +470 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/openstreetmap/scraping.md +490 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/package-registries/npm-pypi.md +478 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/polymarket/scraping.md +234 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/producthunt/scraping.md +307 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/pubmed/scraping.md +421 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/quora/scraping.md +364 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/rawg/scraping.md +352 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/reddit/scraping.md +124 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/rest-countries/scraping.md +233 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/sec-edgar/scraping.md +361 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/README.md +36 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/embedded-apps.md +72 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/knowledge-base.md +109 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/polaris-inputs.md +137 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/soundcloud/scraping.md +362 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/spotify/scraping.md +339 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/stackoverflow/scraping.md +435 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/steam/scraping.md +575 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/substack/scraping.md +338 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/thetechgeeks/pricing.md +52 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/tiktok/upload.md +107 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/tradingview/scraping.md +309 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/trello/boards-and-lists.md +88 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/trustpilot/scraping.md +375 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/walmart/scraping.md +444 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/wayback-machine/scraping.md +306 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/weather/scraping.md +398 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/wellfound/scraping.md +596 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/world-bank/scraping.md +356 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/xiaohongshu/scraping.md +84 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/youtube/scraping.md +418 -0
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/zillow/scraping.md +433 -0
- package/dist/extensions/builtin/browser/browser.md +73 -0
- package/dist/extensions/builtin/browser/index.d.ts +8 -0
- package/dist/extensions/builtin/browser/index.js +15 -0
- package/dist/extensions/builtin/browser/install.md +142 -0
- package/dist/extensions/builtin/browser/interaction-skills/connection.md +48 -0
- package/dist/extensions/builtin/browser/interaction-skills/cookies.md +3 -0
- package/dist/extensions/builtin/browser/interaction-skills/cross-origin-iframes.md +3 -0
- package/dist/extensions/builtin/browser/interaction-skills/dialogs.md +64 -0
- package/dist/extensions/builtin/browser/interaction-skills/downloads.md +3 -0
- package/dist/extensions/builtin/browser/interaction-skills/drag-and-drop.md +3 -0
- package/dist/extensions/builtin/browser/interaction-skills/dropdowns.md +3 -0
- package/dist/extensions/builtin/browser/interaction-skills/iframes.md +3 -0
- package/dist/extensions/builtin/browser/interaction-skills/network-requests.md +3 -0
- package/dist/extensions/builtin/browser/interaction-skills/print-as-pdf.md +3 -0
- package/dist/extensions/builtin/browser/interaction-skills/profile-sync.md +90 -0
- package/dist/extensions/builtin/browser/interaction-skills/screenshots.md +17 -0
- package/dist/extensions/builtin/browser/interaction-skills/scrolling.md +3 -0
- package/dist/extensions/builtin/browser/interaction-skills/shadow-dom.md +3 -0
- package/dist/extensions/builtin/browser/interaction-skills/tabs.md +69 -0
- package/dist/extensions/builtin/browser/interaction-skills/uploads.md +1 -0
- package/dist/extensions/builtin/browser/interaction-skills/viewport.md +3 -0
- package/dist/extensions/builtin/browser/src/browser_harness/AGENT.md +15 -0
- package/dist/extensions/builtin/browser/src/browser_harness/__init__.py +8 -0
- package/dist/extensions/builtin/browser/src/browser_harness/_ipc.py +90 -0
- package/dist/extensions/builtin/browser/src/browser_harness/admin.py +722 -0
- package/dist/extensions/builtin/browser/src/browser_harness/daemon.py +328 -0
- package/dist/extensions/builtin/browser/src/browser_harness/helpers.py +396 -0
- package/dist/extensions/builtin/browser/src/browser_harness/run.py +103 -0
- package/dist/extensions/builtin/btw/index.d.ts +8 -0
- package/dist/extensions/builtin/btw/index.js +15 -0
- package/dist/extensions/builtin/debug/collectors.d.ts +96 -0
- package/dist/extensions/builtin/debug/collectors.js +7 -0
- package/dist/extensions/builtin/debug/index.d.ts +8 -0
- package/dist/extensions/builtin/debug/index.js +49 -0
- package/dist/extensions/builtin/diagnostics/diagnostic-buffer.d.ts +19 -0
- package/dist/extensions/builtin/diagnostics/diagnostic-buffer.js +1 -0
- package/dist/extensions/builtin/diagnostics/index.d.ts +8 -0
- package/dist/extensions/builtin/diagnostics/index.js +1 -0
- package/dist/extensions/builtin/diagnostics/redaction.d.ts +8 -0
- package/dist/extensions/builtin/diagnostics/redaction.js +1 -0
- package/dist/extensions/builtin/diagnostics/reporter.d.ts +17 -0
- package/dist/extensions/builtin/diagnostics/reporter.js +1 -0
- package/dist/extensions/builtin/diagnostics/types.d.ts +62 -0
- package/dist/extensions/builtin/diagnostics/types.js +1 -0
- package/dist/extensions/builtin/discipline/index.d.ts +8 -0
- package/dist/extensions/builtin/discipline/index.js +7 -0
- package/dist/extensions/builtin/discipline/skills/brainstorming/SKILL.md +33 -0
- package/dist/extensions/builtin/discipline/skills/executing-plans/SKILL.md +25 -0
- package/dist/extensions/builtin/discipline/skills/finishing-development-branch/SKILL.md +25 -0
- package/dist/extensions/builtin/discipline/skills/receiving-code-review/SKILL.md +22 -0
- package/dist/extensions/builtin/discipline/skills/requesting-code-review/SKILL.md +31 -0
- package/dist/extensions/builtin/discipline/skills/systematic-debugging/SKILL.md +28 -0
- package/dist/extensions/builtin/discipline/skills/test-driven-development/SKILL.md +32 -0
- package/dist/extensions/builtin/discipline/skills/using-git-worktrees/SKILL.md +25 -0
- package/dist/extensions/builtin/discipline/skills/verification-before-completion/SKILL.md +27 -0
- package/dist/extensions/builtin/discipline/skills/writing-plans/SKILL.md +26 -0
- package/dist/extensions/builtin/goal/README.md +67 -0
- package/dist/extensions/builtin/goal/goal-command.d.ts +13 -0
- package/dist/extensions/builtin/goal/goal-command.js +9 -0
- package/dist/extensions/builtin/goal/goal-controller.d.ts +143 -0
- package/dist/extensions/builtin/goal/goal-controller.js +1 -0
- package/dist/extensions/builtin/goal/goal-format.d.ts +52 -0
- package/dist/extensions/builtin/goal/goal-format.js +1 -0
- package/dist/extensions/builtin/goal/goal-parser.d.ts +27 -0
- package/dist/extensions/builtin/goal/goal-parser.js +2 -0
- package/dist/extensions/builtin/goal/goal-prompts.d.ts +15 -0
- package/dist/extensions/builtin/goal/goal-prompts.js +5 -0
- package/dist/extensions/builtin/goal/goal-store.d.ts +28 -0
- package/dist/extensions/builtin/goal/goal-store.js +1 -0
- package/dist/extensions/builtin/goal/goal-tools.d.ts +26 -0
- package/dist/extensions/builtin/goal/goal-tools.js +3 -0
- package/dist/extensions/builtin/goal/goal-types.d.ts +87 -0
- package/dist/extensions/builtin/goal/goal-types.js +1 -0
- package/dist/extensions/builtin/goal/index.d.ts +8 -0
- package/dist/extensions/builtin/goal/index.js +10 -0
- package/dist/extensions/builtin/grub/README.md +112 -0
- package/dist/extensions/builtin/grub/grub-controller.d.ts +67 -0
- package/dist/extensions/builtin/grub/grub-controller.js +1 -0
- package/dist/extensions/builtin/grub/grub-decision.d.ts +8 -0
- package/dist/extensions/builtin/grub/grub-decision.js +1 -0
- package/dist/extensions/builtin/grub/grub-feature-list.d.ts +54 -0
- package/dist/extensions/builtin/grub/grub-feature-list.js +2 -0
- package/dist/extensions/builtin/grub/grub-format.d.ts +13 -0
- package/dist/extensions/builtin/grub/grub-format.js +4 -0
- package/dist/extensions/builtin/grub/grub-harness.d.ts +9 -0
- package/dist/extensions/builtin/grub/grub-harness.js +3 -0
- package/dist/extensions/builtin/grub/grub-i18n.d.ts +166 -0
- package/dist/extensions/builtin/grub/grub-i18n.js +1 -0
- package/dist/extensions/builtin/grub/grub-parser.d.ts +24 -0
- package/dist/extensions/builtin/grub/grub-parser.js +2 -0
- package/dist/extensions/builtin/grub/grub-persistence.d.ts +17 -0
- package/dist/extensions/builtin/grub/grub-persistence.js +2 -0
- package/dist/extensions/builtin/grub/grub-prompts.d.ts +12 -0
- package/dist/extensions/builtin/grub/grub-prompts.js +97 -0
- package/dist/extensions/builtin/grub/grub-turn.d.ts +16 -0
- package/dist/extensions/builtin/grub/grub-turn.js +1 -0
- package/dist/extensions/builtin/grub/grub-types.d.ts +110 -0
- package/dist/extensions/builtin/grub/grub-types.js +1 -0
- package/dist/extensions/builtin/grub/index.d.ts +8 -0
- package/dist/extensions/builtin/grub/index.js +6 -0
- package/dist/extensions/builtin/idle-think/curiosity.d.ts +46 -0
- package/dist/extensions/builtin/idle-think/curiosity.js +2 -0
- package/dist/extensions/builtin/idle-think/idle-think-runtime.d.ts +46 -0
- package/dist/extensions/builtin/idle-think/idle-think-runtime.js +1 -0
- package/dist/extensions/builtin/idle-think/index.d.ts +15 -0
- package/dist/extensions/builtin/idle-think/index.js +1 -0
- package/dist/extensions/builtin/idle-think/insights.d.ts +27 -0
- package/dist/extensions/builtin/idle-think/insights.js +5 -0
- package/dist/extensions/builtin/idle-think/thinker.d.ts +26 -0
- package/dist/extensions/builtin/idle-think/thinker.js +9 -0
- package/dist/extensions/builtin/insights/html-report.d.ts +21 -0
- package/dist/extensions/builtin/insights/html-report.js +463 -0
- package/dist/extensions/builtin/insights/index.d.ts +24 -0
- package/dist/extensions/builtin/insights/index.js +2 -0
- package/dist/extensions/builtin/insights/insights-engine.d.ts +18 -0
- package/dist/extensions/builtin/insights/insights-engine.js +39 -0
- package/dist/extensions/builtin/insights/prompts.d.ts +17 -0
- package/dist/extensions/builtin/insights/prompts.js +180 -0
- package/dist/extensions/builtin/insights/session-scanner.d.ts +27 -0
- package/dist/extensions/builtin/insights/session-scanner.js +19 -0
- package/dist/extensions/builtin/insights/stats.d.ts +13 -0
- package/dist/extensions/builtin/insights/stats.js +1 -0
- package/dist/extensions/builtin/insights/types.d.ts +199 -0
- package/dist/extensions/builtin/insights/types.js +0 -0
- package/dist/extensions/builtin/link-world/agent-workspace/README.md +16 -0
- package/dist/extensions/builtin/link-world/index.d.ts +8 -0
- package/dist/extensions/builtin/link-world/index.js +19 -0
- package/dist/extensions/builtin/link-world/internet-search/internet-search.md +65 -0
- package/dist/extensions/builtin/link-world/link-world-agent.md +82 -0
- package/dist/extensions/builtin/link-world/linkworld.md +313 -0
- package/dist/extensions/builtin/link-world/network-routing/network-routing.md +67 -0
- package/dist/extensions/builtin/loop/README.md +92 -0
- package/dist/extensions/builtin/loop/cron/cron-parser.d.ts +56 -0
- package/dist/extensions/builtin/loop/cron/cron-parser.js +1 -0
- package/dist/extensions/builtin/loop/cron/cron-scheduler.d.ts +85 -0
- package/dist/extensions/builtin/loop/cron/cron-scheduler.js +10 -0
- package/dist/extensions/builtin/loop/cron/cron-tasks-lock.d.ts +42 -0
- package/dist/extensions/builtin/loop/cron/cron-tasks-lock.js +1 -0
- package/dist/extensions/builtin/loop/cron/cron-tasks.d.ts +200 -0
- package/dist/extensions/builtin/loop/cron/cron-tasks.js +2 -0
- package/dist/extensions/builtin/loop/cron/index.d.ts +18 -0
- package/dist/extensions/builtin/loop/cron/index.js +1 -0
- package/dist/extensions/builtin/loop/cron-tools/cron-create-tool.d.ts +35 -0
- package/dist/extensions/builtin/loop/cron-tools/cron-create-tool.js +1 -0
- package/dist/extensions/builtin/loop/cron-tools/cron-delete-tool.d.ts +29 -0
- package/dist/extensions/builtin/loop/cron-tools/cron-delete-tool.js +1 -0
- package/dist/extensions/builtin/loop/cron-tools/cron-list-tool.d.ts +25 -0
- package/dist/extensions/builtin/loop/cron-tools/cron-list-tool.js +2 -0
- package/dist/extensions/builtin/loop/cron-tools/index.d.ts +16 -0
- package/dist/extensions/builtin/loop/cron-tools/index.js +1 -0
- package/dist/extensions/builtin/loop/cron-tools/prompt.d.ts +35 -0
- package/dist/extensions/builtin/loop/cron-tools/prompt.js +38 -0
- package/dist/extensions/builtin/loop/index.d.ts +19 -0
- package/dist/extensions/builtin/loop/index.js +2 -0
- package/dist/extensions/builtin/loop/loop-skill.d.ts +18 -0
- package/dist/extensions/builtin/loop/loop-skill.js +58 -0
- package/dist/extensions/builtin/lsp/index.d.ts +8 -0
- package/dist/extensions/builtin/lsp/index.js +1 -0
- package/dist/extensions/builtin/lsp/lsp-client.d.ts +22 -0
- package/dist/extensions/builtin/lsp/lsp-client.js +1 -0
- package/dist/extensions/builtin/lsp/lsp-config.d.ts +8 -0
- package/dist/extensions/builtin/lsp/lsp-config.js +1 -0
- package/dist/extensions/builtin/lsp/lsp-formatters.d.ts +15 -0
- package/dist/extensions/builtin/lsp/lsp-formatters.js +18 -0
- package/dist/extensions/builtin/lsp/lsp-server-instance.d.ts +24 -0
- package/dist/extensions/builtin/lsp/lsp-server-instance.js +1 -0
- package/dist/extensions/builtin/lsp/lsp-server-manager.d.ts +21 -0
- package/dist/extensions/builtin/lsp/lsp-server-manager.js +1 -0
- package/dist/extensions/builtin/lsp/lsp-tool.d.ts +33 -0
- package/dist/extensions/builtin/lsp/lsp-tool.js +2 -0
- package/dist/extensions/builtin/lsp/types.d.ts +31 -0
- package/dist/extensions/builtin/lsp/types.js +1 -0
- package/dist/extensions/builtin/mcp/figma-design.md +68 -0
- package/dist/extensions/builtin/mcp/index.d.ts +14 -0
- package/dist/extensions/builtin/mcp/index.js +25 -0
- package/dist/extensions/builtin/mcp/mcp-management.md +85 -0
- package/dist/extensions/builtin/plan/clear-context-state.d.ts +8 -0
- package/dist/extensions/builtin/plan/clear-context-state.js +1 -0
- package/dist/extensions/builtin/plan/enter-plan-mode-tool.d.ts +11 -0
- package/dist/extensions/builtin/plan/enter-plan-mode-tool.js +2 -0
- package/dist/extensions/builtin/plan/exit-plan-mode-tool.d.ts +18 -0
- package/dist/extensions/builtin/plan/exit-plan-mode-tool.js +13 -0
- package/dist/extensions/builtin/plan/index.d.ts +8 -0
- package/dist/extensions/builtin/plan/index.js +24 -0
- package/dist/extensions/builtin/plan/plan-agents.d.ts +23 -0
- package/dist/extensions/builtin/plan/plan-agents.js +43 -0
- package/dist/extensions/builtin/plan/plan-file-manager.d.ts +26 -0
- package/dist/extensions/builtin/plan/plan-file-manager.js +1 -0
- package/dist/extensions/builtin/plan/plan-permissions.d.ts +15 -0
- package/dist/extensions/builtin/plan/plan-permissions.js +12 -0
- package/dist/extensions/builtin/plan/plan-validation.d.ts +18 -0
- package/dist/extensions/builtin/plan/plan-validation.js +5 -0
- package/dist/extensions/builtin/plan/plan-workflow-prompt.d.ts +18 -0
- package/dist/extensions/builtin/plan/plan-workflow-prompt.js +102 -0
- package/dist/extensions/builtin/plan/teammate-approval.d.ts +49 -0
- package/dist/extensions/builtin/plan/teammate-approval.js +3 -0
- package/dist/extensions/builtin/plan/types.d.ts +133 -0
- package/dist/extensions/builtin/plan/types.js +1 -0
- package/dist/extensions/builtin/presence/index.d.ts +40 -0
- package/dist/extensions/builtin/presence/index.js +15 -0
- package/dist/extensions/builtin/presence/presence-memory.d.ts +47 -0
- package/dist/extensions/builtin/presence/presence-memory.js +1 -0
- package/dist/extensions/builtin/recap/AGENT.md +15 -0
- package/dist/extensions/builtin/recap/index.d.ts +8 -0
- package/dist/extensions/builtin/recap/index.js +1 -0
- package/dist/extensions/builtin/recap/recap-budget.d.ts +24 -0
- package/dist/extensions/builtin/recap/recap-budget.js +1 -0
- package/dist/extensions/builtin/recap/recap-extractor.d.ts +34 -0
- package/dist/extensions/builtin/recap/recap-extractor.js +3 -0
- package/dist/extensions/builtin/recap/recap-renderer.d.ts +19 -0
- package/dist/extensions/builtin/recap/recap-renderer.js +2 -0
- package/dist/extensions/builtin/recap/recap-synthesizer.d.ts +51 -0
- package/dist/extensions/builtin/recap/recap-synthesizer.js +19 -0
- package/dist/extensions/builtin/recap/recap-types.d.ts +40 -0
- package/dist/extensions/builtin/recap/recap-types.js +1 -0
- package/dist/extensions/builtin/sal/README.md +72 -0
- package/dist/extensions/builtin/sal/anchors.d.ts +46 -0
- package/dist/extensions/builtin/sal/anchors.js +1 -0
- package/dist/extensions/builtin/sal/eval/index.d.ts +18 -0
- package/dist/extensions/builtin/sal/eval/index.js +1 -0
- package/dist/extensions/builtin/sal/eval/insforge-sink.d.ts +30 -0
- package/dist/extensions/builtin/sal/eval/insforge-sink.js +1 -0
- package/dist/extensions/builtin/sal/eval/jsonl-sink.d.ts +27 -0
- package/dist/extensions/builtin/sal/eval/jsonl-sink.js +3 -0
- package/dist/extensions/builtin/sal/eval/noop-sink.d.ts +8 -0
- package/dist/extensions/builtin/sal/eval/noop-sink.js +1 -0
- package/dist/extensions/builtin/sal/eval/types.d.ts +60 -0
- package/dist/extensions/builtin/sal/eval/types.js +1 -0
- package/dist/extensions/builtin/sal/index.d.ts +12 -0
- package/dist/extensions/builtin/sal/index.js +7 -0
- package/dist/extensions/builtin/sal/sal-config.d.ts +46 -0
- package/dist/extensions/builtin/sal/sal-config.js +1 -0
- package/dist/extensions/builtin/sal/sal-context.d.ts +11 -0
- package/dist/extensions/builtin/sal/sal-context.js +2 -0
- package/dist/extensions/builtin/sal/sal-runtime.d.ts +72 -0
- package/dist/extensions/builtin/sal/sal-runtime.js +0 -0
- package/dist/extensions/builtin/sal/sal-trace.d.ts +11 -0
- package/dist/extensions/builtin/sal/sal-trace.js +1 -0
- package/dist/extensions/builtin/sal/terrain.d.ts +73 -0
- package/dist/extensions/builtin/sal/terrain.js +3 -0
- package/dist/extensions/builtin/sal/weights.d.ts +28 -0
- package/dist/extensions/builtin/sal/weights.js +1 -0
- package/dist/extensions/builtin/security-audit/README.md +289 -0
- package/dist/extensions/builtin/security-audit/engine/detector.d.ts +44 -0
- package/dist/extensions/builtin/security-audit/engine/detector.js +1 -0
- package/dist/extensions/builtin/security-audit/engine/interceptor.d.ts +61 -0
- package/dist/extensions/builtin/security-audit/engine/interceptor.js +27 -0
- package/dist/extensions/builtin/security-audit/engine/logger.d.ts +65 -0
- package/dist/extensions/builtin/security-audit/engine/logger.js +65 -0
- package/dist/extensions/builtin/security-audit/index.d.ts +13 -0
- package/dist/extensions/builtin/security-audit/index.js +49 -0
- package/dist/extensions/builtin/security-audit/interface.d.ts +167 -0
- package/dist/extensions/builtin/security-audit/interface.js +1 -0
- package/dist/extensions/builtin/soul/index.d.ts +13 -0
- package/dist/extensions/builtin/soul/index.js +1 -0
- package/dist/extensions/builtin/subagent/index.d.ts +8 -0
- package/dist/extensions/builtin/subagent/index.js +8 -0
- package/dist/extensions/builtin/subagent/subagent-parser.d.ts +30 -0
- package/dist/extensions/builtin/subagent/subagent-parser.js +15 -0
- package/dist/extensions/builtin/subagent/subagent-runner.d.ts +49 -0
- package/dist/extensions/builtin/subagent/subagent-runner.js +8 -0
- package/dist/extensions/builtin/subagent/subagent-types.d.ts +57 -0
- package/dist/extensions/builtin/subagent/subagent-types.js +0 -0
- package/dist/extensions/builtin/task/index.d.ts +8 -0
- package/dist/extensions/builtin/task/index.js +1 -0
- package/dist/extensions/builtin/task/task-store.d.ts +42 -0
- package/dist/extensions/builtin/task/task-store.js +1 -0
- package/dist/extensions/builtin/task/task-tools/task-create-tool.d.ts +37 -0
- package/dist/extensions/builtin/task/task-tools/task-create-tool.js +40 -0
- package/dist/extensions/builtin/task/task-tools/task-get-tool.d.ts +31 -0
- package/dist/extensions/builtin/task/task-tools/task-get-tool.js +23 -0
- package/dist/extensions/builtin/task/task-tools/task-list-tool.d.ts +27 -0
- package/dist/extensions/builtin/task/task-tools/task-list-tool.js +22 -0
- package/dist/extensions/builtin/task/task-tools/task-output-tool.d.ts +32 -0
- package/dist/extensions/builtin/task/task-tools/task-output-tool.js +10 -0
- package/dist/extensions/builtin/task/task-tools/task-stop-tool.d.ts +31 -0
- package/dist/extensions/builtin/task/task-tools/task-stop-tool.js +5 -0
- package/dist/extensions/builtin/task/task-tools/task-update-tool.d.ts +47 -0
- package/dist/extensions/builtin/task/task-tools/task-update-tool.js +77 -0
- package/dist/extensions/builtin/task/task-tools/tool-search-tool.d.ts +34 -0
- package/dist/extensions/builtin/task/task-tools/tool-search-tool.js +14 -0
- package/dist/extensions/builtin/task/task-types.d.ts +30 -0
- package/dist/extensions/builtin/task/task-types.js +1 -0
- package/dist/extensions/builtin/teach/README.md +197 -0
- package/dist/extensions/builtin/teach/index.d.ts +12 -0
- package/dist/extensions/builtin/teach/index.js +6 -0
- package/dist/extensions/builtin/teach/references/analogy-library.md +153 -0
- package/dist/extensions/builtin/teach/references/learning-paths.md +214 -0
- package/dist/extensions/builtin/teach/references/source-verification.md +268 -0
- package/dist/extensions/builtin/teach/references/teaching-template.md +237 -0
- package/dist/extensions/builtin/teach/teach-format.d.ts +35 -0
- package/dist/extensions/builtin/teach/teach-format.js +6 -0
- package/dist/extensions/builtin/teach/teach-i18n.d.ts +47 -0
- package/dist/extensions/builtin/teach/teach-i18n.js +1 -0
- package/dist/extensions/builtin/teach/teach-persistence.d.ts +36 -0
- package/dist/extensions/builtin/teach/teach-persistence.js +35 -0
- package/dist/extensions/builtin/teach/teach-prompts.d.ts +52 -0
- package/dist/extensions/builtin/teach/teach-prompts.js +35 -0
- package/dist/extensions/builtin/teach/teach-runtime.d.ts +93 -0
- package/dist/extensions/builtin/teach/teach-runtime.js +9 -0
- package/dist/extensions/builtin/teach/teach-types.d.ts +81 -0
- package/dist/extensions/builtin/teach/teach-types.js +0 -0
- package/dist/extensions/builtin/team/AGENT.md +112 -0
- package/dist/extensions/builtin/team/TESTING.md +299 -0
- package/dist/extensions/builtin/team/index.d.ts +26 -0
- package/dist/extensions/builtin/team/index.js +11 -0
- package/dist/extensions/builtin/team/team-dashboard.d.ts +13 -0
- package/dist/extensions/builtin/team/team-dashboard.js +1 -0
- package/dist/extensions/builtin/team/team-harness.d.ts +35 -0
- package/dist/extensions/builtin/team/team-harness.js +18 -0
- package/dist/extensions/builtin/team/team-mailbox.d.ts +50 -0
- package/dist/extensions/builtin/team/team-mailbox.js +4 -0
- package/dist/extensions/builtin/team/team-orchestrator.d.ts +39 -0
- package/dist/extensions/builtin/team/team-orchestrator.js +5 -0
- package/dist/extensions/builtin/team/team-parser.d.ts +84 -0
- package/dist/extensions/builtin/team/team-parser.js +38 -0
- package/dist/extensions/builtin/team/team-permissions.d.ts +63 -0
- package/dist/extensions/builtin/team/team-permissions.js +1 -0
- package/dist/extensions/builtin/team/team-presets.d.ts +45 -0
- package/dist/extensions/builtin/team/team-presets.js +2 -0
- package/dist/extensions/builtin/team/team-psyche.d.ts +14 -0
- package/dist/extensions/builtin/team/team-psyche.js +5 -0
- package/dist/extensions/builtin/team/team-runtime-helpers.d.ts +48 -0
- package/dist/extensions/builtin/team/team-runtime-helpers.js +2 -0
- package/dist/extensions/builtin/team/team-runtime.d.ts +91 -0
- package/dist/extensions/builtin/team/team-runtime.js +3 -0
- package/dist/extensions/builtin/team/team-state-store.d.ts +29 -0
- package/dist/extensions/builtin/team/team-state-store.js +2 -0
- package/dist/extensions/builtin/team/team-task-store.d.ts +35 -0
- package/dist/extensions/builtin/team/team-task-store.js +2 -0
- package/dist/extensions/builtin/team/team-transcript.d.ts +31 -0
- package/dist/extensions/builtin/team/team-transcript.js +2 -0
- package/dist/extensions/builtin/team/team-types.d.ts +250 -0
- package/dist/extensions/builtin/team/team-types.js +0 -0
- package/dist/extensions/builtin/team/team-ui.d.ts +50 -0
- package/dist/extensions/builtin/team/team-ui.js +2 -0
- package/dist/extensions/builtin/token-save/README.md +56 -0
- package/dist/extensions/builtin/token-save/config.d.ts +8 -0
- package/dist/extensions/builtin/token-save/config.js +1 -0
- package/dist/extensions/builtin/token-save/filters.d.ts +14 -0
- package/dist/extensions/builtin/token-save/filters.js +24 -0
- package/dist/extensions/builtin/token-save/index.d.ts +8 -0
- package/dist/extensions/builtin/token-save/index.js +4 -0
- package/dist/extensions/builtin/token-save/lexer.d.ts +11 -0
- package/dist/extensions/builtin/token-save/lexer.js +1 -0
- package/dist/extensions/builtin/token-save/recovery.d.ts +1 -0
- package/dist/extensions/builtin/token-save/recovery.js +1 -0
- package/dist/extensions/builtin/token-save/rewrite.d.ts +19 -0
- package/dist/extensions/builtin/token-save/rewrite.js +1 -0
- package/dist/extensions/builtin/token-save/runner.d.ts +14 -0
- package/dist/extensions/builtin/token-save/runner.js +3 -0
- package/dist/extensions/builtin/token-save/stream.d.ts +20 -0
- package/dist/extensions/builtin/token-save/stream.js +1 -0
- package/dist/extensions/builtin/token-save/toml-dsl.d.ts +25 -0
- package/dist/extensions/builtin/token-save/toml-dsl.js +3 -0
- package/dist/extensions/builtin/token-save/tracking.d.ts +24 -0
- package/dist/extensions/builtin/token-save/tracking.js +8 -0
- package/dist/extensions/optional/AGENT.md +11 -0
- package/dist/extensions/optional/export-html/index.d.ts +41 -0
- package/dist/extensions/optional/export-html/index.js +2 -0
- package/dist/extensions/optional/simplify/index.d.ts +35 -0
- package/dist/extensions/optional/simplify/index.js +77 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +1 -0
- package/dist/main.d.ts +7 -0
- package/dist/main.js +41 -0
- package/dist/migrations.d.ts +30 -0
- package/dist/migrations.js +4 -0
- package/dist/models.d.ts +7 -0
- package/dist/models.js +1 -0
- package/dist/modes/acp/acp-mode.d.ts +30 -0
- package/dist/modes/acp/acp-mode.js +25 -0
- package/dist/modes/index.d.ts +14 -0
- package/dist/modes/index.js +1 -0
- package/dist/modes/interactive/agent-loop-status.d.ts +8 -0
- package/dist/modes/interactive/agent-loop-status.js +1 -0
- package/dist/modes/interactive/components/apikey-input.d.ts +10 -0
- package/dist/modes/interactive/components/apikey-input.js +3 -0
- package/dist/modes/interactive/components/armin.d.ts +39 -0
- package/dist/modes/interactive/components/armin.js +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +21 -0
- package/dist/modes/interactive/components/assistant-message.js +1 -0
- package/dist/modes/interactive/components/attachments-bar.d.ts +37 -0
- package/dist/modes/interactive/components/attachments-bar.js +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +40 -0
- package/dist/modes/interactive/components/bash-execution.js +13 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +21 -0
- package/dist/modes/interactive/components/bordered-loader.js +1 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +21 -0
- package/dist/modes/interactive/components/branch-summary-message.js +3 -0
- package/dist/modes/interactive/components/buddy/pet-sprites.d.ts +31 -0
- package/dist/modes/interactive/components/buddy/pet-sprites.js +1 -0
- package/dist/modes/interactive/components/catui-loader.d.ts +55 -0
- package/dist/modes/interactive/components/catui-loader.js +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +21 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +3 -0
- package/dist/modes/interactive/components/config-selector.d.ts +76 -0
- package/dist/modes/interactive/components/config-selector.js +1 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +19 -0
- package/dist/modes/interactive/components/countdown-timer.js +1 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +37 -0
- package/dist/modes/interactive/components/custom-editor.js +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +26 -0
- package/dist/modes/interactive/components/custom-message.js +2 -0
- package/dist/modes/interactive/components/daxnuts.d.ts +28 -0
- package/dist/modes/interactive/components/daxnuts.js +1 -0
- package/dist/modes/interactive/components/diff.d.ts +17 -0
- package/dist/modes/interactive/components/diff.js +3 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +20 -0
- package/dist/modes/interactive/components/dynamic-border.js +1 -0
- package/dist/modes/interactive/components/editor-buddy-layout.d.ts +17 -0
- package/dist/modes/interactive/components/editor-buddy-layout.js +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +25 -0
- package/dist/modes/interactive/components/extension-editor.js +1 -0
- package/dist/modes/interactive/components/extension-input.d.ts +29 -0
- package/dist/modes/interactive/components/extension-input.js +2 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +32 -0
- package/dist/modes/interactive/components/extension-selector.js +2 -0
- package/dist/modes/interactive/components/footer.d.ts +34 -0
- package/dist/modes/interactive/components/footer.js +1 -0
- package/dist/modes/interactive/components/index.d.ts +44 -0
- package/dist/modes/interactive/components/index.js +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +46 -0
- package/dist/modes/interactive/components/keybinding-hints.js +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +47 -0
- package/dist/modes/interactive/components/login-dialog.js +1 -0
- package/dist/modes/interactive/components/memory-stats.d.ts +14 -0
- package/dist/modes/interactive/components/memory-stats.js +2 -0
- package/dist/modes/interactive/components/model-selector.d.ts +59 -0
- package/dist/modes/interactive/components/model-selector.js +2 -0
- package/dist/modes/interactive/components/notification-queue.d.ts +49 -0
- package/dist/modes/interactive/components/notification-queue.js +1 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +30 -0
- package/dist/modes/interactive/components/oauth-selector.js +1 -0
- package/dist/modes/interactive/components/persona-selector.d.ts +24 -0
- package/dist/modes/interactive/components/persona-selector.js +1 -0
- package/dist/modes/interactive/components/plan-progress-panel.d.ts +24 -0
- package/dist/modes/interactive/components/plan-progress-panel.js +1 -0
- package/dist/modes/interactive/components/provider-selector.d.ts +25 -0
- package/dist/modes/interactive/components/provider-selector.js +1 -0
- package/dist/modes/interactive/components/raw-text.d.ts +19 -0
- package/dist/modes/interactive/components/raw-text.js +3 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +54 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +1 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts +28 -0
- package/dist/modes/interactive/components/session-selector-search.js +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts +100 -0
- package/dist/modes/interactive/components/session-selector.js +2 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +77 -0
- package/dist/modes/interactive/components/settings-selector.js +1 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +15 -0
- package/dist/modes/interactive/components/show-images-selector.js +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +22 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +3 -0
- package/dist/modes/interactive/components/soul-stats.d.ts +15 -0
- package/dist/modes/interactive/components/soul-stats.js +2 -0
- package/dist/modes/interactive/components/sub-agent-panel.d.ts +24 -0
- package/dist/modes/interactive/components/sub-agent-panel.js +1 -0
- package/dist/modes/interactive/components/task-status-panel.d.ts +36 -0
- package/dist/modes/interactive/components/task-status-panel.js +1 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +16 -0
- package/dist/modes/interactive/components/theme-selector.js +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +16 -0
- package/dist/modes/interactive/components/thinking-selector.js +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +80 -0
- package/dist/modes/interactive/components/tool-execution.js +58 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +73 -0
- package/dist/modes/interactive/components/tree-selector.js +1 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +35 -0
- package/dist/modes/interactive/components/user-message-selector.js +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +13 -0
- package/dist/modes/interactive/components/user-message.js +1 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +29 -0
- package/dist/modes/interactive/components/visual-truncate.js +1 -0
- package/dist/modes/interactive/controllers/auth-provider-config-controller.d.ts +64 -0
- package/dist/modes/interactive/controllers/auth-provider-config-controller.js +1 -0
- package/dist/modes/interactive/controllers/extension-ui/custom-overlay-host.d.ts +38 -0
- package/dist/modes/interactive/controllers/extension-ui/custom-overlay-host.js +1 -0
- package/dist/modes/interactive/controllers/extension-ui/editor-component-adapter.d.ts +37 -0
- package/dist/modes/interactive/controllers/extension-ui/editor-component-adapter.js +1 -0
- package/dist/modes/interactive/controllers/extension-ui/persistent-surface-registry.d.ts +53 -0
- package/dist/modes/interactive/controllers/extension-ui/persistent-surface-registry.js +1 -0
- package/dist/modes/interactive/controllers/extension-ui/prompt-host.d.ts +52 -0
- package/dist/modes/interactive/controllers/extension-ui/prompt-host.js +2 -0
- package/dist/modes/interactive/controllers/image-pipeline-controller.d.ts +106 -0
- package/dist/modes/interactive/controllers/image-pipeline-controller.js +1 -0
- package/dist/modes/interactive/controllers/input-submit-controller.d.ts +80 -0
- package/dist/modes/interactive/controllers/input-submit-controller.js +2 -0
- package/dist/modes/interactive/controllers/interrupt-controller.d.ts +75 -0
- package/dist/modes/interactive/controllers/interrupt-controller.js +1 -0
- package/dist/modes/interactive/controllers/model-overlay-controller.d.ts +127 -0
- package/dist/modes/interactive/controllers/model-overlay-controller.js +3 -0
- package/dist/modes/interactive/controllers/self-update-controller.d.ts +71 -0
- package/dist/modes/interactive/controllers/self-update-controller.js +24 -0
- package/dist/modes/interactive/controllers/settings-overlay-controller.d.ts +56 -0
- package/dist/modes/interactive/controllers/settings-overlay-controller.js +2 -0
- package/dist/modes/interactive/controllers/slash-dispatcher-controller.d.ts +74 -0
- package/dist/modes/interactive/controllers/slash-dispatcher-controller.js +1 -0
- package/dist/modes/interactive/controllers/stream-render-controller.d.ts +110 -0
- package/dist/modes/interactive/controllers/stream-render-controller.js +2 -0
- package/dist/modes/interactive/controllers/tree-overlay-controller.d.ts +55 -0
- package/dist/modes/interactive/controllers/tree-overlay-controller.js +1 -0
- package/dist/modes/interactive/footer-data-provider.d.ts +32 -0
- package/dist/modes/interactive/footer-data-provider.js +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +303 -0
- package/dist/modes/interactive/interactive-mode.js +119 -0
- package/dist/modes/interactive/services/tips.d.ts +20 -0
- package/dist/modes/interactive/services/tips.js +1 -0
- package/dist/modes/interactive/slash-command-arguments.d.ts +28 -0
- package/dist/modes/interactive/slash-command-arguments.js +1 -0
- package/dist/modes/interactive/state/interactive-state.d.ts +74 -0
- package/dist/modes/interactive/state/interactive-state.js +1 -0
- package/dist/modes/interactive/theme/dark.json +85 -0
- package/dist/modes/interactive/theme/light.json +84 -0
- package/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/dist/modes/interactive/theme/theme.d.ts +81 -0
- package/dist/modes/interactive/theme/theme.js +16 -0
- package/dist/modes/interactive/theme/warm.json +81 -0
- package/dist/modes/print-mode.d.ts +38 -0
- package/dist/modes/print-mode.js +2 -0
- package/dist/modes/rpc/rpc-client.d.ts +221 -0
- package/dist/modes/rpc/rpc-client.js +2 -0
- package/dist/modes/rpc/rpc-mode.d.ts +14 -0
- package/dist/modes/rpc/rpc-mode.js +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +449 -0
- package/dist/modes/rpc/rpc-types.js +0 -0
- package/dist/modes/utils/agent-loop-result-format.d.ts +10 -0
- package/dist/modes/utils/agent-loop-result-format.js +1 -0
- package/dist/modes/utils/clipboard-image.d.ts +10 -0
- package/dist/modes/utils/clipboard-image.js +1 -0
- package/dist/modes/utils/clipboard-native.d.ts +11 -0
- package/dist/modes/utils/clipboard-native.js +1 -0
- package/dist/modes/utils/clipboard.d.ts +1 -0
- package/dist/modes/utils/clipboard.js +1 -0
- package/dist/modes/utils/image-convert.d.ts +8 -0
- package/dist/modes/utils/image-convert.js +1 -0
- package/dist/modes/utils/image-resize.d.ts +41 -0
- package/dist/modes/utils/image-resize.js +1 -0
- package/dist/node_modules/@catui/agent-core/dist/agent-loop-continuations.js +1 -0
- package/dist/node_modules/@catui/agent-core/dist/agent-loop-stream-events.js +1 -0
- package/dist/node_modules/@catui/agent-core/dist/agent-loop-tool-results.js +3 -0
- package/dist/node_modules/@catui/agent-core/dist/agent-loop-tool-summaries.js +1 -0
- package/dist/node_modules/@catui/agent-core/dist/agent-loop.js +4 -0
- package/dist/node_modules/@catui/agent-core/dist/agent-run-result.js +1 -0
- package/dist/node_modules/@catui/agent-core/dist/agent.js +1 -0
- package/dist/node_modules/@catui/agent-core/dist/errors.js +1 -0
- package/dist/node_modules/@catui/agent-core/dist/index.js +1 -0
- package/dist/node_modules/@catui/agent-core/dist/proxy.js +2 -0
- package/dist/node_modules/@catui/agent-core/dist/structured-adaptive-agent-loop.js +2 -0
- package/dist/node_modules/@catui/agent-core/dist/structured-adaptive-streaming-tool-executor.js +1 -0
- package/dist/node_modules/@catui/agent-core/dist/structured-adaptive-tool-orchestration.js +3 -0
- package/dist/node_modules/@catui/agent-core/dist/types.js +1 -0
- package/dist/node_modules/@catui/agent-core/package.json +28 -0
- package/dist/node_modules/@catui/ai/dist/api-registry.js +1 -0
- package/dist/node_modules/@catui/ai/dist/cli.js +21 -0
- package/dist/node_modules/@catui/ai/dist/config-path.js +1 -0
- package/dist/node_modules/@catui/ai/dist/debug-logger.js +4 -0
- package/dist/node_modules/@catui/ai/dist/env-api-keys.js +1 -0
- package/dist/node_modules/@catui/ai/dist/env.js +1 -0
- package/dist/node_modules/@catui/ai/dist/events.js +1 -0
- package/dist/node_modules/@catui/ai/dist/index.js +1 -0
- package/dist/node_modules/@catui/ai/dist/json.js +1 -0
- package/dist/node_modules/@catui/ai/dist/models.generated.js +1 -0
- package/dist/node_modules/@catui/ai/dist/models.js +1 -0
- package/dist/node_modules/@catui/ai/dist/overflow.js +1 -0
- package/dist/node_modules/@catui/ai/dist/providers/amazon-bedrock.js +1 -0
- package/dist/node_modules/@catui/ai/dist/providers/anthropic.js +2 -0
- package/dist/node_modules/@catui/ai/dist/providers/azure-openai-responses.js +1 -0
- package/dist/node_modules/@catui/ai/dist/providers/github-copilot-headers.js +1 -0
- package/dist/node_modules/@catui/ai/dist/providers/google-gemini-cli.js +2 -0
- package/dist/node_modules/@catui/ai/dist/providers/google-shared.js +2 -0
- package/dist/node_modules/@catui/ai/dist/providers/google-vertex.js +1 -0
- package/dist/node_modules/@catui/ai/dist/providers/google.js +1 -0
- package/dist/node_modules/@catui/ai/dist/providers/openai-codex-responses.js +7 -0
- package/dist/node_modules/@catui/ai/dist/providers/openai-completions.js +6 -0
- package/dist/node_modules/@catui/ai/dist/providers/openai-responses-shared.js +10 -0
- package/dist/node_modules/@catui/ai/dist/providers/openai-responses.js +1 -0
- package/dist/node_modules/@catui/ai/dist/providers/register-builtins.js +1 -0
- package/dist/node_modules/@catui/ai/dist/providers/simple-options.js +1 -0
- package/dist/node_modules/@catui/ai/dist/providers/transform-messages.js +1 -0
- package/dist/node_modules/@catui/ai/dist/registry.js +1 -0
- package/dist/node_modules/@catui/ai/dist/schema.js +1 -0
- package/dist/node_modules/@catui/ai/dist/stream.js +1 -0
- package/dist/node_modules/@catui/ai/dist/types.js +0 -0
- package/dist/node_modules/@catui/ai/dist/utils/event-stream-types.js +0 -0
- package/dist/node_modules/@catui/ai/dist/utils/event-stream.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/http-proxy.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/json-parse.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/oauth/anthropic.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/oauth/decode-credential.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/oauth/github-copilot.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/oauth/google-antigravity.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/oauth/google-gemini-cli.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/oauth/index.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/oauth/openai-codex.js +11 -0
- package/dist/node_modules/@catui/ai/dist/utils/oauth/pkce.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/oauth/types.js +0 -0
- package/dist/node_modules/@catui/ai/dist/utils/overflow.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/sanitize-unicode.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/typebox-helpers.js +1 -0
- package/dist/node_modules/@catui/ai/dist/utils/validation.js +6 -0
- package/dist/node_modules/@catui/ai/package.json +106 -0
- package/dist/node_modules/@catui/tui/dist/autocomplete.js +2 -0
- package/dist/node_modules/@catui/tui/dist/components/box.js +1 -0
- package/dist/node_modules/@catui/tui/dist/components/cached-container.js +1 -0
- package/dist/node_modules/@catui/tui/dist/components/cancellable-loader.js +1 -0
- package/dist/node_modules/@catui/tui/dist/components/editor.js +21 -0
- package/dist/node_modules/@catui/tui/dist/components/image.js +1 -0
- package/dist/node_modules/@catui/tui/dist/components/input.js +2 -0
- package/dist/node_modules/@catui/tui/dist/components/loader.js +1 -0
- package/dist/node_modules/@catui/tui/dist/components/markdown.js +7 -0
- package/dist/node_modules/@catui/tui/dist/components/select-list.js +1 -0
- package/dist/node_modules/@catui/tui/dist/components/settings-list.js +1 -0
- package/dist/node_modules/@catui/tui/dist/components/spacer.js +1 -0
- package/dist/node_modules/@catui/tui/dist/components/text.js +1 -0
- package/dist/node_modules/@catui/tui/dist/components/truncated-text.js +2 -0
- package/dist/node_modules/@catui/tui/dist/editor-component.js +0 -0
- package/dist/node_modules/@catui/tui/dist/fuzzy.js +1 -0
- package/dist/node_modules/@catui/tui/dist/index.js +1 -0
- package/dist/node_modules/@catui/tui/dist/keybindings.js +1 -0
- package/dist/node_modules/@catui/tui/dist/keys.js +5 -0
- package/dist/node_modules/@catui/tui/dist/kill-ring.js +1 -0
- package/dist/node_modules/@catui/tui/dist/stdin-buffer.js +1 -0
- package/dist/node_modules/@catui/tui/dist/terminal-image.js +1 -0
- package/dist/node_modules/@catui/tui/dist/terminal.js +1 -0
- package/dist/node_modules/@catui/tui/dist/tui.js +12 -0
- package/dist/node_modules/@catui/tui/dist/undo-stack.js +1 -0
- package/dist/node_modules/@catui/tui/dist/utils.js +2 -0
- package/dist/node_modules/@catui/tui/package.json +37 -0
- package/dist/packages/mem-core/src/store.d.ts +21 -0
- package/dist/packages/mem-core/src/store.js +1 -0
- package/dist/packages/mem-core/src/types.d.ts +329 -0
- package/dist/packages/mem-core/src/types.js +0 -0
- package/dist/packages/protocol/src/commands.d.ts +33 -0
- package/dist/packages/protocol/src/commands.js +0 -0
- package/dist/packages/protocol/src/flags.d.ts +20 -0
- package/dist/packages/protocol/src/flags.js +0 -0
- package/dist/packages/protocol/src/hooks.d.ts +17 -0
- package/dist/packages/protocol/src/hooks.js +0 -0
- package/dist/packages/protocol/src/index.d.ts +15 -0
- package/dist/packages/protocol/src/index.js +1 -0
- package/dist/packages/protocol/src/lifecycle.d.ts +61 -0
- package/dist/packages/protocol/src/lifecycle.js +0 -0
- package/dist/packages/protocol/src/tools.d.ts +77 -0
- package/dist/packages/protocol/src/tools.js +0 -0
- package/dist/packages/soul-core/src/config.d.ts +20 -0
- package/dist/packages/soul-core/src/config.js +1 -0
- package/dist/packages/soul-core/src/diagnostics.d.ts +23 -0
- package/dist/packages/soul-core/src/diagnostics.js +1 -0
- package/dist/packages/soul-core/src/evolution.d.ts +75 -0
- package/dist/packages/soul-core/src/evolution.js +1 -0
- package/dist/packages/soul-core/src/index.d.ts +13 -0
- package/dist/packages/soul-core/src/index.js +1 -0
- package/dist/packages/soul-core/src/injection.d.ts +35 -0
- package/dist/packages/soul-core/src/injection.js +8 -0
- package/dist/packages/soul-core/src/manager.d.ts +101 -0
- package/dist/packages/soul-core/src/manager.js +1 -0
- package/dist/packages/soul-core/src/store.d.ts +62 -0
- package/dist/packages/soul-core/src/store.js +1 -0
- package/dist/packages/soul-core/src/types.d.ts +317 -0
- package/dist/packages/soul-core/src/types.js +0 -0
- package/dist/public-config.d.ts +12 -0
- package/dist/public-config.js +1 -0
- package/dist/runtime.d.ts +9 -0
- package/dist/runtime.js +1 -0
- package/dist/session-compaction.d.ts +7 -0
- package/dist/session-compaction.js +1 -0
- package/dist/session.d.ts +7 -0
- package/dist/session.js +1 -0
- package/dist/skills.d.ts +7 -0
- package/dist/skills.js +1 -0
- package/dist/tools.d.ts +7 -0
- package/dist/tools.js +1 -0
- package/dist/utils/changelog.d.ts +20 -0
- package/dist/utils/changelog.js +4 -0
- package/dist/utils/diagnostics.d.ts +37 -0
- package/dist/utils/diagnostics.js +1 -0
- package/dist/utils/frontmatter.d.ts +7 -0
- package/dist/utils/frontmatter.js +4 -0
- package/dist/utils/git.d.ts +25 -0
- package/dist/utils/git.js +1 -0
- package/dist/utils/mime.d.ts +1 -0
- package/dist/utils/mime.js +1 -0
- package/dist/utils/photon.d.ts +6 -0
- package/dist/utils/photon.js +1 -0
- package/dist/utils/startup-profiler.d.ts +87 -0
- package/dist/utils/startup-profiler.js +2 -0
- package/docs/codex-goal-command-impl.md +1055 -0
- package/docs/codex-goal-vs-grub.md +500 -0
- package/docs/custom-provider.md +27 -0
- package/docs/extensions.md +27 -0
- package/docs/keybindings.md +27 -0
- package/docs/loop /351/207/215/346/236/204/345/256/214/346/210/220/346/200/273/347/273/223.md" +251 -0
- package/docs/loop /351/207/215/346/236/204/345/256/214/346/210/220/346/212/245/345/221/212.md" +123 -0
- package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210.md" +1222 -0
- package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210/345/256/236/347/216/260/346/212/245/345/221/212.md" +158 -0
- package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210/345/257/271/346/257/224/345/210/206/346/236/220.md" +128 -0
- package/docs/loop /351/207/215/346/236/204/350/256/241/345/210/222.md" +321 -0
- package/docs/loop-usage-examples.md +215 -0
- package/docs/models.md +27 -0
- package/docs/packages.md +27 -0
- package/docs/pi-design-philosophy.md +457 -0
- package/docs/planmode.md +1987 -0
- package/docs/prompt-templates.md +27 -0
- package/docs/providers.md +27 -0
- package/docs/sdk.md +27 -0
- package/docs/skills.md +27 -0
- package/docs/themes.md +27 -0
- package/docs/tui.md +27 -0
- package/package.json +191 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: TeamMailbox, MailboxMessage, MailboxMessageType, MailboxDirection
|
|
3
|
+
* [FROM]: No external deps
|
|
4
|
+
* [TO]: Consumed by team-runtime.ts, index.ts
|
|
5
|
+
* [HERE]: extensions/builtin/team/team-mailbox.ts - Phase B B.3 mailbox protocol
|
|
6
|
+
*
|
|
7
|
+
* Per refactor plan §B.3: mailbox is the single channel between the leader
|
|
8
|
+
* and teammates; no direct callbacks are allowed. The implementation is a
|
|
9
|
+
* typed append-only log with subscribe() for live observers and JSONL-backed
|
|
10
|
+
* replay across restarts.
|
|
11
|
+
*/
|
|
12
|
+
export type MailboxMessageType = "task_request" | "task_progress" | "task_result" | "permission_request" | "permission_response" | "plan_approval_request" | "plan_approval_response" | "teammate_message" | "handoff" | "task_claim" | "task_update" | "mode_change" | "shutdown_request" | "shutdown_ack";
|
|
13
|
+
export type MailboxDirection = "leader_to_teammate" | "teammate_to_leader" | "teammate_to_teammate";
|
|
14
|
+
export interface MailboxMessage {
|
|
15
|
+
id: string;
|
|
16
|
+
teammateId: string;
|
|
17
|
+
teammateName: string;
|
|
18
|
+
targetTeammateId?: string;
|
|
19
|
+
targetTeammateName?: string;
|
|
20
|
+
type: MailboxMessageType;
|
|
21
|
+
direction: MailboxDirection;
|
|
22
|
+
payload: Record<string, unknown>;
|
|
23
|
+
timestamp: number;
|
|
24
|
+
}
|
|
25
|
+
export type MailboxListener = (message: MailboxMessage) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Append-only typed mailbox shared by all teammates. Bounded by
|
|
28
|
+
* `maxMessages` to prevent unbounded growth in long-lived sessions; oldest
|
|
29
|
+
* messages drop first.
|
|
30
|
+
*/
|
|
31
|
+
export declare class TeamMailbox {
|
|
32
|
+
private messages;
|
|
33
|
+
private listeners;
|
|
34
|
+
private readonly maxMessages;
|
|
35
|
+
private readonly filePath?;
|
|
36
|
+
constructor(maxMessages?: number, filePath?: string);
|
|
37
|
+
/** Load persisted JSONL messages. Corrupt lines are ignored. */
|
|
38
|
+
load(): Promise<void>;
|
|
39
|
+
/** Post a new message and notify listeners. */
|
|
40
|
+
post(message: Omit<MailboxMessage, "id" | "timestamp">): MailboxMessage;
|
|
41
|
+
/** All messages, optionally filtered by teammate id. */
|
|
42
|
+
list(teammateId?: string): MailboxMessage[];
|
|
43
|
+
/** Subscribe to live mailbox events. Returns an unsubscribe handle. */
|
|
44
|
+
subscribe(listener: MailboxListener): () => void;
|
|
45
|
+
/** Drop all messages owned by a teammate (called on terminate). */
|
|
46
|
+
clearTeammate(teammateId: string): void;
|
|
47
|
+
private persist;
|
|
48
|
+
/** Remove persisted mailbox data. Intended for tests and full team reset flows. */
|
|
49
|
+
clearAll(): Promise<void>;
|
|
50
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var h=Object.defineProperty;var r=(a,s)=>h(a,"name",{value:s,configurable:!0});import{mkdir as n,readFile as l,rm as m,writeFile as c}from"node:fs/promises";import{dirname as o}from"node:path";class d{static{r(this,"TeamMailbox")}messages=[];listeners=new Set;maxMessages;filePath;constructor(s=1e3,t){this.maxMessages=s,this.filePath=t}async load(){if(this.filePath)try{const s=await l(this.filePath,"utf-8"),t=[];for(const e of s.split(`
|
|
2
|
+
`))if(e.trim())try{const i=JSON.parse(e);i?.id&&i?.type&&t.push(i)}catch{}this.messages=t.slice(-this.maxMessages)}catch{this.messages=[]}}post(s){const t={...s,id:crypto.randomUUID(),timestamp:Date.now()};this.messages.push(t),this.messages.length>this.maxMessages&&this.messages.splice(0,this.messages.length-this.maxMessages),this.persist();for(const e of this.listeners)try{e(t)}catch{}return t}list(s){return s?this.messages.filter(t=>t.teammateId===s||t.targetTeammateId===s):[...this.messages]}subscribe(s){return this.listeners.add(s),()=>this.listeners.delete(s)}clearTeammate(s){this.messages=this.messages.filter(t=>t.teammateId!==s&&t.targetTeammateId!==s),this.persist()}async persist(){if(this.filePath)try{await n(o(this.filePath),{recursive:!0});const s=this.messages.map(t=>JSON.stringify(t)).join(`
|
|
3
|
+
`);await c(this.filePath,s?`${s}
|
|
4
|
+
`:"","utf-8")}catch{}}async clearAll(){this.messages=[],this.filePath&&await m(this.filePath,{force:!0}).catch(()=>{})}}export{d as TeamMailbox};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides createTeamUtterance(), buildLeaderPlan(), parseTeamMentions(), runLeaderOrchestration()
|
|
3
|
+
* [FROM]: Depends on ./team-types, ./team-presets, ./team-runtime
|
|
4
|
+
* [TO]: Consumed by index.ts for structured speaker-stream rendering and leader-led team orchestration
|
|
5
|
+
* [HERE]: extensions/builtin/team/team-orchestrator.ts - leader planning, mention parsing, and handoff execution
|
|
6
|
+
*/
|
|
7
|
+
import type { Model } from "@catui/ai/types";
|
|
8
|
+
import type { TeamRuntime, TeamRuntimeEvent } from "./team-runtime.js";
|
|
9
|
+
import type { Handoff, LeaderPlan, PersistedTeammate, TeamMention, TeamSpeakerRole, TeamUtterance } from "./team-types.js";
|
|
10
|
+
export interface TeamStreamEmitter {
|
|
11
|
+
emitUtterance(utterance: TeamUtterance, options?: {
|
|
12
|
+
streamKey?: string;
|
|
13
|
+
replace?: boolean;
|
|
14
|
+
}): void;
|
|
15
|
+
}
|
|
16
|
+
export interface LeaderOrchestrationOptions extends TeamStreamEmitter {
|
|
17
|
+
taskDescription: string;
|
|
18
|
+
baseCwd: string;
|
|
19
|
+
model?: Model<any>;
|
|
20
|
+
onRuntimeEvent?: (event: TeamRuntimeEvent) => void;
|
|
21
|
+
completeSimple?: (systemPrompt: string, userMessage: string) => Promise<string | undefined>;
|
|
22
|
+
}
|
|
23
|
+
export interface LeaderOrchestrationResult {
|
|
24
|
+
plan: LeaderPlan;
|
|
25
|
+
handoffs: Handoff[];
|
|
26
|
+
}
|
|
27
|
+
export declare function createTeamUtterance(input: {
|
|
28
|
+
speakerId: string;
|
|
29
|
+
speakerLabel: string;
|
|
30
|
+
role: TeamSpeakerRole;
|
|
31
|
+
text: string;
|
|
32
|
+
kind: TeamUtterance["kind"];
|
|
33
|
+
mentions?: TeamMention[];
|
|
34
|
+
timestamp?: number;
|
|
35
|
+
}): TeamUtterance;
|
|
36
|
+
export declare function formatUtteranceForContext(utterance: TeamUtterance): string;
|
|
37
|
+
export declare function parseTeamMentions(text: string, teammates: PersistedTeammate[]): TeamMention[];
|
|
38
|
+
export declare function buildLeaderPlan(userGoal: string, teammates: PersistedTeammate[], completeSimple?: (systemPrompt: string, userMessage: string) => Promise<string | undefined>): Promise<LeaderPlan>;
|
|
39
|
+
export declare function runLeaderOrchestration(runtime: TeamRuntime, options: LeaderOrchestrationOptions): Promise<LeaderOrchestrationResult>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
var S=Object.defineProperty;var c=(e,t)=>S(e,"name",{value:t,configurable:!0});import{executePreset as C,selectAutoTeamPlan as T}from"./team-presets.js";const x="leader",U="catui";function I(e){return{id:crypto.randomUUID(),speakerId:e.speakerId,speakerLabel:e.speakerLabel,role:e.role,text:e.text.trim(),kind:e.kind,mentions:e.mentions??[],timestamp:e.timestamp??Date.now()}}c(I,"createTeamUtterance");function V(e){return`${e.speakerLabel}: ${e.text}`}c(V,"formatUtteranceForContext");function M(e,t){const n=[],a=/(^|\s)@([A-Za-z][A-Za-z0-9-]*)/g;for(const i of e.matchAll(a)){const r=i[2];if(!r)continue;const d=_(r,t);if(!d)continue;const o=(i.index??0)+i[1].length+r.length+1,u=j(e,o);u&&n.push({raw:`@${r}`,targetId:d.identity.id,targetName:d.identity.name,targetLabel:d.identity.label,task:u})}return B(n)}c(M,"parseTeamMentions");async function P(e,t,n){const a=n?await E(e,t,n):void 0;return a||z(e,t)}c(P,"buildLeaderPlan");async function Q(e,t){const n=await T(t.taskDescription,t.completeSimple),i=(await C(e,n.presetName,t.taskDescription,t.baseCwd,t.model,t.onRuntimeEvent,!1)).teammates,r=await P(t.taskDescription,i,t.completeSimple),d=[],f=[],o=new Set,u=new Map(i.map(s=>[s.identity.id,s])),y=X(t.taskDescription);t.emitUtterance(I({speakerId:x,speakerLabel:U,role:"leader",kind:"thought",text:H(r)})),t.emitUtterance(I({speakerId:x,speakerLabel:U,role:"leader",kind:"thought",text:`A research plan named ${y} has already been created. If you would like to make any changes to this plan, please provide your input directly in the chat box.`})),r.phase="assign",r.completionState="running";const m=c(s=>{const p=`${s.target.identity.id}:${A(s.task).toLowerCase()}`;o.has(p)||(o.add(p),f.push(s))},"enqueue");for(const s of r.subtasks.filter(p=>p.dependsOn.length===0)){const p=u.get(s.ownerId);p&&m({target:p,task:s.task,title:s.title,kind:"work",subtaskId:s.id})}let l=0;const L=Math.max(6,i.length*4),D=c(async s=>{const p=s.subtaskId?r.subtasks.find(v=>v.id===s.subtaskId):void 0;p&&(p.status="in_progress"),t.emitUtterance(I({speakerId:x,speakerLabel:U,role:"leader",kind:s.kind,text:q(s),mentions:[{raw:`@${s.target.identity.name}`,targetId:s.target.identity.id,targetName:s.target.identity.name,targetLabel:s.target.identity.label,task:s.task}]}));const b=await e.send(s.target.identity.name,Z(t.taskDescription,s,r,i),t.model,{onEvent:t.onRuntimeEvent}),h=b.response||b.error||"No response.",w=M(h,i);return t.emitUtterance(I({speakerId:s.target.identity.id,speakerLabel:s.target.identity.name,role:s.target.identity.role,kind:w.length>0?"handoff":b.success?"result":"work",text:h,mentions:w}),{streamKey:`team-stream:${s.target.identity.id}`,replace:!0}),p&&(p.status=b.success?"done":"blocked"),{assignment:s,subtask:p,sendResult:b,replyText:h,mentions:w}},"runAssignment");for(;f.length>0&&l<L;){const s=Math.min(f.length,L-l),p=f.splice(0,s);l+=p.length;const b=await Promise.all(p.map(h=>D(h)));for(const{assignment:h,replyText:w,mentions:v}of b){for(const k of v){const g=u.get(k.targetId);g&&(d.push({id:crypto.randomUUID(),from:h.target.identity.name,to:k.targetName,task:k.task,status:"pending",timestamp:Date.now()}),m({target:g,task:k.task,title:`Follow-up from ${h.target.identity.name}`,kind:"handoff",sourceLabel:h.target.identity.name,sourceExcerpt:w}))}for(const k of r.subtasks.filter(g=>g.status==="pending"&&g.dependsOn.length>0&&g.dependsOn.every(R=>r.subtasks.find(N=>N.id===R)?.status==="done"))){const g=u.get(k.ownerId);g&&m({target:g,task:k.task,title:k.title,kind:"work",subtaskId:k.id})}}}for(const s of d)s.status=r.subtasks.some(p=>p.ownerName===s.to&&p.status==="blocked")?"blocked":"done";return r.phase="summarize",r.completionState=r.subtasks.some(s=>s.status==="blocked")?"blocked":"completed",t.emitUtterance(I({speakerId:x,speakerLabel:U,role:"leader",kind:"result",text:F(r,d)})),r.phase="done",{plan:r,handoffs:d}}c(Q,"runLeaderOrchestration");async function E(e,t,n){try{const a=await n(["You are the leader of a terminal-native coding team.","Split the user goal into a small, dependency-aware plan for the given teammates.",'Return strict JSON only: {"subtasks":[{"owner":"Ada","title":"...","task":"...","dependsOn":["Ada"]}]}',"Use only the provided teammate names as owners.","Keep 1-6 subtasks total."].join(`
|
|
2
|
+
`),[`User goal: ${e}`,"Teammates:",...t.map(o=>`- ${o.identity.name}: ${o.identity.role}`)].join(`
|
|
3
|
+
`));if(!a)return;const i=JSON.parse(J(a));if(!Array.isArray(i.subtasks)||i.subtasks.length===0)return;const r=new Map(t.map(o=>[o.identity.name.toLowerCase(),o])),d=[];for(const o of i.subtasks.slice(0,6)){const u=o.owner?r.get(o.owner.toLowerCase()):void 0;!u||typeof o.task!="string"||typeof o.title!="string"||d.push({id:crypto.randomUUID(),ownerId:u.identity.id,ownerName:u.identity.name,ownerLabel:u.identity.label,ownerRole:u.identity.role,title:o.title.trim(),task:o.task.trim(),dependsOn:[],status:"pending"})}if(d.length===0)return;const f=new Map(d.map(o=>[o.ownerName.toLowerCase(),o.id]));for(let o=0;o<d.length;o++){const u=i.subtasks?.[o],y=d[o];!u||!y||(y.dependsOn=(u.dependsOn??[]).map(m=>f.get(String(m).toLowerCase())).filter(m=>!!m&&m!==y.id))}return O(e,d)}catch{return}}c(E,"buildLeaderPlanWithModel");function z(e,t){const n=[...t].sort((l,L)=>l.identity.createdAt-L.identity.createdAt);if(n.length===0)return O(e,[]);if(n.length===1){const l=n[0];return O(e,[{id:crypto.randomUUID(),ownerId:l.identity.id,ownerName:l.identity.name,ownerLabel:l.identity.label,ownerRole:l.identity.role,title:"Deliver the task",task:e,dependsOn:[],status:"pending"}])}const a=$(n,["pm","planner","researcher","generic"])??n[0],i=$(n.filter(l=>l.identity.id!==a.identity.id),["architect","researcher","planner","generic"])??n.find(l=>l.identity.id!==a.identity.id)??a,r=$(n.filter(l=>![a.identity.id,i.identity.id].includes(l.identity.id)),["developer","implementer"])??n.find(l=>l.identity.id!==a.identity.id&&l.identity.id!==i.identity.id)??i,d=$(n.filter(l=>![a.identity.id,i.identity.id,r.identity.id].includes(l.identity.id)),["designer","reviewer","researcher","generic"]),f=$(n.filter(l=>![a.identity.id,i.identity.id,r.identity.id,d?.identity.id].includes(l.identity.id)),["data-analyst","verifier","reviewer","generic"]),o=crypto.randomUUID(),u=crypto.randomUUID(),y=crypto.randomUUID(),m=[{id:o,ownerId:a.identity.id,ownerName:a.identity.name,ownerLabel:a.identity.label,ownerRole:a.identity.role,title:"Frame the goal and success bar",task:`Break "${e}" into the smallest practical delivery slice and hand the technical framing to @${i.identity.name}.`,dependsOn:[],status:"pending"},{id:u,ownerId:i.identity.id,ownerName:i.identity.name,ownerLabel:i.identity.label,ownerRole:i.identity.role,title:"Map files, interfaces, and approach",task:`Identify the likely modules/files and implementation shape for "${e}", then hand the concrete build step to @${r.identity.name}.`,dependsOn:[o],status:"pending"},{id:y,ownerId:r.identity.id,ownerName:r.identity.name,ownerLabel:r.identity.label,ownerRole:r.identity.role,title:"Implement the change",task:`Implement the requested change for "${e}". When useful, hand UX polish to @${d?.identity.name??i.identity.name} and evidence/risk review to @${f?.identity.name??i.identity.name}.`,dependsOn:[u],status:"pending"}];return d&&m.push({id:crypto.randomUUID(),ownerId:d.identity.id,ownerName:d.identity.name,ownerLabel:d.identity.label,ownerRole:d.identity.role,title:"Check UX, copy, and visual impact",task:"Review the change from a UX/design perspective. Call out confusing copy, weak affordances, or UI regressions.",dependsOn:[y],status:"pending"}),f&&m.push({id:crypto.randomUUID(),ownerId:f.identity.id,ownerName:f.identity.name,ownerLabel:f.identity.label,ownerRole:f.identity.role,title:"Validate evidence and risks",task:"Review the implementation for evidence, metrics, test coverage, and remaining risks. Summarize release readiness.",dependsOn:[y],status:"pending"}),O(e,m)}c(z,"buildLeaderPlanHeuristic");function O(e,t){return{userGoal:e,phase:"plan",subtasks:t,owners:Object.fromEntries(t.map(n=>[n.ownerLabel,n.ownerRole])),dependencies:Object.fromEntries(t.map(n=>[n.id,n.dependsOn])),completionState:t.length===0?"completed":"pending"}}c(O,"finalizePlan");function $(e,t){for(const n of t){const a=e.find(i=>i.identity.role===n);if(a)return a}return e[0]}c($,"pickOwner");function _(e,t){const n=e.trim(),a=n.toUpperCase();return t.find(i=>i.identity.label.toUpperCase()===a||i.identity.name.toLowerCase()===n.toLowerCase())}c(_,"resolveMentionTarget");function j(e,t){const n=e.slice(t);if(!n.trim())return"";const a=n.search(/\s@[A-Za-z][A-Za-z0-9-]*/),i=n.indexOf(`
|
|
4
|
+
`),r=n.search(/[。!?!?]/),d=[a,i,r].filter(u=>u>=0),f=d.length>0?Math.min(...d):n.length,o=n.slice(0,f).replace(/^[\s::,,-]+/,"").trim();return A(o)}c(j,"extractMentionTask");function B(e){const t=new Set;return e.filter(n=>{const a=`${n.targetId}:${n.task.toLowerCase()}`;return t.has(a)?!1:(t.add(a),!0)})}c(B,"dedupeMentions");function Z(e,t,n,a){const i=[`Leader goal: ${e}`,`Your assignment: ${t.task}`,"","Team roster:",...a.map(r=>`- ${r.identity.name} (${r.identity.role})`),"","Mention rules:","- Use @Name mentions only for concrete next-step handoffs.","- A mention must be followed by the task fragment for the target agent.","- Do not ping without actionable work."];return t.sourceLabel&&t.sourceExcerpt&&i.push("",`Handoff source: ${t.sourceLabel}`,`Context: ${K(A(t.sourceExcerpt),280)}`),t.subtaskId&&n.subtasks.find(d=>d.id===t.subtaskId)?.dependsOn.length&&i.push("","Dependencies are already satisfied. Build on prior team outputs rather than repeating discovery."),i.push("","Respond as yourself, not as the leader."),i.join(`
|
|
5
|
+
`)}c(Z,"buildAssignmentPrompt");function H(e){if(e.subtasks.length===0)return"I did not need to split the work; the task can be handled directly.";const t=e.subtasks.map(n=>`${n.ownerName} (${n.ownerRole}) handles "${n.title}"${n.dependsOn.length?" after its dependencies clear":""}`);return`I split the goal into ${e.subtasks.length} steps. ${t.join("; ")}.`}c(H,"formatLeaderPlanAnnouncement");function q(e){return e.kind==="handoff"&&e.sourceLabel?`@${e.target.identity.name} take the handoff from ${e.sourceLabel}: ${e.task}`:`@${e.target.identity.name} ${e.task}`}c(q,"formatLeaderAssignment");function F(e,t){const n=e.subtasks.filter(r=>r.status==="done").length,a=e.subtasks.filter(r=>r.status==="blocked").length,i=t.length;return a>0?`The team completed ${n}/${e.subtasks.length} planned steps. ${a} step(s) ended blocked. Handoffs observed: ${i}.`:`The team completed ${n}/${e.subtasks.length} planned steps. Handoffs observed: ${i}.`}c(F,"formatLeaderSummary");function J(e){const t=e.indexOf("{"),n=e.lastIndexOf("}");return t===-1||n===-1||n<=t?e:e.slice(t,n+1)}c(J,"extractJsonObject");function A(e){return e.replace(/\s+/g," ").trim()}c(A,"singleLine");function K(e,t){return e.length<=t?e:e.slice(e.length-t)}c(K,"tailText");function X(e){return`Team_Research_${A(e).replace(/[^A-Za-z0-9]+/g,"_").replace(/^_+|_+$/g,"").slice(0,32)||"Plan"}`}c(X,"buildResearchPlanName");export{P as buildLeaderPlan,I as createTeamUtterance,V as formatUtteranceForContext,M as parseTeamMentions,Q as runLeaderOrchestration};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Team command parser - /team:* subcommands including harness/preset/dashboard/status helpers
|
|
3
|
+
* [FROM]: No external deps
|
|
4
|
+
* [TO]: Consumed by index.ts
|
|
5
|
+
* [HERE]: extensions/builtin/team/team-parser.ts
|
|
6
|
+
*
|
|
7
|
+
* Parses /team series commands per Phase B spec:
|
|
8
|
+
* /team - List teammates
|
|
9
|
+
* /team:spawn <role> [--name <id>] [--harness] - Create teammate
|
|
10
|
+
* /team:send <name> <message> - Send message to teammate
|
|
11
|
+
* /team:status [<name>] - Show status
|
|
12
|
+
* /team:preset <solo|duo|squad> <task> - Create preset team
|
|
13
|
+
* /team:progress [<name>] - Show harness progress
|
|
14
|
+
* /team:psyche [<name>] - Show psyche weights
|
|
15
|
+
* /team:dashboard - Toggle dashboard widget
|
|
16
|
+
* /team:task <add|claim|done|block|cancel|list> ... - Manage shared task list
|
|
17
|
+
* /team:mail <from> <to> <message> - Route a teammate-to-teammate mailbox message
|
|
18
|
+
* /team:allow-path <name> <path> - Grant teammate write access to a path prefix
|
|
19
|
+
* /team:stop <name> - Stop teammate turn
|
|
20
|
+
* /team:terminate <name> - Destroy teammate
|
|
21
|
+
* /team:approve <request-id> - Approve permission request
|
|
22
|
+
* /team:mode <name> <plan|execute|review> - Switch mode
|
|
23
|
+
*/
|
|
24
|
+
import type { PresetName, TeammateMode, TeammateRole } from "./team-types.js";
|
|
25
|
+
export type TeamSubcommand = "list" | "spawn" | "send" | "status" | "stop" | "terminate" | "approve" | "mode" | "preset" | "auto" | "dashboard" | "progress" | "psyche" | "task" | "mail" | "allow-path" | "help";
|
|
26
|
+
export interface ParsedTeamCommand {
|
|
27
|
+
command: TeamSubcommand;
|
|
28
|
+
/** For spawn: role name */
|
|
29
|
+
role?: TeammateRole;
|
|
30
|
+
/** For spawn: optional name override */
|
|
31
|
+
name?: string;
|
|
32
|
+
/** For send/status/stop/terminate/approve/mode: target teammate name or request id */
|
|
33
|
+
target?: string;
|
|
34
|
+
/** For send: message content */
|
|
35
|
+
message?: string;
|
|
36
|
+
/** For mode: target mode */
|
|
37
|
+
mode?: TeammateMode;
|
|
38
|
+
/** For approve: request id */
|
|
39
|
+
requestId?: string;
|
|
40
|
+
/** For spawn: enable harness protocol */
|
|
41
|
+
harnessEnabled?: boolean;
|
|
42
|
+
/** For preset: preset name */
|
|
43
|
+
presetName?: PresetName;
|
|
44
|
+
/** For preset: task description */
|
|
45
|
+
taskDescription?: string;
|
|
46
|
+
/** For task: task subcommand */
|
|
47
|
+
taskAction?: "add" | "claim" | "done" | "block" | "cancel" | "list";
|
|
48
|
+
/** For task: task id */
|
|
49
|
+
taskId?: string;
|
|
50
|
+
/** For task add: title */
|
|
51
|
+
taskTitle?: string;
|
|
52
|
+
/** For mail: source teammate */
|
|
53
|
+
from?: string;
|
|
54
|
+
/** For mail: target teammate */
|
|
55
|
+
to?: string;
|
|
56
|
+
/** For allow-path: path prefix */
|
|
57
|
+
path?: string;
|
|
58
|
+
}
|
|
59
|
+
export declare const TEAM_ROOT_COMPLETIONS: readonly ["help", "spawn", "send", "status", "stop", "terminate", "approve", "mode", "preset", "dashboard", "progress", "psyche", "task", "mail", "allow-path"];
|
|
60
|
+
export declare const VALID_ROLES: TeammateRole[];
|
|
61
|
+
export declare const VALID_MODES: TeammateMode[];
|
|
62
|
+
export declare const VALID_PRESETS: PresetName[];
|
|
63
|
+
export declare const VALID_TASK_ACTIONS: readonly ["add", "claim", "done", "block", "cancel", "list"];
|
|
64
|
+
type TeamArgumentCompletionContext = {
|
|
65
|
+
commandName: string;
|
|
66
|
+
argumentText: string;
|
|
67
|
+
argumentPrefix: string;
|
|
68
|
+
tokenIndex: number;
|
|
69
|
+
previousTokens: string[];
|
|
70
|
+
};
|
|
71
|
+
export declare function getTeamArgumentCompletions(commandName: string, argumentPrefix: string, context?: TeamArgumentCompletionContext): Array<{
|
|
72
|
+
value: string;
|
|
73
|
+
label: string;
|
|
74
|
+
description?: string;
|
|
75
|
+
}> | null;
|
|
76
|
+
/**
|
|
77
|
+
* Parse a /team command invocation.
|
|
78
|
+
*/
|
|
79
|
+
export declare function parseTeamCommand(commandName: string, args?: string): ParsedTeamCommand | null;
|
|
80
|
+
/**
|
|
81
|
+
* Build help text for /team commands.
|
|
82
|
+
*/
|
|
83
|
+
export declare function buildTeamHelp(): string;
|
|
84
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var S=Object.defineProperty;var m=(r,t)=>S(r,"name",{value:t,configurable:!0});const x=["help","spawn","send","status","stop","terminate","approve","mode","preset","dashboard","progress","psyche","task","mail","allow-path"],c=["pm","architect","developer","designer","data-analyst","researcher","reviewer","implementer","planner","verifier","generic"],l=["research","plan","execute","review"],d=["solo","duo","squad"],I=["add","claim","done","block","cancel","list"],p=["--name","--harness"],b={help:"Show team commands",spawn:"Create a teammate",send:"Send work to a teammate",status:"Show teammate status",stop:"Stop a teammate's current turn",terminate:"Remove a teammate",approve:"Approve a teammate request",mode:"Change how a teammate works",preset:"Start with a preset team shape",dashboard:"Show or hide the team panel",progress:"Show teammate progress",psyche:"Show teammate decision settings",task:"Manage shared team tasks",mail:"Send a teammate-to-teammate note","allow-path":"Allow a teammate to write in a path",pm:"Plan priorities and coordinate work",architect:"Design structure and break down trade-offs",developer:"Have a teammate write code",designer:"Review product and interaction details","data-analyst":"Check evidence, metrics, and results",researcher:"Explore read-only context",reviewer:"Review code or plans without writing",implementer:"Have a teammate write code",planner:"Have a teammate make a plan",verifier:"Check whether the work is correct",generic:"Use a flexible teammate role","--name":"Choose the teammate name","--harness":"Use structured progress tracking",research:"Read and investigate without writing",plan:"Write a plan before code changes",execute:"Allow code changes",review:"Review without writing",solo:"Use one focused teammate",duo:"Use two teammates with complementary roles",squad:"Use a larger team for broader work",add:"Add a shared task",claim:"Assign a task to a teammate",done:"Mark a task complete",block:"Mark a task blocked",cancel:"Cancel a task",list:"List shared tasks"};function T(r,t){switch(r){case"team":return!t||t.tokenIndex===0?x:[];case"team:spawn":return t?t.tokenIndex===0?c:p:[...c,...p];case"team:preset":return!t||t.tokenIndex===0?d:[];case"team:task":return!t||t.tokenIndex===0?I:[];case"team:mode":return t?.tokenIndex===1?l:[];default:return[]}}m(T,"getTeamCompletionValues");function O(r,t,e){const a=t.trim().toLowerCase(),n=T(r,e).filter(i=>i.startsWith(a));return n.length>0?n.map(i=>({value:i,label:i,description:b[i]})):null}m(O,"getTeamArgumentCompletions");function y(r,t=""){const e=t.trim();switch(r){case"team":return e?e==="help"?{command:"help"}:e.startsWith("spawn ")?u(e.slice(6)):e.startsWith("send ")?h(e.slice(5)):e.startsWith("status")?f(e.slice(6).trim()):e.startsWith("stop ")?{command:"stop",target:e.slice(5).trim()}:e.startsWith("terminate ")?{command:"terminate",target:e.slice(10).trim()}:e==="approve"?{command:"approve"}:e.startsWith("approve ")?{command:"approve",requestId:e.slice(8).trim()||void 0}:e.startsWith("mode ")?g(e.slice(5)):e.startsWith("preset ")?w(e.slice(7)):e==="dashboard"?{command:"dashboard"}:e.startsWith("progress")?o("progress",e.slice(8).trim()):e.startsWith("psyche")?o("psyche",e.slice(6).trim()):e.startsWith("task")?k(e.slice(4).trim()):e.startsWith("mail ")?A(e.slice(5)):e.startsWith("allow-path ")?v(e.slice(11)):{command:"auto",taskDescription:e}:{command:"list"};case"team:spawn":return u(e);case"team:send":return h(e);case"team:status":return f(e);case"team:stop":return e?{command:"stop",target:e}:null;case"team:terminate":return e?{command:"terminate",target:e}:null;case"team:approve":return e?{command:"approve",requestId:e}:{command:"approve"};case"team:mode":return g(e);case"team:preset":return w(e);case"team:dashboard":return{command:"dashboard"};case"team:progress":return o("progress",e);case"team:psyche":return o("psyche",e);case"team:task":return k(e);case"team:mail":return A(e);case"team:allow-path":return v(e);default:return null}}m(y,"parseTeamCommand");function u(r){const t=r.trim().split(/\s+/);if(t.length===0)return null;const e=t[0];if(!c.includes(e))return null;let a,s=!1;for(let n=1;n<t.length;n++)t[n]==="--name"&&n+1<t.length?(a=t[n+1],n++):t[n]==="--harness"&&(s=!0);return s?{command:"spawn",role:e,name:a,harnessEnabled:s}:{command:"spawn",role:e,name:a}}m(u,"parseSpawnArgs");function h(r){const t=r.trim(),e=t.indexOf(" ");if(e===-1)return null;const a=t.slice(0,e),s=t.slice(e+1).trim();return!a||!s?null:{command:"send",target:a,message:s}}m(h,"parseSendArgs");function f(r){return{command:"status",target:r.trim()||void 0}}m(f,"parseStatusArgs");function g(r){const t=r.trim().split(/\s+/);if(t.length<2)return null;const e=t[0],a=t[1];return l.includes(a)?{command:"mode",target:e,mode:a}:null}m(g,"parseModeArgs");function w(r){const t=r.trim(),e=t.indexOf(" "),a=e===-1?t:t.slice(0,e);if(!d.includes(a))return null;const s=e===-1?"":t.slice(e+1).trim();return s?{command:"preset",presetName:a,taskDescription:s}:null}m(w,"parsePresetArgs");function o(r,t){const e=t.trim();return{command:r,target:e||void 0}}m(o,"parseTargetOnly");function k(r){const t=r.trim();if(!t||t==="list")return{command:"task",taskAction:"list"};const e=t.indexOf(" "),a=e===-1?t:t.slice(0,e),s=e===-1?"":t.slice(e+1).trim();if(a==="add")return s?{command:"task",taskAction:"add",taskTitle:s}:null;if(a==="claim"){const n=s.split(/\s+/);return n[0]&&n[1]?{command:"task",taskAction:"claim",taskId:n[0],target:n[1]}:null}return(a==="done"||a==="block"||a==="cancel")&&s?{command:"task",taskAction:a,taskId:s.split(/\s+/)[0]}:null}m(k,"parseTaskArgs");function A(r){const t=r.trim(),e=t.indexOf(" ");if(e===-1)return null;const a=t.indexOf(" ",e+1);if(a===-1)return null;const s=t.slice(0,e),n=t.slice(e+1,a),i=t.slice(a+1).trim();return!s||!n||!i?null:{command:"mail",from:s,to:n,message:i}}m(A,"parseMailArgs");function v(r){const t=r.trim(),e=t.indexOf(" ");if(e===-1)return null;const a=t.slice(0,e),s=t.slice(e+1).trim();return!a||!s?null:{command:"allow-path",target:a,path:s}}m(v,"parseAllowPathArgs");function W(){return`
|
|
2
|
+
Team Commands (AgentTeam + Harness):
|
|
3
|
+
/team - List all teammates
|
|
4
|
+
/team <task> - Auto-select a team and start the task
|
|
5
|
+
/team:spawn <role> [--name <n>] [--harness] - Create a persistent teammate
|
|
6
|
+
/team:preset <solo|duo|squad> <task> - Create teammates from a preset
|
|
7
|
+
/team:send <name> <message> - Send message to a teammate
|
|
8
|
+
/team:status [<name>] - Show team or teammate status
|
|
9
|
+
/team:progress [<name>] - Show harness progress
|
|
10
|
+
/team:psyche [<name>] - Show psyche weights
|
|
11
|
+
/team:dashboard - Toggle team dashboard widget
|
|
12
|
+
/team:task list - Show shared team tasks
|
|
13
|
+
/team:task add <title> - Add a shared task
|
|
14
|
+
/team:task claim <id> <name> - Assign/claim task for teammate
|
|
15
|
+
/team:task done <id> - Mark task done
|
|
16
|
+
/team:task block <id> - Mark task blocked
|
|
17
|
+
/team:mail <from> <to> <msg> - Send teammate-to-teammate mailbox message
|
|
18
|
+
/team:allow-path <name> <path> - Grant teammate write access to a path prefix
|
|
19
|
+
/team:stop <name> - Stop teammate's current turn
|
|
20
|
+
/team:terminate <name> - Destroy a teammate
|
|
21
|
+
/team:approve <request-id> - Approve a permission request
|
|
22
|
+
/team:mode <name> <mode> - Switch teammate mode
|
|
23
|
+
|
|
24
|
+
Roles: pm, architect, developer, designer, data-analyst, researcher, reviewer, implementer, planner, verifier, generic
|
|
25
|
+
Modes: research, plan, execute, review
|
|
26
|
+
|
|
27
|
+
Examples:
|
|
28
|
+
/team Implement login with tests
|
|
29
|
+
/team:spawn implementer --name alice --harness
|
|
30
|
+
/team:preset solo "Implement login feature"
|
|
31
|
+
/team:send alice "Implement login feature"
|
|
32
|
+
/team:task add Implement login tests
|
|
33
|
+
/team:task claim T-1 alice
|
|
34
|
+
/team:mail alice verifier "Please review T-1 when ready"
|
|
35
|
+
/team:status alice
|
|
36
|
+
/team:mode alice execute
|
|
37
|
+
/team:terminate alice
|
|
38
|
+
`.trim()}m(W,"buildTeamHelp");export{x as TEAM_ROOT_COMPLETIONS,l as VALID_MODES,d as VALID_PRESETS,c as VALID_ROLES,I as VALID_TASK_ACTIONS,W as buildTeamHelp,O as getTeamArgumentCompletions,y as parseTeamCommand};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: PermissionStore, PermissionRequest, PermissionAction, PermissionDecision
|
|
3
|
+
* [FROM]: No external deps
|
|
4
|
+
* [TO]: Consumed by team-runtime.ts, index.ts
|
|
5
|
+
* [HERE]: extensions/builtin/team/team-permissions.ts - Phase B B.4 permission model
|
|
6
|
+
*
|
|
7
|
+
* Per refactor plan §B.4: "permission must be frozen before mailbox".
|
|
8
|
+
*
|
|
9
|
+
* The permission model is the trust boundary between leader and teammate.
|
|
10
|
+
* Any action that mutates the world or escalates a teammate's mode goes
|
|
11
|
+
* through a PermissionRequest which the leader must approve via
|
|
12
|
+
* `/team:approve <request-id>`.
|
|
13
|
+
*
|
|
14
|
+
* Pending requests carry a `resolve` callback so the runtime side can
|
|
15
|
+
* `await` the leader's decision without polling.
|
|
16
|
+
*/
|
|
17
|
+
export type PermissionAction = "mode_change_to_execute" | "write_path" | "bash_command";
|
|
18
|
+
export type PermissionStatus = "pending" | "approved" | "denied" | "expired";
|
|
19
|
+
export interface PermissionRequest {
|
|
20
|
+
id: string;
|
|
21
|
+
teammateId: string;
|
|
22
|
+
teammateName: string;
|
|
23
|
+
action: PermissionAction;
|
|
24
|
+
detail: string;
|
|
25
|
+
createdAt: number;
|
|
26
|
+
status: PermissionStatus;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* In-memory permission store. Decisions never persist across process restarts:
|
|
30
|
+
* if the main session dies while a request is pending, the teammate is left
|
|
31
|
+
* idle and the leader must reissue the action after restart.
|
|
32
|
+
*/
|
|
33
|
+
export declare class PermissionStore {
|
|
34
|
+
private requests;
|
|
35
|
+
private pathAllowlist;
|
|
36
|
+
/**
|
|
37
|
+
* File a new permission request and return a promise that resolves
|
|
38
|
+
* with the leader's decision (true = approved, false = denied).
|
|
39
|
+
*/
|
|
40
|
+
request(teammateId: string, teammateName: string, action: PermissionAction, detail: string): {
|
|
41
|
+
id: string;
|
|
42
|
+
decision: Promise<boolean>;
|
|
43
|
+
};
|
|
44
|
+
/** Approve a pending request. Returns false if id is unknown or already resolved. */
|
|
45
|
+
approve(id: string): boolean;
|
|
46
|
+
/** Deny a pending request. */
|
|
47
|
+
deny(id: string): boolean;
|
|
48
|
+
/** All pending requests, sorted oldest first. */
|
|
49
|
+
listPending(): PermissionRequest[];
|
|
50
|
+
/** Get a request snapshot without the resolve handle. */
|
|
51
|
+
get(id: string): PermissionRequest | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* Cancel any pending requests owned by `teammateId`. Used when the
|
|
54
|
+
* teammate is terminated so the awaiting promise does not leak.
|
|
55
|
+
*/
|
|
56
|
+
cancelForTeammate(teammateId: string): void;
|
|
57
|
+
/** Grant a teammate write permission for a path prefix. */
|
|
58
|
+
allowPath(teammateId: string, path: string): void;
|
|
59
|
+
/** Check whether a teammate currently holds write access to `path`. */
|
|
60
|
+
isPathAllowed(teammateId: string, path: string): boolean;
|
|
61
|
+
/** Drop a teammate's allowlist entirely (called on terminate). */
|
|
62
|
+
clearPaths(teammateId: string): void;
|
|
63
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var p=Object.defineProperty;var l=(r,t)=>p(r,"name",{value:t,configurable:!0});class f{static{l(this,"PermissionStore")}requests=new Map;pathAllowlist=new Map;request(t,e,s,a){const n=crypto.randomUUID(),u=new Promise(d=>{const c={id:n,teammateId:t,teammateName:e,action:s,detail:a,createdAt:Date.now(),status:"pending",resolve:d};this.requests.set(n,c)});return{id:n,decision:u}}approve(t){const e=this.requests.get(t);return!e||e.status!=="pending"?!1:(e.status="approved",e.resolve(!0),!0)}deny(t){const e=this.requests.get(t);return!e||e.status!=="pending"?!1:(e.status="denied",e.resolve(!1),!0)}listPending(){return[...this.requests.values()].filter(t=>t.status==="pending").map(o).sort((t,e)=>t.createdAt-e.createdAt)}get(t){const e=this.requests.get(t);return e?o(e):void 0}cancelForTeammate(t){for(const e of this.requests.values())e.teammateId===t&&e.status==="pending"&&(e.status="expired",e.resolve(!1))}allowPath(t,e){let s=this.pathAllowlist.get(t);s||(s=new Set,this.pathAllowlist.set(t,s)),s.add(i(e))}isPathAllowed(t,e){const s=this.pathAllowlist.get(t);if(!s)return!1;const a=i(e);for(const n of s)if(a===n||a.startsWith(`${n}/`))return!0;return!1}clearPaths(t){this.pathAllowlist.delete(t)}}function o(r){const{resolve:t,...e}=r;return e}l(o,"stripResolve");function i(r){return r.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()}l(i,"normalizeAllowedPath");export{f as PermissionStore};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides PRESETS, executePreset(), executeAutoTeam(), selectAutoTeamPlan(), formatPresetResult()
|
|
3
|
+
* [FROM]: Depends on ./team-types and ./team-runtime for spawning configured teammates
|
|
4
|
+
* [TO]: Consumed by index.ts for /team:preset command handling
|
|
5
|
+
* [HERE]: extensions/builtin/team/team-presets.ts - built-in AgentTeam preset definitions
|
|
6
|
+
*/
|
|
7
|
+
import type { TeamRuntime } from "./team-runtime.js";
|
|
8
|
+
import type { TeamRuntimeEvent } from "./team-runtime.js";
|
|
9
|
+
import type { PersistedTeammate, PresetName, PsycheWeights, TeammateMode, TeammateRole } from "./team-types.js";
|
|
10
|
+
export interface PresetTeammateSpec {
|
|
11
|
+
role: TeammateRole;
|
|
12
|
+
name?: string;
|
|
13
|
+
mode?: TeammateMode;
|
|
14
|
+
harnessEnabled: boolean;
|
|
15
|
+
psycheOverrides?: Partial<PsycheWeights>;
|
|
16
|
+
}
|
|
17
|
+
export interface PresetSpec {
|
|
18
|
+
name: PresetName;
|
|
19
|
+
description: string;
|
|
20
|
+
teammates: PresetTeammateSpec[];
|
|
21
|
+
autoStart: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface PresetResult {
|
|
24
|
+
preset: PresetSpec;
|
|
25
|
+
teammates: PersistedTeammate[];
|
|
26
|
+
started?: {
|
|
27
|
+
teammateName: string;
|
|
28
|
+
success: boolean;
|
|
29
|
+
error?: string;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export interface AutoTeamPlan {
|
|
33
|
+
presetName: PresetName;
|
|
34
|
+
rationale: string;
|
|
35
|
+
startTargetRole: TeammateRole;
|
|
36
|
+
}
|
|
37
|
+
export interface AutoTeamResult extends PresetResult {
|
|
38
|
+
plan: AutoTeamPlan;
|
|
39
|
+
}
|
|
40
|
+
export declare const PRESETS: Record<PresetName, PresetSpec>;
|
|
41
|
+
export declare function executePreset(runtime: TeamRuntime, presetName: PresetName, taskDescription: string, baseCwd: string, model?: Parameters<TeamRuntime["send"]>[2], onEvent?: (event: TeamRuntimeEvent) => void, autoStartOverride?: boolean): Promise<PresetResult>;
|
|
42
|
+
export declare function executeAutoTeam(runtime: TeamRuntime, taskDescription: string, baseCwd: string, model?: Parameters<TeamRuntime["send"]>[2], onEvent?: (event: TeamRuntimeEvent) => void, completeSimple?: (systemPrompt: string, userMessage: string) => Promise<string | undefined>): Promise<AutoTeamResult>;
|
|
43
|
+
export declare function selectAutoTeamPlan(taskDescription: string, completeSimple?: (systemPrompt: string, userMessage: string) => Promise<string | undefined>): Promise<AutoTeamPlan>;
|
|
44
|
+
export declare function formatPresetResult(result: PresetResult): string[];
|
|
45
|
+
export declare function formatAutoTeamResult(result: AutoTeamResult): string[];
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var h=Object.defineProperty;var r=(e,t)=>h(e,"name",{value:t,configurable:!0});const g={solo:{name:"solo",description:"Single developer with harness, suited for focused delivery tasks.",teammates:[{role:"developer",name:"Theo",harnessEnabled:!0}],autoStart:!0},duo:{name:"duo",description:"Architect plus developer for discovery followed by execution.",teammates:[{role:"architect",name:"Ada",mode:"plan",harnessEnabled:!1},{role:"developer",name:"Theo",harnessEnabled:!0}],autoStart:!1},squad:{name:"squad",description:"PM, architect, developer, designer, and data analyst for explicit multi-agent handoffs.",teammates:[{role:"pm",name:"Mason",mode:"plan",harnessEnabled:!1},{role:"architect",name:"Ada",mode:"plan",harnessEnabled:!1},{role:"developer",name:"Theo",harnessEnabled:!0},{role:"designer",name:"Iris",mode:"research",harnessEnabled:!1,psycheOverrides:{id:1.3,ego:1.1}},{role:"data-analyst",name:"Quinn",mode:"review",harnessEnabled:!1,psycheOverrides:{superego:1.5,id:.5}}],autoStart:!1}};async function b(e,t,a,s,i,n,l){const d=g[t],o=[];for(const m of d.teammates)o.push(await v(e,m,s));const c={preset:d,teammates:o};if((l??d.autoStart)&&o[0]){const m=await e.send(o[0].identity.name,a,i,{onEvent:n});c.started={teammateName:o[0].identity.name,success:m.success,error:m.error}}return c}r(b,"executePreset");async function R(e,t,a,s,i,n){const l=await y(t,n),d=await b(e,l.presetName,t,a,s,i,!1),o=d.teammates.find(u=>u.identity.role===l.startTargetRole)??d.teammates[0],c={...d,plan:l};if(o){const u=await e.send(o.identity.name,t,s,{onEvent:i});c.started={teammateName:o.identity.name,success:u.success,error:u.error,response:u.response}}return c}r(R,"executeAutoTeam");async function y(e,t){if(t){const a=await N(e,t);if(a){const s=p(e);return s.presetName==="squad"&&a.presetName!=="squad"&&f(e)?{...s,rationale:"Website, clone, or design delivery tasks need the full PM, architecture, development, design, and validation squad."}:a}}return p(e)}r(y,"selectAutoTeamPlan");async function v(e,t,a){const s=t.name?e.getTeammate(t.name):void 0;return s&&s.identity.role===t.role?s:e.spawn({role:t.role,name:t.name,mode:t.mode,baseCwd:a,harnessEnabled:t.harnessEnabled,psycheOverrides:t.psycheOverrides})}r(v,"getOrSpawnPresetTeammate");function T(e){const t=[`Preset "${e.preset.name}" created: ${e.preset.description}`,""];for(const a of e.teammates){const s=a.harness?.enabled?" harness:on":"";t.push(` ${a.identity.name} (${a.identity.role}, ${a.mode})${s}`)}if(e.started){const a=e.started;t.push("",a.success?`Auto-started ${a.teammateName}.`:`Auto-start for ${a.teammateName} failed: ${a.error??"Unknown error"}`),a.success&&a.response?.trim()&&t.push("",`Response from ${a.teammateName}:`,"",a.response)}return t}r(T,"formatPresetResult");function A(e){return[`Auto team selected "${e.plan.presetName}".`,`Reason: ${e.plan.rationale}`,"",...T(e)]}r(A,"formatAutoTeamResult");async function N(e,t){try{const a=await t(["You select the smallest useful AgentTeam preset for a coding task.",'Return strict JSON only: {"presetName":"solo|duo|squad","rationale":"short reason","startTargetRole":"developer|architect|pm"}',"solo: focused implementation or small/medium bugfix.","duo: implementation needs architecture reading, API mapping, or light decomposition before coding.","squad: tasks that need explicit handoff, product framing, design input, data validation, review, tests, or broader coordination.","squad: also use for websites, landing pages, website clones, browser research, design systems, frontend polish, and release-readiness checks."].join(`
|
|
2
|
+
`),e);if(!a)return;const s=JSON.parse(w(a));if(s.presetName==="solo"||s.presetName==="duo"||s.presetName==="squad"){const i=s.startTargetRole==="pm"&&s.presetName==="squad"?"pm":s.startTargetRole==="architect"&&(s.presetName==="duo"||s.presetName==="squad")?"architect":"developer";return{presetName:s.presetName,rationale:typeof s.rationale=="string"?s.rationale:"Selected by the current model.",startTargetRole:i}}}catch{return}}r(N,"selectAutoTeamPlanWithModel");function p(e){const t=e.toLowerCase(),a=["architecture","refactor","migration","migrate","system","multiple","end-to-end","e2e","large","\u5B8C\u6574","\u91CD\u6784","\u67B6\u6784","\u8FC1\u79FB","\u5927\u578B"],s=["website","official site","site","homepage","landing","front-end","frontend","web page","clone","rebuild","design system","visual","ux","ui","browser"],i=["test","tests","verify","review","security","auth","payment","release","bug","\u9A8C\u8BC1","\u6D4B\u8BD5","\u5B89\u5168","\u767B\u5F55","\u652F\u4ED8","\u53D1\u5E03"];return a.some(n=>t.includes(n))||s.some(n=>t.includes(n))||f(e)||e.length>240?{presetName:"squad",rationale:"Task looks broad or architectural, so PM, architect, developer, designer, and data analyst are safer.",startTargetRole:"pm"}:i.some(n=>t.includes(n))?{presetName:"squad",rationale:"Task has correctness or verification signals, so explicit PM, architecture, implementation, design, and data validation are appropriate.",startTargetRole:"pm"}:t.includes("refactor")||t.includes("api")||t.includes("investigate")||t.includes("analyze")?{presetName:"duo",rationale:"Task benefits from architecture framing before coding, so an architect plus developer is appropriate.",startTargetRole:"architect"}:{presetName:"solo",rationale:"Task appears focused enough for one harnessed developer.",startTargetRole:"developer"}}r(p,"selectAutoTeamPlanHeuristic");function f(e){return/(?:\u5b98\u7f51|\u9875\u9762|\u524d\u7aef|\u8bbe\u8ba1|\u590d\u523b|\u514b\u9686|\u89c6\u89c9|\u4ea4\u4e92)/.test(e)}r(f,"hasWebsiteOrDesignDeliverySignal");function w(e){const t=e.indexOf("{"),a=e.lastIndexOf("}");return t===-1||a===-1||a<=t?e:e.slice(t,a+1)}r(w,"extractJsonObject");export{g as PRESETS,R as executeAutoTeam,b as executePreset,A as formatAutoTeamResult,T as formatPresetResult,y as selectAutoTeamPlan};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides computePsycheWeights(), buildPsychePrompt(), formatPsycheWeights()
|
|
3
|
+
* [FROM]: Depends on ./team-types for teammate roles, phases, weights, persisted teammate state
|
|
4
|
+
* [TO]: Consumed by team-runtime.ts, team-dashboard.ts, index.ts for phase-aware teammate prompts and status rendering
|
|
5
|
+
* [HERE]: extensions/builtin/team/team-psyche.ts - Freud-inspired internal prompt layer for AgentTeam harness work
|
|
6
|
+
*/
|
|
7
|
+
import type { HarnessPhase, PersistedTeammate, PsycheWeights, TeammateRole } from "./team-types.js";
|
|
8
|
+
export type SoulTraits = Partial<Record<string, number>>;
|
|
9
|
+
export declare function computePsycheWeights(phase: HarnessPhase, role: TeammateRole, soulTraits?: SoulTraits, overrides?: Partial<PsycheWeights>): PsycheWeights;
|
|
10
|
+
export declare function buildPsychePrompt(weights: PsycheWeights, phase: HarnessPhase, teammate: PersistedTeammate): string;
|
|
11
|
+
export declare function buildIdLayer(weight: number, phase: HarnessPhase): string;
|
|
12
|
+
export declare function buildEgoLayer(weight: number, phase: HarnessPhase): string;
|
|
13
|
+
export declare function buildSuperegoLayer(weight: number, phase: HarnessPhase): string;
|
|
14
|
+
export declare function formatPsycheWeights(weights: PsycheWeights | undefined): string;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
var p=Object.defineProperty;var i=(e,t)=>p(e,"name",{value:t,configurable:!0});const d={init:{id:2,ego:7,superego:1},coding:{id:5,ego:3,superego:2},verify:{id:1,ego:2,superego:7},fix:{id:4,ego:4,superego:2},complete:{id:1,ego:3,superego:6}},g={pm:{ego:1.4,superego:1.1},architect:{ego:1.4,id:.8},developer:{id:1.1},designer:{id:1.2,ego:1.1},"data-analyst":{superego:1.4,ego:1.1},implementer:{},verifier:{superego:1.5,id:.5},planner:{ego:1.3,id:.7},researcher:{ego:1.2},reviewer:{superego:1.3},generic:{}},f=[{trait:"conscientiousness",target:"superego",scale:.3},{trait:"openness",target:"id",scale:.3},{trait:"neuroticism",target:"ego",scale:.2},{trait:"explorationDrive",target:"id",scale:.2},{trait:"safetyMargin",target:"superego",scale:.2}];function $(e,t,n,o){const a={...d[e]},u=g[t]??{};for(const r of Object.keys(u))a[r]=a[r]*(u[r]??1);if(n)for(const r of f){const c=h(n[r.trait]);c!==void 0&&(a[r.target]=a[r.target]*(1+c*r.scale))}if(o)for(const r of Object.keys(o))a[r]=o[r]??a[r];return v(a)}i($,"computePsycheWeights");function S(e,t,n){const o=b(e);return["## Internal Psyche Structure","","You have three simultaneous internal forces. They are not separate agents; they jointly influence every decision.",`Current phase: ${t} | Weights: Id=${e.id} Ego=${e.ego} Superego=${e.superego}`,`Dominant layer: ${o}`,"",l(e.id,t),"",m(e.ego,t),"",y(e.superego,t),"",`Apply these forces as ${n.identity.name} (${n.identity.role}) in ${n.mode} mode.`].join(`
|
|
2
|
+
`)}i(S,"buildPsychePrompt");function l(e,t){const n=e>=5?"dominant":e<=2?"restrained":"active",o=t==="verify"?"Suppress implementation impulses. Record defects instead of fixing them in this phase.":t==="init"?"Channel creative drive into decomposing the work into concrete, testable features.":"Implement one valuable feature at a time and keep momentum visible.";return[`### Id - Creative Drive [${n}]`,o].join(`
|
|
3
|
+
`)}i(l,"buildIdLayer");function m(e,t){const n=e>=5?"dominant":e<=2?"supporting":"active",o=t==="init"?"First understand the task, create the harness files, then stop after the initialization checkpoint.":"Read the injected harness files, choose the next bounded step, and preserve context by updating progress.";return[`### Ego - Reality Coordination [${n}]`,o,"- Work incrementally; avoid one-shotting a large task.","- Prefer observable progress over broad unfinished changes."].join(`
|
|
4
|
+
`)}i(m,"buildEgoLayer");function y(e,t){const n=e>=5?"dominant":e<=2?"watching":"active",o=t==="verify"?"Strictly verify every claimed passing feature and downgrade any unverified claim.":"Do not claim completion without concrete verification evidence.";return[`### Superego - Quality Constraint [${n}]`,o,"- Do not remove or rewrite feature definitions in feature_list.json.","- Only set passes=true after executing the listed verification steps.","- Keep progress.txt accurate enough for the next session to resume."].join(`
|
|
5
|
+
`)}i(y,"buildSuperegoLayer");function I(e){return e?`psyche: Id=${e.id} Ego=${e.ego} Superego=${e.superego}`:"psyche: unavailable"}i(I,"formatPsycheWeights");function h(e){if(!(typeof e!="number"||!Number.isFinite(e)))return e>1?Math.max(-1,Math.min(1,e/100)):Math.max(-1,Math.min(1,e))}i(h,"normalizeTrait");function v(e){return{id:s(e.id),ego:s(e.ego),superego:s(e.superego)}}i(v,"clampWeights");function s(e){return Math.max(0,Math.min(10,Math.round(e*10)/10))}i(s,"clampWeight");function b(e){return e.superego>=e.id&&e.superego>=e.ego?"Superego":e.ego>=e.id&&e.ego>=e.superego?"Ego":"Id"}i(b,"getDominantLayer");export{m as buildEgoLayer,l as buildIdLayer,S as buildPsychePrompt,y as buildSuperegoLayer,$ as computePsycheWeights,I as formatPsycheWeights};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides TeamRuntime helper functions for prompts, harness turns, live events, tools, labels, roles, and path guards
|
|
3
|
+
* [FROM]: Depends on core tools/sub-agent events, team-harness, team-psyche, team-mailbox, team-types
|
|
4
|
+
* [TO]: Consumed by team-runtime.ts to keep TeamRuntime focused on lifecycle, persistence, and send queues
|
|
5
|
+
* [HERE]: extensions/builtin/team/team-runtime-helpers.ts - stateless runtime support boundary
|
|
6
|
+
*/
|
|
7
|
+
import type { SubAgentEvent } from "../../../core/sub-agent/index.js";
|
|
8
|
+
import { type Tool } from "../../../core/tools/index.js";
|
|
9
|
+
import type { MailboxMessage } from "./team-mailbox.js";
|
|
10
|
+
import type { AgentLiveView, PersistedTeammate, TeamTask, TeammateIdentity, TeammateMode, TeammateRole } from "./team-types.js";
|
|
11
|
+
import type { RuntimeTeammate } from "./team-runtime.js";
|
|
12
|
+
export declare function ensureLiveView(view: AgentLiveView | undefined, identity: TeammateIdentity): AgentLiveView;
|
|
13
|
+
export declare function getDefaultModeForRole(role: TeammateRole): TeammateMode;
|
|
14
|
+
export declare function buildTeammatePrompt(input: {
|
|
15
|
+
state: PersistedTeammate;
|
|
16
|
+
teammates: PersistedTeammate[];
|
|
17
|
+
tasks: TeamTask[];
|
|
18
|
+
mailboxMessages: MailboxMessage[];
|
|
19
|
+
}): string;
|
|
20
|
+
export declare function prepareHarnessTurn(input: {
|
|
21
|
+
teammate: RuntimeTeammate;
|
|
22
|
+
taskDescription: string;
|
|
23
|
+
soulManager: unknown;
|
|
24
|
+
}): Promise<{
|
|
25
|
+
psychePrompt: string;
|
|
26
|
+
harnessInstructions: string;
|
|
27
|
+
contextFiles: string[];
|
|
28
|
+
} | undefined>;
|
|
29
|
+
export declare function applyLiveEvent(teammate: RuntimeTeammate, event: SubAgentEvent): void;
|
|
30
|
+
export declare function selectToolsForMode(input: {
|
|
31
|
+
mode: TeammateMode;
|
|
32
|
+
cwd: string;
|
|
33
|
+
getAllTeammates: () => PersistedTeammate[];
|
|
34
|
+
isPathAllowed: (teammateId: string, absolutePath: string) => boolean;
|
|
35
|
+
}): Tool[];
|
|
36
|
+
export declare function createWritePathGuard(input: {
|
|
37
|
+
cwd: string;
|
|
38
|
+
getAllTeammates: () => PersistedTeammate[];
|
|
39
|
+
isPathAllowed: (teammateId: string, absolutePath: string) => boolean;
|
|
40
|
+
}): (absolutePath: string) => void;
|
|
41
|
+
export declare function normalizePath(path: string): string;
|
|
42
|
+
export declare function isWithinPath(target: string, root: string): boolean;
|
|
43
|
+
export declare function summarizeTask(value: string): string;
|
|
44
|
+
export declare function singleLine(value: string): string;
|
|
45
|
+
export declare function tailText(value: string, maxLength: number): string;
|
|
46
|
+
export declare function labelFromIndex(index: number): string;
|
|
47
|
+
export declare function indexFromLabel(label: string): number;
|
|
48
|
+
export declare function isBuilderRole(role: TeammateRole): boolean;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var T=Object.defineProperty;var a=(e,t)=>T(e,"name",{value:t,configurable:!0});import{isAbsolute as k,resolve as v}from"node:path";import{createBashTool as g,createCodingTools as N,createReadOnlyTools as P,createSandboxHook as w}from"../../../core/tools/index.js";import{beginHarnessTurn as A,buildHarnessInstructions as C,ensureHarnessFiles as F,prepareContextFiles as R}from"./team-harness.js";import{buildPsychePrompt as W,computePsycheWeights as M}from"./team-psyche.js";function O(e,t){return{name:t.name,label:t.label,role:t.role,currentTask:e?.currentTask,lastUtterance:e?.lastUtterance,blockedOn:e?.blockedOn,progress:e?.progress}}a(O,"ensureLiveView");function j(e){switch(e){case"pm":case"architect":return"plan";case"designer":case"data-analyst":case"researcher":return"research";case"developer":return"plan";case"reviewer":case"verifier":return"review";case"implementer":case"planner":return"plan";default:return"research"}}a(j,"getDefaultModeForRole");function D(e){const{state:t,teammates:r,tasks:s,mailboxMessages:i}=e,n=["You are a persistent teammate in an AgentTeam.","","Identity:",` Label: ${t.identity.label}`,` Name: ${t.identity.name}`,` Role: ${t.identity.role}`,` Mode: ${t.mode}`,` Working directory: ${t.cwd}`,"","Mode rules:"," - research: read-only exploration and reporting"," - plan: read-only; produce a plan and wait for leader approval before executing"," - execute: sandboxed write inside your working directory"," - review: read-only review and feedback","","Team roster:",...r.map(o=>` - ${o.identity.name} (${o.identity.role})`),"","Mention rules:"," - Use @Name mentions only for concrete handoffs."," - Every mention must include the next-step task after the mention."," - Do not ping another teammate without actionable work.","","Conversation history with the leader:"];if(t.messages.length===0)n.push(" (none yet)");else for(const o of t.messages){const h=o.direction==="leader"?"catui":t.identity.name;n.push(`${h}: ${o.content}`)}const l=s.filter(o=>o.ownerId===t.identity.id),p=s.filter(o=>o.status==="blocked"),d=s.filter(o=>o.status==="open").slice(0,8);if(n.push("","Shared team tasks:"),l.length===0&&p.length===0&&d.length===0)n.push(" (none)");else{if(l.length>0){n.push(" Claimed by you:");for(const o of l)n.push(` ${f(o)}`)}if(p.length>0){n.push(" Blocked:");for(const o of p.slice(0,6))n.push(` ${f(o)}`)}if(d.length>0){n.push(" Open:");for(const o of d)n.push(` ${f(o)}`)}}if(n.push("","Recent team mailbox:"),i.length===0)n.push(" (none)");else for(const o of i){const h=o.teammateName,x=o.targetTeammateName?` -> ${o.targetTeammateName}`:"",$=typeof o.payload.content=="string"?o.payload.content:typeof o.payload.action=="string"?`${o.payload.action}`:JSON.stringify(o.payload);n.push(` [${o.type}] ${h}${x}: ${$}`)}return n.push("","Respond to the leader's last message in your current mode."),n.join(`
|
|
2
|
+
`)}a(D,"buildTeammatePrompt");async function E(e){const{teammate:t,taskDescription:r,soulManager:s}=e,i=t.state.harness;if(!i?.enabled)return;await F(i,t.state.cwd,r),t.state.harness=await A(i,t.state.cwd);const n=await S(s),l=M(t.state.harness.phase,t.state.identity.role,n,t.state.psycheOverrides);t.state.psyche=l;const p=W(l,t.state.harness.phase,t.state),d=await C(t.state.harness,t.state.cwd,r);return{psychePrompt:p,harnessInstructions:d,contextFiles:R(t.state.harness)}}a(E,"prepareHarnessTurn");async function S(e){const t=e;if(t?.getProfile)try{return(await t.getProfile())?.personality}catch{return}}a(S,"getSoulTraits");function G(e,t){const r=e.state.live,s=O(e.state.liveView,e.state.identity);switch(t.type){case"agent_start":e.state.live={phase:"starting",preview:"Sub-agent starting...",toolName:null,updatedAt:t.timestamp},e.state.liveView={...s,progress:"starting"};break;case"message_update":e.state.live={phase:t.text?"thinking":r?.phase??"thinking",preview:c(t.text||r?.preview||"",1200),toolName:r?.toolName??null,updatedAt:t.timestamp},e.state.liveView={...s,lastUtterance:c(m(t.text||r?.preview||""),200),progress:"thinking"};break;case"message_end":e.state.live={phase:"finishing",preview:c(t.text||r?.preview||"",1200),toolName:r?.toolName??null,updatedAt:t.timestamp},e.state.liveView={...s,lastUtterance:c(m(t.text||r?.preview||""),200),progress:"finishing"};break;case"tool_start":case"tool_update":case"tool_end":e.state.live={phase:"tool",preview:t.type==="tool_update"?c(String(t.partialResult??r?.preview??""),1200):r?.preview??"",toolName:t.toolName,updatedAt:t.timestamp},e.state.liveView={...s,progress:`tool:${t.toolName}`};break;case"agent_end":e.state.live={phase:t.success?"done":"error",preview:t.error??r?.preview??"",toolName:null,updatedAt:t.timestamp},e.state.liveView={...s,progress:t.success?"done":"error"};break}}a(G,"applyLiveEvent");function J(e){switch(e.mode){case"research":case"review":case"plan":return y(e.cwd);case"execute":return V(e);default:return y(e.cwd)}}a(J,"selectToolsForMode");function y(e){const t=P(e),r=g(e,{spawnHook:w()});return[...t.filter(s=>s.name!=="bash"),r]}a(y,"createReadOnlyToolsForCwd");function V(e){const t=_(e),r=N(e.cwd,{edit:{beforeWrite:t},write:{beforeWrite:t}}),s=g(e.cwd,{spawnHook:w({allowWritePath:a(i=>{try{return t(i),!0}catch{return!1}},"allowWritePath"),blockedMessage:"Write operations outside the teammate workspace are not allowed. Use /team:allow-path to grant a path prefix."})});return[...r.filter(i=>i.name!=="bash"),s]}a(V,"createSandboxedTools");function _(e){const t=u(e.cwd);return r=>{const s=u(r),i=e.getAllTeammates().find(n=>u(n.cwd)===t);if(!H(s,t)&&!(i&&e.isPathAllowed(i.identity.id,s)))throw new Error(`Write denied for ${s}. Team execute mode may only write inside ${t} unless the leader grants a path allowlist.`)}}a(_,"createWritePathGuard");function u(e){return v((k(e),e))}a(u,"normalizePath");function H(e,t){const r=b(t),s=b(e);return s===r||s.startsWith(`${r}/`)}a(H,"isWithinPath");function f(e){const t=e.ownerName?` owner:${e.ownerName}`:"",r=e.dependsOn.length?` deps:${e.dependsOn.join(",")}`:"",s=e.artifactPaths.length?` artifacts:${e.artifactPaths.join(",")}`:"",i=e.description?` - ${e.description}`:"";return`${e.id} [${e.status}]${t}${r}${s} ${e.title}${i}`}a(f,"formatTaskForPrompt");function Y(e){return c(m(e),160)}a(Y,"summarizeTask");function m(e){return e.replace(/\s+/g," ").trim()}a(m,"singleLine");function c(e,t){return e.length<=t?e:e.slice(e.length-t)}a(c,"tailText");function q(e){let t=e,r="";for(;t>0;)t--,r=String.fromCharCode(65+t%26)+r,t=Math.floor(t/26);return r||"A"}a(q,"labelFromIndex");function K(e){let t=0;for(const r of e.toUpperCase()){const s=r.charCodeAt(0);if(s<65||s>90)return 0;t=t*26+(s-64)}return t}a(K,"indexFromLabel");function Q(e){return e==="implementer"||e==="developer"}a(Q,"isBuilderRole");function b(e){return u(e).replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()}a(b,"normalizeForComparison");export{G as applyLiveEvent,D as buildTeammatePrompt,_ as createWritePathGuard,O as ensureLiveView,j as getDefaultModeForRole,K as indexFromLabel,Q as isBuilderRole,H as isWithinPath,q as labelFromIndex,u as normalizePath,E as prepareHarnessTurn,J as selectToolsForMode,m as singleLine,Y as summarizeTask,c as tailText};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: TeamRuntime - teammate registry, lifecycle, persistence, task/mailbox, permission, transcript, and send queue management
|
|
3
|
+
* [FROM]: Depends on ./team-types, stores, permissions, mailbox, transcript, team-runtime-helpers.ts, core/sub-agent/*, core/workspace/*
|
|
4
|
+
* [TO]: Consumed by index.ts
|
|
5
|
+
* [HERE]: extensions/builtin/team/team-runtime.ts
|
|
6
|
+
*/
|
|
7
|
+
import type { SubAgentEvent, SubAgentHandle } from "../../../core/sub-agent/index.js";
|
|
8
|
+
import type { WorkspacePath } from "../../../core/workspace/index.js";
|
|
9
|
+
import type { Model } from "@catui/ai/types";
|
|
10
|
+
import { PermissionStore } from "./team-permissions.js";
|
|
11
|
+
import { TeamMailbox } from "./team-mailbox.js";
|
|
12
|
+
import { TeamTaskStore } from "./team-task-store.js";
|
|
13
|
+
import type { PersistedTeammate, TeamTask, TeamTaskStatus, TeammateMode, TeamSpawnSpec, TeamSendResult } from "./team-types.js";
|
|
14
|
+
export interface RuntimeTeammate {
|
|
15
|
+
state: PersistedTeammate;
|
|
16
|
+
abortController: AbortController;
|
|
17
|
+
currentTurnAbortController?: AbortController;
|
|
18
|
+
handle?: SubAgentHandle;
|
|
19
|
+
worktree?: WorkspacePath;
|
|
20
|
+
}
|
|
21
|
+
export interface TeamRuntimeOptions {
|
|
22
|
+
storageDir?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface TeamSendOptions {
|
|
25
|
+
onEvent?: (event: TeamRuntimeEvent) => void;
|
|
26
|
+
}
|
|
27
|
+
export type TeamRuntimeEvent = {
|
|
28
|
+
type: "teammate_live";
|
|
29
|
+
teammate: PersistedTeammate;
|
|
30
|
+
event: SubAgentEvent;
|
|
31
|
+
} | {
|
|
32
|
+
type: "teammate_status";
|
|
33
|
+
teammate: PersistedTeammate;
|
|
34
|
+
event: string;
|
|
35
|
+
} | {
|
|
36
|
+
type: "harness_event";
|
|
37
|
+
teammate: PersistedTeammate;
|
|
38
|
+
event: string;
|
|
39
|
+
};
|
|
40
|
+
export declare class TeamRuntime {
|
|
41
|
+
private store;
|
|
42
|
+
private worktreeManager;
|
|
43
|
+
private subAgentRuntime;
|
|
44
|
+
private permissions;
|
|
45
|
+
private mailbox;
|
|
46
|
+
private tasks;
|
|
47
|
+
private transcripts;
|
|
48
|
+
private teammates;
|
|
49
|
+
private sendQueues;
|
|
50
|
+
private loaded;
|
|
51
|
+
private nameCounter;
|
|
52
|
+
private labelCounter;
|
|
53
|
+
private soulManager;
|
|
54
|
+
constructor(options?: TeamRuntimeOptions);
|
|
55
|
+
getPermissionStore(): PermissionStore;
|
|
56
|
+
getMailbox(): TeamMailbox;
|
|
57
|
+
getTaskStore(): TeamTaskStore;
|
|
58
|
+
setSoulManager(soulManager: unknown | undefined): void;
|
|
59
|
+
load(): Promise<void>;
|
|
60
|
+
spawn(spec: TeamSpawnSpec): Promise<PersistedTeammate>;
|
|
61
|
+
send(name: string, message: string, model?: Model<any>, options?: TeamSendOptions): Promise<TeamSendResult>;
|
|
62
|
+
stop(name: string): Promise<boolean>;
|
|
63
|
+
terminate(name: string): Promise<boolean>;
|
|
64
|
+
setMode(name: string, mode: TeammateMode): Promise<{
|
|
65
|
+
ok: boolean;
|
|
66
|
+
pending?: {
|
|
67
|
+
requestId: string;
|
|
68
|
+
};
|
|
69
|
+
error?: string;
|
|
70
|
+
}>;
|
|
71
|
+
approvePermission(requestId: string): boolean;
|
|
72
|
+
denyPermission(requestId: string): boolean;
|
|
73
|
+
addTask(title: string): Promise<TeamTask>;
|
|
74
|
+
claimTask(taskId: string, teammateName: string): Promise<TeamTask | undefined>;
|
|
75
|
+
updateTaskStatus(taskId: string, status: TeamTaskStatus): Promise<TeamTask | undefined>;
|
|
76
|
+
listTasks(): Promise<TeamTask[]>;
|
|
77
|
+
sendTeammateMail(fromName: string, toName: string, content: string): Promise<boolean>;
|
|
78
|
+
allowPath(teammateName: string, path: string): Promise<string | undefined>;
|
|
79
|
+
getAllTeammates(): PersistedTeammate[];
|
|
80
|
+
getTeammate(name: string): PersistedTeammate | undefined;
|
|
81
|
+
dispose(): Promise<void>;
|
|
82
|
+
private ensureLoaded;
|
|
83
|
+
private findByName;
|
|
84
|
+
private generateName;
|
|
85
|
+
private generateLabel;
|
|
86
|
+
private bumpNameCounter;
|
|
87
|
+
private bumpLabelCounter;
|
|
88
|
+
private detectWorkspaceType;
|
|
89
|
+
private selectTools;
|
|
90
|
+
private createWritePathGuard;
|
|
91
|
+
}
|