threadwell 0.0.0 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4170 -0
- package/README.md +393 -4
- package/dist/bun/cli.d.ts +3 -0
- package/dist/bun/cli.d.ts.map +1 -0
- package/dist/bun/cli.js +9 -0
- package/dist/bun/cli.js.map +1 -0
- package/dist/bun/register-bedrock.d.ts +2 -0
- package/dist/bun/register-bedrock.d.ts.map +1 -0
- package/dist/bun/register-bedrock.js +4 -0
- package/dist/bun/register-bedrock.js.map +1 -0
- package/dist/bun/restore-sandbox-env.d.ts +13 -0
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
- package/dist/bun/restore-sandbox-env.js +32 -0
- package/dist/bun/restore-sandbox-env.js.map +1 -0
- package/dist/cli/args.d.ts +53 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +341 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/config-selector.d.ts +14 -0
- package/dist/cli/config-selector.d.ts.map +1 -0
- package/dist/cli/config-selector.js +31 -0
- package/dist/cli/config-selector.js.map +1 -0
- package/dist/cli/file-processor.d.ts +15 -0
- package/dist/cli/file-processor.d.ts.map +1 -0
- package/dist/cli/file-processor.js +83 -0
- package/dist/cli/file-processor.js.map +1 -0
- package/dist/cli/initial-message.d.ts +18 -0
- package/dist/cli/initial-message.d.ts.map +1 -0
- package/dist/cli/initial-message.js +22 -0
- package/dist/cli/initial-message.js.map +1 -0
- package/dist/cli/list-models.d.ts +9 -0
- package/dist/cli/list-models.d.ts.map +1 -0
- package/dist/cli/list-models.js +98 -0
- package/dist/cli/list-models.js.map +1 -0
- package/dist/cli/session-picker.d.ts +9 -0
- package/dist/cli/session-picker.d.ts.map +1 -0
- package/dist/cli/session-picker.js +35 -0
- package/dist/cli/session-picker.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +19 -3
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +93 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +404 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-session-runtime.d.ts +117 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -0
- package/dist/core/agent-session-runtime.js +300 -0
- package/dist/core/agent-session-runtime.js.map +1 -0
- package/dist/core/agent-session-services.d.ts +86 -0
- package/dist/core/agent-session-services.d.ts.map +1 -0
- package/dist/core/agent-session-services.js +117 -0
- package/dist/core/agent-session-services.js.map +1 -0
- package/dist/core/agent-session.d.ts +659 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +3210 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/auth-guidance.d.ts +5 -0
- package/dist/core/auth-guidance.d.ts.map +1 -0
- package/dist/core/auth-guidance.js +21 -0
- package/dist/core/auth-guidance.js.map +1 -0
- package/dist/core/auth-storage.d.ts +141 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +441 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/bash-executor.d.ts +32 -0
- package/dist/core/bash-executor.d.ts.map +1 -0
- package/dist/core/bash-executor.js +111 -0
- package/dist/core/bash-executor.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +88 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/core/compaction/branch-summarization.js +243 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -0
- package/dist/core/compaction/compaction.d.ts +121 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -0
- package/dist/core/compaction/compaction.js +615 -0
- package/dist/core/compaction/compaction.js.map +1 -0
- package/dist/core/compaction/index.d.ts +7 -0
- package/dist/core/compaction/index.d.ts.map +1 -0
- package/dist/core/compaction/index.js +7 -0
- package/dist/core/compaction/index.js.map +1 -0
- package/dist/core/compaction/utils.d.ts +38 -0
- package/dist/core/compaction/utils.d.ts.map +1 -0
- package/dist/core/compaction/utils.js +153 -0
- package/dist/core/compaction/utils.js.map +1 -0
- package/dist/core/continuity/continuity-files.d.ts +79 -0
- package/dist/core/continuity/continuity-files.d.ts.map +1 -0
- package/dist/core/continuity/continuity-files.js +326 -0
- package/dist/core/continuity/continuity-files.js.map +1 -0
- package/dist/core/continuity/continuity-intent-router.d.ts +9 -0
- package/dist/core/continuity/continuity-intent-router.d.ts.map +1 -0
- package/dist/core/continuity/continuity-intent-router.js +96 -0
- package/dist/core/continuity/continuity-intent-router.js.map +1 -0
- package/dist/core/continuity/continuity-manager.d.ts +28 -0
- package/dist/core/continuity/continuity-manager.d.ts.map +1 -0
- package/dist/core/continuity/continuity-manager.js +288 -0
- package/dist/core/continuity/continuity-manager.js.map +1 -0
- package/dist/core/continuity/continuity-service.d.ts +22 -0
- package/dist/core/continuity/continuity-service.d.ts.map +1 -0
- package/dist/core/continuity/continuity-service.js +34 -0
- package/dist/core/continuity/continuity-service.js.map +1 -0
- package/dist/core/continuity/index.d.ts +5 -0
- package/dist/core/continuity/index.d.ts.map +1 -0
- package/dist/core/continuity/index.js +5 -0
- package/dist/core/continuity/index.js.map +1 -0
- package/dist/core/defaults.d.ts +3 -0
- package/dist/core/defaults.d.ts.map +1 -0
- package/dist/core/defaults.js +2 -0
- package/dist/core/defaults.js.map +1 -0
- package/dist/core/diagnostics.d.ts +15 -0
- package/dist/core/diagnostics.d.ts.map +1 -0
- package/dist/core/diagnostics.js +2 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/event-bus.d.ts +9 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +25 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/exec.d.ts +29 -0
- package/dist/core/exec.d.ts.map +1 -0
- package/dist/core/exec.js +75 -0
- package/dist/core/exec.js.map +1 -0
- package/dist/core/export-html/ansi-to-html.d.ts +22 -0
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
- package/dist/core/export-html/ansi-to-html.js +249 -0
- package/dist/core/export-html/ansi-to-html.js.map +1 -0
- package/dist/core/export-html/index.d.ts +37 -0
- package/dist/core/export-html/index.d.ts.map +1 -0
- package/dist/core/export-html/index.js +224 -0
- package/dist/core/export-html/index.js.map +1 -0
- package/dist/core/export-html/template.css +1066 -0
- package/dist/core/export-html/template.html +55 -0
- package/dist/core/export-html/template.js +1834 -0
- package/dist/core/export-html/tool-renderer.d.ts +34 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/core/export-html/tool-renderer.js +108 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -0
- package/dist/core/export-html/vendor/highlight.min.js +1213 -0
- package/dist/core/export-html/vendor/marked.min.js +6 -0
- package/dist/core/extensions/index.d.ts +12 -0
- package/dist/core/extensions/index.d.ts.map +1 -0
- package/dist/core/extensions/index.js +9 -0
- package/dist/core/extensions/index.js.map +1 -0
- package/dist/core/extensions/loader.d.ts +24 -0
- package/dist/core/extensions/loader.d.ts.map +1 -0
- package/dist/core/extensions/loader.js +485 -0
- package/dist/core/extensions/loader.js.map +1 -0
- package/dist/core/extensions/runner.d.ts +159 -0
- package/dist/core/extensions/runner.d.ts.map +1 -0
- package/dist/core/extensions/runner.js +824 -0
- package/dist/core/extensions/runner.js.map +1 -0
- package/dist/core/extensions/types.d.ts +1173 -0
- package/dist/core/extensions/types.d.ts.map +1 -0
- package/dist/core/extensions/types.js +45 -0
- package/dist/core/extensions/types.js.map +1 -0
- package/dist/core/extensions/wrapper.d.ts +20 -0
- package/dist/core/extensions/wrapper.d.ts.map +1 -0
- package/dist/core/extensions/wrapper.js +22 -0
- package/dist/core/extensions/wrapper.js.map +1 -0
- package/dist/core/footer-data-provider.d.ts +72 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -0
- package/dist/core/footer-data-provider.js +374 -0
- package/dist/core/footer-data-provider.js.map +1 -0
- package/dist/core/identity.d.ts +8 -0
- package/dist/core/identity.d.ts.map +1 -0
- package/dist/core/identity.js +8 -0
- package/dist/core/identity.js.map +1 -0
- package/dist/core/index.d.ts +12 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +12 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/keybindings.d.ts +353 -0
- package/dist/core/keybindings.d.ts.map +1 -0
- package/dist/core/keybindings.js +295 -0
- package/dist/core/keybindings.js.map +1 -0
- package/dist/core/memory/adr/adr-candidates.d.ts +15 -0
- package/dist/core/memory/adr/adr-candidates.d.ts.map +1 -0
- package/dist/core/memory/adr/adr-candidates.js +63 -0
- package/dist/core/memory/adr/adr-candidates.js.map +1 -0
- package/dist/core/memory/adr/adr-format.d.ts +31 -0
- package/dist/core/memory/adr/adr-format.d.ts.map +1 -0
- package/dist/core/memory/adr/adr-format.js +138 -0
- package/dist/core/memory/adr/adr-format.js.map +1 -0
- package/dist/core/memory/adr/adr-service.d.ts +19 -0
- package/dist/core/memory/adr/adr-service.d.ts.map +1 -0
- package/dist/core/memory/adr/adr-service.js +63 -0
- package/dist/core/memory/adr/adr-service.js.map +1 -0
- package/dist/core/memory/adr/index.d.ts +4 -0
- package/dist/core/memory/adr/index.d.ts.map +1 -0
- package/dist/core/memory/adr/index.js +4 -0
- package/dist/core/memory/adr/index.js.map +1 -0
- package/dist/core/memory/content-ref.d.ts +22 -0
- package/dist/core/memory/content-ref.d.ts.map +1 -0
- package/dist/core/memory/content-ref.js +34 -0
- package/dist/core/memory/content-ref.js.map +1 -0
- package/dist/core/memory/context/context-candidates.d.ts +9 -0
- package/dist/core/memory/context/context-candidates.d.ts.map +1 -0
- package/dist/core/memory/context/context-candidates.js +64 -0
- package/dist/core/memory/context/context-candidates.js.map +1 -0
- package/dist/core/memory/context/context-diagnostics.d.ts +12 -0
- package/dist/core/memory/context/context-diagnostics.d.ts.map +1 -0
- package/dist/core/memory/context/context-diagnostics.js +50 -0
- package/dist/core/memory/context/context-diagnostics.js.map +1 -0
- package/dist/core/memory/context/context-format.d.ts +41 -0
- package/dist/core/memory/context/context-format.d.ts.map +1 -0
- package/dist/core/memory/context/context-format.js +199 -0
- package/dist/core/memory/context/context-format.js.map +1 -0
- package/dist/core/memory/context/index.d.ts +4 -0
- package/dist/core/memory/context/index.d.ts.map +1 -0
- package/dist/core/memory/context/index.js +4 -0
- package/dist/core/memory/context/index.js.map +1 -0
- package/dist/core/memory/context-pressure.d.ts +15 -0
- package/dist/core/memory/context-pressure.d.ts.map +1 -0
- package/dist/core/memory/context-pressure.js +36 -0
- package/dist/core/memory/context-pressure.js.map +1 -0
- package/dist/core/memory/continuity-import.d.ts +6 -0
- package/dist/core/memory/continuity-import.d.ts.map +1 -0
- package/dist/core/memory/continuity-import.js +63 -0
- package/dist/core/memory/continuity-import.js.map +1 -0
- package/dist/core/memory/dedupe.d.ts +10 -0
- package/dist/core/memory/dedupe.d.ts.map +1 -0
- package/dist/core/memory/dedupe.js +36 -0
- package/dist/core/memory/dedupe.js.map +1 -0
- package/dist/core/memory/embedding-adapter.d.ts +20 -0
- package/dist/core/memory/embedding-adapter.d.ts.map +1 -0
- package/dist/core/memory/embedding-adapter.js +11 -0
- package/dist/core/memory/embedding-adapter.js.map +1 -0
- package/dist/core/memory/event-summary.d.ts +7 -0
- package/dist/core/memory/event-summary.d.ts.map +1 -0
- package/dist/core/memory/event-summary.js +23 -0
- package/dist/core/memory/event-summary.js.map +1 -0
- package/dist/core/memory/feature/feature-format.d.ts +30 -0
- package/dist/core/memory/feature/feature-format.d.ts.map +1 -0
- package/dist/core/memory/feature/feature-format.js +121 -0
- package/dist/core/memory/feature/feature-format.js.map +1 -0
- package/dist/core/memory/feature/index.d.ts +2 -0
- package/dist/core/memory/feature/index.d.ts.map +1 -0
- package/dist/core/memory/feature/index.js +2 -0
- package/dist/core/memory/feature/index.js.map +1 -0
- package/dist/core/memory/ignore.d.ts +5 -0
- package/dist/core/memory/ignore.d.ts.map +1 -0
- package/dist/core/memory/ignore.js +26 -0
- package/dist/core/memory/ignore.js.map +1 -0
- package/dist/core/memory/index.d.ts +21 -0
- package/dist/core/memory/index.d.ts.map +1 -0
- package/dist/core/memory/index.js +20 -0
- package/dist/core/memory/index.js.map +1 -0
- package/dist/core/memory/memory-anchors.d.ts +11 -0
- package/dist/core/memory/memory-anchors.d.ts.map +1 -0
- package/dist/core/memory/memory-anchors.js +35 -0
- package/dist/core/memory/memory-anchors.js.map +1 -0
- package/dist/core/memory/memory-identity.d.ts +11 -0
- package/dist/core/memory/memory-identity.d.ts.map +1 -0
- package/dist/core/memory/memory-identity.js +19 -0
- package/dist/core/memory/memory-identity.js.map +1 -0
- package/dist/core/memory/memory-retrieval.d.ts +55 -0
- package/dist/core/memory/memory-retrieval.d.ts.map +1 -0
- package/dist/core/memory/memory-retrieval.js +128 -0
- package/dist/core/memory/memory-retrieval.js.map +1 -0
- package/dist/core/memory/memory-schema.d.ts +11 -0
- package/dist/core/memory/memory-schema.d.ts.map +1 -0
- package/dist/core/memory/memory-schema.js +111 -0
- package/dist/core/memory/memory-schema.js.map +1 -0
- package/dist/core/memory/memory-service.d.ts +35 -0
- package/dist/core/memory/memory-service.d.ts.map +1 -0
- package/dist/core/memory/memory-service.js +125 -0
- package/dist/core/memory/memory-service.js.map +1 -0
- package/dist/core/memory/memory-store.d.ts +37 -0
- package/dist/core/memory/memory-store.d.ts.map +1 -0
- package/dist/core/memory/memory-store.js +109 -0
- package/dist/core/memory/memory-store.js.map +1 -0
- package/dist/core/memory/memory-types.d.ts +55 -0
- package/dist/core/memory/memory-types.d.ts.map +1 -0
- package/dist/core/memory/memory-types.js +2 -0
- package/dist/core/memory/memory-types.js.map +1 -0
- package/dist/core/memory/redaction.d.ts +4 -0
- package/dist/core/memory/redaction.d.ts.map +1 -0
- package/dist/core/memory/redaction.js +49 -0
- package/dist/core/memory/redaction.js.map +1 -0
- package/dist/core/memory/sqlite-memory-store.d.ts +30 -0
- package/dist/core/memory/sqlite-memory-store.d.ts.map +1 -0
- package/dist/core/memory/sqlite-memory-store.js +300 -0
- package/dist/core/memory/sqlite-memory-store.js.map +1 -0
- package/dist/core/memory/startup-order.d.ts +9 -0
- package/dist/core/memory/startup-order.d.ts.map +1 -0
- package/dist/core/memory/startup-order.js +39 -0
- package/dist/core/memory/startup-order.js.map +1 -0
- package/dist/core/messages.d.ts +77 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +123 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/model-registry.d.ts +150 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +727 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +110 -0
- package/dist/core/model-resolver.d.ts.map +1 -0
- package/dist/core/model-resolver.js +494 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/output-guard.d.ts +6 -0
- package/dist/core/output-guard.d.ts.map +1 -0
- package/dist/core/output-guard.js +59 -0
- package/dist/core/output-guard.js.map +1 -0
- package/dist/core/package-manager.d.ts +198 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +1961 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +52 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +250 -0
- package/dist/core/prompt-templates.js.map +1 -0
- package/dist/core/provider-display-names.d.ts +2 -0
- package/dist/core/provider-display-names.d.ts.map +1 -0
- package/dist/core/provider-display-names.js +32 -0
- package/dist/core/provider-display-names.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +23 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -0
- package/dist/core/resolve-config-value.js +126 -0
- package/dist/core/resolve-config-value.js.map +1 -0
- package/dist/core/resource-loader.d.ts +194 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +731 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/sdk.d.ts +107 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/sdk.js +282 -0
- package/dist/core/sdk.js.map +1 -0
- package/dist/core/session-cwd.d.ts +19 -0
- package/dist/core/session-cwd.d.ts.map +1 -0
- package/dist/core/session-cwd.js +38 -0
- package/dist/core/session-cwd.js.map +1 -0
- package/dist/core/session-manager.d.ts +333 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +1109 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/settings-manager.d.ts +295 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +842 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +60 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +404 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/slash-commands.d.ts +14 -0
- package/dist/core/slash-commands.d.ts.map +1 -0
- package/dist/core/slash-commands.js +32 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/source-info.d.ts +18 -0
- package/dist/core/source-info.d.ts.map +1 -0
- package/dist/core/source-info.js +19 -0
- package/dist/core/source-info.js.map +1 -0
- package/dist/core/system-prompt.d.ts +28 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +120 -0
- package/dist/core/system-prompt.js.map +1 -0
- package/dist/core/telemetry.d.ts +3 -0
- package/dist/core/telemetry.d.ts.map +1 -0
- package/dist/core/telemetry.js +9 -0
- package/dist/core/telemetry.js.map +1 -0
- package/dist/core/timings.d.ts +8 -0
- package/dist/core/timings.d.ts.map +1 -0
- package/dist/core/timings.js +31 -0
- package/dist/core/timings.js.map +1 -0
- package/dist/core/tools/bash.d.ts +68 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +335 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +85 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +338 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +49 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +324 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/file-mutation-queue.d.ts +6 -0
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
- package/dist/core/tools/file-mutation-queue.js +37 -0
- package/dist/core/tools/file-mutation-queue.js.map +1 -0
- package/dist/core/tools/find.d.ts +35 -0
- package/dist/core/tools/find.d.ts.map +1 -0
- package/dist/core/tools/find.js +298 -0
- package/dist/core/tools/find.js.map +1 -0
- package/dist/core/tools/grep.d.ts +37 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +304 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +40 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +112 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/ls.d.ts +37 -0
- package/dist/core/tools/ls.d.ts.map +1 -0
- package/dist/core/tools/ls.js +169 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/output-accumulator.d.ts +50 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/core/tools/output-accumulator.js +178 -0
- package/dist/core/tools/output-accumulator.js.map +1 -0
- package/dist/core/tools/path-utils.d.ts +8 -0
- package/dist/core/tools/path-utils.d.ts.map +1 -0
- package/dist/core/tools/path-utils.js +81 -0
- package/dist/core/tools/path-utils.js.map +1 -0
- package/dist/core/tools/read.d.ts +35 -0
- package/dist/core/tools/read.d.ts.map +1 -0
- package/dist/core/tools/read.js +288 -0
- package/dist/core/tools/read.js.map +1 -0
- package/dist/core/tools/render-utils.d.ts +21 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -0
- package/dist/core/tools/render-utils.js +49 -0
- package/dist/core/tools/render-utils.js.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.js +34 -0
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
- package/dist/core/tools/truncate.d.ts +70 -0
- package/dist/core/tools/truncate.d.ts.map +1 -0
- package/dist/core/tools/truncate.js +205 -0
- package/dist/core/tools/truncate.js.map +1 -0
- package/dist/core/tools/write.d.ts +26 -0
- package/dist/core/tools/write.d.ts.map +1 -0
- package/dist/core/tools/write.js +213 -0
- package/dist/core/tools/write.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +12 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +583 -0
- package/dist/main.js.map +1 -0
- package/dist/migrations.d.ts +31 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +279 -0
- package/dist/migrations.js.map +1 -0
- package/dist/modes/index.d.ts +9 -0
- package/dist/modes/index.d.ts.map +1 -0
- package/dist/modes/index.js +8 -0
- package/dist/modes/index.js.map +1 -0
- package/dist/modes/interactive/assets/clankolas.png +0 -0
- package/dist/modes/interactive/components/armin.d.ts +34 -0
- package/dist/modes/interactive/components/armin.d.ts.map +1 -0
- package/dist/modes/interactive/components/armin.js +333 -0
- package/dist/modes/interactive/components/armin.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +20 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/assistant-message.js +122 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +36 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/bash-execution.js +182 -0
- package/dist/modes/interactive/components/bash-execution.js.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.js +54 -0
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.js +44 -0
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/config-selector.d.ts +71 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/config-selector.js +481 -0
- package/dist/modes/interactive/components/config-selector.js.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.js +33 -0
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-editor.js +70 -0
- package/dist/modes/interactive/components/custom-editor.js.map +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +20 -0
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-message.js +79 -0
- package/dist/modes/interactive/components/custom-message.js.map +1 -0
- package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
- package/dist/modes/interactive/components/daxnuts.js +140 -0
- package/dist/modes/interactive/components/daxnuts.js.map +1 -0
- package/dist/modes/interactive/components/diff.d.ts +12 -0
- package/dist/modes/interactive/components/diff.d.ts.map +1 -0
- package/dist/modes/interactive/components/diff.js +133 -0
- package/dist/modes/interactive/components/diff.js.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +26 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.js +58 -0
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
- package/dist/modes/interactive/components/earendil-announcement.js +40 -0
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +20 -0
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-editor.js +111 -0
- package/dist/modes/interactive/components/extension-editor.js.map +1 -0
- package/dist/modes/interactive/components/extension-input.d.ts +23 -0
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-input.js +61 -0
- package/dist/modes/interactive/components/extension-input.js.map +1 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +24 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-selector.js +78 -0
- package/dist/modes/interactive/components/extension-selector.js.map +1 -0
- package/dist/modes/interactive/components/flexible-viewport-spacer.d.ts +10 -0
- package/dist/modes/interactive/components/flexible-viewport-spacer.d.ts.map +1 -0
- package/dist/modes/interactive/components/flexible-viewport-spacer.js +20 -0
- package/dist/modes/interactive/components/flexible-viewport-spacer.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts +27 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/modes/interactive/components/footer.js +272 -0
- package/dist/modes/interactive/components/footer.js.map +1 -0
- package/dist/modes/interactive/components/index.d.ts +32 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -0
- package/dist/modes/interactive/components/index.js +33 -0
- package/dist/modes/interactive/components/index.js.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +8 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.js +22 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +46 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/modes/interactive/components/login-dialog.js +160 -0
- package/dist/modes/interactive/components/login-dialog.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +47 -0
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/model-selector.js +271 -0
- package/dist/modes/interactive/components/model-selector.js.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +31 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.js +165 -0
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +290 -0
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.js +155 -0
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts +96 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector.js +861 -0
- package/dist/modes/interactive/components/session-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +73 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-selector.js +531 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.js +39 -0
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
- package/dist/modes/interactive/components/split-info-card.d.ts +18 -0
- package/dist/modes/interactive/components/split-info-card.d.ts.map +1 -0
- package/dist/modes/interactive/components/split-info-card.js +82 -0
- package/dist/modes/interactive/components/split-info-card.js.map +1 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/theme-selector.js +50 -0
- package/dist/modes/interactive/components/theme-selector.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.js +51 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +66 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +313 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +89 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-selector.js +1092 -0
- package/dist/modes/interactive/components/tree-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.js +114 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +10 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message.js +29 -0
- package/dist/modes/interactive/components/user-message.js.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.js +33 -0
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +369 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +4899 -0
- package/dist/modes/interactive/interactive-mode.js.map +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.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme.js +971 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -0
- package/dist/modes/print-mode.d.ts +28 -0
- package/dist/modes/print-mode.d.ts.map +1 -0
- package/dist/modes/print-mode.js +131 -0
- package/dist/modes/print-mode.js.map +1 -0
- package/dist/modes/rpc/jsonl.d.ts +17 -0
- package/dist/modes/rpc/jsonl.d.ts.map +1 -0
- package/dist/modes/rpc/jsonl.js +49 -0
- package/dist/modes/rpc/jsonl.js.map +1 -0
- package/dist/modes/rpc/rpc-client.d.ts +224 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client.js +410 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts +20 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-mode.js +601 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +419 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-types.js +8 -0
- package/dist/modes/rpc/rpc-types.js.map +1 -0
- package/dist/package-manager-cli.d.ts +4 -0
- package/dist/package-manager-cli.d.ts.map +1 -0
- package/dist/package-manager-cli.js +460 -0
- package/dist/package-manager-cli.js.map +1 -0
- package/dist/utils/changelog.d.ts +21 -0
- package/dist/utils/changelog.d.ts.map +1 -0
- package/dist/utils/changelog.js +87 -0
- package/dist/utils/changelog.js.map +1 -0
- package/dist/utils/child-process.d.ts +12 -0
- package/dist/utils/child-process.d.ts.map +1 -0
- package/dist/utils/child-process.js +86 -0
- package/dist/utils/child-process.js.map +1 -0
- package/dist/utils/clipboard-image.d.ts +11 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -0
- package/dist/utils/clipboard-image.js +245 -0
- package/dist/utils/clipboard-image.js.map +1 -0
- package/dist/utils/clipboard-native.d.ts +8 -0
- package/dist/utils/clipboard-native.d.ts.map +1 -0
- package/dist/utils/clipboard-native.js +14 -0
- package/dist/utils/clipboard-native.js.map +1 -0
- package/dist/utils/clipboard-text.d.ts +4 -0
- package/dist/utils/clipboard-text.d.ts.map +1 -0
- package/dist/utils/clipboard-text.js +37 -0
- package/dist/utils/clipboard-text.js.map +1 -0
- package/dist/utils/clipboard.d.ts +2 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +117 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/exif-orientation.d.ts +5 -0
- package/dist/utils/exif-orientation.d.ts.map +1 -0
- package/dist/utils/exif-orientation.js +158 -0
- package/dist/utils/exif-orientation.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +8 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +26 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/fs-watch.d.ts +5 -0
- package/dist/utils/fs-watch.d.ts.map +1 -0
- package/dist/utils/fs-watch.js +25 -0
- package/dist/utils/fs-watch.js.map +1 -0
- package/dist/utils/git.d.ts +26 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +163 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/image-convert.d.ts +9 -0
- package/dist/utils/image-convert.d.ts.map +1 -0
- package/dist/utils/image-convert.js +39 -0
- package/dist/utils/image-convert.js.map +1 -0
- package/dist/utils/image-resize.d.ts +36 -0
- package/dist/utils/image-resize.d.ts.map +1 -0
- package/dist/utils/image-resize.js +137 -0
- package/dist/utils/image-resize.js.map +1 -0
- package/dist/utils/mime.d.ts +2 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +26 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/paths.d.ts +14 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +34 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/photon.d.ts +21 -0
- package/dist/utils/photon.d.ts.map +1 -0
- package/dist/utils/photon.js +121 -0
- package/dist/utils/photon.js.map +1 -0
- package/dist/utils/shell.d.ts +30 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +190 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/sleep.d.ts +5 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +17 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/utils/threadwell-user-agent.d.ts +2 -0
- package/dist/utils/threadwell-user-agent.d.ts.map +1 -0
- package/dist/utils/threadwell-user-agent.js +5 -0
- package/dist/utils/threadwell-user-agent.js.map +1 -0
- package/dist/utils/tools-manager.d.ts +3 -0
- package/dist/utils/tools-manager.d.ts.map +1 -0
- package/dist/utils/tools-manager.js +256 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/dist/utils/version-check.d.ts +14 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +77 -0
- package/dist/utils/version-check.js.map +1 -0
- package/docs/compaction.md +394 -0
- package/docs/custom-provider.md +646 -0
- package/docs/development.md +71 -0
- package/docs/docs.json +148 -0
- package/docs/extensions.md +2596 -0
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/exy.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/index.md +64 -0
- package/docs/json.md +82 -0
- package/docs/keybindings.md +197 -0
- package/docs/memory.md +484 -0
- package/docs/models.md +474 -0
- package/docs/packages.md +223 -0
- package/docs/prompt-templates.md +88 -0
- package/docs/providers.md +241 -0
- package/docs/quickstart.md +142 -0
- package/docs/rpc.md +1407 -0
- package/docs/sdk.md +1149 -0
- package/docs/session-format.md +412 -0
- package/docs/sessions.md +137 -0
- package/docs/settings.md +378 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +232 -0
- package/docs/terminal-setup.md +106 -0
- package/docs/termux.md +127 -0
- package/docs/themes.md +295 -0
- package/docs/tmux.md +61 -0
- package/docs/tui.md +918 -0
- package/docs/usage.md +277 -0
- package/docs/windows.md +17 -0
- package/examples/README.md +25 -0
- package/examples/extensions/README.md +208 -0
- package/examples/extensions/auto-commit-on-exit.ts +49 -0
- package/examples/extensions/bash-spawn-hook.ts +30 -0
- package/examples/extensions/bookmark.ts +50 -0
- package/examples/extensions/border-status-editor.ts +147 -0
- package/examples/extensions/built-in-tool-renderer.ts +249 -0
- package/examples/extensions/claude-rules.ts +86 -0
- package/examples/extensions/commands.ts +72 -0
- package/examples/extensions/confirm-destructive.ts +59 -0
- package/examples/extensions/custom-compaction.ts +127 -0
- package/examples/extensions/custom-footer.ts +64 -0
- package/examples/extensions/custom-header.ts +73 -0
- package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
- package/examples/extensions/custom-provider-anthropic/package.json +19 -0
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +349 -0
- package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
- package/examples/extensions/dirty-repo-guard.ts +56 -0
- package/examples/extensions/doom-overlay/README.md +46 -0
- package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
- package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
- package/examples/extensions/doom-overlay/doom/build.sh +152 -0
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
- package/examples/extensions/doom-overlay/doom-component.ts +132 -0
- package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
- package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
- package/examples/extensions/doom-overlay/index.ts +74 -0
- package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
- package/examples/extensions/dynamic-resources/SKILL.md +8 -0
- package/examples/extensions/dynamic-resources/dynamic.json +79 -0
- package/examples/extensions/dynamic-resources/dynamic.md +5 -0
- package/examples/extensions/dynamic-resources/index.ts +15 -0
- package/examples/extensions/dynamic-tools.ts +74 -0
- package/examples/extensions/event-bus.ts +43 -0
- package/examples/extensions/file-trigger.ts +41 -0
- package/examples/extensions/git-checkpoint.ts +53 -0
- package/examples/extensions/github-issue-autocomplete.ts +185 -0
- package/examples/extensions/handoff.ts +191 -0
- package/examples/extensions/hello.ts +26 -0
- package/examples/extensions/hidden-thinking-label.ts +53 -0
- package/examples/extensions/inline-bash.ts +94 -0
- package/examples/extensions/input-transform.ts +43 -0
- package/examples/extensions/interactive-shell.ts +196 -0
- package/examples/extensions/mac-system-theme.ts +47 -0
- package/examples/extensions/message-renderer.ts +59 -0
- package/examples/extensions/minimal-mode.ts +426 -0
- package/examples/extensions/modal-editor.ts +85 -0
- package/examples/extensions/model-status.ts +31 -0
- package/examples/extensions/notify.ts +55 -0
- package/examples/extensions/overlay-qa-tests.ts +1348 -0
- package/examples/extensions/overlay-test.ts +150 -0
- package/examples/extensions/permission-gate.ts +34 -0
- package/examples/extensions/pirate.ts +47 -0
- package/examples/extensions/plan-mode/README.md +65 -0
- package/examples/extensions/plan-mode/index.ts +340 -0
- package/examples/extensions/plan-mode/utils.ts +168 -0
- package/examples/extensions/preset.ts +436 -0
- package/examples/extensions/prompt-customizer.ts +97 -0
- package/examples/extensions/protected-paths.ts +30 -0
- package/examples/extensions/provider-payload.ts +18 -0
- package/examples/extensions/qna.ts +122 -0
- package/examples/extensions/question.ts +264 -0
- package/examples/extensions/questionnaire.ts +427 -0
- package/examples/extensions/rainbow-editor.ts +88 -0
- package/examples/extensions/reload-runtime.ts +37 -0
- package/examples/extensions/rpc-demo.ts +118 -0
- package/examples/extensions/sandbox/index.ts +321 -0
- package/examples/extensions/sandbox/package-lock.json +92 -0
- package/examples/extensions/sandbox/package.json +19 -0
- package/examples/extensions/send-user-message.ts +97 -0
- package/examples/extensions/session-name.ts +27 -0
- package/examples/extensions/shutdown-command.ts +63 -0
- package/examples/extensions/snake.ts +343 -0
- package/examples/extensions/space-invaders.ts +560 -0
- package/examples/extensions/ssh.ts +220 -0
- package/examples/extensions/status-line.ts +32 -0
- package/examples/extensions/structured-output.ts +65 -0
- package/examples/extensions/subagent/README.md +172 -0
- package/examples/extensions/subagent/agents/planner.md +37 -0
- package/examples/extensions/subagent/agents/reviewer.md +35 -0
- package/examples/extensions/subagent/agents/scout.md +50 -0
- package/examples/extensions/subagent/agents/worker.md +24 -0
- package/examples/extensions/subagent/agents.ts +126 -0
- package/examples/extensions/subagent/index.ts +987 -0
- package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
- package/examples/extensions/subagent/prompts/implement.md +10 -0
- package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
- package/examples/extensions/summarize.ts +206 -0
- package/examples/extensions/system-prompt-header.ts +17 -0
- package/examples/extensions/tic-tac-toe.ts +1008 -0
- package/examples/extensions/timed-confirm.ts +70 -0
- package/examples/extensions/titlebar-spinner.ts +58 -0
- package/examples/extensions/todo.ts +297 -0
- package/examples/extensions/tool-override.ts +144 -0
- package/examples/extensions/tools.ts +141 -0
- package/examples/extensions/trigger-compact.ts +50 -0
- package/examples/extensions/truncated-tool.ts +195 -0
- package/examples/extensions/widget-placement.ts +9 -0
- package/examples/extensions/with-deps/index.ts +32 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +22 -0
- package/examples/extensions/working-indicator.ts +123 -0
- package/examples/extensions/working-message-test.ts +25 -0
- package/examples/rpc-extension-ui.ts +632 -0
- package/examples/sdk/01-minimal.ts +22 -0
- package/examples/sdk/02-custom-model.ts +49 -0
- package/examples/sdk/03-custom-prompt.ts +62 -0
- package/examples/sdk/04-skills.ts +55 -0
- package/examples/sdk/05-tools.ts +44 -0
- package/examples/sdk/06-extensions.ts +90 -0
- package/examples/sdk/07-context-files.ts +42 -0
- package/examples/sdk/08-prompt-templates.ts +51 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +48 -0
- package/examples/sdk/10-settings.ts +53 -0
- package/examples/sdk/11-sessions.ts +48 -0
- package/examples/sdk/12-full-control.ts +73 -0
- package/examples/sdk/13-session-runtime.ts +67 -0
- package/examples/sdk/README.md +147 -0
- package/package.json +101 -33
- package/LICENSE +0 -21
package/docs/settings.md
ADDED
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
# Settings
|
|
2
|
+
|
|
3
|
+
Threadwell uses JSON settings files with project settings overriding global settings.
|
|
4
|
+
|
|
5
|
+
| Location | Scope |
|
|
6
|
+
|----------|-------|
|
|
7
|
+
| `~/.threadwell/agent/settings.json` | Global (all projects) |
|
|
8
|
+
| `.threadwell/settings.json` | Project (current directory, current compatibility path) |
|
|
9
|
+
|
|
10
|
+
Threadwell-owned runtime data lives under `.threadwell/`. The intended path policy is:
|
|
11
|
+
|
|
12
|
+
- `.threadwell/settings.json` becomes the primary project settings path.
|
|
13
|
+
- `.threadwell/settings.json` remains a compatibility fallback and must not be removed automatically.
|
|
14
|
+
- `.threadwell/continuity/` becomes the primary native continuity runtime path.
|
|
15
|
+
- `.threadwell/continuity/` remains a compatibility fallback for existing projects.
|
|
16
|
+
- `.threadwell/memory.sqlite`, `.threadwell/artifacts/`, and `.threadwell/features/` remain runtime memory/spec data.
|
|
17
|
+
|
|
18
|
+
Project settings are resolved relative to the directory where Threadwell is launched. Threadwell now reads `.threadwell/settings.json` first and falls back to `.threadwell/settings.json` when the Threadwell settings file is absent.
|
|
19
|
+
|
|
20
|
+
Edit directly or use `/settings` for common options.
|
|
21
|
+
|
|
22
|
+
## All Settings
|
|
23
|
+
|
|
24
|
+
### Model & Thinking
|
|
25
|
+
|
|
26
|
+
| Setting | Type | Default | Description |
|
|
27
|
+
|---------|------|---------|-------------|
|
|
28
|
+
| `defaultProvider` | string | - | Default provider (e.g., `"anthropic"`, `"openai"`) |
|
|
29
|
+
| `defaultModel` | string | - | Default model ID |
|
|
30
|
+
| `defaultThinkingLevel` | string | - | `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"` |
|
|
31
|
+
| `hideThinkingBlock` | boolean | `false` | Hide thinking blocks in output |
|
|
32
|
+
| `thinkingBudgets` | object | - | Custom token budgets per thinking level |
|
|
33
|
+
|
|
34
|
+
#### thinkingBudgets
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"thinkingBudgets": {
|
|
39
|
+
"minimal": 1024,
|
|
40
|
+
"low": 4096,
|
|
41
|
+
"medium": 10240,
|
|
42
|
+
"high": 32768
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### UI & Display
|
|
48
|
+
|
|
49
|
+
| Setting | Type | Default | Description |
|
|
50
|
+
|---------|------|---------|-------------|
|
|
51
|
+
| `theme` | string | `"dark"` | Theme name (`"dark"`, `"light"`, or custom) |
|
|
52
|
+
| `quietStartup` | boolean | `false` | Hide startup header |
|
|
53
|
+
| `collapseChangelog` | boolean | `false` | Show condensed changelog after updates |
|
|
54
|
+
| `enableInstallTelemetry` | boolean | `true` | Send an anonymous install/update version ping after first install or changelog-detected updates. This does not control update checks |
|
|
55
|
+
| `doubleEscapeAction` | string | `"tree"` | Action for double-escape: `"tree"`, `"fork"`, or `"none"` |
|
|
56
|
+
| `treeFilterMode` | string | `"default"` | Default filter for `/tree`: `"default"`, `"no-tools"`, `"user-only"`, `"labeled-only"`, `"all"` |
|
|
57
|
+
| `editorPaddingX` | number | `0` | Horizontal padding for input editor (0-3) |
|
|
58
|
+
| `autocompleteMaxVisible` | number | `5` | Max visible items in autocomplete dropdown (3-20) |
|
|
59
|
+
| `showHardwareCursor` | boolean | `false` | Show terminal cursor |
|
|
60
|
+
|
|
61
|
+
### Telemetry and update checks
|
|
62
|
+
|
|
63
|
+
`enableInstallTelemetry` only controls the anonymous install/update ping to `https://threadwell.local/api/report-install`. Opting out of telemetry does not disable update checks; Threadwell can still fetch `https://threadwell.local/api/latest-version` to look for the latest version.
|
|
64
|
+
|
|
65
|
+
Set `THREADWELL_SKIP_VERSION_CHECK=1` to disable the Threadwell version update check. Use `--offline` or `THREADWELL_OFFLINE=1` to disable all startup network operations described here, including update checks, package update checks, and install/update telemetry.
|
|
66
|
+
|
|
67
|
+
### Warnings
|
|
68
|
+
|
|
69
|
+
| Setting | Type | Default | Description |
|
|
70
|
+
|---------|------|---------|-------------|
|
|
71
|
+
| `warnings.anthropicExtraUsage` | boolean | `true` | Show a warning when Anthropic subscription auth may use paid extra usage |
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"warnings": {
|
|
76
|
+
"anthropicExtraUsage": false
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Compaction
|
|
82
|
+
|
|
83
|
+
| Setting | Type | Default | Description |
|
|
84
|
+
|---------|------|---------|-------------|
|
|
85
|
+
| `compaction.enabled` | boolean | `true` | Enable auto-compaction |
|
|
86
|
+
| `compaction.reserveTokens` | number | `16384` | Tokens reserved for LLM response |
|
|
87
|
+
| `compaction.keepRecentTokens` | number | `20000` | Recent tokens to keep (not summarized) |
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"compaction": {
|
|
92
|
+
"enabled": true,
|
|
93
|
+
"reserveTokens": 16384,
|
|
94
|
+
"keepRecentTokens": 20000
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Continuity
|
|
100
|
+
|
|
101
|
+
| Setting | Type | Default | Description |
|
|
102
|
+
|---------|------|---------|-------------|
|
|
103
|
+
| `continuity` | boolean | `true` | Enable native project-local continuity re-entry and project awareness |
|
|
104
|
+
|
|
105
|
+
By default, Threadwell stores operational continuity state under `.threadwell/continuity/` for the current project when continuity commands or intents are used, detects continuity intent in normal user messages, and injects bounded project continuity through the native model-call context provider before model calls. This is separate from session history and is intended for resumable long-running work.
|
|
106
|
+
|
|
107
|
+
Threadwell reads `.threadwell/continuity/` as a compatibility fallback when `.threadwell/continuity/` does not exist.
|
|
108
|
+
|
|
109
|
+
Native continuity recognizes messages such as "agrega al plan...", "planifica continuidad", "continúa con el plan", and "finaliza continuidad" without requiring external skills. It writes:
|
|
110
|
+
|
|
111
|
+
- `.threadwell/continuity/state.json` - structured continuity state
|
|
112
|
+
- `.threadwell/continuity/context.md` - bounded re-entry context
|
|
113
|
+
- `.threadwell/continuity/plan.md` - plan updates captured from user intent
|
|
114
|
+
- `.threadwell/continuity/queue.md` - native continuity queue
|
|
115
|
+
- `.threadwell/continuity/decision-log.md` - decision log
|
|
116
|
+
- `.threadwell/continuity/next-action.md` - next action
|
|
117
|
+
|
|
118
|
+
The structured state tracks the current task, blockers, open questions, modified files, validation timestamp, handoff summary, queue, recent decisions, and bounded checkpoints when available.
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"continuity": false
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Threadwell Memory
|
|
127
|
+
|
|
128
|
+
Threadwell Memory is the planned native memory layer that combines searchable event history, bounded memory injection, `CONTEXT.md` semantic project language, and ADR suggestions. It is separate from native continuity: continuity tracks what is active now, while memory tracks searchable history and durable context.
|
|
129
|
+
|
|
130
|
+
Planned settings shape:
|
|
131
|
+
|
|
132
|
+
| Setting | Type | Default | Description |
|
|
133
|
+
|---------|------|---------|-------------|
|
|
134
|
+
| `memory.enabled` | boolean | `false` during rollout | Enable local Threadwell memory storage and retrieval |
|
|
135
|
+
| `memory.inject` | boolean | `false` during rollout | Inject bounded relevant memory before model calls |
|
|
136
|
+
| `memory.semanticContext` | boolean | `true` | Use accepted `CONTEXT.md` project terms when relevant |
|
|
137
|
+
| `memory.adrSuggestions` | boolean | `true` | Suggest ADR candidates for durable decisions |
|
|
138
|
+
| `memory.candidateReview` | boolean | `true` | Require review for low-confidence context/ADR candidates |
|
|
139
|
+
| `memory.hud` | boolean | `false` | Show optional memory HUD in the TUI |
|
|
140
|
+
| `memory.retentionDays` | number | `90` | Retain normal memory events for this many days |
|
|
141
|
+
| `memory.maxDbMb` | number | `256` | Preferred maximum memory database size before compaction |
|
|
142
|
+
| `memory.indexToolOutputs` | string | `"summaries"` | Store `"none"`, `"summaries"`, or `"full"` tool output content |
|
|
143
|
+
| `memory.artifactLargeOutputs` | boolean | `true` | Store large outputs as artifacts/content refs instead of prompt text |
|
|
144
|
+
| `memory.aggressiveRouting` | boolean | `false` | Opt-in hard routing/blocking for context-heavy commands |
|
|
145
|
+
|
|
146
|
+
Recommended default configuration:
|
|
147
|
+
|
|
148
|
+
```json
|
|
149
|
+
{
|
|
150
|
+
"memory": {
|
|
151
|
+
"enabled": true,
|
|
152
|
+
"inject": true,
|
|
153
|
+
"semanticContext": true,
|
|
154
|
+
"adrSuggestions": true,
|
|
155
|
+
"candidateReview": true,
|
|
156
|
+
"hud": false,
|
|
157
|
+
"retentionDays": 90,
|
|
158
|
+
"maxDbMb": 256,
|
|
159
|
+
"indexToolOutputs": "summaries",
|
|
160
|
+
"artifactLargeOutputs": true,
|
|
161
|
+
"aggressiveRouting": false
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Use this to disable memory while leaving native continuity enabled:
|
|
167
|
+
|
|
168
|
+
```json
|
|
169
|
+
{
|
|
170
|
+
"memory": {
|
|
171
|
+
"enabled": false
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Use this to keep event capture but disable prompt injection:
|
|
177
|
+
|
|
178
|
+
```json
|
|
179
|
+
{
|
|
180
|
+
"memory": {
|
|
181
|
+
"enabled": true,
|
|
182
|
+
"inject": false
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Branch Summary
|
|
188
|
+
|
|
189
|
+
| Setting | Type | Default | Description |
|
|
190
|
+
|---------|------|---------|-------------|
|
|
191
|
+
| `branchSummary.reserveTokens` | number | `16384` | Tokens reserved for branch summarization |
|
|
192
|
+
| `branchSummary.skipPrompt` | boolean | `false` | Skip "Summarize branch?" prompt on `/tree` navigation (defaults to no summary) |
|
|
193
|
+
|
|
194
|
+
### Retry
|
|
195
|
+
|
|
196
|
+
| Setting | Type | Default | Description |
|
|
197
|
+
|---------|------|---------|-------------|
|
|
198
|
+
| `retry.enabled` | boolean | `true` | Enable automatic agent-level retry on transient errors |
|
|
199
|
+
| `retry.maxRetries` | number | `3` | Maximum agent-level retry attempts |
|
|
200
|
+
| `retry.baseDelayMs` | number | `2000` | Base delay for agent-level exponential backoff (2s, 4s, 8s) |
|
|
201
|
+
| `retry.provider.timeoutMs` | number | SDK default | Provider/SDK request timeout in milliseconds |
|
|
202
|
+
| `retry.provider.maxRetries` | number | SDK default | Provider/SDK retry attempts |
|
|
203
|
+
| `retry.provider.maxRetryDelayMs` | number | `60000` | Max server-requested delay before failing (60s) |
|
|
204
|
+
|
|
205
|
+
When a provider requests a retry delay longer than `retry.provider.maxRetryDelayMs` (e.g., Google's "quota will reset after 5h"), the request fails immediately with an informative error instead of waiting silently. Set to `0` to disable the cap.
|
|
206
|
+
|
|
207
|
+
```json
|
|
208
|
+
{
|
|
209
|
+
"retry": {
|
|
210
|
+
"enabled": true,
|
|
211
|
+
"maxRetries": 3,
|
|
212
|
+
"baseDelayMs": 2000,
|
|
213
|
+
"provider": {
|
|
214
|
+
"timeoutMs": 3600000,
|
|
215
|
+
"maxRetries": 0,
|
|
216
|
+
"maxRetryDelayMs": 60000
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Message Delivery
|
|
223
|
+
|
|
224
|
+
| Setting | Type | Default | Description |
|
|
225
|
+
|---------|------|---------|-------------|
|
|
226
|
+
| `steeringMode` | string | `"one-at-a-time"` | How steering messages are sent: `"all"` or `"one-at-a-time"` |
|
|
227
|
+
| `followUpMode` | string | `"one-at-a-time"` | How follow-up messages are sent: `"all"` or `"one-at-a-time"` |
|
|
228
|
+
| `transport` | string | `"sse"` | Preferred transport for providers that support multiple transports: `"sse"`, `"websocket"`, or `"auto"` |
|
|
229
|
+
|
|
230
|
+
### Terminal & Images
|
|
231
|
+
|
|
232
|
+
| Setting | Type | Default | Description |
|
|
233
|
+
|---------|------|---------|-------------|
|
|
234
|
+
| `terminal.showImages` | boolean | `true` | Show images in terminal (if supported) |
|
|
235
|
+
| `terminal.imageWidthCells` | number | `60` | Preferred inline image width in terminal cells |
|
|
236
|
+
| `terminal.clearOnShrink` | boolean | `false` | Clear empty rows when content shrinks (can cause flicker) |
|
|
237
|
+
| `images.autoResize` | boolean | `true` | Resize images to 2000x2000 max |
|
|
238
|
+
| `images.blockImages` | boolean | `false` | Block all images from being sent to LLM |
|
|
239
|
+
|
|
240
|
+
### Shell
|
|
241
|
+
|
|
242
|
+
| Setting | Type | Default | Description |
|
|
243
|
+
|---------|------|---------|-------------|
|
|
244
|
+
| `shellPath` | string | - | Custom shell path (e.g., for Cygwin on Windows) |
|
|
245
|
+
| `shellCommandPrefix` | string | - | Prefix for every bash command (e.g., `"shopt -s expand_aliases"`) |
|
|
246
|
+
| `npmCommand` | string[] | - | Command argv used for npm package lookup/install operations (e.g., `["mise", "exec", "node@20", "--", "npm"]`) |
|
|
247
|
+
|
|
248
|
+
```json
|
|
249
|
+
{
|
|
250
|
+
"npmCommand": ["mise", "exec", "node@20", "--", "npm"]
|
|
251
|
+
}
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
`npmCommand` is used for all npm package-manager operations, including installs, uninstalls, and dependency installs inside git packages. Use argv-style entries exactly as the process should be launched. When `npmCommand` is configured, git package dependency installs use plain `install` to avoid npm-specific flags in wrappers or alternate package managers.
|
|
255
|
+
|
|
256
|
+
Normally the package manager's global modules location is queried using `root -g`. As a special case, if the first element of `npmCommand` is `"bun"`, the modules location will instead be queried with `pm bin -g`.
|
|
257
|
+
|
|
258
|
+
### Sessions
|
|
259
|
+
|
|
260
|
+
| Setting | Type | Default | Description |
|
|
261
|
+
|---------|------|---------|-------------|
|
|
262
|
+
| `sessionDir` | string | - | Directory where session files are stored. Accepts absolute or relative paths, plus `~`. |
|
|
263
|
+
|
|
264
|
+
```json
|
|
265
|
+
{ "sessionDir": " .threadwell/sessions" }
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
When multiple sources specify a session directory, precedence is `--session-dir`, `THREADWELL_CODING_AGENT_SESSION_DIR`, then `sessionDir` in settings.json.
|
|
269
|
+
|
|
270
|
+
### Model Cycling
|
|
271
|
+
|
|
272
|
+
| Setting | Type | Default | Description |
|
|
273
|
+
|---------|------|---------|-------------|
|
|
274
|
+
| `enabledModels` | string[] | - | Model patterns for Ctrl+P cycling (same format as `--models` CLI flag) |
|
|
275
|
+
|
|
276
|
+
```json
|
|
277
|
+
{
|
|
278
|
+
"enabledModels": ["claude-*", "gpt-4o", "gemini-2*"]
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### Markdown
|
|
283
|
+
|
|
284
|
+
| Setting | Type | Default | Description |
|
|
285
|
+
|---------|------|---------|-------------|
|
|
286
|
+
| `markdown.codeBlockIndent` | string | `" "` | Indentation for code blocks |
|
|
287
|
+
|
|
288
|
+
### Resources
|
|
289
|
+
|
|
290
|
+
These settings define where to load extensions, skills, prompts, and themes from.
|
|
291
|
+
|
|
292
|
+
Paths in `~/.threadwell/agent/settings.json` resolve relative to `~/.threadwell/agent`. Paths in `.threadwell/settings.json` resolve relative to `.threadwell`; `.threadwell/settings.json` is still read as a compatibility fallback when `.threadwell/settings.json` is absent. Absolute paths and `~` are supported.
|
|
293
|
+
|
|
294
|
+
| Setting | Type | Default | Description |
|
|
295
|
+
|---------|------|---------|-------------|
|
|
296
|
+
| `packages` | array | `[]` | npm/git packages to load resources from |
|
|
297
|
+
| `extensions` | string[] | `[]` | Local extension file paths or directories |
|
|
298
|
+
| `skills` | string[] | `[]` | Local skill file paths or directories |
|
|
299
|
+
| `skillsEnabled` | boolean | `true` | Load and inject installed skills |
|
|
300
|
+
| `prompts` | string[] | `[]` | Local prompt template paths or directories |
|
|
301
|
+
| `themes` | string[] | `[]` | Local theme file paths or directories |
|
|
302
|
+
| `enableSkillCommands` | boolean | `true` | Register loaded skills as `/skill:name` commands |
|
|
303
|
+
|
|
304
|
+
Set `skillsEnabled` to `false` to disable skills for this Threadwell configuration without deleting or moving skill files. Arrays support glob patterns and exclusions. Use `!pattern` to exclude. Use `+path` to force-include an exact path and `-path` to force-exclude an exact path.
|
|
305
|
+
|
|
306
|
+
#### packages
|
|
307
|
+
|
|
308
|
+
String form loads all resources from a package:
|
|
309
|
+
|
|
310
|
+
```json
|
|
311
|
+
{
|
|
312
|
+
"packages": ["threadwell-skills", "@org/my-extension"]
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Object form filters which resources to load:
|
|
317
|
+
|
|
318
|
+
```json
|
|
319
|
+
{
|
|
320
|
+
"packages": [
|
|
321
|
+
{
|
|
322
|
+
"source": "threadwell-skills",
|
|
323
|
+
"skills": ["brave-search", "transcribe"],
|
|
324
|
+
"extensions": []
|
|
325
|
+
}
|
|
326
|
+
]
|
|
327
|
+
}
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
See [packages.md](packages.md) for package management details.
|
|
331
|
+
|
|
332
|
+
## Example
|
|
333
|
+
|
|
334
|
+
```json
|
|
335
|
+
{
|
|
336
|
+
"defaultProvider": "anthropic",
|
|
337
|
+
"defaultModel": "claude-sonnet-4-20250514",
|
|
338
|
+
"defaultThinkingLevel": "medium",
|
|
339
|
+
"theme": "dark",
|
|
340
|
+
"compaction": {
|
|
341
|
+
"enabled": true,
|
|
342
|
+
"reserveTokens": 16384,
|
|
343
|
+
"keepRecentTokens": 20000
|
|
344
|
+
},
|
|
345
|
+
"retry": {
|
|
346
|
+
"enabled": true,
|
|
347
|
+
"maxRetries": 3
|
|
348
|
+
},
|
|
349
|
+
"enabledModels": ["claude-*", "gpt-4o"],
|
|
350
|
+
"warnings": {
|
|
351
|
+
"anthropicExtraUsage": true
|
|
352
|
+
},
|
|
353
|
+
"packages": ["threadwell-skills"]
|
|
354
|
+
}
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
## Project Overrides
|
|
358
|
+
|
|
359
|
+
Project settings (`.threadwell/settings.json`, or `.threadwell/settings.json` fallback) override global settings. Nested objects are merged:
|
|
360
|
+
|
|
361
|
+
```json
|
|
362
|
+
// ~/.threadwell/agent/settings.json (global)
|
|
363
|
+
{
|
|
364
|
+
"theme": "dark",
|
|
365
|
+
"compaction": { "enabled": true, "reserveTokens": 16384 }
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
// .threadwell/settings.json (project)
|
|
369
|
+
{
|
|
370
|
+
"compaction": { "reserveTokens": 8192 }
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
// Result
|
|
374
|
+
{
|
|
375
|
+
"theme": "dark",
|
|
376
|
+
"compaction": { "enabled": true, "reserveTokens": 8192 }
|
|
377
|
+
}
|
|
378
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Shell Aliases
|
|
2
|
+
|
|
3
|
+
Threadwell runs bash in non-interactive mode (`bash -c`), which doesn't expand aliases by default.
|
|
4
|
+
|
|
5
|
+
To enable your shell aliases, add to `~/.threadwell/agent/settings.json`:
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"shellCommandPrefix": "shopt -s expand_aliases\neval \"$(grep '^alias ' ~/.zshrc)\""
|
|
10
|
+
}
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Adjust the path (`~/.zshrc`, `~/.bashrc`, etc.) to match your shell config.
|
package/docs/skills.md
ADDED
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
> Threadwell can create skills. Ask it to build one for your use case.
|
|
2
|
+
|
|
3
|
+
# Skills
|
|
4
|
+
|
|
5
|
+
Skills are self-contained capability packages that the agent loads on-demand. A skill provides specialized workflows, setup instructions, helper scripts, and reference documentation for specific tasks.
|
|
6
|
+
|
|
7
|
+
Threadwell implements the [Agent Skills standard](https://agentskills.io/specification), warning about violations but remaining lenient.
|
|
8
|
+
|
|
9
|
+
## Table of Contents
|
|
10
|
+
|
|
11
|
+
- [Locations](#locations)
|
|
12
|
+
- [How Skills Work](#how-skills-work)
|
|
13
|
+
- [Skill Commands](#skill-commands)
|
|
14
|
+
- [Skill Structure](#skill-structure)
|
|
15
|
+
- [Frontmatter](#frontmatter)
|
|
16
|
+
- [Validation](#validation)
|
|
17
|
+
- [Example](#example)
|
|
18
|
+
- [Skill Repositories](#skill-repositories)
|
|
19
|
+
|
|
20
|
+
## Locations
|
|
21
|
+
|
|
22
|
+
> **Security:** Skills can instruct the model to perform any action and may include executable code the model invokes. Review skill content before use.
|
|
23
|
+
|
|
24
|
+
Threadwell loads skills from:
|
|
25
|
+
|
|
26
|
+
- Global:
|
|
27
|
+
- `~/.threadwell/agent/skills/`
|
|
28
|
+
- `~/.agents/skills/`
|
|
29
|
+
- Project:
|
|
30
|
+
- `.threadwell/skills/`
|
|
31
|
+
- `.agents/skills/` in `cwd` and ancestor directories (up to git repo root, or filesystem root when not in a repo)
|
|
32
|
+
- Packages: `skills/` directories or `threadwell.skills` entries in `package.json`
|
|
33
|
+
- Settings: `skills` array with files or directories
|
|
34
|
+
- CLI: `--skill <path>` (repeatable, additive even with `--no-skills`)
|
|
35
|
+
|
|
36
|
+
Discovery rules:
|
|
37
|
+
- In `~/.threadwell/agent/skills/` and `.threadwell/skills/`, direct root `.md` files are discovered as individual skills
|
|
38
|
+
- In all skill locations, directories containing `SKILL.md` are discovered recursively
|
|
39
|
+
- In `~/.agents/skills/` and project `.agents/skills/`, root `.md` files are ignored
|
|
40
|
+
|
|
41
|
+
Disable discovery with `--no-skills` (explicit `--skill` paths still load).
|
|
42
|
+
|
|
43
|
+
### Using Skills from Other Harnesses
|
|
44
|
+
|
|
45
|
+
To use skills from Claude Code or OpenAI Codex, add their directories to settings:
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"skills": [
|
|
50
|
+
"~/.claude/skills",
|
|
51
|
+
"~/.codex/skills"
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
For project-level Claude Code skills, add to `.threadwell/settings.json`:
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"skills": ["../.claude/skills"]
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## How Skills Work
|
|
65
|
+
|
|
66
|
+
1. At startup, Threadwell scans skill locations and extracts names and descriptions
|
|
67
|
+
2. The system prompt includes available skills in XML format per the [specification](https://agentskills.io/integrate-skills)
|
|
68
|
+
3. When a task matches, the agent uses `read` to load the full SKILL.md (models don't always do this; use prompting or `/skill:name` to force it)
|
|
69
|
+
4. The agent follows the instructions, using relative paths to reference scripts and assets
|
|
70
|
+
|
|
71
|
+
This is progressive disclosure: only descriptions are always in context, full instructions load on-demand.
|
|
72
|
+
|
|
73
|
+
## Skill Commands
|
|
74
|
+
|
|
75
|
+
Skills register as `/skill:name` commands:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
/skill:brave-search # Load and execute the skill
|
|
79
|
+
/skill:pdf-tools extract # Load skill with arguments
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Arguments after the command are appended to the skill content as `User: <args>`.
|
|
83
|
+
|
|
84
|
+
Toggle skill commands via `/settings` in interactive mode or in `settings.json`:
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"enableSkillCommands": true
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Skill Structure
|
|
93
|
+
|
|
94
|
+
A skill is a directory with a `SKILL.md` file. Everything else is freeform.
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
my-skill/
|
|
98
|
+
├── SKILL.md # Required: frontmatter + instructions
|
|
99
|
+
├── scripts/ # Helper scripts
|
|
100
|
+
│ └── process.sh
|
|
101
|
+
├── references/ # Detailed docs loaded on-demand
|
|
102
|
+
│ └── api-reference.md
|
|
103
|
+
└── assets/
|
|
104
|
+
└── template.json
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### SKILL.md Format
|
|
108
|
+
|
|
109
|
+
````markdown
|
|
110
|
+
---
|
|
111
|
+
name: my-skill
|
|
112
|
+
description: What this skill does and when to use it. Be specific.
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
# My Skill
|
|
116
|
+
|
|
117
|
+
## Setup
|
|
118
|
+
|
|
119
|
+
Run once before first use:
|
|
120
|
+
```bash
|
|
121
|
+
cd /path/to/skill && npm install
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Usage
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
./scripts/process.sh <input>
|
|
128
|
+
```
|
|
129
|
+
````
|
|
130
|
+
|
|
131
|
+
Use relative paths from the skill directory:
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
See [the reference guide](references/REFERENCE.md) for details.
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Frontmatter
|
|
138
|
+
|
|
139
|
+
Per the [Agent Skills specification](https://agentskills.io/specification#frontmatter-required):
|
|
140
|
+
|
|
141
|
+
| Field | Required | Description |
|
|
142
|
+
|-------|----------|-------------|
|
|
143
|
+
| `name` | Yes | Max 64 chars. Lowercase a-z, 0-9, hyphens. Must match parent directory. |
|
|
144
|
+
| `description` | Yes | Max 1024 chars. What the skill does and when to use it. |
|
|
145
|
+
| `license` | No | License name or reference to bundled file. |
|
|
146
|
+
| `compatibility` | No | Max 500 chars. Environment requirements. |
|
|
147
|
+
| `metadata` | No | Arbitrary key-value mapping. |
|
|
148
|
+
| `allowed-tools` | No | Space-delimited list of pre-approved tools (experimental). |
|
|
149
|
+
| `disable-model-invocation` | No | When `true`, skill is hidden from system prompt. Users must use `/skill:name`. |
|
|
150
|
+
|
|
151
|
+
### Name Rules
|
|
152
|
+
|
|
153
|
+
- 1-64 characters
|
|
154
|
+
- Lowercase letters, numbers, hyphens only
|
|
155
|
+
- No leading/trailing hyphens
|
|
156
|
+
- No consecutive hyphens
|
|
157
|
+
- Must match parent directory name
|
|
158
|
+
|
|
159
|
+
Valid: `pdf-processing`, `data-analysis`, `code-review`
|
|
160
|
+
Invalid: `PDF-Processing`, `-pdf`, `pdf--processing`
|
|
161
|
+
|
|
162
|
+
### Description Best Practices
|
|
163
|
+
|
|
164
|
+
The description determines when the agent loads the skill. Be specific.
|
|
165
|
+
|
|
166
|
+
Good:
|
|
167
|
+
```yaml
|
|
168
|
+
description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents.
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Poor:
|
|
172
|
+
```yaml
|
|
173
|
+
description: Helps with PDFs.
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Validation
|
|
177
|
+
|
|
178
|
+
Threadwell validates skills against the Agent Skills standard. Most issues produce warnings but still load the skill:
|
|
179
|
+
|
|
180
|
+
- Name doesn't match parent directory
|
|
181
|
+
- Name exceeds 64 characters or contains invalid characters
|
|
182
|
+
- Name starts/ends with hyphen or has consecutive hyphens
|
|
183
|
+
- Description exceeds 1024 characters
|
|
184
|
+
|
|
185
|
+
Unknown frontmatter fields are ignored.
|
|
186
|
+
|
|
187
|
+
**Exception:** Skills with missing description are not loaded.
|
|
188
|
+
|
|
189
|
+
Name collisions (same name from different locations) warn and keep the first skill found.
|
|
190
|
+
|
|
191
|
+
## Example
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
brave-search/
|
|
195
|
+
├── SKILL.md
|
|
196
|
+
├── search.js
|
|
197
|
+
└── content.js
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**SKILL.md:**
|
|
201
|
+
````markdown
|
|
202
|
+
---
|
|
203
|
+
name: brave-search
|
|
204
|
+
description: Web search and content extraction via Brave Search API. Use for searching documentation, facts, or any web content.
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
# Brave Search
|
|
208
|
+
|
|
209
|
+
## Setup
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
cd /path/to/brave-search && npm install
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Search
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
./search.js "query" # Basic search
|
|
219
|
+
./search.js "query" --content # Include page content
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Extract Page Content
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
./content.js https://example.com
|
|
226
|
+
```
|
|
227
|
+
````
|
|
228
|
+
|
|
229
|
+
## Skill Repositories
|
|
230
|
+
|
|
231
|
+
- [Anthropic Skills](https://github.com/anthropics/skills) - Document processing (docx, pdf, pptx, xlsx), web development
|
|
232
|
+
- [Threadwell Skills](https://github.com/badlogic/threadwell-skills) - Web search, browser automation, Google APIs, transcription
|