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,55 @@
|
|
|
1
|
+
import type { MCPServerConfig } from "./mcp-types.js";
|
|
2
|
+
export interface MCPConfig {
|
|
3
|
+
mcpServers: MCPServerConfig[];
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Get the path to the MCP configuration file
|
|
7
|
+
* @param agentDir Optional agent directory. If omitted, uses getAgentDir().
|
|
8
|
+
*/
|
|
9
|
+
export declare function getMCPConfigPath(agentDir?: string, configPathOverride?: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Load MCP configuration from file
|
|
12
|
+
* @param agentDir Optional agent directory. If omitted, uses getAgentDir().
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadMCPConfig(agentDir?: string, configPathOverride?: string): MCPConfig;
|
|
15
|
+
/**
|
|
16
|
+
* Save MCP configuration to file
|
|
17
|
+
* @param config MCP configuration to save
|
|
18
|
+
* @param agentDir Optional agent directory. If omitted, uses getAgentDir().
|
|
19
|
+
*/
|
|
20
|
+
export declare function saveMCPConfig(config: MCPConfig, agentDir?: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Add an MCP server configuration
|
|
23
|
+
* @param agentDir Optional agent directory. If omitted, uses getAgentDir().
|
|
24
|
+
*/
|
|
25
|
+
export declare function addMCPServer(server: MCPServerConfig, agentDir?: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Remove an MCP server configuration
|
|
28
|
+
* @param agentDir Optional agent directory. If omitted, uses getAgentDir().
|
|
29
|
+
*/
|
|
30
|
+
export declare function removeMCPServer(serverId: string, agentDir?: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* Update an MCP server configuration
|
|
33
|
+
* @param agentDir Optional agent directory. If omitted, uses getAgentDir().
|
|
34
|
+
*/
|
|
35
|
+
export declare function updateMCPServer(serverId: string, updates: Partial<MCPServerConfig>, agentDir?: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* Enable/disable an MCP server
|
|
38
|
+
* @param agentDir Optional agent directory. If omitted, uses getAgentDir().
|
|
39
|
+
*/
|
|
40
|
+
export declare function setMCPServerEnabled(serverId: string, enabled: boolean, agentDir?: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* Get an MCP server by ID
|
|
43
|
+
* @param agentDir Optional agent directory. If omitted, uses getAgentDir().
|
|
44
|
+
*/
|
|
45
|
+
export declare function getMCPServer(serverId: string, agentDir?: string): MCPServerConfig | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* List all MCP servers
|
|
48
|
+
* @param agentDir Optional agent directory. If omitted, uses getAgentDir().
|
|
49
|
+
*/
|
|
50
|
+
export declare function listMCPServers(agentDir?: string): MCPServerConfig[];
|
|
51
|
+
/**
|
|
52
|
+
* List enabled MCP servers
|
|
53
|
+
* @param agentDir Optional agent directory. If omitted, uses getAgentDir().
|
|
54
|
+
*/
|
|
55
|
+
export declare function listEnabledMCPServers(agentDir?: string, configPathOverride?: string): MCPServerConfig[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var P=Object.defineProperty;var i=(r,e)=>P(r,"name",{value:e,configurable:!0});import{existsSync as f,mkdirSync as h,readFileSync as T,writeFileSync as x}from"fs";import{join as a,resolve as b}from"path";import{homedir as s}from"os";import{getAgentDir as u}from"../../config.js";const l={mcpServers:[{id:"filesystem",name:"Filesystem",command:"npx",args:["-y","@modelcontextprotocol/server-filesystem","{cwd}"],enabled:!0,transport:"stdio",toolTimeout:3e4},{id:"fetch",name:"Fetch (Web Scraper)",command:"npx",args:["-y","@kazuph/mcp-fetch"],enabled:!1,transport:"stdio",toolTimeout:3e4},{id:"sequential-thinking",name:"Sequential Thinking",command:"npx",args:["-y","@modelcontextprotocol/server-sequential-thinking"],enabled:!0,transport:"stdio",toolTimeout:3e4},{id:"memory",name:"Memory (Knowledge Graph)",command:"npx",args:["-y","@modelcontextprotocol/server-memory"],enabled:!0,transport:"stdio",toolTimeout:3e4},{id:"figma-desktop",name:"Figma Desktop MCP",url:"http://127.0.0.1:3845/mcp",enabled:!1,transport:"http",toolTimeout:6e4,initTimeout:2e4},{id:"figma-remote",name:"Figma Remote MCP",url:"https://mcp.figma.com/mcp",authProvider:"figma",authHeaderName:"Authorization",authScheme:"bearer",enabled:!1,transport:"http",toolTimeout:6e4,initTimeout:2e4},{id:"sqlite",name:"SQLite (Database)",command:"npx",args:["-y","mcp-server-sqlite"],enabled:!1,transport:"stdio",toolTimeout:3e4},{id:"github",name:"GitHub",command:"npx",args:["-y","@modelcontextprotocol/server-github"],env:{GITHUB_TOKEN:""},enabled:!1,transport:"stdio",toolTimeout:3e4},{id:"brave-search",name:"Brave Search",command:"npx",args:["-y","@modelcontextprotocol/server-brave-search"],env:{BRAVE_API_KEY:""},enabled:!1,transport:"stdio",toolTimeout:6e4},{id:"git",name:"Git",command:"npx",args:["-y","@liangshanli/mcp-server-git"],enabled:!1,transport:"stdio",toolTimeout:3e4},{id:"postgres",name:"PostgreSQL",command:"npx",args:["-y","@modelcontextprotocol/server-postgres"],env:{POSTGRES_CONNECTION_STRING:""},enabled:!1,transport:"stdio",toolTimeout:3e4}]};function C(r,e){if(e&&e.trim()){const o=e.trim();return o==="~"?s():o.startsWith("~/")?a(s(),o.slice(2)):o.startsWith("~")?a(s(),o.slice(1)):b(o)}const t=process.env.MCP_CONFIG_PATH;if(t&&t.trim()){const o=t.trim();return o==="~"?s():o.startsWith("~/")?a(s(),o.slice(2)):o.startsWith("~")?a(s(),o.slice(1)):b(o)}const n=r??u();return a(n,"mcp.json")}i(C,"getMCPConfigPath");function c(r,e){const t=C(r,e),n=r??u();if(!f(t)){const o=n;return f(o)||h(o,{recursive:!0}),x(t,JSON.stringify(l,null,2),"utf-8"),l}try{const o=T(t,"utf-8"),m=JSON.parse(o),g=m.mcpServers??[],y=new Set(g.map(d=>d.id)),v=l.mcpServers.filter(d=>!y.has(d.id));if(v.length===0)return m;const S={mcpServers:[...g,...v]};return p(S,r),S}catch(o){return console.error(`Failed to load MCP config: ${o}`),l}}i(c,"loadMCPConfig");function p(r,e){const t=C(e),n=e??u();f(n)||h(n,{recursive:!0}),x(t,JSON.stringify(r,null,2),"utf-8")}i(p,"saveMCPConfig");function G(r,e){const t=c(e);t.mcpServers=t.mcpServers.filter(n=>n.id!==r.id),t.mcpServers.push(r),p(t,e)}i(G,"addMCPServer");function O(r,e){const t=c(e);t.mcpServers=t.mcpServers.filter(n=>n.id!==r),p(t,e)}i(O,"removeMCPServer");function M(r,e,t){const n=c(t),o=n.mcpServers.find(m=>m.id===r);o&&(Object.assign(o,e),p(n,t))}i(M,"updateMCPServer");function k(r,e,t){M(r,{enabled:e},t)}i(k,"setMCPServerEnabled");function I(r,e){return c(e).mcpServers.find(n=>n.id===r)}i(I,"getMCPServer");function q(r){return c(r).mcpServers}i(q,"listMCPServers");function W(r,e){return c(r,e).mcpServers.filter(n=>n.enabled!==!1)}i(W,"listEnabledMCPServers");export{G as addMCPServer,C as getMCPConfigPath,I as getMCPServer,W as listEnabledMCPServers,q as listMCPServers,c as loadMCPConfig,O as removeMCPServer,p as saveMCPConfig,k as setMCPServerEnabled,M as updateMCPServer};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: APIKeyGuidance, getAPIKeyGuidance(), formatGuidanceMessage()
|
|
3
|
+
* [FROM]: No external dependencies
|
|
4
|
+
* [TO]: Consumed by core/mcp/index.ts, core/mcp/mcp-adapter.ts
|
|
5
|
+
* [HERE]: core/mcp/mcp-guidance.ts - API key guidance for MCP servers
|
|
6
|
+
*/
|
|
7
|
+
export interface APIKeyGuidance {
|
|
8
|
+
/** Server ID */
|
|
9
|
+
serverId: string;
|
|
10
|
+
/** Server name */
|
|
11
|
+
serverName: string;
|
|
12
|
+
/** Whether key is required */
|
|
13
|
+
required: boolean;
|
|
14
|
+
/** API key environment variable name */
|
|
15
|
+
envVar: string;
|
|
16
|
+
/** User-friendly instructions */
|
|
17
|
+
instructions: string;
|
|
18
|
+
/** URL to get the key */
|
|
19
|
+
getKeyUrl?: string;
|
|
20
|
+
/** Free tier information */
|
|
21
|
+
freeTier?: string;
|
|
22
|
+
/** Alternative (skip key) */
|
|
23
|
+
alternative?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Guidance for MCP servers that require API keys
|
|
27
|
+
*/
|
|
28
|
+
export declare const API_KEY_GUIDANCE: Record<string, APIKeyGuidance>;
|
|
29
|
+
/**
|
|
30
|
+
* Get guidance for a specific server
|
|
31
|
+
*/
|
|
32
|
+
export declare function getAPIKeyGuidance(serverId: string): APIKeyGuidance | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Check if a server requires an API key
|
|
35
|
+
*/
|
|
36
|
+
export declare function requiresAPIKey(serverId: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Get list of servers that require API keys
|
|
39
|
+
*/
|
|
40
|
+
export declare function getRequiringAPIKeyServers(): string[];
|
|
41
|
+
/**
|
|
42
|
+
* Get list of servers with optional API keys
|
|
43
|
+
*/
|
|
44
|
+
export declare function getOptionalAPIKeyServers(): string[];
|
|
45
|
+
/**
|
|
46
|
+
* Format guidance as a user-friendly message
|
|
47
|
+
*/
|
|
48
|
+
export declare function formatGuidanceMessage(guidance: APIKeyGuidance, missingKey?: boolean): string;
|
|
49
|
+
/**
|
|
50
|
+
* Get all servers that are configured but missing keys
|
|
51
|
+
*/
|
|
52
|
+
export declare function getMissingKeyServers(configuredServers: string[]): string[];
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
var c=Object.defineProperty;var s=(e,r)=>c(e,"name",{value:r,configurable:!0});const o={github:{serverId:"github",serverName:"GitHub",required:!1,envVar:"GITHUB_TOKEN",instructions:`GitHub Token is used to access GitHub repositories, issues, and PRs.
|
|
2
|
+
|
|
3
|
+
**Steps to obtain:**
|
|
4
|
+
1. Visit https://github.com/settings/tokens
|
|
5
|
+
2. Click "Generate new token" (classic)
|
|
6
|
+
3. Select permissions:
|
|
7
|
+
- repo (Full control of private repositories)
|
|
8
|
+
- public_repo (Access public repositories)
|
|
9
|
+
4. Click "Generate token"
|
|
10
|
+
5. Copy the token (format: ghp_xxxxxxxxxxxxxxxxxxxx)
|
|
11
|
+
6. Configure in mcp.json:
|
|
12
|
+
{
|
|
13
|
+
"id": "github",
|
|
14
|
+
"enabled": true,
|
|
15
|
+
"env": {
|
|
16
|
+
"GITHUB_TOKEN": "your_token"
|
|
17
|
+
}
|
|
18
|
+
}`,getKeyUrl:"https://github.com/settings/tokens",freeTier:"Free",alternative:"Public repositories can still be accessed without a token"},"brave-search":{serverId:"brave-search",serverName:"Brave Search",required:!1,envVar:"BRAVE_API_KEY",instructions:`Brave Search API Key is used for web search functionality.
|
|
19
|
+
|
|
20
|
+
**Steps to obtain:**
|
|
21
|
+
1. Visit https://api.search.brave.com/app/keys
|
|
22
|
+
2. Sign up (or log in)
|
|
23
|
+
3. Click "Create API Key"
|
|
24
|
+
4. Copy the API Key (format: BSxxxxx)
|
|
25
|
+
5. Configure in mcp.json:
|
|
26
|
+
{
|
|
27
|
+
"id": "brave-search",
|
|
28
|
+
"enabled": true,
|
|
29
|
+
"env": {
|
|
30
|
+
"BRAVE_API_KEY": "your_api_key"
|
|
31
|
+
}
|
|
32
|
+
}`,getKeyUrl:"https://api.search.brave.com/app/keys",freeTier:"Free tier: 2000 queries per month",alternative:"Without search, other tools remain available"},postgres:{serverId:"postgres",serverName:"PostgreSQL",required:!1,envVar:"POSTGRES_CONNECTION_STRING",instructions:`PostgreSQL connection string is used to connect to a local database.
|
|
33
|
+
|
|
34
|
+
**Configuration steps:**
|
|
35
|
+
1. Ensure PostgreSQL is installed
|
|
36
|
+
2. Prepare the connection string in format:
|
|
37
|
+
postgresql://user:password@localhost:5432/dbname
|
|
38
|
+
3. Configure in mcp.json:
|
|
39
|
+
{
|
|
40
|
+
"id": "postgres",
|
|
41
|
+
"enabled": true,
|
|
42
|
+
"env": {
|
|
43
|
+
"POSTGRES_CONNECTION_STRING": "your_connection_string"
|
|
44
|
+
}
|
|
45
|
+
}`,freeTier:"Free (local database)",alternative:"Use SQLite (enabled by default)"}};function u(e){return o[e]}s(u,"getAPIKeyGuidance");function f(e){const r=o[e];return r?r.required:!1}s(f,"requiresAPIKey");function v(){return Object.values(o).filter(e=>e.required).map(e=>e.serverId)}s(v,"getRequiringAPIKeyServers");function l(){return Object.values(o).filter(e=>!e.required).map(e=>e.serverId)}s(l,"getOptionalAPIKeyServers");function g(e,r=!0){const i=r?"\u26A0\uFE0F ":"\u2139\uFE0F ",n=r?"API Key not configured":"API Key configured";let t=`${i}${e.serverName} - ${n}
|
|
46
|
+
|
|
47
|
+
`;return t+=`${e.instructions}
|
|
48
|
+
`,e.getKeyUrl&&(t+=`
|
|
49
|
+
\u{1F517} Get API Key: ${e.getKeyUrl}
|
|
50
|
+
`),e.freeTier&&(t+=`
|
|
51
|
+
\u{1F4B0} ${e.freeTier}
|
|
52
|
+
`),e.alternative&&(t+=`
|
|
53
|
+
\u{1F4A1} ${e.alternative}
|
|
54
|
+
`),t}s(g,"formatGuidanceMessage");function x(e){const r=l(),i=[];for(const n of e)if(r.includes(n)){const t=u(n);if(t&&t.envVar){const a=process.env[t.envVar];(!a||a.trim()===""||a==="YOUR_TOKEN")&&i.push(n)}}return i}s(x,"getMissingKeyServers");export{o as API_KEY_GUIDANCE,g as formatGuidanceMessage,u as getAPIKeyGuidance,x as getMissingKeyServers,l as getOptionalAPIKeyServers,v as getRequiringAPIKeyServers,f as requiresAPIKey};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: MCPManager class
|
|
3
|
+
* [FROM]: Depends on mcp/mcp-client, mcp/mcp-adapter, mcp/mcp-config, extensions
|
|
4
|
+
* [TO]: Consumed by core/index.ts, core/runtime/sdk.ts
|
|
5
|
+
* [HERE]: core/mcp/mcp-manager.ts - MCP client lifecycle and tool integration
|
|
6
|
+
*/
|
|
7
|
+
import { MCPClient } from "./mcp-client.js";
|
|
8
|
+
import type { ToolDefinition } from "../extensions-host/index.js";
|
|
9
|
+
export interface MCPManagerOptions {
|
|
10
|
+
mcpConfigPath?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class MCPManager {
|
|
13
|
+
private client;
|
|
14
|
+
private tools;
|
|
15
|
+
private enabledServerIds;
|
|
16
|
+
private startedServerIds;
|
|
17
|
+
private failedServerIds;
|
|
18
|
+
private workingDir;
|
|
19
|
+
private mcpConfigPath?;
|
|
20
|
+
constructor(options?: MCPManagerOptions);
|
|
21
|
+
/**
|
|
22
|
+
* Set the working directory for MCP servers (e.g., user's project dir)
|
|
23
|
+
*/
|
|
24
|
+
setWorkingDir(dir: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Initialize MCP manager and load tools
|
|
27
|
+
*/
|
|
28
|
+
initialize(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Resolve dynamic placeholders in server configuration
|
|
31
|
+
*/
|
|
32
|
+
private resolveServerConfig;
|
|
33
|
+
/**
|
|
34
|
+
* Get all MCP tools as Catui ToolDefinitions
|
|
35
|
+
*/
|
|
36
|
+
getTools(): ToolDefinition[];
|
|
37
|
+
/**
|
|
38
|
+
* Get the MCP client instance
|
|
39
|
+
*/
|
|
40
|
+
getClient(): MCPClient;
|
|
41
|
+
getStatus(): {
|
|
42
|
+
enabledServers: string[];
|
|
43
|
+
startedServers: string[];
|
|
44
|
+
failedServers: string[];
|
|
45
|
+
toolCount: number;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Cleanup: stop all servers
|
|
49
|
+
*/
|
|
50
|
+
dispose(): void;
|
|
51
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var o=Object.defineProperty;var i=(t,r)=>o(t,"name",{value:r,configurable:!0});import{MCPClient as n}from"./mcp-client.js";import{loadMCPTools as d}from"./mcp-adapter.js";import{listEnabledMCPServers as a}from"./mcp-config.js";class f{static{i(this,"MCPManager")}client;tools=[];enabledServerIds=[];startedServerIds=[];failedServerIds=[];workingDir;mcpConfigPath;constructor(r){this.mcpConfigPath=r?.mcpConfigPath,this.client=new n(void 0,void 0,this.mcpConfigPath),this.workingDir=process.cwd()}setWorkingDir(r){this.workingDir=r}async initialize(){let r=a(void 0,this.mcpConfigPath);this.enabledServerIds=r.map(e=>e.id),this.startedServerIds=[],this.failedServerIds=[],r=r.map(e=>this.resolveServerConfig(e));for(const e of r)this.client.addServer(e),e.transport!=="sse"?await this.client.startServer(e.id)?this.startedServerIds.push(e.id):this.failedServerIds.push(e.id):this.startedServerIds.push(e.id);this.tools=await d(this.client)}resolveServerConfig(r){const e={...r};return e.args&&(e.args=e.args.map(s=>s.replace(/\{cwd\}/g,this.workingDir))),e.cwd||(e.cwd=this.workingDir),e}getTools(){return this.tools}getClient(){return this.client}getStatus(){return{enabledServers:[...this.enabledServerIds],startedServers:[...this.startedServerIds],failedServers:[...this.failedServerIds],toolCount:this.tools.length}}dispose(){this.client.stopAllServers()}}export{f as MCPManager};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides MCPServerConfig, MCPTool, MCPToolResult shared MCP contracts
|
|
3
|
+
* [FROM]: No runtime dependencies; pure type surface for MCP client/config/adapter
|
|
4
|
+
* [TO]: Consumed by core/mcp/mcp-client.ts, mcp-config.ts, mcp-manager.ts, mcp-adapter.ts, index.ts
|
|
5
|
+
* [HERE]: core/mcp/mcp-types.ts - shared contracts that keep MCP client/config acyclic
|
|
6
|
+
*/
|
|
7
|
+
export interface MCPServerConfig {
|
|
8
|
+
/** Unique identifier for this server */
|
|
9
|
+
id: string;
|
|
10
|
+
/** Display name */
|
|
11
|
+
name: string;
|
|
12
|
+
/** Command to start the server (e.g., "npx", "uvx") */
|
|
13
|
+
command?: string;
|
|
14
|
+
/** Arguments to pass to the command */
|
|
15
|
+
args?: string[];
|
|
16
|
+
/** Streamable HTTP endpoint for remote/local HTTP MCP servers */
|
|
17
|
+
url?: string;
|
|
18
|
+
/** Additional headers for HTTP MCP servers */
|
|
19
|
+
headers?: Record<string, string>;
|
|
20
|
+
/** Credential provider id stored in auth.json for HTTP MCP servers */
|
|
21
|
+
authProvider?: string;
|
|
22
|
+
/** Header name to use when authProvider resolves a token */
|
|
23
|
+
authHeaderName?: string;
|
|
24
|
+
/** Header auth scheme. "bearer" prefixes the token, "raw" passes it as-is */
|
|
25
|
+
authScheme?: "bearer" | "raw";
|
|
26
|
+
/** Environment variables to pass */
|
|
27
|
+
env?: Record<string, string>;
|
|
28
|
+
/** Transport type: "stdio", "sse", or "http" */
|
|
29
|
+
transport?: "stdio" | "sse" | "http";
|
|
30
|
+
/** Whether this server is enabled */
|
|
31
|
+
enabled?: boolean;
|
|
32
|
+
/** Tool call timeout in milliseconds (default: 20000) */
|
|
33
|
+
toolTimeout?: number;
|
|
34
|
+
/** Initialize request timeout in milliseconds (default: 20000) */
|
|
35
|
+
initTimeout?: number;
|
|
36
|
+
/** Working directory for the server process */
|
|
37
|
+
cwd?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface MCPTool {
|
|
40
|
+
/** Tool name (server_id/tool_name format) */
|
|
41
|
+
name: string;
|
|
42
|
+
/** Display name */
|
|
43
|
+
displayName?: string;
|
|
44
|
+
/** Tool description */
|
|
45
|
+
description: string;
|
|
46
|
+
/** JSON Schema for input */
|
|
47
|
+
inputSchema: Record<string, unknown>;
|
|
48
|
+
/** Server ID */
|
|
49
|
+
serverId: string;
|
|
50
|
+
}
|
|
51
|
+
export interface MCPToolResult {
|
|
52
|
+
/** Tool result content */
|
|
53
|
+
content: Array<{
|
|
54
|
+
type: "text" | "image" | "resource";
|
|
55
|
+
text?: string;
|
|
56
|
+
data?: any;
|
|
57
|
+
}>;
|
|
58
|
+
/** Error message if call failed */
|
|
59
|
+
error?: string;
|
|
60
|
+
/** Whether result is partial (hasMore=true) */
|
|
61
|
+
isPartial?: boolean;
|
|
62
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: AgentMessage extensions, convertToLlm(), message transformers
|
|
3
|
+
* [FROM]: Depends on agent-core, ai
|
|
4
|
+
* [TO]: Consumed by index.ts, core/runtime/sdk.ts, core/session/session-manager.ts, modes/interactive/interactive-mode.ts, modes/interactive/components/branch-summary-message.ts, modes/interactive/components/compaction-summary-message.ts, modes/interactive/components/custom-message.ts
|
|
5
|
+
* [HERE]: core/messages.ts - custom message types and LLM transformers
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentMessage } from "@catui/agent-core";
|
|
8
|
+
import type { ImageContent, Message, TextContent } from "@catui/ai/types";
|
|
9
|
+
export declare const COMPACTION_SUMMARY_PREFIX = "The conversation history before this point was compacted into the following summary:\n\n<summary>\n";
|
|
10
|
+
export declare const COMPACTION_SUMMARY_SUFFIX = "\n</summary>";
|
|
11
|
+
export declare const BRANCH_SUMMARY_PREFIX = "The following is a summary of a branch that this conversation came back from:\n\n<summary>\n";
|
|
12
|
+
export declare const BRANCH_SUMMARY_SUFFIX = "</summary>";
|
|
13
|
+
export declare const CUSTOM_MESSAGE_TYPES_EXCLUDED_FROM_CONTEXT: Set<string>;
|
|
14
|
+
/**
|
|
15
|
+
* Message type for bash executions via the ! command.
|
|
16
|
+
*/
|
|
17
|
+
export interface BashExecutionMessage {
|
|
18
|
+
role: "bashExecution";
|
|
19
|
+
command: string;
|
|
20
|
+
output: string;
|
|
21
|
+
exitCode: number | undefined;
|
|
22
|
+
cancelled: boolean;
|
|
23
|
+
truncated: boolean;
|
|
24
|
+
fullOutputPath?: string;
|
|
25
|
+
timestamp: number;
|
|
26
|
+
/** If true, this message is excluded from LLM context (!! prefix) */
|
|
27
|
+
excludeFromContext?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Message type for extension-injected messages via sendMessage().
|
|
31
|
+
* These are custom messages that extensions can inject into the conversation.
|
|
32
|
+
*/
|
|
33
|
+
export interface CustomMessage<T = unknown> {
|
|
34
|
+
role: "custom";
|
|
35
|
+
customType: string;
|
|
36
|
+
content: string | (TextContent | ImageContent)[];
|
|
37
|
+
display: boolean;
|
|
38
|
+
details?: T;
|
|
39
|
+
timestamp: number;
|
|
40
|
+
}
|
|
41
|
+
export interface BranchSummaryMessage {
|
|
42
|
+
role: "branchSummary";
|
|
43
|
+
summary: string;
|
|
44
|
+
fromId: string;
|
|
45
|
+
timestamp: number;
|
|
46
|
+
}
|
|
47
|
+
export interface CompactionSummaryMessage {
|
|
48
|
+
role: "compactionSummary";
|
|
49
|
+
summary: string;
|
|
50
|
+
tokensBefore: number;
|
|
51
|
+
timestamp: number;
|
|
52
|
+
}
|
|
53
|
+
declare module "@catui/agent-core" {
|
|
54
|
+
interface CustomAgentMessages {
|
|
55
|
+
bashExecution: BashExecutionMessage;
|
|
56
|
+
custom: CustomMessage;
|
|
57
|
+
branchSummary: BranchSummaryMessage;
|
|
58
|
+
compactionSummary: CompactionSummaryMessage;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Convert a BashExecutionMessage to user message text for LLM context.
|
|
63
|
+
*/
|
|
64
|
+
export declare function bashExecutionToText(msg: BashExecutionMessage): string;
|
|
65
|
+
export declare function createBranchSummaryMessage(summary: string, fromId: string, timestamp: string): BranchSummaryMessage;
|
|
66
|
+
export declare function createCompactionSummaryMessage(summary: string, tokensBefore: number, timestamp: string): CompactionSummaryMessage;
|
|
67
|
+
/** Convert CustomMessageEntry to AgentMessage format */
|
|
68
|
+
export declare function createCustomMessage(customType: string, content: string | (TextContent | ImageContent)[], display: boolean, details: unknown | undefined, timestamp: string): CustomMessage;
|
|
69
|
+
/**
|
|
70
|
+
* Transform AgentMessages (including custom types) to LLM-compatible Messages.
|
|
71
|
+
*
|
|
72
|
+
* This is used by:
|
|
73
|
+
* - Agent's transormToLlm option (for prompt calls and queued messages)
|
|
74
|
+
* - Compaction's generateSummary (for summarization)
|
|
75
|
+
* - Custom extensions and tools
|
|
76
|
+
*/
|
|
77
|
+
export declare function convertToLlm(messages: AgentMessage[]): Message[];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var u=Object.defineProperty;var o=(e,t)=>u(e,"name",{value:t,configurable:!0});const c=`The conversation history before this point was compacted into the following summary:
|
|
2
|
+
|
|
3
|
+
<summary>
|
|
4
|
+
`,s=`
|
|
5
|
+
</summary>`,i=`The following is a summary of a branch that this conversation came back from:
|
|
6
|
+
|
|
7
|
+
<summary>
|
|
8
|
+
`,m="</summary>",p=new Set(["presence","btw","recap"]);function l(e){let t=`Ran \`${e.command}\`
|
|
9
|
+
`;return e.output?t+=`\`\`\`
|
|
10
|
+
${e.output}
|
|
11
|
+
\`\`\``:t+="(no output)",e.cancelled?t+=`
|
|
12
|
+
|
|
13
|
+
(command cancelled)`:e.exitCode!==null&&e.exitCode!==void 0&&e.exitCode!==0&&(t+=`
|
|
14
|
+
|
|
15
|
+
Command exited with code ${e.exitCode}`),e.truncated&&e.fullOutputPath&&(t+=`
|
|
16
|
+
|
|
17
|
+
[Output truncated. Full output: ${e.fullOutputPath}]`),t}o(l,"bashExecutionToText");function d(e,t,n){return{role:"branchSummary",summary:e,fromId:t,timestamp:new Date(n).getTime()}}o(d,"createBranchSummaryMessage");function f(e,t,n){return{role:"compactionSummary",summary:e,tokensBefore:t,timestamp:new Date(n).getTime()}}o(f,"createCompactionSummaryMessage");function y(e,t,n,r,a){return{role:"custom",customType:e,content:t,display:n,details:r,timestamp:new Date(a).getTime()}}o(y,"createCustomMessage");function h(e){return e.map(t=>{switch(t.role){case"bashExecution":return t.excludeFromContext?void 0:{role:"user",content:[{type:"text",text:l(t)}],timestamp:t.timestamp};case"custom":return p.has(t.customType)?void 0:{role:"user",content:typeof t.content=="string"?[{type:"text",text:t.content}]:t.content,timestamp:t.timestamp};case"branchSummary":return{role:"user",content:[{type:"text",text:i+t.summary+m}],timestamp:t.timestamp};case"compactionSummary":return{role:"user",content:[{type:"text",text:c+t.summary+s}],timestamp:t.timestamp};case"user":case"assistant":case"toolResult":return t;default:const n=t;return}}).filter(t=>t!==void 0)}o(h,"convertToLlm");export{i as BRANCH_SUMMARY_PREFIX,m as BRANCH_SUMMARY_SUFFIX,c as COMPACTION_SUMMARY_PREFIX,s as COMPACTION_SUMMARY_SUFFIX,p as CUSTOM_MESSAGE_TYPES_EXCLUDED_FROM_CONTEXT,l as bashExecutionToText,h as convertToLlm,d as createBranchSummaryMessage,f as createCompactionSummaryMessage,y as createCustomMessage};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: CUSTOM_ANTHROPIC_PROVIDER, CUSTOM_OPENAI_PROVIDER, registerCustomProvider()
|
|
3
|
+
* [FROM]: Depends on config/auth-storage, node:fs
|
|
4
|
+
* [TO]: Consumed by core/model-registry.ts
|
|
5
|
+
* [HERE]: core/model/custom-providers.ts - custom provider registration
|
|
6
|
+
*/
|
|
7
|
+
import type { AuthStorage } from "../platform/config/auth-storage.js";
|
|
8
|
+
export declare const CUSTOM_ANTHROPIC_PROVIDER = "custom-anthropic";
|
|
9
|
+
export declare const CUSTOM_OPENAI_PROVIDER = "custom-openai";
|
|
10
|
+
export type CustomProtocolProviderId = typeof CUSTOM_ANTHROPIC_PROVIDER | typeof CUSTOM_OPENAI_PROVIDER;
|
|
11
|
+
type CustomProtocolProviderDefinition = {
|
|
12
|
+
id: CustomProtocolProviderId;
|
|
13
|
+
label: string;
|
|
14
|
+
description: string;
|
|
15
|
+
defaultBaseUrl: string;
|
|
16
|
+
api: "anthropic-messages" | "openai-completions";
|
|
17
|
+
defaultInput: ("text" | "image")[];
|
|
18
|
+
};
|
|
19
|
+
export declare function isCustomProtocolProvider(provider: string): provider is CustomProtocolProviderId;
|
|
20
|
+
export declare function listCustomProtocolProviders(): CustomProtocolProviderId[];
|
|
21
|
+
export declare function getCustomProtocolProviderDefinition(provider: CustomProtocolProviderId): CustomProtocolProviderDefinition;
|
|
22
|
+
export declare function getCustomProtocolProviderBaseUrl(modelsPath: string, provider: CustomProtocolProviderId): string | undefined;
|
|
23
|
+
export declare function getCustomProtocolProviderModelName(modelsPath: string, provider: CustomProtocolProviderId): string | undefined;
|
|
24
|
+
export declare function ensureCustomProtocolProvidersInModels(modelsPath: string): void;
|
|
25
|
+
export declare function saveCustomProtocolProviderConfig(modelsPath: string, provider: CustomProtocolProviderId, configUpdate: {
|
|
26
|
+
baseUrl: string;
|
|
27
|
+
modelName: string;
|
|
28
|
+
apiKey?: string;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
contextWindow?: number;
|
|
31
|
+
maxTokens?: number;
|
|
32
|
+
} | null>;
|
|
33
|
+
export declare function saveCustomProtocolProviderApiKey(authStorage: AuthStorage, provider: CustomProtocolProviderId, apiKey: string): void;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var b=Object.defineProperty;var r=(e,t)=>b(e,"name",{value:t,configurable:!0});import{existsSync as M,mkdirSync as O,readFileSync as I,writeFileSync as A}from"fs";import{dirname as S}from"node:path";const d="custom-anthropic",m="custom-openai",p="custom-model",f=2,w={[d]:{id:d,label:"Anthropic-compatible",description:"Configure or edit an endpoint that speaks the Anthropic Messages API.",defaultBaseUrl:"https://api.anthropic.com/v1",api:"anthropic-messages",defaultInput:["text","image"]},[m]:{id:m,label:"OpenAI-compatible",description:"Configure or edit an endpoint that speaks an OpenAI-compatible API.",defaultBaseUrl:"https://api.openai.com/v1",api:"openai-completions",defaultInput:["text","image"]}};function g(e){if(!M(e))return{providers:{}};const t=I(e,"utf-8");return{providers:JSON.parse(t).providers??{}}}r(g,"readModelsConfig");function h(e,t){O(S(e),{recursive:!0}),A(e,JSON.stringify(t,null,2),"utf-8")}r(h,"writeModelsConfig");function y(e,t,o){const n=C(e),s=t.trim()||p;return{id:s,name:s,api:n.api,input:n.defaultInput,contextWindow:o?.contextWindow??256e3,maxTokens:o?.maxTokens??32768}}r(y,"createCustomModelDefinition");async function _(e,t,o,n){try{if(e===d)return null;if(t.includes("localhost:11434")||t.includes("127.0.0.1:11434")){const s=await N(n);if(s)return s}return o?await U(t,o,n):null}catch{return null}}r(_,"probeModelContextWindow");async function N(e){try{const o=await fetch("http://localhost:11434/api/show",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e}),signal:AbortSignal.timeout(5e3)});if(!o.ok)return null;const s=(await o.json()).model_info;if(!s)return null;const i=s["general.context_length"];return typeof i=="number"&&i>0?{contextWindow:i}:null}catch{return null}}r(N,"probeOllamaModelInfo");async function U(e,t,o){try{const n=E(e),s=await fetch(n,{headers:{Authorization:`Bearer ${t}`},signal:AbortSignal.timeout(5e3)});if(!s.ok)return null;const c=(await s.json()).data;if(!Array.isArray(c))return null;const l=c.find(u=>u.id===o);if(!l)return null;const a=l.context_length??l.max_context_length??l.top_provider?.context_length;return typeof a=="number"&&a>0?{contextWindow:a}:null}catch{return null}}r(U,"probeOpenAICompatibleModels");function E(e){const t=e.replace(/\/+$/,"");return t.endsWith("/chat/completions")?t.slice(0,-17)+"/models":(t.endsWith("/v1"),t+"/models")}r(E,"buildModelsEndpoint");function v(e,t){try{return g(e).providers?.[t]}catch{return}}r(v,"getStoredProviderConfig");function x(e){const t=e?.models;if(!Array.isArray(t)||t.length===0)return;const o=t[0];if(typeof o=="object"&&o!==null&&"id"in o&&typeof o.id=="string"&&o.id.trim())return o.id.trim()}r(x,"getStoredModelId");function R(e){const t=e?.models;return Array.isArray(t)?t.length:0}r(R,"getStoredModelCount");function T(e){const t=e?.customProviderVersion;return typeof t=="number"?t:void 0}r(T,"getStoredConfigVersion");function W(e){return e===d||e===m}r(W,"isCustomProtocolProvider");function V(){return[d,m]}r(V,"listCustomProtocolProviders");function C(e){return w[e]}r(C,"getCustomProtocolProviderDefinition");function F(e,t){const n=v(e,t)?.baseUrl;return typeof n=="string"&&n.trim()?n.trim():void 0}r(F,"getCustomProtocolProviderBaseUrl");function J(e,t){return x(v(e,t))}r(J,"getCustomProtocolProviderModelName");function L(e){let t;try{t=g(e)}catch{return}t.providers??={};let o=!1;for(const n of V()){const s=C(n),i=t.providers[n],a=T(i)!==f||R(i)!==1?p:x(i)??p,u=[y(n,a)];if(!i){t.providers[n]={baseUrl:s.defaultBaseUrl,customProviderVersion:f,models:u},o=!0;continue}(typeof i.baseUrl!="string"||!i.baseUrl.trim())&&(i.baseUrl=s.defaultBaseUrl,o=!0),i.customProviderVersion!==f&&(i.customProviderVersion=f,o=!0);const P=i.models;JSON.stringify(P)!==JSON.stringify(u)&&(i.models=u,o=!0)}o&&h(e,t)}r(L,"ensureCustomProtocolProvidersInModels");async function j(e,t,o){const n=o.baseUrl.trim(),s=o.modelName.trim();if(!n)throw new Error("Base URL cannot be empty.");if(!s)throw new Error("Model name cannot be empty.");const i=await _(t,n,o.apiKey,s),c=g(e);return c.providers??={},c.providers[t]={...c.providers[t]??{},baseUrl:n,customProviderVersion:f,models:[y(t,s,i??void 0)]},h(e,c),i}r(j,"saveCustomProtocolProviderConfig");function $(e,t,o){const n=o.trim();if(!n)throw new Error("API key cannot be empty.");e.set(t,{type:"api_key",key:n})}r($,"saveCustomProtocolProviderApiKey");export{d as CUSTOM_ANTHROPIC_PROVIDER,m as CUSTOM_OPENAI_PROVIDER,L as ensureCustomProtocolProvidersInModels,F as getCustomProtocolProviderBaseUrl,C as getCustomProtocolProviderDefinition,J as getCustomProtocolProviderModelName,W as isCustomProtocolProvider,V as listCustomProtocolProviders,$ as saveCustomProtocolProviderApiKey,j as saveCustomProtocolProviderConfig};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: DiscoveryCache - read/write/clear cached discovery results
|
|
3
|
+
* [FROM]: Depends on node:fs, discovery types (DiscoveryResult)
|
|
4
|
+
* [TO]: Consumed by core/model-registry.ts for persistence of discovery data
|
|
5
|
+
* [HERE]: core/model/discovery-cache.ts - filesystem cache for remote model discovery
|
|
6
|
+
*
|
|
7
|
+
* Caches DiscoveryResult objects as JSON files in {agentDir}/.cache/discovery/.
|
|
8
|
+
* Each provider gets its own file: {provider}.json
|
|
9
|
+
* Supports TTL-based expiration (default 24h).
|
|
10
|
+
*/
|
|
11
|
+
import type { DiscoveryResult } from "./discovery.js";
|
|
12
|
+
/**
|
|
13
|
+
* Filesystem-backed cache for discovery results.
|
|
14
|
+
*
|
|
15
|
+
* Directory structure:
|
|
16
|
+
* ```
|
|
17
|
+
* {cacheDir}/
|
|
18
|
+
* ├── dashscope-coding.json
|
|
19
|
+
* ├── ollama.json
|
|
20
|
+
* └── ali-token-plan-openai.json
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* Each file contains a serialized DiscoveryResult with TTL metadata.
|
|
24
|
+
*/
|
|
25
|
+
export declare class DiscoveryCache {
|
|
26
|
+
private cacheDir;
|
|
27
|
+
constructor(cacheDir: string);
|
|
28
|
+
/**
|
|
29
|
+
* Get the filesystem path for a provider's cache file.
|
|
30
|
+
* Sanitizes provider name to avoid path traversal.
|
|
31
|
+
*/
|
|
32
|
+
private providerCachePath;
|
|
33
|
+
/**
|
|
34
|
+
* Read a cached discovery result.
|
|
35
|
+
* Returns undefined if:
|
|
36
|
+
* - The file doesn't exist
|
|
37
|
+
* - The file is corrupted (JSON parse error)
|
|
38
|
+
* - The result has expired (age > TTL)
|
|
39
|
+
*
|
|
40
|
+
* @param provider Provider name
|
|
41
|
+
* @param ttlSeconds Time-to-live in seconds (default: 24h)
|
|
42
|
+
*/
|
|
43
|
+
read(provider: string, ttlSeconds?: number): DiscoveryResult | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Write a discovery result to the cache.
|
|
46
|
+
* Creates the cache directory if it doesn't exist.
|
|
47
|
+
*/
|
|
48
|
+
write(result: DiscoveryResult): void;
|
|
49
|
+
/**
|
|
50
|
+
* Check if a cache entry exists and is fresh (without reading full content).
|
|
51
|
+
*/
|
|
52
|
+
isFresh(provider: string, ttlSeconds?: number): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Remove a single provider's cache file.
|
|
55
|
+
*/
|
|
56
|
+
remove(provider: string): void;
|
|
57
|
+
/**
|
|
58
|
+
* Clear all cached discovery data by removing the cache directory.
|
|
59
|
+
*/
|
|
60
|
+
clear(): void;
|
|
61
|
+
/**
|
|
62
|
+
* List all provider names that have cached data (fresh or stale).
|
|
63
|
+
*/
|
|
64
|
+
listProviders(): string[];
|
|
65
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=Object.defineProperty;var s=(n,r)=>d(n,"name",{value:r,configurable:!0});import{existsSync as c,mkdirSync as u,readFileSync as f,readdirSync as p,renameSync as y,rmSync as a,writeFileSync as m}from"node:fs";import{join as D}from"node:path";import{DEFAULT_DISCOVERY_TTL_SECONDS as h}from"./discovery.js";class A{static{s(this,"DiscoveryCache")}cacheDir;constructor(r){this.cacheDir=r}providerCachePath(r){const e=r.replace(/[^a-zA-Z0-9_.-]/g,"_");return D(this.cacheDir,`${e}.json`)}read(r,e=h){const t=this.providerCachePath(r);if(c(t))try{const o=f(t,"utf-8"),i=JSON.parse(o);return!i||typeof i!="object"||!Array.isArray(i.models)||Date.now()-i.fetchedAt>e*1e3?void 0:i}catch{return}}write(r){try{c(this.cacheDir)||u(this.cacheDir,{recursive:!0});const e=this.providerCachePath(r.provider),t=e+".tmp";m(t,JSON.stringify(r,null,2),"utf-8"),y(t,e)}catch{}}isFresh(r,e=h){return this.read(r,e)!==void 0}remove(r){const e=this.providerCachePath(r);try{c(e)&&a(e)}catch{}}clear(){try{c(this.cacheDir)&&a(this.cacheDir,{recursive:!0,force:!0})}catch{}}listProviders(){if(!c(this.cacheDir))return[];try{return p(this.cacheDir).filter(e=>e.endsWith(".json")).map(e=>e.replace(/\.json$/,""))}catch{return[]}}}export{A as DiscoveryCache};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var f=Object.defineProperty;var l=(i,e)=>f(i,"name",{value:e,configurable:!0});import r from"node:assert";import{describe as c,it as t,beforeEach as p,afterEach as v}from"node:test";import{existsSync as d,mkdirSync as u,rmSync as m,writeFileSync as h}from"node:fs";import{join as a}from"node:path";import{tmpdir as w}from"node:os";import{DiscoveryCache as y}from"./discovery-cache.js";function o(i={}){return{provider:"test-provider",models:[{id:"model-a",name:"Model A"}],fetchedAt:Date.now(),ttl:86400,...i}}l(o,"makeResult"),c("DiscoveryCache",()=>{let i,e;p(()=>{i=a(w(),`discovery-cache-test-${Date.now()}-${Math.random().toString(36).slice(2)}`),e=new y(i)}),v(()=>{try{d(i)&&m(i,{recursive:!0,force:!0})}catch{}}),c("write and read",()=>{t("writes and reads back a discovery result",()=>{const s=o();e.write(s);const n=e.read("test-provider");r.ok(n),r.strictEqual(n.provider,"test-provider"),r.strictEqual(n.models.length,1),r.strictEqual(n.models[0].id,"model-a")}),t("creates cache directory if it doesn't exist",()=>{r.strictEqual(d(i),!1),e.write(o()),r.strictEqual(d(i),!0)}),t("returns undefined for non-existent provider",()=>{r.strictEqual(e.read("nonexistent"),void 0)})}),c("TTL expiration",()=>{t("returns cached result when fresh (within TTL)",()=>{const s=o({fetchedAt:Date.now()-1e3});e.write(s);const n=e.read("test-provider",86400);r.ok(n)}),t("returns undefined when expired (beyond TTL)",()=>{const s=o({fetchedAt:Date.now()-2e5});e.write(s);const n=e.read("test-provider",100);r.strictEqual(n,void 0)}),t("uses default TTL of 24h when not specified",()=>{const s=o({fetchedAt:Date.now()-36e5});e.write(s);const n=e.read("test-provider");r.ok(n)})}),c("error handling",()=>{t("returns undefined for corrupted JSON file",()=>{u(i,{recursive:!0}),h(a(i,"test-provider.json"),"not json{{{","utf-8"),r.strictEqual(e.read("test-provider"),void 0)}),t("returns undefined for file with invalid structure",()=>{u(i,{recursive:!0}),h(a(i,"test-provider.json"),JSON.stringify({foo:"bar"}),"utf-8"),r.strictEqual(e.read("test-provider"),void 0)}),t("sanitizes provider names with special characters",()=>{const s=o({provider:"test/../provider"});e.write(s);const n=e.read("test/../provider");r.ok(n)})}),c("isFresh",()=>{t("returns true for fresh cache entry",()=>{e.write(o()),r.strictEqual(e.isFresh("test-provider"),!0)}),t("returns false for expired cache entry",()=>{const s=o({fetchedAt:Date.now()-2e5});e.write(s),r.strictEqual(e.isFresh("test-provider",100),!1)}),t("returns false for non-existent entry",()=>{r.strictEqual(e.isFresh("nonexistent"),!1)})}),c("remove",()=>{t("removes a specific provider's cache file",()=>{e.write(o()),r.strictEqual(e.isFresh("test-provider"),!0),e.remove("test-provider"),r.strictEqual(e.isFresh("test-provider"),!1)}),t("does nothing for non-existent provider",()=>{e.remove("nonexistent")})}),c("clear",()=>{t("removes entire cache directory",()=>{e.write(o({provider:"a"})),e.write(o({provider:"b"})),r.strictEqual(d(i),!0),e.clear(),r.strictEqual(d(i),!1)}),t("does nothing when cache directory doesn't exist",()=>{e.clear()})}),c("listProviders",()=>{t("lists all cached provider names",()=>{e.write(o({provider:"alpha"})),e.write(o({provider:"beta"}));const s=e.listProviders();r.ok(s.includes("alpha")),r.ok(s.includes("beta")),r.strictEqual(s.length,2)}),t("returns empty array when cache directory doesn't exist",()=>{r.deepStrictEqual(e.listProviders(),[])})})});
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: discoverModels(), discoverOpenAIModels(), getDiscoveryProtocol(), DiscoveredModel, DiscoveryResult
|
|
3
|
+
* [FROM]: Depends on @catui/ai/types for Api type
|
|
4
|
+
* [TO]: Consumed by core/model-registry.ts, core/model/discovery-cache.ts
|
|
5
|
+
* [HERE]: core/model/discovery.ts - remote model discovery engine
|
|
6
|
+
*
|
|
7
|
+
* Fetches model lists from provider /models endpoints (OpenAI-compatible protocol).
|
|
8
|
+
* All failures are graceful — returns empty results instead of throwing.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* A model discovered from a remote /models endpoint.
|
|
12
|
+
*/
|
|
13
|
+
export interface DiscoveredModel {
|
|
14
|
+
/** Model identifier (same format as used in API requests). */
|
|
15
|
+
id: string;
|
|
16
|
+
/** Human-readable display name, if provided by the endpoint. */
|
|
17
|
+
name?: string;
|
|
18
|
+
/** Organization or entity that owns the model. */
|
|
19
|
+
ownedBy?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Result of a discovery operation for a single provider.
|
|
23
|
+
*/
|
|
24
|
+
export interface DiscoveryResult {
|
|
25
|
+
/** Provider name this result belongs to. */
|
|
26
|
+
provider: string;
|
|
27
|
+
/** Discovered models (may be empty on failure or unsupported protocol). */
|
|
28
|
+
models: DiscoveredModel[];
|
|
29
|
+
/** Epoch milliseconds when this result was fetched. */
|
|
30
|
+
fetchedAt: number;
|
|
31
|
+
/** Cache time-to-live in seconds. */
|
|
32
|
+
ttl: number;
|
|
33
|
+
/** Non-fatal error message (e.g., "unsupported protocol" or network error details). */
|
|
34
|
+
error?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Discovery protocol supported by a provider's API type.
|
|
38
|
+
* - "openai-models": GET {baseUrl}/models (OpenAI-compatible standard)
|
|
39
|
+
* - "unsupported": API type does not expose a model listing endpoint
|
|
40
|
+
*/
|
|
41
|
+
export type DiscoveryProtocol = "openai-models" | "unsupported";
|
|
42
|
+
/** Default cache TTL: 24 hours. */
|
|
43
|
+
export declare const DEFAULT_DISCOVERY_TTL_SECONDS = 86400;
|
|
44
|
+
/** Default fetch timeout: 5 seconds. */
|
|
45
|
+
export declare const DEFAULT_DISCOVERY_TIMEOUT_MS = 5000;
|
|
46
|
+
/**
|
|
47
|
+
* Determine which discovery protocol a provider supports based on its API type.
|
|
48
|
+
*
|
|
49
|
+
* OpenAI-compatible APIs (completions, responses) implement the standard
|
|
50
|
+
* `GET /v1/models` endpoint. Anthropic Messages API does not expose one.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getDiscoveryProtocol(api: string): DiscoveryProtocol;
|
|
53
|
+
/**
|
|
54
|
+
* Fetch model list from an OpenAI-compatible /models endpoint.
|
|
55
|
+
*
|
|
56
|
+
* Expects response format: `{ data: [{ id: string, name?: string, owned_by?: string }, ...] }`
|
|
57
|
+
*
|
|
58
|
+
* Returns empty array on any failure:
|
|
59
|
+
* - Network errors / timeouts
|
|
60
|
+
* - Non-200 HTTP responses (401, 403, 500, etc.)
|
|
61
|
+
* - Malformed response bodies
|
|
62
|
+
*
|
|
63
|
+
* @param baseUrl Provider base URL (trailing slashes are stripped)
|
|
64
|
+
* @param apiKey Optional API key for Authorization header
|
|
65
|
+
* @param options Optional timeout and abort signal
|
|
66
|
+
*/
|
|
67
|
+
export declare function discoverOpenAIModels(baseUrl: string, apiKey: string | undefined, options?: {
|
|
68
|
+
timeoutMs?: number;
|
|
69
|
+
signal?: AbortSignal;
|
|
70
|
+
}): Promise<DiscoveredModel[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Top-level discover function: routes to the correct protocol handler.
|
|
73
|
+
*
|
|
74
|
+
* Returns a DiscoveryResult with metadata (timestamps, TTL, error info).
|
|
75
|
+
* Never throws — all errors are captured in the result.
|
|
76
|
+
*/
|
|
77
|
+
export declare function discoverModels(providerName: string, baseUrl: string, api: string, apiKey: string | undefined, options?: {
|
|
78
|
+
timeoutMs?: number;
|
|
79
|
+
}): Promise<DiscoveryResult>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var f=Object.defineProperty;var c=(e,o)=>f(e,"name",{value:o,configurable:!0});const D=86400,S=5e3;function E(e){switch(e){case"openai-completions":case"openai-responses":case"openai-codex-responses":case"azure-openai-responses":return"openai-models";default:return"unsupported"}}c(E,"getDiscoveryProtocol");async function A(e,o,t){const a=t?.timeoutMs??5e3,d=`${e.replace(/\/+$/,"")}/models`,i={};o&&(i.Authorization=`Bearer ${o}`);const n=new AbortController,s=setTimeout(()=>n.abort(),a),p=t?.signal?T(t.signal,n.signal):n.signal;try{const l=await fetch(d,{headers:i,signal:p});if(!l.ok)return[];const u=await l.json();return(Array.isArray(u?.data)?u.data:[]).filter(r=>r!=null&&typeof r=="object"&&typeof r.id=="string").map(r=>({id:r.id,name:typeof r.name=="string"?r.name:void 0,ownedBy:typeof r.owned_by=="string"?r.owned_by:void 0}))}catch{return[]}finally{clearTimeout(s)}}c(A,"discoverOpenAIModels");async function b(e,o,t,a,d){const i=E(t),n=Date.now();if(i==="unsupported")return{provider:e,models:[],fetchedAt:n,ttl:0,error:`Discovery not supported for API type "${t}"`};try{const s=await A(o,a,d);return{provider:e,models:s,fetchedAt:n,ttl:86400}}catch(s){return{provider:e,models:[],fetchedAt:n,ttl:86400,error:s instanceof Error?s.message:String(s)}}}c(b,"discoverModels");function T(e,o){const t=new AbortController,a=c(()=>t.abort(),"onAbort");return e.aborted||o.aborted?(t.abort(),t.signal):(e.addEventListener("abort",a,{once:!0}),o.addEventListener("abort",a,{once:!0}),t.signal)}c(T,"combineAbortSignals");export{S as DEFAULT_DISCOVERY_TIMEOUT_MS,D as DEFAULT_DISCOVERY_TTL_SECONDS,b as discoverModels,A as discoverOpenAIModels,E as getDiscoveryProtocol};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var h=Object.defineProperty;var i=(o,t)=>h(o,"name",{value:t,configurable:!0});import e from"node:assert";import{describe as p,it as s,mock as a}from"node:test";import{getDiscoveryProtocol as n,discoverOpenAIModels as l,discoverModels as d}from"./discovery.js";p("getDiscoveryProtocol",()=>{s("returns 'openai-models' for openai-completions",()=>{e.strictEqual(n("openai-completions"),"openai-models")}),s("returns 'openai-models' for openai-responses",()=>{e.strictEqual(n("openai-responses"),"openai-models")}),s("returns 'openai-models' for openai-codex-responses",()=>{e.strictEqual(n("openai-codex-responses"),"openai-models")}),s("returns 'openai-models' for azure-openai-responses",()=>{e.strictEqual(n("azure-openai-responses"),"openai-models")}),s("returns 'unsupported' for anthropic-messages",()=>{e.strictEqual(n("anthropic-messages"),"unsupported")}),s("returns 'unsupported' for google-generative-ai",()=>{e.strictEqual(n("google-generative-ai"),"unsupported")}),s("returns 'unsupported' for bedrock-converse-stream",()=>{e.strictEqual(n("bedrock-converse-stream"),"unsupported")}),s("returns 'unsupported' for unknown API types",()=>{e.strictEqual(n("custom-api"),"unsupported")})}),p("discoverOpenAIModels",()=>{s("parses standard OpenAI /models response",async()=>{const o={data:[{id:"gpt-4o",name:"GPT-4o",owned_by:"openai"},{id:"gpt-4o-mini",name:"GPT-4o Mini",owned_by:"openai"}]},t=globalThis.fetch;globalThis.fetch=a.fn(async()=>({ok:!0,json:i(async()=>o,"json")}));try{const r=await l("https://api.openai.com/v1","test-key");e.strictEqual(r.length,2),e.strictEqual(r[0].id,"gpt-4o"),e.strictEqual(r[0].name,"GPT-4o"),e.strictEqual(r[0].ownedBy,"openai"),e.strictEqual(r[1].id,"gpt-4o-mini")}finally{globalThis.fetch=t}}),s("includes Authorization header when apiKey is provided",async()=>{const o=globalThis.fetch;let t={};globalThis.fetch=a.fn(async(r,c)=>(t=c.headers,{ok:!0,json:i(async()=>({data:[]}),"json")}));try{await l("https://api.example.com/v1","sk-test-123"),e.strictEqual(t.Authorization,"Bearer sk-test-123")}finally{globalThis.fetch=o}}),s("omits Authorization header when apiKey is undefined",async()=>{const o=globalThis.fetch;let t={};globalThis.fetch=a.fn(async(r,c)=>(t=c.headers,{ok:!0,json:i(async()=>({data:[]}),"json")}));try{await l("http://localhost:11434/v1",void 0),e.strictEqual(t.Authorization,void 0)}finally{globalThis.fetch=o}}),s("strips trailing slashes from baseUrl",async()=>{const o=globalThis.fetch;let t="";globalThis.fetch=a.fn(async r=>(t=r,{ok:!0,json:i(async()=>({data:[]}),"json")}));try{await l("https://api.example.com/v1///",void 0),e.strictEqual(t,"https://api.example.com/v1/models")}finally{globalThis.fetch=o}}),s("returns empty array on non-200 response",async()=>{const o=globalThis.fetch;globalThis.fetch=a.fn(async()=>({ok:!1,status:401,json:i(async()=>({error:"Unauthorized"}),"json")}));try{const t=await l("https://api.example.com/v1","bad-key");e.deepStrictEqual(t,[])}finally{globalThis.fetch=o}}),s("returns empty array on malformed JSON",async()=>{const o=globalThis.fetch;globalThis.fetch=a.fn(async()=>({ok:!0,json:i(async()=>({unexpected:"format"}),"json")}));try{const t=await l("https://api.example.com/v1",void 0);e.deepStrictEqual(t,[])}finally{globalThis.fetch=o}}),s("filters out entries without string id",async()=>{const o=globalThis.fetch;globalThis.fetch=a.fn(async()=>({ok:!0,json:i(async()=>({data:[{id:"valid-model"},{id:123},{name:"no-id"},null,{id:"another-valid"}]}),"json")}));try{const t=await l("https://api.example.com/v1",void 0);e.strictEqual(t.length,2),e.strictEqual(t[0].id,"valid-model"),e.strictEqual(t[1].id,"another-valid")}finally{globalThis.fetch=o}}),s("returns empty array on network error",async()=>{const o=globalThis.fetch;globalThis.fetch=a.fn(async()=>{throw new Error("ECONNREFUSED")});try{const t=await l("http://localhost:11434/v1",void 0);e.deepStrictEqual(t,[])}finally{globalThis.fetch=o}})}),p("discoverModels",()=>{s("returns DiscoveryResult with models for openai-completions",async()=>{const o=globalThis.fetch;globalThis.fetch=a.fn(async()=>({ok:!0,json:i(async()=>({data:[{id:"model-a"},{id:"model-b"}]}),"json")}));try{const t=await d("test-provider","https://api.example.com/v1","openai-completions","key");e.strictEqual(t.provider,"test-provider"),e.strictEqual(t.models.length,2),e.strictEqual(t.ttl,86400),e.ok(t.fetchedAt>0),e.strictEqual(t.error,void 0)}finally{globalThis.fetch=o}}),s("returns error for unsupported protocol",async()=>{const o=await d("anthropic","https://api.anthropic.com/v1","anthropic-messages","key");e.strictEqual(o.provider,"anthropic"),e.deepStrictEqual(o.models,[]),e.ok(o.error?.includes("not supported")),e.strictEqual(o.ttl,0)}),s("returns empty models on fetch error (graceful degradation)",async()=>{const o=globalThis.fetch;globalThis.fetch=a.fn(async()=>{throw new Error("timeout")});try{const t=await d("test","https://api.example.com/v1","openai-completions","key");e.deepStrictEqual(t.models,[]),e.strictEqual(t.error,void 0),e.strictEqual(t.provider,"test")}finally{globalThis.fetch=o}})});
|