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,25 @@
|
|
|
1
|
+
var v=Object.defineProperty;var r=(t,e)=>v(t,"name",{value:e,configurable:!0});import*as g from"@agentclientprotocol/sdk";import{BUILTIN_SLASH_COMMANDS as L}from"../../core/slash-commands.js";import{SessionManager as h}from"../../core/session/session-manager.js";import{randomUUID as U}from"node:crypto";import{Readable as E,Writable as F}from"node:stream";import{formatLoopPolicySummary as N,formatLoopTransitionHistory as R,formatLoopTransitionSummary as j}from"../utils/agent-loop-result-format.js";import{theme as P}from"../interactive/theme/theme.js";const A=[{id:"ask",name:"Ask before write",description:"Request permission before mutating files or running commands."},{id:"read-only",name:"Read-only",description:"Disable editing tools and command execution."},{id:"bypass",name:"Bypass permissions",description:"Allow normal coding actions without permission prompts."}],O=new Set(["edit","write","bash"]),C=new Set(L.map(t=>t.name.toLowerCase())),S=new Set(["compact","agent-loop","model","name","new","reload","resume","session","thinking","usage"]),W=new Map([["compact","Optional compaction instructions"],["agent-loop","standard or weak-model-compatible"],["model","provider/model or model id"],["name","New session name"],["resume","Session id or title"],["thinking","Thinking level"]]);function $(t){switch(t){case"read":return"read";case"edit":return"edit";case"write":return"edit";case"bash":return"execute";case"grep":return"search";case"find":return"search";case"ls":return"read";default:return"other"}}r($,"mapToolKind");function w(){return U()}r(w,"createMessageId");function p(t){return{type:"text",text:t}}r(p,"textToContent");function B(t){if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return String(t)}}r(B,"asText");function M(t){if(t&&typeof t=="object"&&"content"in t&&Array.isArray(t.content)){const e=t.content.filter(s=>s?.type==="text"&&typeof s.text=="string").map(s=>s.text).join(`
|
|
2
|
+
`);if(e.trim())return e}return B(t)}r(M,"toolPayloadToText");function m(t){return t.trim().replace(/^\/+/,"")}r(m,"normalizeAcpCommandName");function x(t){const e=m(t).toLowerCase();return e?C.has(e)?S.has(e):!0:!1}r(x,"isAdvertisableAcpCommand");function _(t){const e=m(t).toLowerCase(),s=W.get(e);if(s)return{hint:s};if(!S.has(e))return{hint:"Enter command arguments"}}r(_,"createAvailableCommandInput");function k(t){const e=new Set;return t.filter(s=>{const n=m(s.name).toLowerCase();return!x(n)||!n||e.has(n)?!1:(e.add(n),!0)}).map(s=>({name:m(s.name),description:s.description??`Run /${s.name}`,input:_(s.name)}))}r(k,"buildAcpAvailableCommands");function D(t){return k(t.getSlashCommands())}r(D,"createSlashCommandsUpdate");function T(t){queueMicrotask(()=>{Promise.resolve().then(t).catch(e=>{const s=e instanceof Error?e.message:String(e);process.stderr.write(`[acp_session_bootstrap_error] ${s}
|
|
3
|
+
`)})})}r(T,"deferAcpNotification");function H(t){return t<1e3?`${Math.round(t)}ms`:`${(t/1e3).toFixed(1)}s`}r(H,"formatAcpDuration");function I(t,e,s=`${e}s`){return`${t} ${t===1?e:s}`}r(I,"plural");function b(t){if(!t)return[];const e=[`Last loop: ${t.stopReason}, ${I(t.turnCount,"turn")}, ${I(t.toolCallCount,"tool")}, ${H(t.durationMs)}`];t.loopFramework&&e.push(`Loop framework: ${t.loopFramework}`);const s=N(t.loopPolicy);s&&e.push(`Loop policy: ${s}`);const n=R(t.transitions);return n?e.push(`Loop transitions: ${n}`):t.lastTransition&&e.push(`Loop transition: ${j(t.lastTransition)}`),t.permissionDenialCount&&t.permissionDenialCount>0&&e.push(`Tool denials: ${t.permissionDenialCount}`),(t.errorSubtype||t.errorMessage)&&e.push(`Loop error: ${t.errorSubtype??t.errorMessage}`),e}r(b,"formatAcpLoopResultLines");function y(t){return!("content"in t)||!Array.isArray(t.content)?"":t.content.map(e=>typeof e=="string"?e:"type"in e&&e.type==="text"?e.text:"").filter(e=>e.length>0).join(`
|
|
4
|
+
`)}r(y,"getMessageText");function q(t){return typeof t=="object"&&t!==null&&"role"in t&&t.role==="custom"&&"display"in t&&t.display===!0}r(q,"isVisibleCustomMessage");function z(t){return!!(O.has(t.name)||/^mcp_.*(?:use_figma|generate_figma_design)$/i.test(t.name))}r(z,"isMutatingTool");function V(t){throw new Error(`${t} is not available in ACP mode yet. In Zed or other ACP clients, use argument-driven commands when available, or run this command in the terminal Catui UI.`)}r(V,"unsupportedAcpUi");function J(t){return t.toFixed(4)}r(J,"formatMoney");function K(){return{__nonInteractive:!0,select:r(async t=>{const e=t?.choices??t?.options??[];return e[0]?.value??e[0]??void 0},"select"),confirm:r(async t=>t?.default??!0,"confirm"),input:r(async t=>t?.default??"","input"),editor:r(async t=>t?.default??"","editor"),openExternalEditor:r(async()=>!1,"openExternalEditor"),notify(t,e){process.stderr.write(`[${e??"info"}] ${t}
|
|
5
|
+
`)},setStatus(){},setWorkingMessage(){},setWidget(){},setFooter(){},setHeader(){},setTitle(){},setEditorComponent(){},pasteToEditor(){},setEditorText(){},getEditorText:r(()=>"","getEditorText"),async custom(){return V("Custom interactive UI")},onTerminalInput(){return()=>{}},get theme(){return P},getAllThemes(){return[]},getTheme(t){},setTheme(t){return{success:!1,error:"Theme not supported in ACP mode"}},getToolsExpanded(){return!1},setToolsExpanded(){}}}r(K,"createAcpExtensionUIContext");class Q{static{r(this,"CatuiAgent")}connection;session;sessions=new Map;currentSessionId;createSessionForCwd;extensionBindings;ready;constructor(e,s,n={}){this.connection=e,this.session=s,this.createSessionForCwd=n.createSessionForCwd,this.extensionBindings={uiContext:K(),commandContextActions:{waitForIdle:r(()=>this.session.agent.waitForIdle(),"waitForIdle"),newSession:r(async i=>({cancelled:!await this.session.newSession(i)}),"newSession"),fork:r(async i=>({cancelled:(await this.session.fork(i)).cancelled}),"fork"),navigateTree:r(async(i,d)=>({cancelled:(await this.session.navigateTree(i,d)).cancelled}),"navigateTree"),switchSession:r(async i=>({cancelled:!await this.session.switchSession(i)}),"switchSession"),reload:r(async()=>{await this.session.reload()},"reload")},shutdownHandler:r(()=>{(async()=>(await this.session.extensionRunner?.emit({type:"session_shutdown"}),process.exit(0)))()},"shutdownHandler"),onError:r(i=>{process.stderr.write(`[extension_error] ${i.extensionPath}: ${i.error}
|
|
6
|
+
`)},"onError")},this.ready=this.bindSession(this.session)}async initialize(e){return await this.ready,{protocolVersion:g.PROTOCOL_VERSION,agentInfo:{name:"Catui",version:"acp"},agentCapabilities:{loadSession:!0,sessionCapabilities:{list:{}}}}}async newSession(e){await this.ready,await this.ensureWorkspaceSession(e.cwd),await this.session.newSession();const s=this.session.sessionManager.getSessionId(),n=this.createStateFromCurrentSession(s,e.cwd);return this.sessions.set(s,n),this.currentSessionId=s,await this.applySessionMode(n),this.scheduleSessionBootstrap(s),{sessionId:s,models:this.buildModelState(),modes:this.buildModeState(n.modeId)}}async loadSession(e){await this.ready;const s=await this.findSessionInfo(e.sessionId,e.cwd);if(!s)throw new Error(`Session ${e.sessionId} not found`);if(await this.ensureWorkspaceSession(s.cwd||e.cwd),!await this.session.switchSession(s.path))throw new Error(`Failed to load session ${e.sessionId}`);const i=this.sessions.get(e.sessionId),d={sessionId:e.sessionId,sessionFile:s.path,cwd:s.cwd||e.cwd,title:s.name||s.firstMessage||i?.title,modeId:i?.modeId??"ask",abortController:null,allowAllMutations:i?.allowAllMutations??!1,rejectAllMutations:i?.rejectAllMutations??!1};return this.sessions.set(e.sessionId,d),this.currentSessionId=e.sessionId,await this.applySessionMode(d),this.scheduleSessionBootstrap(e.sessionId,{replayHistory:!0}),{models:this.buildModelState(),modes:this.buildModeState(d.modeId)}}async listSessions(e){await this.ready;const s=e.cwd?await h.list(e.cwd):await h.listAll(),n=new Map;for(const i of s)n.set(i.id,{sessionId:i.id,cwd:i.cwd,title:i.name||i.firstMessage||void 0,updatedAt:i.modified.toISOString()});for(const i of this.sessions.values())e.cwd&&i.cwd!==e.cwd||n.has(i.sessionId)||n.set(i.sessionId,{sessionId:i.sessionId,cwd:i.cwd,title:i.title,updatedAt:new Date().toISOString()});return{sessions:Array.from(n.values())}}async authenticate(e){await this.ready}async prompt(e){await this.ready;const s=this.requireSession(e.sessionId);await this.activateSession(s),s.abortController?.abort(),s.abortController=new AbortController;const n=e.prompt.filter(o=>"text"in o&&typeof o.text=="string").map(o=>o.text).join(`
|
|
7
|
+
`);if(await this.handleBuiltinSlashCommand(e.sessionId,s,n))return{stopReason:"end_turn"};const d=this.session.subscribe(o=>{this.mapEventToAcp(e.sessionId,o)});try{return await this.session.tryExecuteExtensionCommand(n)?(await this.emitSessionMetadata(s),{stopReason:"end_turn"}):(await this.session.prompt(n,{source:"acp"}),await this.emitSessionMetadata(s),{stopReason:"end_turn"})}catch(o){if(s.abortController.signal.aborted)return{stopReason:"cancelled"};const a=o instanceof Error?o.message:String(o);return process.stderr.write(`[error] ${a}
|
|
8
|
+
`),await this.sendAssistantText(e.sessionId,`Command failed: ${a}`),{stopReason:"end_turn"}}finally{d(),s.abortController=null}}async cancel(e){await this.ready;const s=this.sessions.get(e.sessionId);s&&(await this.activateSession(s),s.abortController?.abort(),await this.session.abort())}async setSessionMode(e){await this.ready;const s=this.requireSession(e.sessionId);if(!A.some(n=>n.id===e.modeId))throw new Error(`Unknown ACP mode: ${e.modeId}`);return s.modeId=e.modeId,s.allowAllMutations=!1,s.rejectAllMutations=!1,await this.activateSession(s),await this.connection.sessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"current_mode_update",currentModeId:s.modeId}}),{}}async unstable_setSessionModel(e){await this.ready;const s=this.requireSession(e.sessionId);await this.activateSession(s);const n=this.parseAcpModelId(e.modelId);if(!n)throw new Error(`Unknown model: ${e.modelId}`);return await this.session.setModel(n),await this.emitSessionMetadata(s),{}}requireSession(e){const s=this.sessions.get(e);if(!s)throw new Error(`Session ${e} not found`);return s}createStateFromCurrentSession(e,s){const n=this.session.sessionManager.getSessionFile();return{sessionId:e,sessionFile:n,cwd:s,title:this.getCurrentSessionTitle(),modeId:"ask",abortController:null,allowAllMutations:!1,rejectAllMutations:!1}}getCurrentSessionTitle(){return this.session.sessionManager.getSessionName()||this.session.agent.state.messages.find(e=>e.role==="user")?y(this.session.agent.state.messages.find(e=>e.role==="user")).slice(0,80):void 0}async findSessionInfo(e,s){const n=this.sessions.get(e);if(n?.sessionFile)return{id:n.sessionId,path:n.sessionFile,cwd:n.cwd,name:n.title,firstMessage:""};const d=(await h.list(s)).find(a=>a.id===e);return d||(await h.listAll()).find(a=>a.id===e)}async findSessionByQuery(e,s){const n=e.trim().toLowerCase();if(!n)return;const i=await h.list(s),d=await h.listAll();return[...i,...d].filter((a,l,c)=>c.findIndex(u=>u.id===a.id)===l).find(a=>{const l=(a.name||a.firstMessage||"").toLowerCase();return a.id.toLowerCase()===n||a.id.toLowerCase().startsWith(n)||l.includes(n)})}buildModeState(e){return{availableModes:A,currentModeId:e}}buildModelState(){const e=this.session.modelRegistry.getAvailable(),s=this.session.model,n=e.map(i=>({modelId:this.toAcpModelId(i),name:i.name||`${i.provider}/${i.id}`,description:`${i.provider} / ${i.id}`}));return{availableModels:n,currentModelId:s?this.toAcpModelId(s):n[0]?.modelId??"unknown/unknown"}}toAcpModelId(e){return`${e.provider}/${e.id}`}parseAcpModelId(e){const s=e.indexOf("/");if(s===-1)return;const n=e.slice(0,s),i=e.slice(s+1);return this.session.modelRegistry.find(n,i)}async emitAvailableCommands(e){await this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"available_commands_update",availableCommands:D(this.session)}})}async emitSessionMetadata(e){e.title=this.getCurrentSessionTitle()??e.title,await this.connection.sessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"session_info_update",title:e.title??null,updatedAt:new Date().toISOString()}})}scheduleSessionBootstrap(e,s={}){T(async()=>{const n=this.sessions.get(e);n&&(await this.emitSessionMetadata(n),await this.emitAvailableCommands(e),s.replayHistory&&await this.replayHistory(e))})}async replayHistory(e){for(const s of this.session.agent.state.messages){if(s.role!=="user"&&s.role!=="assistant")continue;const n=y(s);n.trim()&&await this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:s.role==="user"?"user_message_chunk":"agent_message_chunk",content:p(n),messageId:w()}})}}async activateSession(e){await this.ensureWorkspaceSession(e.cwd);const s=this.session.sessionManager.getSessionFile();if(e.sessionFile&&e.sessionFile!==s){if(!await this.session.switchSession(e.sessionFile))throw new Error(`Failed to switch to session ${e.sessionId}`);await this.session.extensionRunner?.emit({type:"session_ready"})}this.currentSessionId=e.sessionId,await this.applySessionMode(e)}async bindSession(e){await e.bindExtensions(this.extensionBindings),await e.extensionRunner?.emit({type:"session_ready"})}async ensureWorkspaceSession(e){if(!e||this.session.cwd===e||!this.createSessionForCwd)return;await this.session.extensionRunner?.emit({type:"session_shutdown"});const s=await this.createSessionForCwd(e);this.session=s,await this.bindSession(s)}async handleBuiltinSlashCommand(e,s,n){const i=n.trim();if(!i.startsWith("/"))return!1;const d=m(i.split(/\s+/,1)[0]??"").toLowerCase();if(d&&C.has(d)&&!S.has(d))return await this.sendAssistantText(e,`/${d} is not supported in ACP clients like Zed yet. Use the terminal Catui UI for this command.`),!0;if(i==="/new")return await this.session.newSession(),s.sessionFile=this.session.sessionManager.getSessionFile(),s.title=this.getCurrentSessionTitle(),await this.emitSessionMetadata(s),await this.sendAssistantText(e,"Started a new session."),!0;if(i==="/reload")return await this.session.reload(),await this.activateSession(s),await this.emitAvailableCommands(e),await this.sendAssistantText(e,"Reloaded extensions, skills, prompts, and themes."),!0;if(i==="/session"){const o=this.session.getSessionStats(),a=this.session.getContextUsage(),l=this.session.model,c=[`Session ID: ${o.sessionId}`,`Session name: ${this.session.sessionManager.getSessionName()||"(unnamed)"}`,`Session file: ${o.sessionFile??"(in-memory)"}`,`Model: ${l?`${l.provider}/${l.id}`:"none"}`,`Thinking: ${this.session.thinkingLevel}`,`Agent loop: ${this.session.agentLoopFramework}`,...b(this.session.state.lastResult),`Messages: ${o.totalMessages} total (${o.userMessages} user, ${o.assistantMessages} assistant, ${o.toolResults} tool results)`,`Tool calls: ${o.toolCalls}`];return a&&c.push(`Context: ${a.tokens??"unknown"} / ${a.contextWindow} tokens${a.percent!=null?` (${a.percent.toFixed(1)}%)`:""}`),await this.sendAssistantText(e,c.join(`
|
|
9
|
+
`)),!0}if(i==="/usage"){const o=this.session.getSessionStats(),a=["Usage summary",`Input tokens: ${o.tokens.input}`,`Output tokens: ${o.tokens.output}`,`Cache read: ${o.tokens.cacheRead}`,`Cache write: ${o.tokens.cacheWrite}`,`Total tokens: ${o.tokens.total}`,`Estimated cost: $${J(o.cost)}`];return await this.sendAssistantText(e,a.join(`
|
|
10
|
+
`)),!0}if(i==="/name"||i.startsWith("/name ")){const o=i.slice(5).trim();return o?(this.session.sessionManager.appendSessionInfo(o),s.title=o,await this.emitSessionMetadata(s),await this.sendAssistantText(e,`Session name set to "${o}".`),!0):(await this.sendAssistantText(e,`Current session name: ${this.session.sessionManager.getSessionName()||"(unnamed)"}`),!0)}if(i==="/resume"||i.startsWith("/resume ")){const o=i.slice(7).trim();if(!o){const u=(await h.list(s.cwd)).slice(0,10).map(f=>`- ${f.id} | ${f.name||f.firstMessage||"(untitled)"}`).join(`
|
|
11
|
+
`);return await this.sendAssistantText(e,u?`Recent sessions for this workspace:
|
|
12
|
+
${u}
|
|
13
|
+
|
|
14
|
+
Use /resume <session-id-or-title>.`:"No saved sessions were found for this workspace."),!0}const a=await this.findSessionByQuery(o,s.cwd);return a?await this.session.switchSession(a.path)?(s.sessionFile=a.path,s.cwd=a.cwd,s.title=a.name||a.firstMessage||s.title,await this.emitSessionMetadata(s),await this.emitAvailableCommands(e),await this.sendAssistantText(e,`Resumed session ${a.id}${s.title?` (${s.title})`:""}. Future turns now use that saved conversation context.`),!0):(await this.sendAssistantText(e,`Failed to load session ${a.id}.`),!0):(await this.sendAssistantText(e,`No saved session matched "${o}". Use /resume with no arguments to list recent sessions.`),!0)}if(i==="/thinking"||i.startsWith("/thinking ")){const o=i.slice(9).trim().toLowerCase();if(!o){const l=this.session.getAvailableThinkingLevels().join(", ");return await this.sendAssistantText(e,`Current thinking level: ${this.session.thinkingLevel}
|
|
15
|
+
Available levels: ${l}`),!0}const a=this.session.getAvailableThinkingLevels();return a.includes(o)?(this.session.setThinkingLevel(o),await this.sendAssistantText(e,`Thinking level set to ${this.session.thinkingLevel}.`),!0):(await this.sendAssistantText(e,`Unknown thinking level: ${o}
|
|
16
|
+
Available levels: ${a.join(", ")}`),!0)}if(i==="/agent-loop"||i.startsWith("/agent-loop ")){const o=i.slice(11).trim().toLowerCase(),a=["standard","weak-model-compatible"],l=o==="high-intelligence"?"standard":o==="low-intelligence"||o==="structured-adaptive"?"weak-model-compatible":o;return o?a.includes(l)?(this.session.setAgentLoopFramework(l),await this.sendAssistantText(e,`Agent loop framework set to ${this.session.agentLoopFramework}.`),!0):(await this.sendAssistantText(e,`Unknown agent loop framework: ${o}
|
|
17
|
+
Available frameworks: ${a.join(", ")}`),!0):(await this.sendAssistantText(e,`Current agent loop: ${this.session.agentLoopFramework}
|
|
18
|
+
Available frameworks: ${a.join(", ")}`),!0)}if(i==="/model"||i.startsWith("/model ")){const o=i.slice(6).trim();if(!o){const l=this.session.model,c=this.session.modelRegistry.getAvailable().slice(0,20).map(u=>`- ${u.provider}/${u.id}`).join(`
|
|
19
|
+
`);return await this.sendAssistantText(e,`Current model: ${l?`${l.provider}/${l.id}`:"none"}
|
|
20
|
+
Available models:
|
|
21
|
+
${c}`),!0}const a=this.findExactModelMatch(o);if(!a){const l=this.session.modelRegistry.getAvailable().filter(c=>`${c.provider}/${c.id}`.toLowerCase().includes(o.toLowerCase())||c.id.toLowerCase().includes(o.toLowerCase())).slice(0,10).map(c=>`- ${c.provider}/${c.id}`).join(`
|
|
22
|
+
`);return await this.sendAssistantText(e,l?`No exact model match for "${o}". Closest matches:
|
|
23
|
+
${l}`:`No model match for "${o}".`),!0}return await this.session.setModel(a),await this.sendAssistantText(e,`Model switched to ${a.provider}/${a.id}.`),!0}if(i==="/compact"||i.startsWith("/compact ")){const o=i.slice(8).trim()||void 0,a=await this.session.compact(o);return await this.sendAssistantText(e,`Compaction completed.
|
|
24
|
+
First kept entry: ${a.firstKeptEntryId}
|
|
25
|
+
Tokens before: ${a.tokensBefore}`),!0}return!1}findExactModelMatch(e){const s=e.trim().toLowerCase();if(!s)return;let n,i=s;if(s.includes("/")){const[d,o]=s.split("/",2);n=d?.trim(),i=o?.trim()??""}if(i)return this.session.modelRegistry.getAvailable().find(d=>n&&d.provider.toLowerCase()!==n?!1:d.id.toLowerCase()===i)}async sendAssistantText(e,s){await this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"agent_message_chunk",content:p(s),messageId:w()}})}async applySessionMode(e){const s=this.session.getAllTools().map(n=>n.name);if(e.modeId==="read-only"){const n=s.filter(i=>["read","grep","find","ls","time"].includes(i));this.session.setActiveToolsByName(n);return}if(this.session.setActiveToolsByName(s),e.modeId==="ask"){const n=this.wrapToolsForAskMode(this.session.agent.state.tools,e);this.session.agent.setTools(n)}}wrapToolsForAskMode(e,s){return e.map(n=>z(n)?{...n,execute:r(async(i,d,o,a)=>(await this.requestPermissionIfNeeded(s,n,i,d),n.execute(i,d,o,a)),"execute")}:n)}async requestPermissionIfNeeded(e,s,n,i){if(e.allowAllMutations)return;if(e.rejectAllMutations)throw new Error("Permission denied for mutating tools in this session.");const d=[{optionId:"allow_once",name:"Allow once",kind:"allow_once"},{optionId:"allow_always",name:"Always allow",kind:"allow_always"},{optionId:"reject_once",name:"Reject once",kind:"reject_once"},{optionId:"reject_always",name:"Always reject",kind:"reject_always"}],o=await this.connection.requestPermission({sessionId:e.sessionId,options:d,toolCall:{toolCallId:n,title:`Run ${s.name}`,kind:$(s.name),status:"pending",locations:[],rawInput:i}});if(o.outcome.outcome==="cancelled")throw new Error("Permission request was cancelled.");switch(o.outcome.optionId){case"allow_once":return;case"allow_always":e.allowAllMutations=!0;return;case"reject_always":throw e.rejectAllMutations=!0,new Error("Permission denied for mutating tools in this session.");default:throw new Error("Permission denied for this tool call.")}}mapEventToAcp(e,s){switch(s.type){case"message_update":{const n=s.assistantMessageEvent;switch(n.type){case"text_delta":this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"agent_message_chunk",content:p(n.delta),messageId:w()}});break;case"thinking_delta":this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"agent_thought_chunk",content:p(n.delta),messageId:w()}});break}break}case"message_end":if(q(s.message)){const n=y(s.message);n.trim()&&this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"agent_message_chunk",content:p(n),messageId:w()}})}break;case"tool_execution_start":this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"tool_call",toolCallId:s.toolCallId,title:`${s.toolName}`,kind:$(s.toolName),status:"pending",locations:[],rawInput:s.args}});break;case"tool_execution_update":this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"tool_call_update",toolCallId:s.toolCallId,status:"pending",content:[{type:"content",content:{type:"text",text:M(s.partialResult)}}],rawOutput:s.partialResult}});break;case"tool_execution_end":this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"tool_call_update",toolCallId:s.toolCallId,status:s.isError?"failed":"completed",content:[{type:"content",content:{type:"text",text:M(s.result)}}],rawOutput:s.result}});break}}}async function ne(t,e={}){const s=F.toWeb(process.stdout),n=E.toWeb(process.stdin),i=g.ndJsonStream(s,n);return new g.AgentSideConnection(d=>new Q(d,t,e),i),new Promise(()=>{})}r(ne,"runAcpMode");const ie={buildAcpAvailableCommands:k,createAvailableCommandInput:_,deferAcpNotification:T,formatAcpLoopResultLines:b,isAdvertisableAcpCommand:x,normalizeAcpCommandName:m};export{ie as __testUtils,ne as runAcpMode};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Barrel exports for all run modes (InteractiveMode, runPrintMode, RpcClient, runRpcMode, runAcpMode + types)
|
|
3
|
+
* [FROM]: Depends on interactive/, print/, rpc/, acp/ modes
|
|
4
|
+
* [TO]: Consumed by root index.ts for programmatic SDK usage. NOT on the CLI dispatch path: as of P6/EV02,
|
|
5
|
+
* main.ts dynamically imports each selected mode runner directly so startup only pays for the chosen
|
|
6
|
+
* mode. This barrel remains the public SDK surface (do not narrow without Q3/P8).
|
|
7
|
+
* [HERE]: modes/index.ts — public SDK mode surface; the CLI bypasses it via dynamic import (P6/EV02)
|
|
8
|
+
*/
|
|
9
|
+
export { InteractiveMode, type InteractiveModeOptions } from "./interactive/interactive-mode.js";
|
|
10
|
+
export { type PrintModeOptions, runPrintMode } from "./print-mode.js";
|
|
11
|
+
export { type ModelInfo, RpcClient, type RpcClientOptions, type RpcEventListener } from "./rpc/rpc-client.js";
|
|
12
|
+
export { runRpcMode } from "./rpc/rpc-mode.js";
|
|
13
|
+
export { runAcpMode } from "./acp/acp-mode.js";
|
|
14
|
+
export type { RpcCommand, RpcResponse, RpcSessionState } from "./rpc/rpc-types.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{InteractiveMode as e}from"./interactive/interactive-mode.js";import{runPrintMode as p}from"./print-mode.js";import{RpcClient as f}from"./rpc/rpc-client.js";import{runRpcMode as x}from"./rpc/rpc-mode.js";import{runAcpMode as d}from"./acp/acp-mode.js";export{e as InteractiveMode,f as RpcClient,d as runAcpMode,p as runPrintMode,x as runRpcMode};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: formatAgentLoopStatusLines()
|
|
3
|
+
* [FROM]: Depends on @catui/agent-core AgentRunResult and AgentLoopTransition
|
|
4
|
+
* [TO]: Consumed by modes/interactive/interactive-mode.ts and tests
|
|
5
|
+
* [HERE]: modes/interactive/agent-loop-status.ts - /status loop outcome formatting
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentRunResult } from "@catui/agent-core";
|
|
8
|
+
export declare function formatAgentLoopStatusLines(result: AgentRunResult | undefined): string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var s=Object.defineProperty;var r=(o,n)=>s(o,"name",{value:n,configurable:!0});import{formatLoopPolicySummary as m,formatLoopTransitionHistory as f,formatLoopTransitionSummary as e}from"../utils/agent-loop-result-format.js";const L=22;function i(o,n){return`${o.padEnd(L)}${n}`}r(i,"formatLine");function p(o,n,t=`${n}s`){return`${o} ${o===1?n:t}`}r(p,"plural");function u(o){return o<1e3?`${Math.round(o)}ms`:`${(o/1e3).toFixed(1)}s`}r(u,"formatDuration");function $(o){if(!o)return[];const n=[i("Last loop:",`${o.stopReason}, ${p(o.turnCount,"turn")}, ${p(o.toolCallCount,"tool")}, ${u(o.durationMs)}`)];o.loopFramework&&n.push(i("Loop framework:",o.loopFramework));const t=m(o.loopPolicy);t&&n.push(i("Loop policy:",t));const a=f(o.transitions);return a?n.push(i("Loop transitions:",a)):o.lastTransition&&n.push(i("Loop transition:",e(o.lastTransition))),o.permissionDenialCount&&o.permissionDenialCount>0&&n.push(i("Tool denials:",String(o.permissionDenialCount))),(o.errorSubtype||o.errorMessage)&&n.push(i("Loop error:",o.errorSubtype??o.errorMessage??"unknown")),n}r($,"formatAgentLoopStatusLines");export{$ as formatAgentLoopStatusLines};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: ApiKeyInputOptions
|
|
3
|
+
* [FROM]: Depends on readline
|
|
4
|
+
* [TO]: Consumed by modes/interactive/components/index.ts
|
|
5
|
+
* [HERE]: modes/interactive/components/apikey-input.ts -
|
|
6
|
+
*/
|
|
7
|
+
export interface ApiKeyInputOptions {
|
|
8
|
+
prompt?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function promptForApiKey(options?: ApiKeyInputOptions): Promise<string | null>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var c=Object.defineProperty;var s=(t,o)=>c(t,"name",{value:o,configurable:!0});import{createInterface as i}from"readline";async function d(t={}){const{prompt:o="Enter API key"}=t;return new Promise(n=>{const r=i({input:process.stdin,output:process.stdout});process.stdout.write(`
|
|
2
|
+
`),r.question(`${o}: `,p=>{r.close(),process.stdout.write(`
|
|
3
|
+
`);const e=p.trim();n(e||null)})})}s(d,"promptForApiKey");export{d as promptForApiKey};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Armin says hi! A fun easter egg with animated XBM art.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* [WHO]: ArminComponent
|
|
6
|
+
* [FROM]: Depends on ../theme/theme.js
|
|
7
|
+
* [TO]: Consumed by modes/interactive/components/index.ts
|
|
8
|
+
* [HERE]: modes/interactive/components/armin.ts -
|
|
9
|
+
*/
|
|
10
|
+
import type { Component, TUI } from "@catui/tui";
|
|
11
|
+
export declare class ArminComponent implements Component {
|
|
12
|
+
private ui;
|
|
13
|
+
private interval;
|
|
14
|
+
private effect;
|
|
15
|
+
private finalGrid;
|
|
16
|
+
private currentGrid;
|
|
17
|
+
private effectState;
|
|
18
|
+
private cachedLines;
|
|
19
|
+
private cachedWidth;
|
|
20
|
+
private gridVersion;
|
|
21
|
+
private cachedVersion;
|
|
22
|
+
constructor(ui: TUI);
|
|
23
|
+
invalidate(): void;
|
|
24
|
+
render(width: number): string[];
|
|
25
|
+
private createEmptyGrid;
|
|
26
|
+
private initEffect;
|
|
27
|
+
private startAnimation;
|
|
28
|
+
private stopAnimation;
|
|
29
|
+
private tickEffect;
|
|
30
|
+
private tickTypewriter;
|
|
31
|
+
private tickScanline;
|
|
32
|
+
private tickRain;
|
|
33
|
+
private tickFade;
|
|
34
|
+
private tickCrt;
|
|
35
|
+
private tickGlitch;
|
|
36
|
+
private tickDissolve;
|
|
37
|
+
private updateDisplay;
|
|
38
|
+
dispose(): void;
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var m=Object.defineProperty;var o=(a,t)=>m(a,"name",{value:t,configurable:!0});import{theme as h}from"../theme/theme.js";const c=31,l=36,G=[255,255,255,127,255,240,255,127,255,237,255,127,255,219,255,127,255,183,255,127,255,119,254,127,63,248,254,127,223,255,254,127,223,63,252,127,159,195,251,127,111,252,244,127,247,15,247,127,247,255,247,127,247,255,227,127,247,7,232,127,239,248,103,112,15,255,187,111,241,0,208,91,253,63,236,83,193,255,239,87,159,253,238,95,159,252,174,95,31,120,172,95,63,0,80,108,127,0,220,119,255,192,63,120,255,1,248,127,255,3,156,120,255,7,140,124,255,15,206,120,255,255,207,127,255,255,207,120,255,255,223,120,255,255,223,125,255,255,63,126,255,255,255,127],g=Math.ceil(c/8),s=Math.ceil(l/2),d=["typewriter","scanline","rain","fade","crt","glitch","dissolve"];function u(a,t){if(t>=l)return!1;const e=t*g+Math.floor(a/8),i=a%8;return(G[e]>>i&1)===0}o(u,"getPixel");function M(a,t){const e=u(a,t*2),i=u(a,t*2+1);return e&&i?"\u2588":e?"\u2580":i?"\u2584":" "}o(M,"getChar");function k(){const a=[];for(let t=0;t<s;t++){const e=[];for(let i=0;i<c;i++)e.push(M(i,t));a.push(e)}return a}o(k,"buildFinalGrid");class w{static{o(this,"ArminComponent")}ui;interval=null;effect;finalGrid;currentGrid;effectState={};cachedLines=[];cachedWidth=0;gridVersion=0;cachedVersion=-1;constructor(t){this.ui=t,this.effect=d[Math.floor(Math.random()*d.length)],this.finalGrid=k(),this.currentGrid=this.createEmptyGrid(),this.initEffect(),this.startAnimation()}invalidate(){this.cachedWidth=0}render(t){if(t===this.cachedWidth&&this.cachedVersion===this.gridVersion)return this.cachedLines;const e=1,i=t-e;this.cachedLines=this.currentGrid.map(n=>{const x=n.slice(0,i).join(""),p=Math.max(0,t-e-x.length);return` ${h.fg("accent",x)}${" ".repeat(p)}`});const r="ARMIN SAYS HI",f=Math.max(0,t-e-r.length);return this.cachedLines.push(` ${h.fg("accent",r)}${" ".repeat(f)}`),this.cachedWidth=t,this.cachedVersion=this.gridVersion,this.cachedLines}createEmptyGrid(){return Array.from({length:s},()=>Array(c).fill(" "))}initEffect(){switch(this.effect){case"typewriter":this.effectState={pos:0};break;case"scanline":this.effectState={row:0};break;case"rain":this.effectState={drops:Array.from({length:c},()=>({y:-Math.floor(Math.random()*s*2),settled:0}))};break;case"fade":{const t=[];for(let e=0;e<s;e++)for(let i=0;i<c;i++)t.push([e,i]);for(let e=t.length-1;e>0;e--){const i=Math.floor(Math.random()*(e+1));[t[e],t[i]]=[t[i],t[e]]}this.effectState={positions:t,idx:0};break}case"crt":this.effectState={expansion:0};break;case"glitch":this.effectState={phase:0,glitchFrames:8};break;case"dissolve":{this.currentGrid=Array.from({length:s},()=>Array.from({length:c},()=>{const e=[" ","\u2591","\u2592","\u2593","\u2588","\u2580","\u2584"];return e[Math.floor(Math.random()*e.length)]}));const t=[];for(let e=0;e<s;e++)for(let i=0;i<c;i++)t.push([e,i]);for(let e=t.length-1;e>0;e--){const i=Math.floor(Math.random()*(e+1));[t[e],t[i]]=[t[i],t[e]]}this.effectState={positions:t,idx:0};break}}}startAnimation(){const t=this.effect==="glitch"?60:30;this.interval=setInterval(()=>{const e=this.tickEffect();this.updateDisplay(),this.ui.requestRender(),e&&this.stopAnimation()},1e3/t)}stopAnimation(){this.interval&&(clearInterval(this.interval),this.interval=null)}tickEffect(){switch(this.effect){case"typewriter":return this.tickTypewriter();case"scanline":return this.tickScanline();case"rain":return this.tickRain();case"fade":return this.tickFade();case"crt":return this.tickCrt();case"glitch":return this.tickGlitch();case"dissolve":return this.tickDissolve();default:return!0}}tickTypewriter(){const t=this.effectState,e=3;for(let i=0;i<e;i++){const r=Math.floor(t.pos/c),f=t.pos%c;if(r>=s)return!0;this.currentGrid[r][f]=this.finalGrid[r][f],t.pos++}return!1}tickScanline(){const t=this.effectState;if(t.row>=s)return!0;for(let e=0;e<c;e++)this.currentGrid[t.row][e]=this.finalGrid[t.row][e];return t.row++,!1}tickRain(){const t=this.effectState;let e=!0;this.currentGrid=this.createEmptyGrid();for(let i=0;i<c;i++){const r=t.drops[i];for(let n=s-1;n>=s-r.settled;n--)n>=0&&(this.currentGrid[n][i]=this.finalGrid[n][i]);if(r.settled>=s)continue;e=!1;let f=-1;for(let n=s-1-r.settled;n>=0;n--)if(this.finalGrid[n][i]!==" "){f=n;break}r.y++,r.y>=0&&r.y<s&&(f>=0&&r.y>=f?(r.settled=s-f,r.y=-Math.floor(Math.random()*5)-1):this.currentGrid[r.y][i]="\u2593")}return e}tickFade(){const t=this.effectState,e=15;for(let i=0;i<e;i++){if(t.idx>=t.positions.length)return!0;const[r,f]=t.positions[t.idx];this.currentGrid[r][f]=this.finalGrid[r][f],t.idx++}return!1}tickCrt(){const t=this.effectState,e=Math.floor(s/2);this.currentGrid=this.createEmptyGrid();const i=e-t.expansion,r=e+t.expansion;for(let f=Math.max(0,i);f<=Math.min(s-1,r);f++)for(let n=0;n<c;n++)this.currentGrid[f][n]=this.finalGrid[f][n];return t.expansion++,t.expansion>s}tickGlitch(){const t=this.effectState;return t.phase<t.glitchFrames?(this.currentGrid=this.finalGrid.map(e=>{const i=Math.floor(Math.random()*7)-3,r=[...e];if(Math.random()<.3)return r.slice(i).concat(r.slice(0,i)).slice(0,c);if(Math.random()<.2){const f=Math.floor(Math.random()*s);return[...this.finalGrid[f]]}return r}),t.phase++,!1):(this.currentGrid=this.finalGrid.map(e=>[...e]),!0)}tickDissolve(){const t=this.effectState,e=20;for(let i=0;i<e;i++){if(t.idx>=t.positions.length)return!0;const[r,f]=t.positions[t.idx];this.currentGrid[r][f]=this.finalGrid[r][f],t.idx++}return!1}updateDisplay(){this.gridVersion++}dispose(){this.stopAnimation()}}export{w as ArminComponent};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: AssistantMessageComponent
|
|
3
|
+
* [FROM]: Depends on @catui/tui, ../theme/theme.js
|
|
4
|
+
* [TO]: Consumed by modes/interactive/components/index.ts
|
|
5
|
+
* [HERE]: modes/interactive/components/assistant-message.ts - assistant message display
|
|
6
|
+
*/
|
|
7
|
+
import type { AssistantMessage } from "@catui/ai/types";
|
|
8
|
+
import { Container, type MarkdownTheme } from "@catui/tui";
|
|
9
|
+
/**
|
|
10
|
+
* Component that renders a complete assistant message
|
|
11
|
+
*/
|
|
12
|
+
export declare class AssistantMessageComponent extends Container {
|
|
13
|
+
private contentContainer;
|
|
14
|
+
private hideThinkingBlock;
|
|
15
|
+
private markdownTheme;
|
|
16
|
+
private lastMessage?;
|
|
17
|
+
constructor(message?: AssistantMessage, hideThinkingBlock?: boolean, markdownTheme?: MarkdownTheme);
|
|
18
|
+
invalidate(): void;
|
|
19
|
+
setHideThinkingBlock(hide: boolean): void;
|
|
20
|
+
updateContent(message: AssistantMessage): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var f=Object.defineProperty;var s=(d,t)=>f(d,"name",{value:t,configurable:!0});import{Container as c,Markdown as k,Spacer as o,Text as a}from"@catui/tui";import{getMarkdownTheme as g,theme as r}from"../theme/theme.js";class m extends c{static{s(this,"AssistantMessageComponent")}contentContainer;hideThinkingBlock;markdownTheme;lastMessage;constructor(t,h=!1,l=g()){super(),this.hideThinkingBlock=h,this.markdownTheme=l,this.contentContainer=new c,this.addChild(this.contentContainer),t&&this.updateContent(t)}invalidate(){super.invalidate(),this.lastMessage&&this.updateContent(this.lastMessage)}setHideThinkingBlock(t){this.hideThinkingBlock=t}updateContent(t){this.lastMessage=t,this.contentContainer.clear();const h=t.content.some(n=>n.type==="text"&&n.text.trim()||n.type==="thinking"&&n.thinking.trim());h&&this.contentContainer.addChild(new o(1));for(let n=0;n<t.content.length;n++){const e=t.content[n];if(e.type==="text"&&e.text.trim())this.contentContainer.addChild(new k(e.text.trim(),1,0,this.markdownTheme));else if(e.type==="thinking"&&e.thinking.trim()){const C=t.content.slice(n+1).some(i=>i.type==="text"&&i.text.trim()||i.type==="thinking"&&i.thinking.trim());this.hideThinkingBlock?(this.contentContainer.addChild(new a(r.italic(r.fg("thinkingText","Thinking...")),1,0)),C&&this.contentContainer.addChild(new o(1))):(this.contentContainer.addChild(new k(e.thinking.trim(),1,0,this.markdownTheme,{color:s(i=>r.fg("thinkingText",i),"color"),italic:!0})),C&&this.contentContainer.addChild(new o(1)))}}if(!t.content.some(n=>n.type==="toolCall")){if(t.stopReason==="aborted"){const n=t.errorMessage&&t.errorMessage!=="Request was aborted"?t.errorMessage:"Operation aborted";h?this.contentContainer.addChild(new o(1)):this.contentContainer.addChild(new o(1)),this.contentContainer.addChild(new a(r.fg("error",n),1,0))}else if(t.stopReason==="error"){const n=t.errorMessage||"Unknown error";this.contentContainer.addChild(new o(1)),this.contentContainer.addChild(new a(r.fg("error",`Error: ${n}`),1,0))}}}}export{m as AssistantMessageComponent};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Attachment, AttachmentsBarComponent
|
|
3
|
+
* [FROM]: Depends on node:path, @catui/tui
|
|
4
|
+
* [TO]: Consumed by modes/interactive/components/index.ts
|
|
5
|
+
* [HERE]: modes/interactive/components/attachments-bar.ts -
|
|
6
|
+
*/
|
|
7
|
+
import { Container } from "@catui/tui";
|
|
8
|
+
import type { Theme } from "../theme/theme.js";
|
|
9
|
+
export interface Attachment {
|
|
10
|
+
path: string;
|
|
11
|
+
mimeType?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Attachments bar component for displaying clipboard image attachments.
|
|
15
|
+
* Shows a list of attached images with selection and deletion support.
|
|
16
|
+
*/
|
|
17
|
+
export declare class AttachmentsBarComponent extends Container {
|
|
18
|
+
private attachments;
|
|
19
|
+
private selectedIndex;
|
|
20
|
+
private theme;
|
|
21
|
+
private onSelect?;
|
|
22
|
+
private onDelete?;
|
|
23
|
+
constructor(attachments: Attachment[], selectedIndex: number, theme: Theme, options?: {
|
|
24
|
+
onSelect?: (index: number) => void;
|
|
25
|
+
onDelete?: (index: number) => void;
|
|
26
|
+
});
|
|
27
|
+
private renderContent;
|
|
28
|
+
/**
|
|
29
|
+
* Update the attachments and re-render
|
|
30
|
+
*/
|
|
31
|
+
update(attachments: Attachment[], selectedIndex: number): void;
|
|
32
|
+
/**
|
|
33
|
+
* Handle input for selection and deletion
|
|
34
|
+
*/
|
|
35
|
+
handleInput(data: string): boolean;
|
|
36
|
+
invalidate(): void;
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var f=Object.defineProperty;var c=(h,e)=>f(h,"name",{value:e,configurable:!0});import*as C from"node:path";import{Container as p,Spacer as g,Text as o}from"@catui/tui";class I extends p{static{c(this,"AttachmentsBarComponent")}attachments;selectedIndex;theme;onSelect;onDelete;constructor(e,n,s,t){super(),this.attachments=e,this.selectedIndex=n,this.theme=s,this.onSelect=t?.onSelect,this.onDelete=t?.onDelete,this.renderContent()}renderContent(){if(this.clear(),this.attachments.length!==0){for(let e=0;e<this.attachments.length;e++){const n=this.attachments[e],s=C.basename(n.path),t=e===this.selectedIndex,a=`[Image #${e+1}]`,i=`(${s})`,l=t?this.theme.fg("accent",a):this.theme.fg("muted",a),d=t?this.theme.fg("accent",i):this.theme.fg("dim",i),m=new o(`${l} ${d}`,0,0);if(this.addChild(m),t){const r=new o(" "+this.theme.fg("muted","(\u2191\u2193 select, Del remove)"),0,0);this.addChild(r)}}this.addChild(new g(1))}}update(e,n){this.attachments=e,this.selectedIndex=n,this.renderContent()}handleInput(e){return!1}invalidate(){this.renderContent()}}export{I as AttachmentsBarComponent};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component for displaying bash command execution with streaming output.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* [WHO]: BashExecutionComponent
|
|
6
|
+
* [FROM]: Depends on @catui/tui, strip-ansi, ../theme/theme.js, ./dynamic-border.js, ./keybinding-hints.js
|
|
7
|
+
* [TO]: Consumed by modes/interactive/components/index.ts
|
|
8
|
+
* [HERE]: modes/interactive/components/bash-execution.ts -
|
|
9
|
+
*/
|
|
10
|
+
import { Container, type TUI } from "@catui/tui";
|
|
11
|
+
import { type TruncationResult } from "../../../core/tools/truncate.js";
|
|
12
|
+
export declare class BashExecutionComponent extends Container {
|
|
13
|
+
private command;
|
|
14
|
+
private outputLines;
|
|
15
|
+
private status;
|
|
16
|
+
private exitCode;
|
|
17
|
+
private loader;
|
|
18
|
+
private truncationResult?;
|
|
19
|
+
private fullOutputPath?;
|
|
20
|
+
private expanded;
|
|
21
|
+
private contentContainer;
|
|
22
|
+
private ui;
|
|
23
|
+
constructor(command: string, ui: TUI, excludeFromContext?: boolean);
|
|
24
|
+
/**
|
|
25
|
+
* Set whether the output is expanded (shows full output) or collapsed (preview only).
|
|
26
|
+
*/
|
|
27
|
+
setExpanded(expanded: boolean): void;
|
|
28
|
+
invalidate(): void;
|
|
29
|
+
appendOutput(chunk: string): void;
|
|
30
|
+
setComplete(exitCode: number | undefined, cancelled: boolean, truncationResult?: TruncationResult, fullOutputPath?: string): void;
|
|
31
|
+
private updateDisplay;
|
|
32
|
+
/**
|
|
33
|
+
* Get the raw output for creating BashExecutionMessage.
|
|
34
|
+
*/
|
|
35
|
+
getOutput(): string;
|
|
36
|
+
/**
|
|
37
|
+
* Get the command that was executed.
|
|
38
|
+
*/
|
|
39
|
+
getCommand(): string;
|
|
40
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var g=Object.defineProperty;var d=(h,n)=>g(h,"name",{value:n,configurable:!0});import{Container as c,Loader as L,Spacer as x,Text as l}from"@catui/tui";import w from"strip-ansi";import{DEFAULT_MAX_BYTES as $,DEFAULT_MAX_LINES as y,truncateTail as T}from"../../../core/tools/truncate.js";import{theme as i}from"../theme/theme.js";import{DynamicBorder as p}from"./dynamic-border.js";import{editorKey as E,keyHint as m}from"./keybinding-hints.js";import{truncateToVisualLines as O}from"./visual-truncate.js";const f=20;class B extends c{static{d(this,"BashExecutionComponent")}command;outputLines=[];status="running";exitCode=void 0;loader;truncationResult;fullOutputPath;expanded=!1;contentContainer;ui;constructor(n,s,e=!1){super(),this.command=n,this.ui=s;const o=e?"dim":"bashMode",a=d(t=>i.fg(o,t),"borderColor");this.addChild(new x(1)),this.addChild(new p(a)),this.contentContainer=new c,this.addChild(this.contentContainer);const r=new l(i.fg(o,i.bold(`$ ${n}`)),1,0);this.contentContainer.addChild(r),this.loader=new L(s,t=>i.fg(o,t),t=>i.fg("muted",t),`Running... (${E("selectCancel")} to cancel)`),this.contentContainer.addChild(this.loader),this.addChild(new p(a))}setExpanded(n){this.expanded=n,this.updateDisplay()}invalidate(){super.invalidate(),this.updateDisplay()}appendOutput(n){const e=w(n).replace(/\r\n/g,`
|
|
2
|
+
`).replace(/\r/g,`
|
|
3
|
+
`).split(`
|
|
4
|
+
`);this.outputLines.length>0&&e.length>0?(this.outputLines[this.outputLines.length-1]+=e[0],this.outputLines.push(...e.slice(1))):this.outputLines.push(...e),this.updateDisplay()}setComplete(n,s,e,o){this.exitCode=n,this.status=s?"cancelled":n!==0&&n!==void 0&&n!==null?"error":"complete",this.truncationResult=e,this.fullOutputPath=o,this.loader.stop(),this.updateDisplay()}updateDisplay(){const n=this.outputLines.join(`
|
|
5
|
+
`),s=T(n,{maxLines:y,maxBytes:$}),e=s.content?s.content.split(`
|
|
6
|
+
`):[],o=e.slice(-f),a=e.length-o.length;this.contentContainer.clear();const r=new l(i.fg("bashMode",i.bold(`$ ${this.command}`)),1,0);if(this.contentContainer.addChild(r),e.length>0)if(this.expanded){const t=e.map(u=>i.fg("muted",u)).join(`
|
|
7
|
+
`);this.contentContainer.addChild(new l(`
|
|
8
|
+
${t}`,1,0))}else{const t=o.map(C=>i.fg("muted",C)).join(`
|
|
9
|
+
`),{visualLines:u}=O(`
|
|
10
|
+
${t}`,f,this.ui.terminal.columns,1);this.contentContainer.addChild({render:d(()=>u,"render"),invalidate:d(()=>{},"invalidate")})}if(this.status==="running")this.contentContainer.addChild(this.loader);else{const t=[];a>0&&(this.expanded?t.push(`(${m("expandTools","to collapse")})`):t.push(`${i.fg("muted",`... ${a} more lines`)} (${m("expandTools","to expand")})`)),this.status==="cancelled"?t.push(i.fg("warning","(cancelled)")):this.status==="error"&&t.push(i.fg("error",`(exit ${this.exitCode})`)),(this.truncationResult?.truncated||s.truncated)&&this.fullOutputPath&&t.push(i.fg("warning",`Output truncated. Full output: ${this.fullOutputPath}`)),t.length>0&&this.contentContainer.addChild(new l(`
|
|
11
|
+
${t.join(`
|
|
12
|
+
`)}`,1,0))}}getOutput(){return this.outputLines.join(`
|
|
13
|
+
`)}getCommand(){return this.command}}export{B as BashExecutionComponent};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: BorderedLoader
|
|
3
|
+
* [FROM]: Depends on @catui/tui, ./dynamic-border.js, ./keybinding-hints.js
|
|
4
|
+
* [TO]: Consumed by modes/interactive/components/index.ts
|
|
5
|
+
* [HERE]: modes/interactive/components/bordered-loader.ts - loader with borders
|
|
6
|
+
*/
|
|
7
|
+
import { Container, type TUI } from "@catui/tui";
|
|
8
|
+
import type { Theme } from "../theme/theme.js";
|
|
9
|
+
/** Loader wrapped with borders for extension UI */
|
|
10
|
+
export declare class BorderedLoader extends Container {
|
|
11
|
+
private loader;
|
|
12
|
+
private cancellable;
|
|
13
|
+
private signalController?;
|
|
14
|
+
constructor(tui: TUI, theme: Theme, message: string, options?: {
|
|
15
|
+
cancellable?: boolean;
|
|
16
|
+
});
|
|
17
|
+
get signal(): AbortSignal;
|
|
18
|
+
set onAbort(fn: (() => void) | undefined);
|
|
19
|
+
handleInput(data: string): void;
|
|
20
|
+
dispose(): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var c=Object.defineProperty;var i=(r,l)=>c(r,"name",{value:l,configurable:!0});import{CancellableLoader as h,Container as f,Loader as b,Spacer as t,Text as C}from"@catui/tui";import{DynamicBorder as d}from"./dynamic-border.js";import{keyHint as p}from"./keybinding-hints.js";class A extends f{static{i(this,"BorderedLoader")}loader;cancellable;signalController;constructor(l,a,n,s){super(),this.cancellable=s?.cancellable??!0;const o=i(e=>a.fg("border",e),"borderColor");this.addChild(new d(o)),this.cancellable?this.loader=new h(l,e=>a.fg("accent",e),e=>a.fg("muted",e),n):(this.signalController=new AbortController,this.loader=new b(l,e=>a.fg("accent",e),e=>a.fg("muted",e),n)),this.addChild(this.loader),this.cancellable&&(this.addChild(new t(1)),this.addChild(new C(p("selectCancel","cancel"),1,0))),this.addChild(new t(1)),this.addChild(new d(o))}get signal(){return this.cancellable?this.loader.signal:this.signalController?.signal??new AbortController().signal}set onAbort(l){this.cancellable&&(this.loader.onAbort=l)}handleInput(l){this.cancellable&&this.loader.handleInput(l)}dispose(){"dispose"in this.loader&&typeof this.loader.dispose=="function"&&this.loader.dispose()}}export{A as BorderedLoader};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: BranchSummaryMessageComponent
|
|
3
|
+
* [FROM]: Depends on @catui/tui, ../theme/theme.js, ./keybinding-hints.js
|
|
4
|
+
* [TO]: Consumed by modes/interactive/components/index.ts
|
|
5
|
+
* [HERE]: modes/interactive/components/branch-summary-message.ts -
|
|
6
|
+
*/
|
|
7
|
+
import { Box, type MarkdownTheme } from "@catui/tui";
|
|
8
|
+
import type { BranchSummaryMessage } from "../../../core/messages.js";
|
|
9
|
+
/**
|
|
10
|
+
* Component that renders a branch summary message with collapsed/expanded state.
|
|
11
|
+
* Uses same background color as custom messages for visual consistency.
|
|
12
|
+
*/
|
|
13
|
+
export declare class BranchSummaryMessageComponent extends Box {
|
|
14
|
+
private expanded;
|
|
15
|
+
private message;
|
|
16
|
+
private markdownTheme;
|
|
17
|
+
constructor(message: BranchSummaryMessage, markdownTheme?: MarkdownTheme);
|
|
18
|
+
setExpanded(expanded: boolean): void;
|
|
19
|
+
invalidate(): void;
|
|
20
|
+
private updateDisplay;
|
|
21
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var o=Object.defineProperty;var d=(m,e)=>o(m,"name",{value:e,configurable:!0});import{Box as n,Markdown as r,Spacer as h,Text as i}from"@catui/tui";import{getMarkdownTheme as p,theme as s}from"../theme/theme.js";import{editorKey as l}from"./keybinding-hints.js";class f extends n{static{d(this,"BranchSummaryMessageComponent")}expanded=!1;message;markdownTheme;constructor(e,a=p()){super(1,1,t=>s.bg("customMessageBg",t)),this.message=e,this.markdownTheme=a,this.updateDisplay()}setExpanded(e){this.expanded=e,this.updateDisplay()}invalidate(){super.invalidate(),this.updateDisplay()}updateDisplay(){this.clear();const e=s.fg("customMessageLabel","\x1B[1m[branch]\x1B[22m");if(this.addChild(new i(e,0,0)),this.addChild(new h(1)),this.expanded){const a=`**Branch Summary**
|
|
2
|
+
|
|
3
|
+
`;this.addChild(new r(a+this.message.summary,0,0,this.markdownTheme,{color:d(t=>s.fg("customMessageText",t),"color")}))}else this.addChild(new i(s.fg("customMessageText","Branch summary (")+s.fg("dim",l("expandTools"))+s.fg("customMessageText"," to expand)"),0,0))}}export{f as BranchSummaryMessageComponent};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: BuddyPetComponent, BuddySpecies, BuddyState, SpriteData
|
|
3
|
+
* [FROM]: Depends on @catui/tui, ../theme/theme.js
|
|
4
|
+
* [TO]: Consumed by modes/interactive/components/index.ts, interactive-mode.ts
|
|
5
|
+
* [HERE]: modes/interactive/components/buddy/pet-sprites.ts
|
|
6
|
+
*/
|
|
7
|
+
import { type Component, type TUI } from "@catui/tui";
|
|
8
|
+
export type BuddyState = "idle" | "happy" | "working" | "sleeping" | "error" | "eating";
|
|
9
|
+
export interface SpriteData {
|
|
10
|
+
name: string;
|
|
11
|
+
states: Record<BuddyState, string[][]>;
|
|
12
|
+
}
|
|
13
|
+
export declare const ALL_SPRITES: SpriteData[];
|
|
14
|
+
export declare class BuddyPetComponent implements Component {
|
|
15
|
+
private tui;
|
|
16
|
+
private sprite;
|
|
17
|
+
private state;
|
|
18
|
+
private currentFrame;
|
|
19
|
+
private blinkInterval;
|
|
20
|
+
private blinkResetTimer;
|
|
21
|
+
private name;
|
|
22
|
+
private speechBubble;
|
|
23
|
+
constructor(tui: TUI, spriteIndex?: number, name?: string);
|
|
24
|
+
setState(state: BuddyState): void;
|
|
25
|
+
setSpeechBubble(text: string): void;
|
|
26
|
+
private clearBlinkResetTimer;
|
|
27
|
+
private startAnimation;
|
|
28
|
+
invalidate(): void;
|
|
29
|
+
render(width: number): string[];
|
|
30
|
+
dispose(): void;
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var h=Object.defineProperty;var r=(i,_)=>h(i,"name",{value:_,configurable:!0});import{theme as a}from"../../theme/theme.js";function t(i,_){return{name:i,states:_}}r(t,"spriteFromStateFrames");const l=t("Mochi",{idle:[[" /|/|"," ( @ @)"," ) ^"," / |||"," / )|||_"," (_______)"],[" /|/|"," ( - -)"," ) ^"," / |||"," / )|||_"," (_______)"]],happy:[[" /|/|"," (^ ^ )"," ) ~"," / |||"," / )|||_"," (_______)"],[" /|/|"," (^o^)"," ) ~"," / |||"," / )|||_"," (_______)"]],working:[[" /|/|"," ( o.o)"," )_|_"," / |||"," / )|||_"," (_______)"],[" /|/|"," ( o.O)"," )_|_"," / |||"," / )|||_"," (_______)"]],sleeping:[[" /|/|"," (- -)zz"," ) ~"," / |||"," / )|||_"," (_______)"],[" /|/|"," (- -)ZZ"," ) ~"," / |||"," / )|||_"," (_______)"]],error:[[" /|/|"," ( x x)"," )___"," / |||"," / )|||_"," (_______)"],[" /|/|"," ( X X)"," )___"," / |||"," / )|||_"," (_______)"]],eating:[[" /|/|"," ( o o)"," )_~"," / |||"," / )|||~"," (_______)"],[" /|/|"," (. .)"," )_~"," / |||"," / )|||~"," (_______)"]]}),p=t("Pip",{idle:[[" /|_"," / ,\\"," .-' _,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' _,'"," hjw / _ |"," / _) |"," ,=='`.____)_)"]],happy:[[" /|_"," / ,\\"," .-' ^,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' ~,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"]],working:[[" /|_"," / ,\\"," .-' _,'"," hjw / _ |"," / _) |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' _,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"]],sleeping:[[" /|_"," / ,\\"," .-' z,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' Z,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"]],error:[[" /|_"," / ,\\"," .-' x,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' X,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"]],eating:[[" /|_"," / ,\\"," .-' ~,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' ~,'"," hjw / _ |"," / _) |"," ,=='`.____)_)"]]}),T=t("Nori",{idle:[[" |\\/| ---- _"," =(--)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(- -)=____ \\"," c___ (______/"]],happy:[[" |\\/| ---- _"," =(^ ^)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(^o^)=_____ \\"," c___ (______/"]],working:[[" |\\/| ---- _"," =(o.O)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(o.o)=_____ \\"," c___ (______/"]],sleeping:[[" |\\/| ---- _"," =(- -)=zz___ \\"," c___ (______/"],[" |\\/| ---- _"," =(- -)=ZZ___ \\"," c___ (______/"]],error:[[" |\\/| ---- _"," =(x x)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(X X)=_____ \\"," c___ (______/"]],eating:[[" |\\/| ---- _"," =(o o)=_____ \\"," c___~(_____/"],[" |\\/| ---- _"," =(. .)=_____ \\"," c___~(_____/"]]}),u=t("Boba",{idle:[[" /|/|"," ( o o)"," ) ^"," / |||"," / )|||_"," (_______)"],[" /|/|"," ( - -)"," ) ^"," / |||"," / )|||_"," (_______)"]],happy:[[" /|/|"," (^ ^ )"," ) ~"," / |||"," / )|||_"," (_______)"],[" /|/|"," (^o^)"," ) ~"," / |||"," / )|||_"," (_______)"]],working:[[" /|/|"," ( o.o)"," )_|_"," / |||"," / )|||_"," (_______)"],[" /|/|"," ( o.O)"," )_|_"," / |||"," / )|||_"," (_______)"]],sleeping:[[" /|/|"," (- -)zz"," ) ^"," / |||"," / )|||_"," (_______)"],[" /|/|"," (- -)ZZ"," ) ^"," / |||"," / )|||_"," (_______)"]],error:[[" /|/|"," ( x x)"," )___"," / |||"," / )|||_"," (_______)"],[" /|/|"," ( X X)"," )___"," / |||"," / )|||_"," (_______)"]],eating:[[" /|/|"," ( o o)"," )_~"," / |||"," / )|||~"," (_______)"],[" /|/|"," (. .)"," )_~"," / |||"," / )|||~"," (_______)"]]}),m=t("Miso",{idle:[[" /|_"," / ,\\"," .-' _,'"," / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' _,'"," / _ |"," / _) |"," ,=='`.____)_)"]],happy:[[" /|_"," / ,\\"," .-' ^,'"," / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' ~,'"," / _ |"," / )_ |"," ,=='`.____)_)"]],working:[[" /|_"," / ,\\"," .-' _,'"," / _ |"," / _) |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' _,'"," / _ |"," / )_ |"," ,=='`.____)_)"]],sleeping:[[" /|_"," / ,\\"," .-' z,'"," / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' Z,'"," / _ |"," / )_ |"," ,=='`.____)_)"]],error:[[" /|_"," / ,\\"," .-' x,'"," / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' X,'"," / _ |"," / )_ |"," ,=='`.____)_)"]],eating:[[" /|_"," / ,\\"," .-' ~,'"," / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' ~,'"," / _ |"," / _) |"," ,=='`.____)_)"]]}),I=t("Bean",{idle:[[" |\\/| ---- _"," =(oo)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(- -)=_____ \\"," c___ (______/"]],happy:[[" |\\/| ---- _"," =(^ ^)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(^o^)=_____ \\"," c___ (______/"]],working:[[" |\\/| ---- _"," =(o.O)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(o.o)=_____ \\"," c___ (______/"]],sleeping:[[" |\\/| ---- _"," =(- -)=zz___ \\"," c___ (______/"],[" |\\/| ---- _"," =(- -)=ZZ___ \\"," c___ (______/"]],error:[[" |\\/| ---- _"," =(x x)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(X X)=_____ \\"," c___ (______/"]],eating:[[" |\\/| ---- _"," =(o o)=_____ \\"," c___~(_____/"],[" |\\/| ---- _"," =(. .)=_____ \\"," c___~(_____/"]]}),o=[l,p,T,u,m,I],d=2500,g=250;class w{static{r(this,"BuddyPetComponent")}tui;sprite;state="idle";currentFrame=0;blinkInterval;blinkResetTimer;name;speechBubble="";constructor(_,e=0,s){this.tui=_,this.sprite=o[e%o.length],this.name=s||this.sprite.name,this.startAnimation()}setState(_){this.state!==_&&(this.state=_,this.clearBlinkResetTimer(),this.currentFrame=0,this.tui.requestRender())}setSpeechBubble(_){this.speechBubble=_,this.tui.requestRender()}clearBlinkResetTimer(){this.blinkResetTimer&&(clearTimeout(this.blinkResetTimer),this.blinkResetTimer=void 0)}startAnimation(){const _=r(()=>{if(this.state!=="idle"||this.currentFrame!==0)return;const e=this.sprite.states.idle;!e||e.length<2||(this.currentFrame=1,this.tui.requestRender(),this.clearBlinkResetTimer(),this.blinkResetTimer=setTimeout(()=>{this.currentFrame=0,this.blinkResetTimer=void 0,this.tui.requestRender()},g))},"tick");this.blinkInterval=setInterval(_,d)}invalidate(){}render(_){const e=this.sprite.states[this.state];if(!e||e.length===0)return[];const s=e[this.currentFrame%e.length],n=[];for(const c of s)n.push(a.fg("accent",c));return n}dispose(){this.clearBlinkResetTimer(),this.blinkInterval&&(clearInterval(this.blinkInterval),this.blinkInterval=void 0)}}export{o as ALL_SPRITES,w as BuddyPetComponent};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CatuiLoader - Custom loader with rotating diamond animation
|
|
3
|
+
* Uses ◆◇◈ symbols for a smooth loading indicator
|
|
4
|
+
* Supports stalled animation (color transition to red) and tips display
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* [WHO]: CatuiLoader
|
|
8
|
+
* [FROM]: Depends on @catui/tui
|
|
9
|
+
* [TO]: Consumed by modes/interactive/components/index.ts
|
|
10
|
+
* [HERE]: modes/interactive/components/catui-loader.ts -
|
|
11
|
+
*/
|
|
12
|
+
import { Container, type TUI } from "@catui/tui";
|
|
13
|
+
import type { Theme } from "../theme/theme.js";
|
|
14
|
+
export declare class CatuiLoader extends Container {
|
|
15
|
+
private tui;
|
|
16
|
+
private theme;
|
|
17
|
+
private message;
|
|
18
|
+
private suffix;
|
|
19
|
+
private interval;
|
|
20
|
+
private tipInterval;
|
|
21
|
+
private currentFrame;
|
|
22
|
+
private textComponent;
|
|
23
|
+
private tipComponent;
|
|
24
|
+
private isStopped;
|
|
25
|
+
private readonly startTime;
|
|
26
|
+
private lastTokenTime;
|
|
27
|
+
private sessionId;
|
|
28
|
+
private readonly STALL_THRESHOLD_MS;
|
|
29
|
+
private readonly frames;
|
|
30
|
+
constructor(tui: TUI, theme: Theme, message: string, sessionId?: string);
|
|
31
|
+
private getRandomTip;
|
|
32
|
+
private startTipRotation;
|
|
33
|
+
private startAnimation;
|
|
34
|
+
/**
|
|
35
|
+
* Get spinner color based on stall duration.
|
|
36
|
+
* Normal: accent color
|
|
37
|
+
* After STALL_THRESHOLD_MS: interpolates toward error red
|
|
38
|
+
*/
|
|
39
|
+
private getSpinnerColor;
|
|
40
|
+
/**
|
|
41
|
+
* Get how long since last token/output (for stalled animation).
|
|
42
|
+
*/
|
|
43
|
+
private getStallDuration;
|
|
44
|
+
/**
|
|
45
|
+
* Call this when new output arrives to reset the stall timer.
|
|
46
|
+
*/
|
|
47
|
+
resetStallTimer(): void;
|
|
48
|
+
setMessage(message: string, options?: {
|
|
49
|
+
resetStallTimer?: boolean;
|
|
50
|
+
suffix?: string;
|
|
51
|
+
}): void;
|
|
52
|
+
setSessionId(sessionId: string): void;
|
|
53
|
+
stop(): void;
|
|
54
|
+
dispose(): void;
|
|
55
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var l=Object.defineProperty;var o=(a,t)=>l(a,"name",{value:t,configurable:!0});import{Container as f,Spacer as h,Text as m}from"@catui/tui";const d=["Press Tab to autocomplete slash commands","Type /help for available commands","Ctrl+C to interrupt the current task","Drag and drop images into the terminal","Use @filename to reference files in your message","Press \u2191\u2193 to navigate command history","Type /compact to summarize and free context","Shift+Enter for a new line in the editor","Use /model to switch AI models","Type /theme to change the color theme"];class c extends f{static{o(this,"CatuiLoader")}tui;theme;message;suffix="";interval;tipInterval;currentFrame=0;textComponent;tipComponent;isStopped=!1;startTime;lastTokenTime;sessionId;STALL_THRESHOLD_MS=3e3;frames=["\u25C6","\u25C7","\u25C8"];constructor(t,i,e,s="default"){super(),this.tui=t,this.theme=i,this.message=e,this.sessionId=s,this.startTime=Date.now(),this.lastTokenTime=Date.now(),this.textComponent=new m("",0,0),this.tipComponent=new m("",1,0),this.addChild(new h(1)),this.addChild(this.textComponent),this.addChild(this.tipComponent),this.addChild(new h(1)),this.startAnimation(),this.startTipRotation()}getRandomTip(){return d[Math.floor(Math.random()*d.length)]}startTipRotation(){setTimeout(()=>{this.isStopped||(this.tipComponent.setText(this.theme.fg("dim",` \u2559 tip: ${this.getRandomTip()}`)),this.tui.requestRender())},2e3),this.tipInterval=setInterval(()=>{this.isStopped||(this.tipComponent.setText(this.theme.fg("dim",` \u2559 tip: ${this.getRandomTip()}`)),this.tui.requestRender())},6e3)}startAnimation(){const t=o(()=>{if(this.isStopped)return;const i=this.frames[this.currentFrame],s=this.getSpinnerColor()(i),n=this.suffix?` ${this.theme.fg("dim",this.suffix)}`:"",r=`${s} ${this.theme.fg("accent",this.message)}${n}`;this.textComponent.setText(r),this.tui.requestRender(),this.currentFrame=(this.currentFrame+1)%this.frames.length},"updateFrame");t(),this.interval=setInterval(t,200)}getSpinnerColor(){const t=this.getStallDuration();if(t<this.STALL_THRESHOLD_MS)return e=>this.theme.fg("accent",e);const i=Math.min((t-this.STALL_THRESHOLD_MS)/2e3,1);return e=>i>=1?this.theme.fg("error",e):i>.5?this.theme.fg("warning",e):this.theme.fg("accent",e)}getStallDuration(){return Date.now()-this.lastTokenTime}resetStallTimer(){this.lastTokenTime=Date.now()}setMessage(t,i){this.message=t,this.suffix=i?.suffix??"",i?.resetStallTimer!==!1&&this.resetStallTimer();const e=this.frames[this.currentFrame],n=this.getSpinnerColor()(e),r=this.suffix?` ${this.theme.fg("dim",this.suffix)}`:"";this.textComponent.setText(`${n} ${this.theme.fg("accent",this.message)}${r}`),this.tui.requestRender()}setSessionId(t){this.sessionId=t}stop(){this.isStopped=!0,this.interval&&(clearInterval(this.interval),this.interval=void 0),this.tipInterval&&(clearInterval(this.tipInterval),this.tipInterval=void 0)}dispose(){this.stop()}}export{c as CatuiLoader};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: CompactionSummaryMessageComponent
|
|
3
|
+
* [FROM]: Depends on @catui/tui, ../theme/theme.js, ./keybinding-hints.js
|
|
4
|
+
* [TO]: Consumed by modes/interactive/components/index.ts
|
|
5
|
+
* [HERE]: modes/interactive/components/compaction-summary-message.ts -
|
|
6
|
+
*/
|
|
7
|
+
import { Box, type MarkdownTheme } from "@catui/tui";
|
|
8
|
+
import type { CompactionSummaryMessage } from "../../../core/messages.js";
|
|
9
|
+
/**
|
|
10
|
+
* Component that renders a compaction message with collapsed/expanded state.
|
|
11
|
+
* Uses same background color as custom messages for visual consistency.
|
|
12
|
+
*/
|
|
13
|
+
export declare class CompactionSummaryMessageComponent extends Box {
|
|
14
|
+
private expanded;
|
|
15
|
+
private message;
|
|
16
|
+
private markdownTheme;
|
|
17
|
+
constructor(message: CompactionSummaryMessage, markdownTheme?: MarkdownTheme);
|
|
18
|
+
setExpanded(expanded: boolean): void;
|
|
19
|
+
invalidate(): void;
|
|
20
|
+
private updateDisplay;
|
|
21
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var n=Object.defineProperty;var o=(d,e)=>n(d,"name",{value:e,configurable:!0});import{Box as r,Markdown as p,Spacer as h,Text as m}from"@catui/tui";import{getMarkdownTheme as c,theme as s}from"../theme/theme.js";import{editorKey as l}from"./keybinding-hints.js";class k extends r{static{o(this,"CompactionSummaryMessageComponent")}expanded=!1;message;markdownTheme;constructor(e,t=c()){super(1,1,a=>s.bg("customMessageBg",a)),this.message=e,this.markdownTheme=t,this.updateDisplay()}setExpanded(e){this.expanded=e,this.updateDisplay()}invalidate(){super.invalidate(),this.updateDisplay()}updateDisplay(){this.clear();const e=this.message.tokensBefore.toLocaleString(),t=s.fg("customMessageLabel","\x1B[1m[compaction]\x1B[22m");if(this.addChild(new m(t,0,0)),this.addChild(new h(1)),this.expanded){const a=`**Compacted from ${e} tokens**
|
|
2
|
+
|
|
3
|
+
`;this.addChild(new p(a+this.message.summary,0,0,this.markdownTheme,{color:o(i=>s.fg("customMessageText",i),"color")}))}else this.addChild(new m(s.fg("customMessageText",`Compacted from ${e} tokens (`)+s.fg("dim",l("expandTools"))+s.fg("customMessageText"," to expand)"),0,0))}}export{k as CompactionSummaryMessageComponent};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI component for managing package resources (enable/disable)
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* [WHO]: ConfigSelectorComponent
|
|
6
|
+
* [FROM]: Depends on node:path, ../../../config.js, ../theme/theme.js, ./dynamic-border.js, ./keybinding-hints.js
|
|
7
|
+
* [TO]: Consumed by modes/interactive/components/index.ts
|
|
8
|
+
* [HERE]: modes/interactive/components/config-selector.ts -
|
|
9
|
+
*/
|
|
10
|
+
import { type Component, Container, type Focusable } from "@catui/tui";
|
|
11
|
+
import type { PathMetadata, ResolvedPaths } from "../../../core/package-manager.js";
|
|
12
|
+
import type { SettingsManager } from "../../../core/platform/config/settings-manager.js";
|
|
13
|
+
type ResourceType = "extensions" | "skills" | "prompts" | "themes";
|
|
14
|
+
interface ResourceItem {
|
|
15
|
+
path: string;
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
metadata: PathMetadata;
|
|
18
|
+
resourceType: ResourceType;
|
|
19
|
+
displayName: string;
|
|
20
|
+
groupKey: string;
|
|
21
|
+
subgroupKey: string;
|
|
22
|
+
}
|
|
23
|
+
interface ResourceSubgroup {
|
|
24
|
+
type: ResourceType;
|
|
25
|
+
label: string;
|
|
26
|
+
items: ResourceItem[];
|
|
27
|
+
}
|
|
28
|
+
interface ResourceGroup {
|
|
29
|
+
key: string;
|
|
30
|
+
label: string;
|
|
31
|
+
scope: "user" | "project" | "temporary";
|
|
32
|
+
origin: "package" | "top-level";
|
|
33
|
+
source: string;
|
|
34
|
+
subgroups: ResourceSubgroup[];
|
|
35
|
+
}
|
|
36
|
+
declare class ResourceList implements Component, Focusable {
|
|
37
|
+
private groups;
|
|
38
|
+
private flatItems;
|
|
39
|
+
private filteredItems;
|
|
40
|
+
private selectedIndex;
|
|
41
|
+
private searchInput;
|
|
42
|
+
private maxVisible;
|
|
43
|
+
private settingsManager;
|
|
44
|
+
private cwd;
|
|
45
|
+
private agentDir;
|
|
46
|
+
onCancel?: () => void;
|
|
47
|
+
onExit?: () => void;
|
|
48
|
+
onToggle?: (item: ResourceItem, newEnabled: boolean) => void;
|
|
49
|
+
private _focused;
|
|
50
|
+
get focused(): boolean;
|
|
51
|
+
set focused(value: boolean);
|
|
52
|
+
constructor(groups: ResourceGroup[], settingsManager: SettingsManager, cwd: string, agentDir: string);
|
|
53
|
+
private buildFlatList;
|
|
54
|
+
private findNextItem;
|
|
55
|
+
private filterItems;
|
|
56
|
+
private selectFirstItem;
|
|
57
|
+
updateItem(item: ResourceItem, enabled: boolean): void;
|
|
58
|
+
invalidate(): void;
|
|
59
|
+
render(width: number): string[];
|
|
60
|
+
handleInput(data: string): void;
|
|
61
|
+
private toggleResource;
|
|
62
|
+
private toggleTopLevelResource;
|
|
63
|
+
private togglePackageResource;
|
|
64
|
+
private getTopLevelBaseDir;
|
|
65
|
+
private getResourcePattern;
|
|
66
|
+
private getPackageResourcePattern;
|
|
67
|
+
}
|
|
68
|
+
export declare class ConfigSelectorComponent extends Container implements Focusable {
|
|
69
|
+
private resourceList;
|
|
70
|
+
private _focused;
|
|
71
|
+
get focused(): boolean;
|
|
72
|
+
set focused(value: boolean);
|
|
73
|
+
constructor(resolvedPaths: ResolvedPaths, settingsManager: SettingsManager, cwd: string, agentDir: string, onClose: () => void, onExit: () => void, requestRender: () => void);
|
|
74
|
+
getResourceList(): ResourceList;
|
|
75
|
+
}
|
|
76
|
+
export {};
|