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,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: buildLoopPrompt, getLoopUsageMessage
|
|
3
|
+
* [FROM]: Depends on ./cron-tools/prompt
|
|
4
|
+
* [TO]: Consumed by ./index
|
|
5
|
+
* [HERE]: extensions/builtin/loop/loop-skill.ts - /loop skill: prompt builder and usage message
|
|
6
|
+
*
|
|
7
|
+
* /loop skill — translates user input into a CronCreate tool call.
|
|
8
|
+
*
|
|
9
|
+
* 1:1 port of Claude Code src/skills/bundled/loop.ts
|
|
10
|
+
*
|
|
11
|
+
* This module builds the prompt that instructs the model to:
|
|
12
|
+
* 1. Parse [interval] <prompt> from user input
|
|
13
|
+
* 2. Convert interval to cron expression
|
|
14
|
+
* 3. Call CronCreate
|
|
15
|
+
* 4. Confirm and execute immediately
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildLoopPrompt(args: string): string;
|
|
18
|
+
export declare function getLoopUsageMessage(): string;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
var i=Object.defineProperty;var r=(t,n)=>i(t,"name",{value:n,configurable:!0});import{CRON_CREATE_TOOL_NAME as o,CRON_DELETE_TOOL_NAME as s,DEFAULT_MAX_AGE_DAYS as a}from"./cron-tools/prompt.js";const e="10m",h=`Usage: /loop [interval] <prompt>
|
|
2
|
+
|
|
3
|
+
Run a prompt or slash command on a recurring interval.
|
|
4
|
+
|
|
5
|
+
Intervals: Ns, Nm, Nh, Nd (e.g. 5m, 30m, 2h, 1d). Minimum granularity is 1 minute.
|
|
6
|
+
If no interval is specified, defaults to ${e}.
|
|
7
|
+
|
|
8
|
+
Examples:
|
|
9
|
+
/loop 5m /babysit-prs
|
|
10
|
+
/loop 30m check the deploy
|
|
11
|
+
/loop 1h /standup 1
|
|
12
|
+
/loop check the deploy (defaults to ${e})
|
|
13
|
+
/loop check the deploy every 20m`;function m(t){return`# /loop \u2014 schedule a recurring prompt
|
|
14
|
+
|
|
15
|
+
Parse the input below into \`[interval] <prompt\u2026>\` and schedule it with ${o}.
|
|
16
|
+
|
|
17
|
+
## Parsing (in priority order)
|
|
18
|
+
|
|
19
|
+
1. **Leading token**: if the first whitespace-delimited token matches \`^\\d+[smhd]$\` (e.g. \`5m\`, \`2h\`), that's the interval; the rest is the prompt.
|
|
20
|
+
2. **Trailing "every" clause**: otherwise, if the input ends with \`every <N><unit>\` or \`every <N> <unit-word>\` (e.g. \`every 20m\`, \`every 5 minutes\`, \`every 2 hours\`), extract that as the interval and strip it from the prompt. Only match when what follows "every" is a time expression \u2014 \`check every PR\` has no interval.
|
|
21
|
+
3. **Default**: otherwise, interval is \`${e}\` and the entire input is the prompt.
|
|
22
|
+
|
|
23
|
+
If the resulting prompt is empty, show usage \`/loop [interval] <prompt>\` and stop \u2014 do not call ${o}.
|
|
24
|
+
|
|
25
|
+
Examples:
|
|
26
|
+
- \`5m /babysit-prs\` \u2192 interval \`5m\`, prompt \`/babysit-prs\` (rule 1)
|
|
27
|
+
- \`check the deploy every 20m\` \u2192 interval \`20m\`, prompt \`check the deploy\` (rule 2)
|
|
28
|
+
- \`run tests every 5 minutes\` \u2192 interval \`5m\`, prompt \`run tests\` (rule 2)
|
|
29
|
+
- \`check the deploy\` \u2192 interval \`${e}\`, prompt \`check the deploy\` (rule 3)
|
|
30
|
+
- \`check every PR\` \u2192 interval \`${e}\`, prompt \`check every PR\` (rule 3 \u2014 "every" not followed by time)
|
|
31
|
+
- \`5m\` \u2192 empty prompt \u2192 show usage
|
|
32
|
+
|
|
33
|
+
## Interval \u2192 cron
|
|
34
|
+
|
|
35
|
+
Supported suffixes: \`s\` (seconds, rounded up to nearest minute, min 1), \`m\` (minutes), \`h\` (hours), \`d\` (days). Convert:
|
|
36
|
+
|
|
37
|
+
| Interval pattern | Cron expression | Notes |
|
|
38
|
+
|-----------------------|---------------------|------------------------------------------|
|
|
39
|
+
| \`Nm\` where N \u2264 59 | \`*/N * * * *\` | every N minutes |
|
|
40
|
+
| \`Nm\` where N \u2265 60 | \`0 */H * * *\` | round to hours (H = N/60, must divide 24)|
|
|
41
|
+
| \`Nh\` where N \u2264 23 | \`0 */N * * *\` | every N hours |
|
|
42
|
+
| \`Nd\` | \`0 0 */N * *\` | every N days at midnight local |
|
|
43
|
+
| \`Ns\` | treat as \`ceil(N/60)m\` | cron minimum granularity is 1 minute |
|
|
44
|
+
|
|
45
|
+
**If the interval doesn't cleanly divide its unit** (e.g. \`7m\` \u2192 \`*/7 * * * *\` gives uneven gaps at :56\u2192:00; \`90m\` \u2192 1.5h which cron can't express), pick the nearest clean interval and tell the user what you rounded to before scheduling.
|
|
46
|
+
|
|
47
|
+
## Action
|
|
48
|
+
|
|
49
|
+
1. Call ${o} with:
|
|
50
|
+
- \`cron\`: the expression from the table above
|
|
51
|
+
- \`prompt\`: the parsed prompt from above, verbatim (slash commands are passed through unchanged)
|
|
52
|
+
- \`recurring\`: \`true\`
|
|
53
|
+
2. Briefly confirm: what's scheduled, the cron expression, the human-readable cadence, that recurring tasks auto-expire after ${a} days, and that they can cancel sooner with ${s} (include the job ID).
|
|
54
|
+
3. **Then immediately execute the parsed prompt now** \u2014 don't wait for the first cron fire. If it's a slash command, invoke it via the Skill tool; otherwise act on it directly.
|
|
55
|
+
|
|
56
|
+
## Input
|
|
57
|
+
|
|
58
|
+
${t}`}r(m,"buildLoopPrompt");function c(){return h}r(c,"getLoopUsageMessage");export{m as buildLoopPrompt,c as getLoopUsageMessage};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: lspExtension - registers LSP tool, manages server lifecycle, cleanup on shutdown
|
|
3
|
+
* [FROM]: Depends on core/extensions-host/types, ./lsp-server-manager, ./lsp-tool
|
|
4
|
+
* [TO]: Auto-loaded by builtin-extensions.ts as a default extension
|
|
5
|
+
* [HERE]: extensions/builtin/lsp/index.ts - main LSP extension entry point
|
|
6
|
+
*/
|
|
7
|
+
import type { ExtensionAPI } from "../../../core/extensions-host/types.js";
|
|
8
|
+
export default function lspExtension(api: ExtensionAPI): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var r=Object.defineProperty;var e=(o,t)=>r(o,"name",{value:t,configurable:!0});import{createLSPServerManager as s}from"./lsp-server-manager.js";import{createLSPTool as a}from"./lsp-tool.js";async function c(o){const t=s();t.initialize().catch(()=>{});const n=a(t,o.cwd);o.registerTool(n),o.on("session_shutdown",async()=>{await t.shutdown()})}e(c,"lspExtension");export{c as default};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides createLSPClient(), LSPClient type
|
|
3
|
+
* [FROM]: Depends on node:child_process, vscode-jsonrpc/node.js
|
|
4
|
+
* [TO]: Consumed by ./lsp-server-instance.ts
|
|
5
|
+
* [HERE]: extensions/builtin/lsp/lsp-client.ts - stdio JSON-RPC client for LSP servers
|
|
6
|
+
*/
|
|
7
|
+
import type { InitializeParams, InitializeResult, ServerCapabilities } from "vscode-languageserver-protocol";
|
|
8
|
+
export interface LSPClient {
|
|
9
|
+
readonly capabilities: ServerCapabilities | undefined;
|
|
10
|
+
readonly isInitialized: boolean;
|
|
11
|
+
start(command: string, args: string[], options?: {
|
|
12
|
+
env?: Record<string, string>;
|
|
13
|
+
cwd?: string;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
initialize(params: InitializeParams): Promise<InitializeResult>;
|
|
16
|
+
sendRequest<TResult>(method: string, params: unknown): Promise<TResult>;
|
|
17
|
+
sendNotification(method: string, params: unknown): Promise<void>;
|
|
18
|
+
onNotification(method: string, handler: (params: unknown) => void): void;
|
|
19
|
+
onRequest<TParams, TResult>(method: string, handler: (params: TParams) => TResult | Promise<TResult>): void;
|
|
20
|
+
stop(): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export declare function createLSPClient(serverName: string, onCrash?: (error: Error) => void): LSPClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var q=Object.defineProperty;var P=(r,d)=>q(r,"name",{value:d,configurable:!0});import{spawn as $}from"node:child_process";import{createMessageConnection as z,StreamMessageReader as x,StreamMessageWriter as C}from"vscode-jsonrpc/node.js";function M(r,d){let a,e,S,s=!1,l=!1,u=!1,c;const p=[],w=[];function E(){if(e){for(const{method:i,handler:t}of p)e.onNotification(i,t);p.length=0;for(const{method:i,handler:t}of w)e.onRequest(i,t);w.length=0}}return P(E,"flushPendingHandlers"),{get capabilities(){return S},get isInitialized(){return s},async start(i,t,y){if(u)throw c??new Error(`LSP server ${r} previously failed to start`);return new Promise((L,h)=>{try{const n=$(i,t,{stdio:["pipe","pipe","pipe"],env:{...process.env,...y?.env},cwd:y?.cwd});let g=!1;n.on("spawn",()=>{g=!0,a=n;const o=new x(n.stdout),f=new C(n.stdin);e=z(o,f),e.onError(R=>{l||console.error(`[LSP:${r}] Connection error:`,R)}),e.onClose(()=>{l||(s=!1,d?.(new Error(`LSP server ${r} connection closed unexpectedly`)))}),e.listen(),E(),L()}),n.on("error",o=>{g?l||console.error(`[LSP:${r}] Process error:`,o):(u=!0,c=o,h(o))}),n.on("exit",o=>{if(!l&&o!==0){s=!1;const f=new Error(`LSP server ${r} exited with code ${o}`);g?d?.(f):(u=!0,c=f,h(f))}}),n.stderr?.on("data",()=>{})}catch(n){u=!0,c=n instanceof Error?n:new Error(String(n)),h(c)}})},async initialize(i){if(!e)throw new Error(`LSP client ${r} not started`);const t=await e.sendRequest("initialize",i);return S=t.capabilities,await e.sendNotification("initialized",{}),s=!0,t},async sendRequest(i,t){if(!e||!s)throw new Error(`LSP client ${r} not initialized`);return e.sendRequest(i,t)},async sendNotification(i,t){if(e)try{await e.sendNotification(i,t)}catch{}},onNotification(i,t){e?e.onNotification(i,t):p.push({method:i,handler:t})},onRequest(i,t){e?e.onRequest(i,t):w.push({method:i,handler:t})},async stop(){l=!0;try{e&&s&&(await e.sendRequest("shutdown"),await e.sendNotification("exit"))}catch{}finally{e?.dispose(),e=void 0,s=!1,a&&(a.removeAllListeners(),a.killed||a.kill(),a=void 0)}}}}P(M,"createLSPClient");export{M as createLSPClient};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides discoverLspServers()
|
|
3
|
+
* [FROM]: Depends on node:child_process (which probing)
|
|
4
|
+
* [TO]: Consumed by ./lsp-server-manager.ts
|
|
5
|
+
* [HERE]: extensions/builtin/lsp/lsp-config.ts - built-in LSP server discovery via which probing
|
|
6
|
+
*/
|
|
7
|
+
import type { LspServerConfig } from "./types.js";
|
|
8
|
+
export declare function discoverLspServers(): Promise<Map<string, LspServerConfig>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var o=Object.defineProperty;var e=(a,s)=>o(a,"name",{value:s,configurable:!0});import{execFile as r}from"node:child_process";const i=[{name:"typescript",config:{command:"typescript-language-server",args:["--stdio"],extensionToLanguage:{".ts":"typescript",".tsx":"typescriptreact",".js":"javascript",".jsx":"javascriptreact",".mts":"typescript",".mjs":"javascript",".cts":"typescript",".cjs":"javascript"},startupTimeout:3e4,maxRestarts:3}},{name:"python",config:{command:"pyright-langserver",args:["--stdio"],extensionToLanguage:{".py":"python",".pyi":"python"},startupTimeout:3e4,maxRestarts:3}},{name:"rust",config:{command:"rust-analyzer",extensionToLanguage:{".rs":"rust"},startupTimeout:6e4,maxRestarts:3}},{name:"go",config:{command:"gopls",extensionToLanguage:{".go":"go"},startupTimeout:3e4,maxRestarts:3}}];function c(a){return new Promise(s=>{r("which",[a],t=>{s(!t)})})}e(c,"which");async function g(){const a=new Map,s=await Promise.all(i.map(async t=>({entry:t,available:await c(t.config.command)})));for(const{entry:t,available:n}of s)n&&a.set(t.name,t.config);return a}e(g,"discoverLspServers");export{g as discoverLspServers};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: 8 formatter functions for LSP operation results
|
|
3
|
+
* [FROM]: Depends on vscode-languageserver-types for Location, Hover, DocumentSymbol, etc.
|
|
4
|
+
* [TO]: Consumed by ./lsp-tool.ts
|
|
5
|
+
* [HERE]: extensions/builtin/lsp/lsp-formatters.ts - human-readable result formatting for 9 LSP operations
|
|
6
|
+
*/
|
|
7
|
+
import type { CallHierarchyIncomingCall, CallHierarchyItem, CallHierarchyOutgoingCall, DocumentSymbol, Hover, Location, LocationLink, SymbolInformation } from "vscode-languageserver-types";
|
|
8
|
+
export declare function formatGoToDefinitionResult(result: Location | Location[] | LocationLink | LocationLink[] | null, cwd: string): string;
|
|
9
|
+
export declare function formatFindReferencesResult(result: Location[] | null, cwd: string): string;
|
|
10
|
+
export declare function formatHoverResult(result: Hover | null): string;
|
|
11
|
+
export declare function formatDocumentSymbolResult(result: DocumentSymbol[] | SymbolInformation[] | null, cwd: string): string;
|
|
12
|
+
export declare function formatWorkspaceSymbolResult(result: SymbolInformation[] | null, cwd: string): string;
|
|
13
|
+
export declare function formatPrepareCallHierarchyResult(result: CallHierarchyItem[] | null, cwd: string): string;
|
|
14
|
+
export declare function formatIncomingCallsResult(result: CallHierarchyIncomingCall[] | null, cwd: string): string;
|
|
15
|
+
export declare function formatOutgoingCallsResult(result: CallHierarchyOutgoingCall[] | null, cwd: string): string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var m=Object.defineProperty;var s=(n,e)=>m(n,"name",{value:e,configurable:!0});function u(n,e){let o=n;if(o.startsWith("file://")&&(o=decodeURIComponent(o.slice(7)),/^\/[A-Z]:/i.test(o)&&(o=o.slice(1))),o.startsWith(e+"/")){const r=o.slice(e.length+1);if(!r.startsWith(".."))return r}return o}s(u,"formatUri");function $(n,e){const o=u(n.uri,e),r=n.range.start.line+1,t=n.range.start.character+1;return`${o}:${r}:${t}`}s($,"formatLocation");function g(n,e,o){const r=new Map;for(const t of n){const a=e(t);if(!a)continue;const i=u(a,o),l=r.get(i);l?l.push(t):r.set(i,[t])}return r}s(g,"groupByFile");function p(n){return{uri:n.targetUri,range:n.targetSelectionRange??n.targetRange}}s(p,"locationLinkToLocation");function d(n){return n?typeof n=="string"?n:Array.isArray(n)?n.map(e=>typeof e=="string"?e:e.value).join(`
|
|
2
|
+
|
|
3
|
+
`):"kind"in n?n.value:"language"in n?`\`\`\`${n.language}
|
|
4
|
+
${n.value}
|
|
5
|
+
\`\`\``:String(n):""}s(d,"extractMarkupText");function f(n){return{1:"File",2:"Module",3:"Namespace",4:"Package",5:"Class",6:"Method",7:"Property",8:"Field",9:"Constructor",10:"Enum",11:"Interface",12:"Function",13:"Variable",14:"Constant",15:"String",16:"Number",17:"Boolean",18:"Array",19:"Object",20:"Key",21:"Null",22:"EnumMember",23:"Struct",24:"Event",25:"Operator",26:"TypeParameter"}[n]??`Kind(${n})`}s(f,"symbolKindToString");function R(n,e){if(!n)return"No definition found.";const o=Array.isArray(n)?n:[n];if(o.length===0)return"No definition found.";const r=o.map(a=>"targetUri"in a?p(a):a);if(r.length===1)return`Definition: ${$(r[0],e)}`;const t=r.map(a=>`- ${$(a,e)}`);return`Found ${r.length} definitions:
|
|
6
|
+
${t.join(`
|
|
7
|
+
`)}`}s(R,"formatGoToDefinitionResult");function k(n,e){if(!n||n.length===0)return"No references found.";const o=g(n,t=>t.uri,e),r=[];for(const[t,a]of o){r.push(`${t}:`);for(const i of a){const l=i.range.start.line+1,c=i.range.start.character+1;r.push(` ${l}:${c}`)}}return`Found ${n.length} reference(s) in ${o.size} file(s):
|
|
8
|
+
${r.join(`
|
|
9
|
+
`)}`}s(k,"formatFindReferencesResult");function N(n){return n?.contents?d(n.contents):"No hover information available."}s(N,"formatHoverResult");function b(n,e){if(!n||n.length===0)return"No symbols found.";if(n.length>0&&"children"in n[0]){let a=function(i,l){for(const c of i){const h=c.range.start.line+1;t.push(`${" ".repeat(l)}${f(c.kind)} ${c.name} (line ${h})`),c.children?.length&&a(c.children,l+1)}};s(a,"walk");const t=[];return a(n,0),t.join(`
|
|
10
|
+
`)}return n.map(t=>{const a=u(t.location.uri,e),i=t.location.range.start.line+1;return`${f(t.kind)} ${t.name} \u2014 ${a}:${i}`}).join(`
|
|
11
|
+
`)}s(b,"formatDocumentSymbolResult");function j(n,e){if(!n||n.length===0)return"No workspace symbols found.";const o=g(n,t=>t.location?.uri??"",e),r=[];for(const[t,a]of o){r.push(`${t}:`);for(const i of a){const l=i.location.range.start.line+1;r.push(` ${f(i.kind)} ${i.name} (line ${l})`)}}return`Found ${n.length} symbol(s) in ${o.size} file(s):
|
|
12
|
+
${r.join(`
|
|
13
|
+
`)}`}s(j,"formatWorkspaceSymbolResult");function x(n,e){return!n||n.length===0?"No call hierarchy item found.":n.map(o=>{const r=u(o.uri,e),t=o.range.start.line+1;return`${f(o.kind)} ${o.name} \u2014 ${r}:${t}`}).join(`
|
|
14
|
+
`)}s(x,"formatPrepareCallHierarchyResult");function F(n,e){if(!n||n.length===0)return"No incoming calls found.";const o=g(n,t=>t.from.uri,e),r=[];for(const[t,a]of o){r.push(`${t}:`);for(const i of a){const l=i.from.range.start.line+1;r.push(` ${f(i.from.kind)} ${i.from.name} (line ${l})`);for(const c of i.fromRanges)r.push(` call at line ${c.start.line+1}:${c.start.character+1}`)}}return`Found ${n.length} incoming call(s) from ${o.size} file(s):
|
|
15
|
+
${r.join(`
|
|
16
|
+
`)}`}s(F,"formatIncomingCallsResult");function v(n,e){if(!n||n.length===0)return"No outgoing calls found.";const o=g(n,t=>t.to.uri,e),r=[];for(const[t,a]of o){r.push(`${t}:`);for(const i of a){const l=i.to.range.start.line+1;r.push(` ${f(i.to.kind)} ${i.to.name} (line ${l})`);for(const c of i.fromRanges)r.push(` call at line ${c.start.line+1}:${c.start.character+1}`)}}return`Found ${n.length} outgoing call(s) to ${o.size} file(s):
|
|
17
|
+
${r.join(`
|
|
18
|
+
`)}`}s(v,"formatOutgoingCallsResult");export{b as formatDocumentSymbolResult,k as formatFindReferencesResult,R as formatGoToDefinitionResult,N as formatHoverResult,F as formatIncomingCallsResult,v as formatOutgoingCallsResult,x as formatPrepareCallHierarchyResult,j as formatWorkspaceSymbolResult};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides createLSPServerInstance(), LSPServerInstance type
|
|
3
|
+
* [FROM]: Depends on ./lsp-client, vscode-languageserver-protocol
|
|
4
|
+
* [TO]: Consumed by ./lsp-server-manager.ts
|
|
5
|
+
* [HERE]: extensions/builtin/lsp/lsp-server-instance.ts - single LSP server lifecycle with crash recovery
|
|
6
|
+
*/
|
|
7
|
+
import type { LspServerConfig, LspServerState } from "./types.js";
|
|
8
|
+
export interface LSPServerInstance {
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly config: LspServerConfig;
|
|
11
|
+
readonly state: LspServerState;
|
|
12
|
+
readonly startTime: Date | undefined;
|
|
13
|
+
readonly lastError: Error | undefined;
|
|
14
|
+
readonly restartCount: number;
|
|
15
|
+
start(): Promise<void>;
|
|
16
|
+
stop(): Promise<void>;
|
|
17
|
+
restart(): Promise<void>;
|
|
18
|
+
isHealthy(): boolean;
|
|
19
|
+
sendRequest<T>(method: string, params: unknown): Promise<T>;
|
|
20
|
+
sendNotification(method: string, params: unknown): Promise<void>;
|
|
21
|
+
onNotification(method: string, handler: (params: unknown) => void): void;
|
|
22
|
+
onRequest<TParams, TResult>(method: string, handler: (params: TParams) => TResult | Promise<TResult>): void;
|
|
23
|
+
}
|
|
24
|
+
export declare function createLSPServerInstance(name: string, config: LspServerConfig): LSPServerInstance;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var y=Object.defineProperty;var d=(i,r)=>y(i,"name",{value:r,configurable:!0});import{createLSPClient as E}from"./lsp-client.js";const S=-32801,w=3,g=500;function h(i,r,t){return new Promise((f,s)=>{const l=setTimeout(()=>s(new Error(`Timeout: ${t} (${r}ms)`)),r);i.then(o=>{clearTimeout(l),f(o)},o=>{clearTimeout(l),s(o)})})}d(h,"withTimeout");function T(i){return new Promise(r=>setTimeout(r,i))}d(T,"sleep");function _(i,r){let t="stopped",f,s,l=0,o=0,n;const m=r.maxRestarts??3;function R(e){t="error",s=e,o++}return d(R,"onCrash"),{get name(){return i},get config(){return r},get state(){return t},get startTime(){return f},get lastError(){return s},get restartCount(){return l},async start(){if(!(t==="running"||t==="starting")){if(t==="error"&&o>m)throw new Error(`LSP server ${i} exceeded max restart attempts (${m})`);t="starting",s=void 0;try{n=E(i,R);const e=n.start(r.command,r.args??[],{env:r.env}),a=r.startupTimeout??3e4;await h(e,a,`${i} start`);const p=process.cwd(),u={processId:process.pid,rootUri:`file://${p}`,capabilities:{textDocument:{synchronization:{dynamicRegistration:!1,willSave:!1,didSave:!0,willSaveWaitUntil:!1},publishDiagnostics:{relatedInformation:!1},hover:{dynamicRegistration:!1,contentFormat:["markdown","plaintext"]},definition:{dynamicRegistration:!1,linkSupport:!1},references:{dynamicRegistration:!1},documentSymbol:{dynamicRegistration:!1,symbolKind:{valueSet:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},hierarchicalDocumentSymbolSupport:!0},callHierarchy:{dynamicRegistration:!1}},workspace:{configuration:!1,workspaceFolders:!1}},initializationOptions:r.initializationOptions},c=n.initialize(u);await h(c,a,`${i} initialize`),t="running",f=new Date,o=0}catch(e){throw t="error",s=e instanceof Error?e:new Error(String(e)),s}}},async stop(){if(!(t==="stopped"||t==="stopping")){t="stopping";try{await n?.stop()}finally{n=void 0,t="stopped"}}},async restart(){if(await this.stop(),l++,l>m)throw new Error(`LSP server ${i} exceeded max restarts (${m})`);await this.start()},isHealthy(){return t==="running"&&(n?.isInitialized??!1)},async sendRequest(e,a){if(!this.isHealthy())throw new Error(`LSP server ${i} is not healthy (state: ${t})`);let p;for(let u=0;u<=w;u++)try{return await n.sendRequest(e,a)}catch(c){if(c.code===S&&u<w){await T(g*Math.pow(2,u)),p=c instanceof Error?c:new Error(String(c));continue}throw c}throw p??new Error(`Request failed after retries: ${e}`)},async sendNotification(e,a){this.isHealthy()&&await n.sendNotification(e,a)},onNotification(e,a){n?.onNotification(e,a)},onRequest(e,a){n?.onRequest(e,a)}}}d(_,"createLSPServerInstance");export{_ as createLSPServerInstance};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides createLSPServerManager(), LSPServerManager type
|
|
3
|
+
* [FROM]: Depends on ./lsp-server-instance, ./lsp-config, node:path
|
|
4
|
+
* [TO]: Consumed by ./index.ts
|
|
5
|
+
* [HERE]: extensions/builtin/lsp/lsp-server-manager.ts - multi-server router with file extension mapping
|
|
6
|
+
*/
|
|
7
|
+
import { type LSPServerInstance } from "./lsp-server-instance.js";
|
|
8
|
+
export interface LSPServerManager {
|
|
9
|
+
initialize(): Promise<void>;
|
|
10
|
+
shutdown(): Promise<void>;
|
|
11
|
+
getServerForFile(filePath: string): LSPServerInstance | undefined;
|
|
12
|
+
ensureServerStarted(filePath: string): Promise<LSPServerInstance | undefined>;
|
|
13
|
+
sendRequest<T>(filePath: string, method: string, params: unknown): Promise<T | undefined>;
|
|
14
|
+
getAllServers(): Map<string, LSPServerInstance>;
|
|
15
|
+
openFile(filePath: string, content: string): Promise<void>;
|
|
16
|
+
changeFile(filePath: string, content: string): Promise<void>;
|
|
17
|
+
saveFile(filePath: string): Promise<void>;
|
|
18
|
+
closeFile(filePath: string): Promise<void>;
|
|
19
|
+
isFileOpen(filePath: string): boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare function createLSPServerManager(): LSPServerManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var v=Object.defineProperty;var f=(n,i)=>v(n,"name",{value:i,configurable:!0});import{extname as m}from"node:path";import{discoverLspServers as g}from"./lsp-config.js";import{createLSPServerInstance as l}from"./lsp-server-instance.js";function u(n){return n.startsWith("file://")?n:`file://${n.startsWith("/")?n:`/${n}`}`}f(u,"pathToUri");function F(){const n=new Map,i=new Map,c=new Map;return{async initialize(){const t=await g();for(const[e,r]of t){for(const o of Object.keys(r.extensionToLanguage)){const a=o.toLowerCase(),d=i.get(a);d?d.push(e):i.set(a,[e])}const s=l(e,r);n.set(e,s),s.onRequest("workspace/configuration",o=>{const a=o?.items;return Array.isArray(a)?a.map(()=>null):[]})}},async shutdown(){const t=Array.from(n.values()).filter(e=>e.state==="running"||e.state==="error").map(e=>e.stop().catch(()=>{}));await Promise.allSettled(t),n.clear(),i.clear(),c.clear()},getServerForFile(t){const e=m(t).toLowerCase(),r=i.get(e);if(!(!r||r.length===0))return n.get(r[0])},async ensureServerStarted(t){const e=this.getServerForFile(t);if(e){if(e.state==="stopped"||e.state==="error")try{await e.start()}catch{return}return e}},async sendRequest(t,e,r){const s=await this.ensureServerStarted(t);if(s)return s.sendRequest(e,r)},getAllServers(){return new Map(n)},async openFile(t,e){const r=await this.ensureServerStarted(t);if(!r)return;const s=u(t),o=`${s}:${r.name}`;if(c.has(o))return;const a=m(t).toLowerCase(),d=r.config.extensionToLanguage[a]??"unknown";await r.sendNotification("textDocument/didOpen",{textDocument:{uri:s,languageId:d,version:1,text:e}}),c.set(o,r.name)},async changeFile(t,e){const r=this.getServerForFile(t);if(!r)return;const s=u(t),o=`${s}:${r.name}`;if(!c.has(o)){await this.openFile(t,e);return}await r.sendNotification("textDocument/didChange",{textDocument:{uri:s,version:Date.now()},contentChanges:[{text:e}]})},async saveFile(t){const e=this.getServerForFile(t);e&&await e.sendNotification("textDocument/didSave",{textDocument:{uri:u(t)}})},async closeFile(t){const e=this.getServerForFile(t);if(!e)return;const r=u(t),s=`${r}:${e.name}`;await e.sendNotification("textDocument/didClose",{textDocument:{uri:r}}),c.delete(s)},isFileOpen(t){const e=this.getServerForFile(t);if(!e)return!1;const r=u(t);return c.has(`${r}:${e.name}`)}}}f(F,"createLSPServerManager");export{F as createLSPServerManager};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides createLSPTool()
|
|
3
|
+
* [FROM]: Depends on @sinclair/typebox, ./lsp-server-manager, ./lsp-formatters, ./types, node:fs, node:path
|
|
4
|
+
* [TO]: Consumed by ./index.ts
|
|
5
|
+
* [HERE]: extensions/builtin/lsp/lsp-tool.ts - LSP tool definition with TypeBox schema for 9 operations
|
|
6
|
+
*/
|
|
7
|
+
import { type Static } from "@sinclair/typebox";
|
|
8
|
+
import type { LSPServerManager } from "./lsp-server-manager.js";
|
|
9
|
+
import { type LSPToolOutput } from "./types.js";
|
|
10
|
+
declare const lspSchema: import("@sinclair/typebox").TObject<{
|
|
11
|
+
operation: import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<"goToDefinition" | "findReferences" | "hover" | "documentSymbol" | "workspaceSymbol" | "goToImplementation" | "prepareCallHierarchy" | "incomingCalls" | "outgoingCalls">[]>;
|
|
12
|
+
filePath: import("@sinclair/typebox").TString;
|
|
13
|
+
line: import("@sinclair/typebox").TInteger;
|
|
14
|
+
character: import("@sinclair/typebox").TInteger;
|
|
15
|
+
}>;
|
|
16
|
+
export type LSPInput = Static<typeof lspSchema>;
|
|
17
|
+
export declare function createLSPTool(manager: LSPServerManager, cwd: string): {
|
|
18
|
+
name: string;
|
|
19
|
+
label: string;
|
|
20
|
+
description: string;
|
|
21
|
+
parameters: typeof lspSchema;
|
|
22
|
+
isConcurrencySafe: true;
|
|
23
|
+
isReadOnly: true;
|
|
24
|
+
guidance: string;
|
|
25
|
+
execute: (toolCallId: string, params: LSPInput, signal?: AbortSignal) => Promise<{
|
|
26
|
+
content: Array<{
|
|
27
|
+
type: "text";
|
|
28
|
+
text: string;
|
|
29
|
+
}>;
|
|
30
|
+
details: LSPToolOutput | undefined;
|
|
31
|
+
}>;
|
|
32
|
+
};
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var w=Object.defineProperty;var b=(r,t)=>w(r,"name",{value:t,configurable:!0});import{Type as g}from"@sinclair/typebox";import{readFileSync as P,statSync as I}from"node:fs";import{resolve as R}from"node:path";import{formatDocumentSymbolResult as L,formatFindReferencesResult as T,formatGoToDefinitionResult as A,formatHoverResult as F,formatIncomingCallsResult as H,formatOutgoingCallsResult as E,formatPrepareCallHierarchyResult as O,formatWorkspaceSymbolResult as $}from"./lsp-formatters.js";import{LSP_OPERATIONS as z}from"./types.js";const W=10*1024*1024,q=g.Object({operation:g.Union(z.map(r=>g.Literal(r)),{description:"The LSP operation to perform"}),filePath:g.String({description:"Absolute path to the file"}),line:g.Integer({minimum:1,description:"Line number (1-based)"}),character:g.Integer({minimum:1,description:"Character offset (1-based)"})});function _(r,t,x,a,c){const y=x-1,p=a-1;let l=t;l.startsWith("/")||(l=R(c,t));const n={uri:`file://${l}`},i={line:y,character:p};switch(r){case"goToDefinition":return{method:"textDocument/definition",params:{textDocument:n,position:i}};case"findReferences":return{method:"textDocument/references",params:{textDocument:n,position:i,context:{includeDeclaration:!0}}};case"hover":return{method:"textDocument/hover",params:{textDocument:n,position:i}};case"documentSymbol":return{method:"textDocument/documentSymbol",params:{textDocument:n}};case"workspaceSymbol":return{method:"workspace/symbol",params:{query:""}};case"goToImplementation":return{method:"textDocument/implementation",params:{textDocument:n,position:i}};case"prepareCallHierarchy":return{method:"textDocument/prepareCallHierarchy",params:{textDocument:n,position:i}};case"incomingCalls":return{method:"textDocument/prepareCallHierarchy",params:{textDocument:n,position:i}};case"outgoingCalls":return{method:"textDocument/prepareCallHierarchy",params:{textDocument:n,position:i}}}}b(_,"getMethodAndParams");async function v(r,t,x){if(r.length===0)return r;const{execFile:a}=await import("node:child_process"),{promisify:c}=await import("node:util"),y=c(a),p=new Set;for(const n of r){const i=t(n);if(i?.startsWith("file://")){const m=decodeURIComponent(i.slice(7));m.startsWith(x)&&p.add(m)}}if(p.size===0)return r;const l=new Set,o=Array.from(p);for(let n=0;n<o.length;n+=50){const i=o.slice(n,n+50);try{const{stdout:m}=await y("git",["check-ignore",...i],{cwd:x});for(const u of m.split(`
|
|
2
|
+
`))u.trim()&&l.add(u.trim())}catch{}}return l.size===0?r:r.filter(n=>{const i=t(n);if(!i?.startsWith("file://"))return!0;const m=decodeURIComponent(i.slice(7));return!l.has(m)})}b(v,"filterGitignored");function X(r,t){return{name:"LSP",label:"LSP",description:"Interact with Language Server Protocol (LSP) servers to get code intelligence features. Supported operations: goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, outgoingCalls. All operations require filePath, line (1-based), and character (1-based).",parameters:q,isConcurrencySafe:!0,isReadOnly:!0,guidance:"Use LSP for code navigation: goToDefinition to find where a symbol is defined, findReferences to find all uses, hover for documentation, documentSymbol for file outline, workspaceSymbol to search across workspace, goToImplementation for interface implementations, and incomingCalls/outgoingCalls for call hierarchy.",async execute(x,{operation:a,filePath:c,line:y,character:p},l){if(l?.aborted)throw new Error("Operation aborted");let o=c;o.startsWith("/")||(o=R(t,c));try{const e=I(o);if(!e.isFile())return{content:[{type:"text",text:`Error: ${c} is not a regular file.`}],details:void 0};if(e.size>W)return{content:[{type:"text",text:`Error: ${c} exceeds 10MB limit for LSP operations.`}],details:void 0}}catch{return{content:[{type:"text",text:`Error: File not found: ${c}`}],details:void 0}}if(!await r.ensureServerStarted(o))return{content:[{type:"text",text:`No LSP server available for file type: ${c}`}],details:void 0};if(!r.isFileOpen(o)){const e=P(o,"utf-8");await r.openFile(o,e)}if(l?.aborted)throw new Error("Operation aborted");const{method:i,params:m}=_(a,o,y,p,t);if(a==="incomingCalls"||a==="outgoingCalls"){const e=await r.sendRequest(o,i,m);if(!e||e.length===0)return{content:[{type:"text",text:`No call hierarchy item at ${c}:${y}:${p}`}],details:{operation:a,result:"No call hierarchy item found.",filePath:o}};const d=Array.isArray(e)?e[0]:e,k=a==="incomingCalls"?"callHierarchy/incomingCalls":"callHierarchy/outgoingCalls",C=await r.sendRequest(o,k,{item:d}),D=a==="incomingCalls"?H(C,t):E(C,t);return{content:[{type:"text",text:D}],details:{operation:a,result:D,filePath:o}}}const u=await r.sendRequest(o,i,m);let s=u;if(Array.isArray(u)&&u.length>0){const e=u[0];typeof e.uri=="string"?s=await v(u,d=>d.uri,t):e.location&&typeof e.location.uri=="string"&&(s=await v(u,d=>d.location?.uri,t))}let f,h,S;switch(a){case"goToDefinition":{const e=s;f=A(e,t),h=(e?Array.isArray(e)?e:[e]:[]).length;break}case"findReferences":{const e=s;f=T(e,t),h=e?.length,e&&e.length>0&&(S=new Set(e.map(d=>d.uri)).size);break}case"hover":{f=F(s);break}case"documentSymbol":{f=L(s,t),h=Array.isArray(s)?s.length:0;break}case"workspaceSymbol":{const e=s;f=$(e,t),h=e?.length;break}case"goToImplementation":{const e=s;f=A(e,t),h=(e?Array.isArray(e)?e:[e]:[]).length;break}case"prepareCallHierarchy":{f=O(s,t),h=Array.isArray(s)?s.length:0;break}}return{content:[{type:"text",text:f}],details:{operation:a,result:f,filePath:o,resultCount:h,fileCount:S}}}}}b(X,"createLSPTool");export{X as createLSPTool};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: LspServerState, LspServerConfig, LSPOperation, LSPToolInput, LSPToolOutput
|
|
3
|
+
* [FROM]: No external dependencies
|
|
4
|
+
* [TO]: Consumed by all other lsp/ modules
|
|
5
|
+
* [HERE]: extensions/builtin/lsp/types.ts - type definitions for the LSP extension
|
|
6
|
+
*/
|
|
7
|
+
export type LspServerState = "stopped" | "starting" | "running" | "stopping" | "error";
|
|
8
|
+
export interface LspServerConfig {
|
|
9
|
+
command: string;
|
|
10
|
+
args?: string[];
|
|
11
|
+
extensionToLanguage: Record<string, string>;
|
|
12
|
+
env?: Record<string, string>;
|
|
13
|
+
initializationOptions?: unknown;
|
|
14
|
+
startupTimeout?: number;
|
|
15
|
+
maxRestarts?: number;
|
|
16
|
+
}
|
|
17
|
+
export declare const LSP_OPERATIONS: readonly ["goToDefinition", "findReferences", "hover", "documentSymbol", "workspaceSymbol", "goToImplementation", "prepareCallHierarchy", "incomingCalls", "outgoingCalls"];
|
|
18
|
+
export type LSPOperation = (typeof LSP_OPERATIONS)[number];
|
|
19
|
+
export interface LSPToolInput {
|
|
20
|
+
operation: LSPOperation;
|
|
21
|
+
filePath: string;
|
|
22
|
+
line: number;
|
|
23
|
+
character: number;
|
|
24
|
+
}
|
|
25
|
+
export interface LSPToolOutput {
|
|
26
|
+
operation: LSPOperation;
|
|
27
|
+
result: string;
|
|
28
|
+
filePath: string;
|
|
29
|
+
resultCount?: number;
|
|
30
|
+
fileCount?: number;
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const o=["goToDefinition","findReferences","hover","documentSymbol","workspaceSymbol","goToImplementation","prepareCallHierarchy","incomingCalls","outgoingCalls"];export{o as LSP_OPERATIONS};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: figma-design
|
|
3
|
+
description: Use this skill when the user wants Catui to inspect, create, or edit designs in Figma through MCP.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Figma Design
|
|
7
|
+
|
|
8
|
+
Use this skill when the user asks Catui to:
|
|
9
|
+
|
|
10
|
+
- Generate a design in Figma
|
|
11
|
+
- Edit an existing Figma file
|
|
12
|
+
- Turn requirements into Figma frames, components, or styles
|
|
13
|
+
- Read design context from Figma before implementing UI
|
|
14
|
+
|
|
15
|
+
## Preferred integration path
|
|
16
|
+
|
|
17
|
+
Prefer the official Figma Remote MCP server first. Use the desktop server as a fallback or as an additional local-context path.
|
|
18
|
+
|
|
19
|
+
Catui includes two built-in disabled MCP presets:
|
|
20
|
+
|
|
21
|
+
- Server ID: `figma-remote`
|
|
22
|
+
- URL: `https://mcp.figma.com/mcp`
|
|
23
|
+
- Auth: `/figma auth` tries a standalone browser OAuth flow first. If Figma blocks first-time client registration on this machine, Catui can fall back to importing an existing official local session.
|
|
24
|
+
|
|
25
|
+
- Server ID: `figma-desktop`
|
|
26
|
+
- URL: `http://127.0.0.1:3845/mcp`
|
|
27
|
+
|
|
28
|
+
## First-time setup flow
|
|
29
|
+
|
|
30
|
+
If the Figma MCP tools are not available yet:
|
|
31
|
+
|
|
32
|
+
1. Prefer the remote setup first:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
/figma auth
|
|
36
|
+
/figma remote
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
If the user already has dedicated Figma OAuth credentials for Catui, they can also set:
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
CATUI_FIGMA_CLIENT_ID
|
|
43
|
+
CATUI_FIGMA_CLIENT_SECRET
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
2. If the user wants the local desktop route instead, ask them to open the Figma desktop app and enable the desktop MCP server in Figma Dev Mode.
|
|
47
|
+
3. Then tell them to run:
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
/figma setup
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
4. After reload, check whether MCP tools from a Figma server are available.
|
|
54
|
+
|
|
55
|
+
## How to work once Figma tools are available
|
|
56
|
+
|
|
57
|
+
- First inspect the available Figma MCP tools in the current session.
|
|
58
|
+
- Prefer reading the current file or selection context before writing.
|
|
59
|
+
- Then create or update frames, components, text, styles, or variables as needed.
|
|
60
|
+
- When the user wants generated UI, write the result into Figma instead of only describing it in chat.
|
|
61
|
+
|
|
62
|
+
## Important guidance
|
|
63
|
+
|
|
64
|
+
- Prefer the remote path when possible because it is closer to the Codex/Claude-style setup.
|
|
65
|
+
- If the remote path is not authenticated yet, guide the user through `/figma auth` before falling back to desktop.
|
|
66
|
+
- The official write-capable path is MCP, not the read-heavy REST API.
|
|
67
|
+
- If tools are missing after enabling either server, remind the user to run `/reload`.
|
|
68
|
+
- If the remote path fails but the user already has a valid local desktop MCP server, use the desktop route so the design task can still move forward.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Extension
|
|
3
|
+
*
|
|
4
|
+
* Provides MCP (Model Context Protocol) guidance resources.
|
|
5
|
+
* Runtime MCP tool loading is handled by the AgentSession SDK.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* [WHO]: Extension interface
|
|
9
|
+
* [FROM]: Depends on node:fs, node:path, node:url, ../../../config.js, ../../../core/platform/config/auth-storage.js
|
|
10
|
+
* [TO]: Loaded by core/extensions-host/loader.ts as extension entry point
|
|
11
|
+
* [HERE]: extensions/builtin/mcp/index.ts -
|
|
12
|
+
*/
|
|
13
|
+
import type { ExtensionAPI } from "../../../core/extensions-host/types.js";
|
|
14
|
+
export default function mcpExtension(api: ExtensionAPI): Promise<void>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var I=Object.defineProperty;var o=(e,i)=>I(e,"name",{value:i,configurable:!0});import{existsSync as w}from"node:fs";import{dirname as S,join as F}from"node:path";import{fileURLToPath as E}from"node:url";import{getAuthPath as _}from"../../../config.js";import{AuthStorage as O}from"../../../core/platform/config/auth-storage.js";import{findImportableFigmaOAuthSession as b,refreshFigmaOAuthCredentials as R}from"../../../core/mcp/figma-auth.js";import{getMCPServer as k,setMCPServerEnabled as g}from"../../../core/mcp/mcp-config.js";const P=S(E(import.meta.url)),A=F(P,"mcp-management.md"),$=F(P,"figma-design.md"),v="http://127.0.0.1:3845/mcp",L="https://mcp.figma.com/mcp",D=[{value:"help",label:"help",description:"Show setup steps"},{value:"auth",label:"auth",description:"Sign in to Figma"},{value:"remote",label:"remote",description:"Enable the remote MCP path"},{value:"setup",label:"setup",description:"Probe and enable the best Figma path"},{value:"status",label:"status",description:"Inspect the current connection"},{value:"logout",label:"logout",description:"Remove saved Figma credentials"},{value:"enable",label:"enable",description:"Enable the desktop MCP preset"},{value:"disable",label:"disable",description:"Disable the desktop MCP preset"}];function p(){return O.create(_())}o(p,"getFigmaAuthStorage");function j(e,i){if(i&&i.tokenIndex>0)return null;const a=e.trim().toLowerCase(),h=D.filter(f=>f.value.startsWith(a));return h.length>0?h.map(f=>({...f})):null}o(j,"getFigmaArgumentCompletions");async function y(){return p().getApiKey("figma")}o(y,"getFigmaAccessToken");async function M(){const e=p(),i=e.get("figma");if(!i||i.type!=="oauth")return;const a=await R(i);return e.set("figma",{type:"oauth",...a}),a.access}o(M,"refreshStoredFigmaCredentials");async function x(){try{const e=await fetch(v,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json, text/event-stream","MCP-Protocol-Version":"2025-03-26"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"initialize",params:{protocolVersion:"2024-11-05",capabilities:{},clientInfo:{name:"catui-agent",version:"1.11.12"}}}),signal:AbortSignal.timeout(4e3)});return e.ok||e.status===400||e.status===401||e.status===405?{reachable:!0,detail:`${e.status} ${e.statusText}`}:{reachable:!1,detail:`${e.status} ${e.statusText}`}}catch(e){return{reachable:!1,detail:e instanceof Error?e.message:String(e)}}}o(x,"probeFigmaDesktopEndpoint");async function l(e){try{const i={"Content-Type":"application/json",Accept:"application/json, text/event-stream","MCP-Protocol-Version":"2025-03-26"};e&&(i.Authorization=`Bearer ${e}`);const a=await fetch(L,{method:"POST",headers:i,body:JSON.stringify({jsonrpc:"2.0",id:1,method:"initialize",params:{protocolVersion:"2024-11-05",capabilities:{},clientInfo:{name:"catui-agent",version:"1.11.12"}}}),signal:AbortSignal.timeout(5e3)});return a.ok?{reachable:!0,authenticated:!0,detail:`${a.status} ${a.statusText}`}:a.status===401?{reachable:!0,authenticated:!1,detail:e?"401 Unauthorized (token rejected or expired)":"401 Unauthorized (authentication required)"}:{reachable:a.status<500,authenticated:!1,detail:`${a.status} ${a.statusText}`}}catch(i){return{reachable:!1,authenticated:!1,detail:i instanceof Error?i.message:String(i)}}}o(l,"probeFigmaRemoteEndpoint");async function U(e){e.registerCommand("figma",{description:"Connect Catui to Figma for generative design",getArgumentCompletions:j,handler:o(async(i,a)=>{const[h,...f]=i.trim().split(/\s+/).filter(Boolean),r=(h||"help").toLowerCase();if(r==="help"){const t=b();e.sendMessage({customType:"text",content:`Figma setup:
|
|
2
|
+
1. Run \`/figma auth\`. Catui will try a standalone browser OAuth flow first.${t?` If Figma refuses first-time client registration, it can fall back to the existing ${t.source} session on this machine.`:""}
|
|
3
|
+
2. Run \`/figma remote\` to enable the built-in remote MCP preset and reload the session.
|
|
4
|
+
3. If you prefer the local desktop route, open the Figma desktop app, enable its MCP server in Dev Mode, and run \`/figma setup\`.
|
|
5
|
+
4. Then ask me to generate or edit a design in Figma.
|
|
6
|
+
|
|
7
|
+
Advanced: you can also set \`CATUI_FIGMA_CLIENT_ID\` and \`CATUI_FIGMA_CLIENT_SECRET\` before running Catui.
|
|
8
|
+
|
|
9
|
+
Use \`/figma status\` to inspect the current connection.`,display:!0});return}if(r==="setup"||r==="connect"){let t=await y();if(!t&&b())try{await p().login("figma",{onAuth:o(n=>{e.sendMessage({customType:"text",content:`${n.instructions??"Figma authentication requires additional setup."}
|
|
10
|
+
|
|
11
|
+
${n.url}`,display:!0})},"onAuth"),onPrompt:o(async n=>await a.ui.input("Figma Auth",n.message,{initialValue:n.placeholder??""})??"","onPrompt"),onProgress:o(n=>{e.sendMessage({customType:"text",content:n,display:!0})},"onProgress")}),t=await y()}catch{}if(t){let n=await l(t);if(!n.authenticated){const u=await M().catch(()=>{});u&&(t=u,n=await l(t))}if(n.reachable&&n.authenticated){g("figma-remote",!0),e.sendMessage({customType:"text",content:`The remote Figma MCP endpoint is reachable (${n.detail??"ok"}). Enabled the built-in \`figma-remote\` preset and reloading now so Catui can pick up the Figma tools.`,display:!0}),await a.reload();return}}const s=await x();if(!s.reachable){const n=b();e.sendMessage({customType:"text",content:`I could not reach the local Figma Desktop MCP endpoint at ${v}.
|
|
12
|
+
|
|
13
|
+
Next steps:
|
|
14
|
+
1. For the remote path, run \`/figma auth\`${n?` to try Catui OAuth first and then fall back to the existing ${n.source} session if needed`:""}.
|
|
15
|
+
2. Then run \`/figma remote\`.
|
|
16
|
+
3. Or open the Figma desktop app, turn on the Figma MCP server in Dev Mode, and run \`/figma setup\` again.
|
|
17
|
+
|
|
18
|
+
Probe detail: ${s.detail??"connection failed"}`,display:!0});return}g("figma-desktop",!0),e.sendMessage({customType:"text",content:`The local Figma MCP endpoint is reachable (${s.detail??"ok"}). Enabled the built-in \`figma-desktop\` MCP preset and reloading now so Catui can pick up the Figma tools.`,display:!0}),await a.reload();return}if(r==="login"||r==="auth"){try{await p().login("figma",{onAuth:o(t=>{e.sendMessage({customType:"text",content:`${t.instructions??"Figma authentication needs another official client session."}
|
|
19
|
+
|
|
20
|
+
${t.url}`,display:!0})},"onAuth"),onPrompt:o(async t=>await a.ui.input("Figma Auth",t.message,{initialValue:t.placeholder??""})??"","onPrompt"),onProgress:o(t=>{e.sendMessage({customType:"text",content:t,display:!0})},"onProgress")}),e.sendMessage({customType:"text",content:"Saved Figma OAuth credentials in auth storage. Run `/figma remote` to enable the remote MCP preset and connect Catui to Figma.",display:!0})}catch(t){e.sendMessage({customType:"text",content:t instanceof Error?t.message:String(t),display:!0})}return}if(r==="logout"){p().logout("figma"),e.sendMessage({customType:"text",content:"Removed the saved Figma OAuth credentials from auth storage. Run `/reload` if you want the current session to drop remote Figma access immediately.",display:!0});return}if(r==="enable"){g("figma-desktop",!0),e.sendMessage({customType:"text",content:"Enabled the built-in `figma-desktop` MCP preset. Reloading now so Catui can pick up the Figma tools.",display:!0}),await a.reload();return}if(r==="disable"){g("figma-desktop",!1),e.sendMessage({customType:"text",content:"Disabled the built-in `figma-desktop` MCP preset. Run `/reload` if you want the current session to drop the Figma tools immediately.",display:!0});return}if(r==="remote"){const t=await y();if(!t){e.sendMessage({customType:"text",content:"No Figma OAuth session is configured yet. Run `/figma auth` first, then run `/figma remote` again.",display:!0});return}let s=await l(t);if(!s.authenticated){const n=await M().catch(()=>{});n&&(s=await l(n))}if(!s.reachable||!s.authenticated){e.sendMessage({customType:"text",content:`I could reach the remote Figma MCP endpoint, but authentication is not working yet.
|
|
21
|
+
|
|
22
|
+
Detail: ${s.detail??"authentication failed"}
|
|
23
|
+
|
|
24
|
+
Run \`/figma auth\` again and retry. If standalone registration is blocked by Figma, Catui will fall back to any existing official local session it can import.`,display:!0});return}g("figma-remote",!0),e.sendMessage({customType:"text",content:"Enabled the built-in `figma-remote` MCP preset. Reloading now so Catui can pick up the authenticated remote Figma tools.",display:!0}),await a.reload();return}if(r==="status"){const t=k("figma-desktop"),s=k("figma-remote"),n=await x();let u=await y();const C=b();let c=await l(u);if(!c.authenticated){const m=await M().catch(()=>{});m&&(u=m,c=await l(u))}const T=e.getAllTools().filter(m=>m.name.includes("figma")||m.description.toLowerCase().includes("figma")),d=["Figma MCP status","",`figma-desktop: ${t?.enabled===!1?"disabled":"enabled"}`,`desktop endpoint: ${n.reachable?"reachable":"unreachable"}`,`desktop detail: ${n.detail??"unknown"}`,`figma-remote: ${s?.enabled===!1?"disabled":"enabled"}`,`importable local OAuth session: ${C?`yes (${C.source})`:"no"}`,`remote OAuth configured: ${u?"yes":"no"}`,`remote endpoint: ${c.reachable?"reachable":"unreachable"}`,`remote auth: ${c.authenticated?"ok":"not authenticated"}`,`remote detail: ${c.detail??"unknown"}`,`registered figma tools in this session: ${T.length}`];T.length===0&&(d.push(""),d.push("If you want the remote path, run `/figma auth` and then `/figma remote`."),d.push("If the desktop app is ready, run `/figma setup`."),d.push("If either route is already enabled, run `/reload` and try again.")),e.sendMessage({customType:"text",content:d.join(`
|
|
25
|
+
`),display:!0});return}e.sendMessage({customType:"text",content:"Usage: /figma [help|setup|connect|login|auth|logout|enable|disable|status|remote]",display:!0})},"handler")}),e.on("resources_discover",async i=>{const a=[];return w(A)&&a.push(A),w($)&&a.push($),a.length===0?{}:{skillPaths:a}})}o(U,"mcpExtension");export{U as default};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mcp-management
|
|
3
|
+
description: Use this skill when the user asks to install, configure, debug, enable, or disable MCP servers or MCP tools in Catui.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# MCP Management
|
|
7
|
+
|
|
8
|
+
Use this skill when the user asks for any of the following:
|
|
9
|
+
|
|
10
|
+
- Install a new MCP server
|
|
11
|
+
- Configure an existing MCP server
|
|
12
|
+
- Enable or disable MCP servers in Catui
|
|
13
|
+
- Debug why MCP tools are missing
|
|
14
|
+
- Add API keys or environment variables for an MCP server
|
|
15
|
+
|
|
16
|
+
## What Catui already does
|
|
17
|
+
|
|
18
|
+
- MCP is enabled by default in Catui unless the user launched it with `--no-mcp` or in offline mode.
|
|
19
|
+
- Catui reads MCP server definitions from `~/.catui/agent/mcp.json`.
|
|
20
|
+
- MCP tools are loaded into the current session at startup and on `/reload`.
|
|
21
|
+
|
|
22
|
+
Important:
|
|
23
|
+
|
|
24
|
+
- Editing `mcp.json` alone does not make new MCP tools appear immediately in the current session.
|
|
25
|
+
- After changing MCP config, tell the user to run `/reload`, or explain that a restart/reload is needed before the new tools can be used.
|
|
26
|
+
|
|
27
|
+
## How to inspect the current MCP setup
|
|
28
|
+
|
|
29
|
+
1. Read `~/.catui/agent/mcp.json` if it exists.
|
|
30
|
+
2. Check whether the target server already exists in `mcpServers`.
|
|
31
|
+
3. Check whether it is enabled.
|
|
32
|
+
4. Check whether required environment variables are present.
|
|
33
|
+
|
|
34
|
+
If the file does not exist, Catui will create a default one when MCP config is first loaded.
|
|
35
|
+
|
|
36
|
+
## How to add a new MCP server
|
|
37
|
+
|
|
38
|
+
1. Find the official install/start command from the server's documentation.
|
|
39
|
+
2. Prefer stable commands such as:
|
|
40
|
+
- `npx -y <package>`
|
|
41
|
+
- `uvx <package>`
|
|
42
|
+
- `python -m <module>`
|
|
43
|
+
- `node /absolute/path/to/server.js`
|
|
44
|
+
3. Add a server entry to `~/.catui/agent/mcp.json`.
|
|
45
|
+
4. Set `enabled: true` only if the command and required credentials are ready.
|
|
46
|
+
5. Tell the user that `/reload` is required to apply the change.
|
|
47
|
+
|
|
48
|
+
## Config shape reminder
|
|
49
|
+
|
|
50
|
+
Use this structure:
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"mcpServers": [
|
|
55
|
+
{
|
|
56
|
+
"id": "example",
|
|
57
|
+
"name": "Example",
|
|
58
|
+
"command": "npx",
|
|
59
|
+
"args": ["-y", "@example/server"],
|
|
60
|
+
"enabled": true,
|
|
61
|
+
"transport": "stdio",
|
|
62
|
+
"toolTimeout": 30000
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
For remote HTTP/SSE MCP servers, use the server's documented transport and URL fields supported by Catui's MCP config.
|
|
69
|
+
|
|
70
|
+
## Safe operating rules
|
|
71
|
+
|
|
72
|
+
- Do not invent MCP package names. Check the server's official docs first.
|
|
73
|
+
- Do not claim the new MCP tools are ready until the config is written and the user has reloaded.
|
|
74
|
+
- If credentials are required, ask the user for the missing values instead of guessing.
|
|
75
|
+
- If an install command modifies global system state, tell the user what will be installed.
|
|
76
|
+
|
|
77
|
+
## Good response pattern
|
|
78
|
+
|
|
79
|
+
When the user asks you to install an MCP server:
|
|
80
|
+
|
|
81
|
+
1. Inspect `mcp.json`
|
|
82
|
+
2. Install or configure the server
|
|
83
|
+
3. Update `mcp.json`
|
|
84
|
+
4. Tell the user exactly what changed
|
|
85
|
+
5. Ask them to run `/reload` if the current session needs to pick up the new tools
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: setPendingClearContextPlan(), getAndClearPendingPlan()
|
|
3
|
+
* [FROM]: No dependencies
|
|
4
|
+
* [TO]: Consumed by ./exit-plan-mode-tool.ts and ./index.ts
|
|
5
|
+
* [HERE]: extensions/builtin/plan/clear-context-state.ts - module-level state for clear-context plan injection
|
|
6
|
+
*/
|
|
7
|
+
export declare function setPendingClearContextPlan(plan: string): void;
|
|
8
|
+
export declare function getAndClearPendingPlan(): string | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var a=Object.defineProperty;var e=(n,t)=>a(n,"name",{value:t,configurable:!0});let l=null;function r(n){l=n}e(r,"setPendingClearContextPlan");function i(){const n=l;return l=null,n}e(i,"getAndClearPendingPlan");export{i as getAndClearPendingPlan,r as setPendingClearContextPlan};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: createEnterPlanModeTool()
|
|
3
|
+
* [FROM]: Depends on @sinclair/typebox, core/extensions-host/types, ./types, ./plan-permissions, ./plan-workflow-prompt
|
|
4
|
+
* [TO]: Consumed by plan extension index.ts
|
|
5
|
+
* [HERE]: extensions/builtin/plan/enter-plan-mode-tool.ts - EnterPlanMode tool for model-initiated plan mode entry
|
|
6
|
+
*/
|
|
7
|
+
import type { ExtensionAPI, ToolDefinition } from "../../../core/extensions-host/types.js";
|
|
8
|
+
import { type PlanSessionState } from "./types.js";
|
|
9
|
+
declare const EnterPlanModeInputSchema: import("@sinclair/typebox").TObject<{}>;
|
|
10
|
+
export declare function createEnterPlanModeTool(api: ExtensionAPI, getSessionState: () => PlanSessionState, isChannelsEnabled: () => boolean): ToolDefinition<typeof EnterPlanModeInputSchema, null>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var u=Object.defineProperty;var l=(n,e)=>u(n,"name",{value:e,configurable:!0});import{Type as m}from"@sinclair/typebox";import{Container as p,Text as d}from"@catui/tui";import{PLAN_CUSTOM_TYPE as P}from"./types.js";import{handlePlanModeTransition as f}from"./plan-permissions.js";import{getEnterPlanModeToolResult as g}from"./plan-workflow-prompt.js";import{getPlanFilePath as M,getPlansDirectory as h,serializePlanSessionState as E}from"./plan-file-manager.js";const x=m.Object({},{additionalProperties:!1});function y(n,e){const t=new p;return t.addChild(new d(e.fg("toolTitle",e.bold("EnterPlanMode")),0,0)),t.addChild(new d(e.fg("muted"," Switching to plan mode (read-only except plan file)"),0,0)),t}l(y,"renderCallForEnterPlanMode");function w(n,e,t){const r=new p,s=n.content?.filter(o=>o.type==="text").map(o=>o.type==="text"?o.text:"").join(`
|
|
2
|
+
`);return s&&(r.addChild(new d(t.fg("success","Plan mode active"),0,0)),r.addChild(new d(t.fg("toolOutput",s),0,0))),r}l(w,"renderResultForEnterPlanMode");function U(n,e,t){return{name:"EnterPlanMode",label:"Enter Plan Mode",description:"Switch to plan mode to design an approach before coding. Use this when the task is complex and requires planning before implementation.",parameters:x,renderCall:y,renderResult:w,execute:l(async(r,s,o,C,i)=>{h(i.getSettings().plansDirectory,i.cwd);const a=e();if(t())return{content:[{type:"text",text:"EnterPlanMode is not available in channels mode. The user may not be present to approve the plan."}],details:null};const c=a.state.mode;return f(a),a.state.prePlanMode=c,a.state.mode="plan",n.appendEntry(P,E(a)),i.ui.setStatus("plan","Plan mode"),i.ui.setWidget("plan-mode",["PLAN MODE",`Plan: ${M(n.events)}`,"Read-only except the plan file","Use /plan open to edit; ExitPlanMode requests approval"],{placement:"aboveEditor"}),{content:[{type:"text",text:g()}],details:null}},"execute")}}l(U,"createEnterPlanModeTool");export{U as createEnterPlanModeTool};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: createExitPlanModeTool()
|
|
3
|
+
* [FROM]: Depends on @sinclair/typebox, core/extensions-host/types, ./types, ./plan-permissions, ./plan-workflow-prompt, ./plan-file-manager, ./plan-validation, ./teammate-approval
|
|
4
|
+
* [TO]: Consumed by plan extension index.ts
|
|
5
|
+
* [HERE]: extensions/builtin/plan/exit-plan-mode-tool.ts - ExitPlanMode tool for model-requested plan approval
|
|
6
|
+
*/
|
|
7
|
+
import type { ExtensionAPI, ToolDefinition } from "../../../core/extensions-host/types.js";
|
|
8
|
+
import { type PlanSessionState } from "./types.js";
|
|
9
|
+
declare const ExitPlanModeInputSchema: import("@sinclair/typebox").TObject<{
|
|
10
|
+
plan: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
11
|
+
forceExit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
12
|
+
allowedPrompts: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
13
|
+
tool: import("@sinclair/typebox").TString;
|
|
14
|
+
prompt: import("@sinclair/typebox").TString;
|
|
15
|
+
}>>>;
|
|
16
|
+
}>;
|
|
17
|
+
export declare function createExitPlanModeTool(api: ExtensionAPI, getSessionState: () => PlanSessionState, hasAgentTool: () => boolean): ToolDefinition<typeof ExitPlanModeInputSchema, null>;
|
|
18
|
+
export {};
|