@imdigitalashish/zpi 0.1.1
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 +2801 -0
- package/README.md +95 -0
- package/dist/cli/args.d.ts +47 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +293 -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 +79 -0
- package/dist/cli/file-processor.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 +92 -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 +34 -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 +11 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +68 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +203 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-session.d.ts +571 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +2353 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/auth-storage.d.ts +129 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +394 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/bash-executor.d.ts +47 -0
- package/dist/core/bash-executor.d.ts.map +1 -0
- package/dist/core/bash-executor.js +212 -0
- package/dist/core/bash-executor.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +86 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/core/compaction/branch-summarization.js +242 -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 +607 -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 +35 -0
- package/dist/core/compaction/utils.d.ts.map +1 -0
- package/dist/core/compaction/utils.js +138 -0
- package/dist/core/compaction/utils.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 +71 -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 +34 -0
- package/dist/core/export-html/index.d.ts.map +1 -0
- package/dist/core/export-html/index.js +222 -0
- package/dist/core/export-html/index.js.map +1 -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 +1586 -0
- package/dist/core/export-html/tool-renderer.d.ts +35 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/core/export-html/tool-renderer.js +57 -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 +11 -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 +25 -0
- package/dist/core/extensions/loader.d.ts.map +1 -0
- package/dist/core/extensions/loader.js +402 -0
- package/dist/core/extensions/loader.js.map +1 -0
- package/dist/core/extensions/runner.d.ts +146 -0
- package/dist/core/extensions/runner.d.ts.map +1 -0
- package/dist/core/extensions/runner.js +626 -0
- package/dist/core/extensions/runner.js.map +1 -0
- package/dist/core/extensions/types.d.ts +984 -0
- package/dist/core/extensions/types.d.ts.map +1 -0
- package/dist/core/extensions/types.js +35 -0
- package/dist/core/extensions/types.js.map +1 -0
- package/dist/core/extensions/wrapper.d.ts +27 -0
- package/dist/core/extensions/wrapper.d.ts.map +1 -0
- package/dist/core/extensions/wrapper.js +102 -0
- package/dist/core/extensions/wrapper.js.map +1 -0
- package/dist/core/footer-data-provider.d.ts +32 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -0
- package/dist/core/footer-data-provider.js +134 -0
- package/dist/core/footer-data-provider.js.map +1 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +9 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/keybindings.d.ts +55 -0
- package/dist/core/keybindings.d.ts.map +1 -0
- package/dist/core/keybindings.js +153 -0
- package/dist/core/keybindings.js.map +1 -0
- package/dist/core/memory.d.ts +64 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +247 -0
- package/dist/core/memory.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 +149 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/model-registry.d.ts +102 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +515 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +104 -0
- package/dist/core/model-resolver.d.ts.map +1 -0
- package/dist/core/model-resolver.js +403 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/package-manager.d.ts +151 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +1426 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +50 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +251 -0
- package/dist/core/prompt-templates.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +17 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -0
- package/dist/core/resolve-config-value.js +59 -0
- package/dist/core/resolve-config-value.js.map +1 -0
- package/dist/core/resource-loader.d.ts +184 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +673 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/sdk.d.ts +90 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/sdk.js +238 -0
- package/dist/core/sdk.js.map +1 -0
- package/dist/core/session-manager.d.ts +323 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +1091 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/settings-manager.d.ts +230 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +656 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +58 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +364 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/slash-commands.d.ts +15 -0
- package/dist/core/slash-commands.d.ts.map +1 -0
- package/dist/core/slash-commands.js +23 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/system-prompt.d.ts +26 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +150 -0
- package/dist/core/system-prompt.js.map +1 -0
- package/dist/core/timings.d.ts +7 -0
- package/dist/core/timings.d.ts.map +1 -0
- package/dist/core/timings.js +25 -0
- package/dist/core/timings.js.map +1 -0
- package/dist/core/tools/bash.d.ts +55 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +242 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +63 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +243 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +39 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +146 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/find.d.ts +39 -0
- package/dist/core/tools/find.d.ts.map +1 -0
- package/dist/core/tools/find.js +206 -0
- package/dist/core/tools/find.js.map +1 -0
- package/dist/core/tools/grep.d.ts +45 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +239 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +102 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +71 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/ls.d.ts +40 -0
- package/dist/core/tools/ls.d.ts.map +1 -0
- package/dist/core/tools/ls.js +118 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/memory.d.ts +45 -0
- package/dist/core/tools/memory.d.ts.map +1 -0
- package/dist/core/tools/memory.js +346 -0
- package/dist/core/tools/memory.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 +39 -0
- package/dist/core/tools/read.d.ts.map +1 -0
- package/dist/core/tools/read.js +166 -0
- package/dist/core/tools/read.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 +29 -0
- package/dist/core/tools/write.d.ts.map +1 -0
- package/dist/core/tools/write.js +78 -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 +43 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +8 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +651 -0
- package/dist/main.js.map +1 -0
- package/dist/migrations.d.ts +33 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +261 -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/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 +16 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/assistant-message.js +96 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +35 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/bash-execution.js +162 -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 +51 -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 +479 -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 +15 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.js +21 -0
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +17 -0
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-editor.js +102 -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/footer.d.ts +26 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/modes/interactive/components/footer.js +213 -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 +41 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.js +61 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +42 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/modes/interactive/components/login-dialog.js +145 -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 +19 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.js +97 -0
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +49 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +275 -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 +95 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector.js +851 -0
- package/dist/modes/interactive/components/session-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +58 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-selector.js +299 -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 +35 -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/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 +46 -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 +47 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +70 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +636 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +68 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-selector.js +934 -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 +113 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +8 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message.js +16 -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 +316 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +3848 -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 +78 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme.js +944 -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 +101 -0
- package/dist/modes/print-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-client.d.ts +217 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client.js +405 -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 +511 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +409 -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/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/clipboard-image.d.ts +11 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -0
- package/dist/utils/clipboard-image.js +162 -0
- package/dist/utils/clipboard-image.js.map +1 -0
- package/dist/utils/clipboard-native.d.ts +7 -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.d.ts +2 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +67 -0
- package/dist/utils/clipboard.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/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 +35 -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 +181 -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/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 +26 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +186 -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/tools-manager.d.ts +3 -0
- package/dist/utils/tools-manager.d.ts.map +1 -0
- package/dist/utils/tools-manager.js +207 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/docs/compaction.md +390 -0
- package/docs/custom-provider.md +548 -0
- package/docs/development.md +69 -0
- package/docs/extensions.md +1935 -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/json.md +79 -0
- package/docs/keybindings.md +174 -0
- package/docs/models.md +293 -0
- package/docs/packages.md +209 -0
- package/docs/prompt-templates.md +67 -0
- package/docs/providers.md +186 -0
- package/docs/rpc.md +1317 -0
- package/docs/sdk.md +968 -0
- package/docs/session.md +412 -0
- package/docs/settings.md +223 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +231 -0
- package/docs/terminal-setup.md +70 -0
- package/docs/termux.md +127 -0
- package/docs/themes.md +295 -0
- package/docs/tree.md +219 -0
- package/docs/tui.md +887 -0
- package/docs/windows.md +17 -0
- package/examples/README.md +25 -0
- package/examples/extensions/README.md +203 -0
- package/examples/extensions/antigravity-image-gen.ts +413 -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/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 +114 -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/custom-provider-qwen-cli/index.ts +345 -0
- package/examples/extensions/custom-provider-qwen-cli/package.json +16 -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/event-bus.ts +43 -0
- package/examples/extensions/file-trigger.ts +41 -0
- package/examples/extensions/git-checkpoint.ts +53 -0
- package/examples/extensions/handoff.ts +150 -0
- package/examples/extensions/hello.ts +25 -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 +881 -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 +398 -0
- package/examples/extensions/protected-paths.ts +30 -0
- package/examples/extensions/qna.ts +119 -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 +124 -0
- package/examples/extensions/sandbox/index.ts +318 -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 +40 -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 +127 -0
- package/examples/extensions/subagent/index.ts +964 -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 +195 -0
- package/examples/extensions/system-prompt-header.ts +17 -0
- package/examples/extensions/timed-confirm.ts +70 -0
- package/examples/extensions/titlebar-spinner.ts +58 -0
- package/examples/extensions/todo.ts +299 -0
- package/examples/extensions/tool-override.ts +143 -0
- package/examples/extensions/tools.ts +146 -0
- package/examples/extensions/trigger-compact.ts +40 -0
- package/examples/extensions/truncated-tool.ts +192 -0
- package/examples/extensions/widget-placement.ts +17 -0
- package/examples/extensions/with-deps/index.ts +36 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +22 -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 +55 -0
- package/examples/sdk/04-skills.ts +46 -0
- package/examples/sdk/05-tools.ts +56 -0
- package/examples/sdk/06-extensions.ts +88 -0
- package/examples/sdk/07-context-files.ts +40 -0
- package/examples/sdk/08-prompt-templates.ts +47 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +48 -0
- package/examples/sdk/10-settings.ts +51 -0
- package/examples/sdk/11-sessions.ts +48 -0
- package/examples/sdk/12-full-control.ts +82 -0
- package/examples/sdk/README.md +144 -0
- package/package.json +96 -0
package/docs/themes.md
ADDED
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
> pi can create themes. Ask it to build one for your setup.
|
|
2
|
+
|
|
3
|
+
# Themes
|
|
4
|
+
|
|
5
|
+
Themes are JSON files that define colors for the TUI.
|
|
6
|
+
|
|
7
|
+
## Table of Contents
|
|
8
|
+
|
|
9
|
+
- [Locations](#locations)
|
|
10
|
+
- [Selecting a Theme](#selecting-a-theme)
|
|
11
|
+
- [Creating a Custom Theme](#creating-a-custom-theme)
|
|
12
|
+
- [Theme Format](#theme-format)
|
|
13
|
+
- [Color Tokens](#color-tokens)
|
|
14
|
+
- [Color Values](#color-values)
|
|
15
|
+
- [Tips](#tips)
|
|
16
|
+
|
|
17
|
+
## Locations
|
|
18
|
+
|
|
19
|
+
Pi loads themes from:
|
|
20
|
+
|
|
21
|
+
- Built-in: `dark`, `light`
|
|
22
|
+
- Global: `~/.pi/agent/themes/*.json`
|
|
23
|
+
- Project: `.pi/themes/*.json`
|
|
24
|
+
- Packages: `themes/` directories or `pi.themes` entries in `package.json`
|
|
25
|
+
- Settings: `themes` array with files or directories
|
|
26
|
+
- CLI: `--theme <path>` (repeatable)
|
|
27
|
+
|
|
28
|
+
Disable discovery with `--no-themes`.
|
|
29
|
+
|
|
30
|
+
## Selecting a Theme
|
|
31
|
+
|
|
32
|
+
Select a theme via `/settings` or in `settings.json`:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"theme": "my-theme"
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
On first run, pi detects your terminal background and defaults to `dark` or `light`.
|
|
41
|
+
|
|
42
|
+
## Creating a Custom Theme
|
|
43
|
+
|
|
44
|
+
1. Create a theme file:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
mkdir -p ~/.pi/agent/themes
|
|
48
|
+
vim ~/.pi/agent/themes/my-theme.json
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
2. Define the theme with all required colors (see [Color Tokens](#color-tokens)):
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"$schema": "https://raw.githubusercontent.com/imdigitalashish/zpi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
56
|
+
"name": "my-theme",
|
|
57
|
+
"vars": {
|
|
58
|
+
"primary": "#00aaff",
|
|
59
|
+
"secondary": 242
|
|
60
|
+
},
|
|
61
|
+
"colors": {
|
|
62
|
+
"accent": "primary",
|
|
63
|
+
"border": "primary",
|
|
64
|
+
"borderAccent": "#00ffff",
|
|
65
|
+
"borderMuted": "secondary",
|
|
66
|
+
"success": "#00ff00",
|
|
67
|
+
"error": "#ff0000",
|
|
68
|
+
"warning": "#ffff00",
|
|
69
|
+
"muted": "secondary",
|
|
70
|
+
"dim": 240,
|
|
71
|
+
"text": "",
|
|
72
|
+
"thinkingText": "secondary",
|
|
73
|
+
"selectedBg": "#2d2d30",
|
|
74
|
+
"userMessageBg": "#2d2d30",
|
|
75
|
+
"userMessageText": "",
|
|
76
|
+
"customMessageBg": "#2d2d30",
|
|
77
|
+
"customMessageText": "",
|
|
78
|
+
"customMessageLabel": "primary",
|
|
79
|
+
"toolPendingBg": "#1e1e2e",
|
|
80
|
+
"toolSuccessBg": "#1e2e1e",
|
|
81
|
+
"toolErrorBg": "#2e1e1e",
|
|
82
|
+
"toolTitle": "primary",
|
|
83
|
+
"toolOutput": "",
|
|
84
|
+
"mdHeading": "#ffaa00",
|
|
85
|
+
"mdLink": "primary",
|
|
86
|
+
"mdLinkUrl": "secondary",
|
|
87
|
+
"mdCode": "#00ffff",
|
|
88
|
+
"mdCodeBlock": "",
|
|
89
|
+
"mdCodeBlockBorder": "secondary",
|
|
90
|
+
"mdQuote": "secondary",
|
|
91
|
+
"mdQuoteBorder": "secondary",
|
|
92
|
+
"mdHr": "secondary",
|
|
93
|
+
"mdListBullet": "#00ffff",
|
|
94
|
+
"toolDiffAdded": "#00ff00",
|
|
95
|
+
"toolDiffRemoved": "#ff0000",
|
|
96
|
+
"toolDiffContext": "secondary",
|
|
97
|
+
"syntaxComment": "secondary",
|
|
98
|
+
"syntaxKeyword": "primary",
|
|
99
|
+
"syntaxFunction": "#00aaff",
|
|
100
|
+
"syntaxVariable": "#ffaa00",
|
|
101
|
+
"syntaxString": "#00ff00",
|
|
102
|
+
"syntaxNumber": "#ff00ff",
|
|
103
|
+
"syntaxType": "#00aaff",
|
|
104
|
+
"syntaxOperator": "primary",
|
|
105
|
+
"syntaxPunctuation": "secondary",
|
|
106
|
+
"thinkingOff": "secondary",
|
|
107
|
+
"thinkingMinimal": "primary",
|
|
108
|
+
"thinkingLow": "#00aaff",
|
|
109
|
+
"thinkingMedium": "#00ffff",
|
|
110
|
+
"thinkingHigh": "#ff00ff",
|
|
111
|
+
"thinkingXhigh": "#ff0000",
|
|
112
|
+
"bashMode": "#ffaa00"
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
3. Select the theme via `/settings`.
|
|
118
|
+
|
|
119
|
+
**Hot reload:** When you edit the currently active custom theme file, pi reloads it automatically for immediate visual feedback.
|
|
120
|
+
|
|
121
|
+
## Theme Format
|
|
122
|
+
|
|
123
|
+
```json
|
|
124
|
+
{
|
|
125
|
+
"$schema": "https://raw.githubusercontent.com/imdigitalashish/zpi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
126
|
+
"name": "my-theme",
|
|
127
|
+
"vars": {
|
|
128
|
+
"blue": "#0066cc",
|
|
129
|
+
"gray": 242
|
|
130
|
+
},
|
|
131
|
+
"colors": {
|
|
132
|
+
"accent": "blue",
|
|
133
|
+
"muted": "gray",
|
|
134
|
+
"text": "",
|
|
135
|
+
...
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
- `name` is required and must be unique.
|
|
141
|
+
- `vars` is optional. Define reusable colors here, then reference them in `colors`.
|
|
142
|
+
- `colors` must define all 51 required tokens.
|
|
143
|
+
|
|
144
|
+
The `$schema` field enables editor auto-completion and validation.
|
|
145
|
+
|
|
146
|
+
## Color Tokens
|
|
147
|
+
|
|
148
|
+
Every theme must define all 51 color tokens. There are no optional colors.
|
|
149
|
+
|
|
150
|
+
### Core UI (11 colors)
|
|
151
|
+
|
|
152
|
+
| Token | Purpose |
|
|
153
|
+
|-------|---------|
|
|
154
|
+
| `accent` | Primary accent (logo, selected items, cursor) |
|
|
155
|
+
| `border` | Normal borders |
|
|
156
|
+
| `borderAccent` | Highlighted borders |
|
|
157
|
+
| `borderMuted` | Subtle borders (editor) |
|
|
158
|
+
| `success` | Success states |
|
|
159
|
+
| `error` | Error states |
|
|
160
|
+
| `warning` | Warning states |
|
|
161
|
+
| `muted` | Secondary text |
|
|
162
|
+
| `dim` | Tertiary text |
|
|
163
|
+
| `text` | Default text (usually `""`) |
|
|
164
|
+
| `thinkingText` | Thinking block text |
|
|
165
|
+
|
|
166
|
+
### Backgrounds & Content (11 colors)
|
|
167
|
+
|
|
168
|
+
| Token | Purpose |
|
|
169
|
+
|-------|---------|
|
|
170
|
+
| `selectedBg` | Selected line background |
|
|
171
|
+
| `userMessageBg` | User message background |
|
|
172
|
+
| `userMessageText` | User message text |
|
|
173
|
+
| `customMessageBg` | Extension message background |
|
|
174
|
+
| `customMessageText` | Extension message text |
|
|
175
|
+
| `customMessageLabel` | Extension message label |
|
|
176
|
+
| `toolPendingBg` | Tool box (pending) |
|
|
177
|
+
| `toolSuccessBg` | Tool box (success) |
|
|
178
|
+
| `toolErrorBg` | Tool box (error) |
|
|
179
|
+
| `toolTitle` | Tool title |
|
|
180
|
+
| `toolOutput` | Tool output text |
|
|
181
|
+
|
|
182
|
+
### Markdown (10 colors)
|
|
183
|
+
|
|
184
|
+
| Token | Purpose |
|
|
185
|
+
|-------|---------|
|
|
186
|
+
| `mdHeading` | Headings |
|
|
187
|
+
| `mdLink` | Link text |
|
|
188
|
+
| `mdLinkUrl` | Link URL |
|
|
189
|
+
| `mdCode` | Inline code |
|
|
190
|
+
| `mdCodeBlock` | Code block content |
|
|
191
|
+
| `mdCodeBlockBorder` | Code block fences |
|
|
192
|
+
| `mdQuote` | Blockquote text |
|
|
193
|
+
| `mdQuoteBorder` | Blockquote border |
|
|
194
|
+
| `mdHr` | Horizontal rule |
|
|
195
|
+
| `mdListBullet` | List bullets |
|
|
196
|
+
|
|
197
|
+
### Tool Diffs (3 colors)
|
|
198
|
+
|
|
199
|
+
| Token | Purpose |
|
|
200
|
+
|-------|---------|
|
|
201
|
+
| `toolDiffAdded` | Added lines |
|
|
202
|
+
| `toolDiffRemoved` | Removed lines |
|
|
203
|
+
| `toolDiffContext` | Context lines |
|
|
204
|
+
|
|
205
|
+
### Syntax Highlighting (9 colors)
|
|
206
|
+
|
|
207
|
+
| Token | Purpose |
|
|
208
|
+
|-------|---------|
|
|
209
|
+
| `syntaxComment` | Comments |
|
|
210
|
+
| `syntaxKeyword` | Keywords |
|
|
211
|
+
| `syntaxFunction` | Function names |
|
|
212
|
+
| `syntaxVariable` | Variables |
|
|
213
|
+
| `syntaxString` | Strings |
|
|
214
|
+
| `syntaxNumber` | Numbers |
|
|
215
|
+
| `syntaxType` | Types |
|
|
216
|
+
| `syntaxOperator` | Operators |
|
|
217
|
+
| `syntaxPunctuation` | Punctuation |
|
|
218
|
+
|
|
219
|
+
### Thinking Level Borders (6 colors)
|
|
220
|
+
|
|
221
|
+
Editor border colors indicating thinking level (visual hierarchy from subtle to prominent):
|
|
222
|
+
|
|
223
|
+
| Token | Purpose |
|
|
224
|
+
|-------|---------|
|
|
225
|
+
| `thinkingOff` | Thinking off |
|
|
226
|
+
| `thinkingMinimal` | Minimal thinking |
|
|
227
|
+
| `thinkingLow` | Low thinking |
|
|
228
|
+
| `thinkingMedium` | Medium thinking |
|
|
229
|
+
| `thinkingHigh` | High thinking |
|
|
230
|
+
| `thinkingXhigh` | Extra high thinking |
|
|
231
|
+
|
|
232
|
+
### Bash Mode (1 color)
|
|
233
|
+
|
|
234
|
+
| Token | Purpose |
|
|
235
|
+
|-------|---------|
|
|
236
|
+
| `bashMode` | Editor border in bash mode (`!` prefix) |
|
|
237
|
+
|
|
238
|
+
### HTML Export (optional)
|
|
239
|
+
|
|
240
|
+
The `export` section controls colors for `/export` HTML output. If omitted, colors are derived from `userMessageBg`.
|
|
241
|
+
|
|
242
|
+
```json
|
|
243
|
+
{
|
|
244
|
+
"export": {
|
|
245
|
+
"pageBg": "#18181e",
|
|
246
|
+
"cardBg": "#1e1e24",
|
|
247
|
+
"infoBg": "#3c3728"
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Color Values
|
|
253
|
+
|
|
254
|
+
Four formats are supported:
|
|
255
|
+
|
|
256
|
+
| Format | Example | Description |
|
|
257
|
+
|--------|---------|-------------|
|
|
258
|
+
| Hex | `"#ff0000"` | 6-digit hex RGB |
|
|
259
|
+
| 256-color | `39` | xterm 256-color palette index (0-255) |
|
|
260
|
+
| Variable | `"primary"` | Reference to a `vars` entry |
|
|
261
|
+
| Default | `""` | Terminal's default color |
|
|
262
|
+
|
|
263
|
+
### 256-Color Palette
|
|
264
|
+
|
|
265
|
+
- `0-15`: Basic ANSI colors (terminal-dependent)
|
|
266
|
+
- `16-231`: 6×6×6 RGB cube (`16 + 36×R + 6×G + B` where R,G,B are 0-5)
|
|
267
|
+
- `232-255`: Grayscale ramp
|
|
268
|
+
|
|
269
|
+
### Terminal Compatibility
|
|
270
|
+
|
|
271
|
+
Pi uses 24-bit RGB colors. Most modern terminals support this (iTerm2, Kitty, WezTerm, Windows Terminal, VS Code). For older terminals with only 256-color support, pi falls back to the nearest approximation.
|
|
272
|
+
|
|
273
|
+
Check truecolor support:
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
echo $COLORTERM # Should output "truecolor" or "24bit"
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## Tips
|
|
280
|
+
|
|
281
|
+
**Dark terminals:** Use bright, saturated colors with higher contrast.
|
|
282
|
+
|
|
283
|
+
**Light terminals:** Use darker, muted colors with lower contrast.
|
|
284
|
+
|
|
285
|
+
**Color harmony:** Start with a base palette (Nord, Gruvbox, Tokyo Night), define it in `vars`, and reference consistently.
|
|
286
|
+
|
|
287
|
+
**Testing:** Check your theme with different message types, tool states, markdown content, and long wrapped text.
|
|
288
|
+
|
|
289
|
+
**VS Code:** Set `terminal.integrated.minimumContrastRatio` to `1` for accurate colors.
|
|
290
|
+
|
|
291
|
+
## Examples
|
|
292
|
+
|
|
293
|
+
See the built-in themes:
|
|
294
|
+
- [dark.json](../src/modes/interactive/theme/dark.json)
|
|
295
|
+
- [light.json](../src/modes/interactive/theme/light.json)
|
package/docs/tree.md
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
# Session Tree Navigation
|
|
2
|
+
|
|
3
|
+
The `/tree` command provides tree-based navigation of the session history.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Sessions are stored as trees where each entry has an `id` and `parentId`. The "leaf" pointer tracks the current position. `/tree` lets you navigate to any point and optionally summarize the branch you're leaving.
|
|
8
|
+
|
|
9
|
+
### Comparison with `/fork`
|
|
10
|
+
|
|
11
|
+
| Feature | `/fork` | `/tree` |
|
|
12
|
+
|---------|---------|---------|
|
|
13
|
+
| View | Flat list of user messages | Full tree structure |
|
|
14
|
+
| Action | Extracts path to **new session file** | Changes leaf in **same session** |
|
|
15
|
+
| Summary | Never | Optional (user prompted) |
|
|
16
|
+
| Events | `session_before_fork` / `session_fork` | `session_before_tree` / `session_tree` |
|
|
17
|
+
|
|
18
|
+
## Tree UI
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
├─ user: "Hello, can you help..."
|
|
22
|
+
│ └─ assistant: "Of course! I can..."
|
|
23
|
+
│ ├─ user: "Let's try approach A..."
|
|
24
|
+
│ │ └─ assistant: "For approach A..."
|
|
25
|
+
│ │ └─ [compaction: 12k tokens]
|
|
26
|
+
│ │ └─ user: "That worked..." ← active
|
|
27
|
+
│ └─ user: "Actually, approach B..."
|
|
28
|
+
│ └─ assistant: "For approach B..."
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Controls
|
|
32
|
+
|
|
33
|
+
| Key | Action |
|
|
34
|
+
|-----|--------|
|
|
35
|
+
| ↑/↓ | Navigate (depth-first order) |
|
|
36
|
+
| Enter | Select node |
|
|
37
|
+
| Escape/Ctrl+C | Cancel |
|
|
38
|
+
| Ctrl+U | Toggle: user messages only |
|
|
39
|
+
| Ctrl+O | Toggle: show all (including custom/label entries) |
|
|
40
|
+
|
|
41
|
+
### Display
|
|
42
|
+
|
|
43
|
+
- Height: half terminal height
|
|
44
|
+
- Current leaf marked with `← active`
|
|
45
|
+
- Labels shown inline: `[label-name]`
|
|
46
|
+
- Default filter hides `label` and `custom` entries (shown in Ctrl+O mode)
|
|
47
|
+
- Children sorted by timestamp (oldest first)
|
|
48
|
+
|
|
49
|
+
## Selection Behavior
|
|
50
|
+
|
|
51
|
+
### User Message or Custom Message
|
|
52
|
+
1. Leaf set to **parent** of selected node (or `null` if root)
|
|
53
|
+
2. Message text placed in **editor** for re-submission
|
|
54
|
+
3. User edits and submits, creating a new branch
|
|
55
|
+
|
|
56
|
+
### Non-User Message (assistant, compaction, etc.)
|
|
57
|
+
1. Leaf set to **selected node**
|
|
58
|
+
2. Editor stays empty
|
|
59
|
+
3. User continues from that point
|
|
60
|
+
|
|
61
|
+
### Selecting Root User Message
|
|
62
|
+
If user selects the very first message (has no parent):
|
|
63
|
+
1. Leaf reset to `null` (empty conversation)
|
|
64
|
+
2. Message text placed in editor
|
|
65
|
+
3. User effectively restarts from scratch
|
|
66
|
+
|
|
67
|
+
## Branch Summarization
|
|
68
|
+
|
|
69
|
+
When switching branches, user is presented with three options:
|
|
70
|
+
|
|
71
|
+
1. **No summary** - Switch immediately without summarizing
|
|
72
|
+
2. **Summarize** - Generate a summary using the default prompt
|
|
73
|
+
3. **Summarize with custom prompt** - Opens an editor to enter additional focus instructions that are appended to the default summarization prompt
|
|
74
|
+
|
|
75
|
+
### What Gets Summarized
|
|
76
|
+
|
|
77
|
+
Path from old leaf back to common ancestor with target:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
A → B → C → D → E → F ← old leaf
|
|
81
|
+
↘ G → H ← target
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Abandoned path: D → E → F (summarized)
|
|
85
|
+
|
|
86
|
+
Summarization stops at:
|
|
87
|
+
1. Common ancestor (always)
|
|
88
|
+
2. Compaction node (if encountered first)
|
|
89
|
+
|
|
90
|
+
### Summary Storage
|
|
91
|
+
|
|
92
|
+
Stored as `BranchSummaryEntry`:
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
interface BranchSummaryEntry {
|
|
96
|
+
type: "branch_summary";
|
|
97
|
+
id: string;
|
|
98
|
+
parentId: string; // New leaf position
|
|
99
|
+
timestamp: string;
|
|
100
|
+
fromId: string; // Old leaf we abandoned
|
|
101
|
+
summary: string; // LLM-generated summary
|
|
102
|
+
details?: unknown; // Optional hook data
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Implementation
|
|
107
|
+
|
|
108
|
+
### AgentSession.navigateTree()
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
async navigateTree(
|
|
112
|
+
targetId: string,
|
|
113
|
+
options?: {
|
|
114
|
+
summarize?: boolean;
|
|
115
|
+
customInstructions?: string;
|
|
116
|
+
replaceInstructions?: boolean;
|
|
117
|
+
label?: string;
|
|
118
|
+
}
|
|
119
|
+
): Promise<{ editorText?: string; cancelled: boolean }>
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Options:
|
|
123
|
+
- `summarize`: Whether to generate a summary of the abandoned branch
|
|
124
|
+
- `customInstructions`: Custom instructions for the summarizer
|
|
125
|
+
- `replaceInstructions`: If true, `customInstructions` replaces the default prompt instead of being appended
|
|
126
|
+
- `label`: Label to attach to the branch summary entry (or target entry if not summarizing)
|
|
127
|
+
|
|
128
|
+
Flow:
|
|
129
|
+
1. Validate target, check no-op (target === current leaf)
|
|
130
|
+
2. Find common ancestor between old leaf and target
|
|
131
|
+
3. Collect entries to summarize (if requested)
|
|
132
|
+
4. Fire `session_before_tree` event (hook can cancel or provide summary)
|
|
133
|
+
5. Run default summarizer if needed
|
|
134
|
+
6. Switch leaf via `branch()` or `branchWithSummary()`
|
|
135
|
+
7. Update agent: `agent.replaceMessages(sessionManager.buildSessionContext().messages)`
|
|
136
|
+
8. Fire `session_tree` event
|
|
137
|
+
9. Notify custom tools via session event
|
|
138
|
+
10. Return result with `editorText` if user message was selected
|
|
139
|
+
|
|
140
|
+
### SessionManager
|
|
141
|
+
|
|
142
|
+
- `getLeafUuid(): string | null` - Current leaf (null if empty)
|
|
143
|
+
- `resetLeaf(): void` - Set leaf to null (for root user message navigation)
|
|
144
|
+
- `getTree(): SessionTreeNode[]` - Full tree with children sorted by timestamp
|
|
145
|
+
- `branch(id)` - Change leaf pointer
|
|
146
|
+
- `branchWithSummary(id, summary)` - Change leaf and create summary entry
|
|
147
|
+
|
|
148
|
+
### InteractiveMode
|
|
149
|
+
|
|
150
|
+
`/tree` command shows `TreeSelectorComponent`, then:
|
|
151
|
+
1. Prompt for summarization
|
|
152
|
+
2. Call `session.navigateTree()`
|
|
153
|
+
3. Clear and re-render chat
|
|
154
|
+
4. Set editor text if applicable
|
|
155
|
+
|
|
156
|
+
## Hook Events
|
|
157
|
+
|
|
158
|
+
### `session_before_tree`
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
interface TreePreparation {
|
|
162
|
+
targetId: string;
|
|
163
|
+
oldLeafId: string | null;
|
|
164
|
+
commonAncestorId: string | null;
|
|
165
|
+
entriesToSummarize: SessionEntry[];
|
|
166
|
+
userWantsSummary: boolean;
|
|
167
|
+
customInstructions?: string;
|
|
168
|
+
replaceInstructions?: boolean;
|
|
169
|
+
label?: string;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
interface SessionBeforeTreeEvent {
|
|
173
|
+
type: "session_before_tree";
|
|
174
|
+
preparation: TreePreparation;
|
|
175
|
+
signal: AbortSignal;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
interface SessionBeforeTreeResult {
|
|
179
|
+
cancel?: boolean;
|
|
180
|
+
summary?: { summary: string; details?: unknown };
|
|
181
|
+
customInstructions?: string; // Override custom instructions
|
|
182
|
+
replaceInstructions?: boolean; // Override replace mode
|
|
183
|
+
label?: string; // Override label
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Extensions can override `customInstructions`, `replaceInstructions`, and `label` by returning them from the `session_before_tree` handler.
|
|
188
|
+
|
|
189
|
+
### `session_tree`
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
interface SessionTreeEvent {
|
|
193
|
+
type: "session_tree";
|
|
194
|
+
newLeafId: string | null;
|
|
195
|
+
oldLeafId: string | null;
|
|
196
|
+
summaryEntry?: BranchSummaryEntry;
|
|
197
|
+
fromHook?: boolean;
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Example: Custom Summarizer
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
export default function(pi: HookAPI) {
|
|
205
|
+
pi.on("session_before_tree", async (event, ctx) => {
|
|
206
|
+
if (!event.preparation.userWantsSummary) return;
|
|
207
|
+
if (event.preparation.entriesToSummarize.length === 0) return;
|
|
208
|
+
|
|
209
|
+
const summary = await myCustomSummarizer(event.preparation.entriesToSummarize);
|
|
210
|
+
return { summary: { summary, details: { custom: true } } };
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Error Handling
|
|
216
|
+
|
|
217
|
+
- Summarization failure: cancels navigation, shows error
|
|
218
|
+
- User abort (Escape): cancels navigation
|
|
219
|
+
- Hook returns `cancel: true`: cancels navigation silently
|