@selesai/code 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +198 -0
- package/dist/agents/architect.md +216 -0
- package/dist/agents/builder.md +119 -0
- package/dist/agents/commentator.md +128 -0
- package/dist/agents/explorer.md +51 -0
- package/dist/agents/recapper.md +24 -0
- 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 +17 -0
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
- package/dist/bun/restore-sandbox-env.js +36 -0
- package/dist/bun/restore-sandbox-env.js.map +1 -0
- package/dist/cli/args.d.ts +57 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +379 -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 +82 -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/project-trust.d.ts +10 -0
- package/dist/cli/project-trust.d.ts.map +1 -0
- package/dist/cli/project-trust.js +48 -0
- package/dist/cli/project-trust.js.map +1 -0
- package/dist/cli/session-picker.d.ts +10 -0
- package/dist/cli/session-picker.d.ts.map +1 -0
- package/dist/cli/session-picker.js +36 -0
- package/dist/cli/session-picker.js.map +1 -0
- package/dist/cli/startup-ui.d.ts +23 -0
- package/dist/cli/startup-ui.d.ts.map +1 -0
- package/dist/cli/startup-ui.js +172 -0
- package/dist/cli/startup-ui.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +18 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +154 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +579 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-session-runtime.d.ts +119 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -0
- package/dist/core/agent-session-runtime.js +303 -0
- package/dist/core/agent-session-runtime.js.map +1 -0
- package/dist/core/agent-session-services.d.ts +88 -0
- package/dist/core/agent-session-services.d.ts.map +1 -0
- package/dist/core/agent-session-services.js +119 -0
- package/dist/core/agent-session-services.js.map +1 -0
- package/dist/core/agent-session.d.ts +607 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +2552 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/agents.d.ts +53 -0
- package/dist/core/agents.d.ts.map +1 -0
- package/dist/core/agents.js +238 -0
- package/dist/core/agents.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 +140 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +434 -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 +92 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/core/compaction/branch-summarization.js +249 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -0
- package/dist/core/compaction/compaction.d.ts +122 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -0
- package/dist/core/compaction/compaction.js +625 -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/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/experimental.d.ts +2 -0
- package/dist/core/experimental.d.ts.map +1 -0
- package/dist/core/experimental.js +4 -0
- package/dist/core/experimental.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 +226 -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 +1864 -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 +78 -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 +23 -0
- package/dist/core/extensions/loader.d.ts.map +1 -0
- package/dist/core/extensions/loader.js +531 -0
- package/dist/core/extensions/loader.js.map +1 -0
- package/dist/core/extensions/runner.d.ts +166 -0
- package/dist/core/extensions/runner.d.ts.map +1 -0
- package/dist/core/extensions/runner.js +876 -0
- package/dist/core/extensions/runner.js.map +1 -0
- package/dist/core/extensions/types.d.ts +1209 -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 +54 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -0
- package/dist/core/footer-data-provider.js +338 -0
- package/dist/core/footer-data-provider.js.map +1 -0
- package/dist/core/http-dispatcher.d.ts +22 -0
- package/dist/core/http-dispatcher.d.ts.map +1 -0
- package/dist/core/http-dispatcher.js +64 -0
- package/dist/core/http-dispatcher.js.map +1 -0
- package/dist/core/index.d.ts +13 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +13 -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/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 +151 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +750 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +111 -0
- package/dist/core/model-resolver.d.ts.map +1 -0
- package/dist/core/model-resolver.js +534 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/output-guard.d.ts +7 -0
- package/dist/core/output-guard.d.ts.map +1 -0
- package/dist/core/output-guard.js +89 -0
- package/dist/core/output-guard.js.map +1 -0
- package/dist/core/package-manager.d.ts +207 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +2088 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/project-trust.d.ts +15 -0
- package/dist/core/project-trust.d.ts.map +1 -0
- package/dist/core/project-trust.js +59 -0
- package/dist/core/project-trust.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +53 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +236 -0
- package/dist/core/prompt-templates.js.map +1 -0
- package/dist/core/provider-attribution.d.ts +4 -0
- package/dist/core/provider-attribution.d.ts.map +1 -0
- package/dist/core/provider-attribution.js +82 -0
- package/dist/core/provider-attribution.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 +36 -0
- package/dist/core/provider-display-names.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +30 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -0
- package/dist/core/resolve-config-value.js +247 -0
- package/dist/core/resolve-config-value.js.map +1 -0
- package/dist/core/resource-loader.d.ts +230 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +861 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/sdk.d.ts +109 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/sdk.js +267 -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 +332 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +1230 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/settings-manager.d.ts +286 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +874 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +69 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +387 -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 +26 -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 +31 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +128 -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 +346 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +106 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +424 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +51 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +284 -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 +52 -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 +305 -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 +167 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/output-accumulator.d.ts +52 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/core/tools/output-accumulator.js +184 -0
- package/dist/core/tools/output-accumulator.js.map +1 -0
- package/dist/core/tools/path-utils.d.ts +10 -0
- package/dist/core/tools/path-utils.d.ts.map +1 -0
- package/dist/core/tools/path-utils.js +99 -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 +289 -0
- package/dist/core/tools/read.js.map +1 -0
- package/dist/core/tools/render-utils.d.ts +24 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -0
- package/dist/core/tools/render-utils.js +65 -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 +215 -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 +197 -0
- package/dist/core/tools/write.js.map +1 -0
- package/dist/core/trust-manager.d.ts +36 -0
- package/dist/core/trust-manager.d.ts.map +1 -0
- package/dist/core/trust-manager.js +202 -0
- package/dist/core/trust-manager.js.map +1 -0
- package/dist/defaults/models.json +3 -0
- package/dist/defaults/settings.json +68 -0
- package/dist/extensions/copy-turn.ts +125 -0
- package/dist/extensions/gitignore-guard.ts +132 -0
- package/dist/extensions/hooks/claude-codex-hooks.json +44 -0
- package/dist/extensions/hooks/copilot-hooks.json +21 -0
- package/dist/extensions/hooks/ponytail-activate.js +91 -0
- package/dist/extensions/hooks/ponytail-config.js +122 -0
- package/dist/extensions/hooks/ponytail-instructions.js +94 -0
- package/dist/extensions/hooks/ponytail-mode-tracker.js +55 -0
- package/dist/extensions/hooks/ponytail-runtime.js +68 -0
- package/dist/extensions/hooks/ponytail-statusline.ps1 +21 -0
- package/dist/extensions/hooks/ponytail-statusline.sh +12 -0
- package/dist/extensions/hooks/ponytail-subagent.js +22 -0
- package/dist/extensions/package.json +19 -0
- package/dist/extensions/pi-extension/index.js +189 -0
- package/dist/extensions/pi-extension/package.json +8 -0
- package/dist/extensions/pi-extension/test/extension.test.js +167 -0
- package/dist/extensions/pi-extension/test/helpers.test.js +92 -0
- package/dist/extensions/pi-powerline-footer/CHANGELOG.md +516 -0
- package/dist/extensions/pi-powerline-footer/README.md +382 -0
- package/dist/extensions/pi-powerline-footer/banner.png +0 -0
- package/dist/extensions/pi-powerline-footer/bash-mode/completion.ts +556 -0
- package/dist/extensions/pi-powerline-footer/bash-mode/editor.ts +397 -0
- package/dist/extensions/pi-powerline-footer/bash-mode/history.ts +151 -0
- package/dist/extensions/pi-powerline-footer/bash-mode/shell-session.ts +286 -0
- package/dist/extensions/pi-powerline-footer/bash-mode/transcript.ts +108 -0
- package/dist/extensions/pi-powerline-footer/bash-mode/types.ts +59 -0
- package/dist/extensions/pi-powerline-footer/colors.ts +69 -0
- package/dist/extensions/pi-powerline-footer/context-usage.ts +41 -0
- package/dist/extensions/pi-powerline-footer/fixed-editor/cluster.ts +113 -0
- package/dist/extensions/pi-powerline-footer/fixed-editor/terminal-split.ts +1077 -0
- package/dist/extensions/pi-powerline-footer/git-status.ts +212 -0
- package/dist/extensions/pi-powerline-footer/icons.ts +181 -0
- package/dist/extensions/pi-powerline-footer/index.ts +2817 -0
- package/dist/extensions/pi-powerline-footer/package.json +46 -0
- package/dist/extensions/pi-powerline-footer/powerline-config.ts +182 -0
- package/dist/extensions/pi-powerline-footer/presets.ts +121 -0
- package/dist/extensions/pi-powerline-footer/render-scheduler.ts +24 -0
- package/dist/extensions/pi-powerline-footer/segments.ts +566 -0
- package/dist/extensions/pi-powerline-footer/separators.ts +57 -0
- package/dist/extensions/pi-powerline-footer/shortcuts.ts +47 -0
- package/dist/extensions/pi-powerline-footer/tests/bash-mode.test.ts +1503 -0
- package/dist/extensions/pi-powerline-footer/tests/context-usage.test.ts +38 -0
- package/dist/extensions/pi-powerline-footer/tests/custom-items.test.ts +135 -0
- package/dist/extensions/pi-powerline-footer/tests/editor-responsiveness.test.ts +180 -0
- package/dist/extensions/pi-powerline-footer/tests/fixed-editor.test.ts +1416 -0
- package/dist/extensions/pi-powerline-footer/tests/jump-shortcuts.test.ts +213 -0
- package/dist/extensions/pi-powerline-footer/tests/stash-shortcut.test.ts +32 -0
- package/dist/extensions/pi-powerline-footer/tests/thinking-segment.test.ts +61 -0
- package/dist/extensions/pi-powerline-footer/tests/working-vibes.test.ts +226 -0
- package/dist/extensions/pi-powerline-footer/theme.example.json +24 -0
- package/dist/extensions/pi-powerline-footer/theme.json +12 -0
- package/dist/extensions/pi-powerline-footer/theme.ts +227 -0
- package/dist/extensions/pi-powerline-footer/types.ts +191 -0
- package/dist/extensions/pi-powerline-footer/welcome-dismiss.ts +34 -0
- package/dist/extensions/pi-powerline-footer/welcome.ts +611 -0
- package/dist/extensions/pi-powerline-footer/working-vibes.ts +695 -0
- package/dist/extensions/prototype.ts +713 -0
- package/dist/extensions/question.ts +350 -0
- package/dist/extensions/rtk.ts +81 -0
- package/dist/extensions/tps-tracker.ts +280 -0
- package/dist/extensions/undo.ts +292 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +46 -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 +700 -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 +281 -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 +121 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +34 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/bash-execution.js +175 -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 +506 -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/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 +119 -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 +26 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-selector.js +83 -0
- package/dist/modes/interactive/components/extension-selector.js.map +1 -0
- package/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
- package/dist/modes/interactive/components/first-time-setup.js +103 -0
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts +28 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/modes/interactive/components/footer.js +221 -0
- package/dist/modes/interactive/components/footer.js.map +1 -0
- package/dist/modes/interactive/components/index.d.ts +34 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -0
- package/dist/modes/interactive/components/index.js +35 -0
- package/dist/modes/interactive/components/index.js.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.js +36 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +52 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/modes/interactive/components/login-dialog.js +179 -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 +279 -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 +293 -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 +867 -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 +570 -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/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 +63 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +317 -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 +1208 -0
- package/dist/modes/interactive/components/tree-selector.js.map +1 -0
- package/dist/modes/interactive/components/trust-selector.d.ts +23 -0
- package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/trust-selector.js +91 -0
- package/dist/modes/interactive/components/trust-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 +381 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +4802 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -0
- package/dist/modes/interactive/model-search.d.ts +12 -0
- package/dist/modes/interactive/model-search.d.ts.map +1 -0
- package/dist/modes/interactive/model-search.js +15 -0
- package/dist/modes/interactive/model-search.js.map +1 -0
- package/dist/modes/interactive/theme/dark.json +86 -0
- package/dist/modes/interactive/theme/light.json +85 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts +29 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme-controller.js +102 -0
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -0
- package/dist/modes/interactive/theme/theme-schema.json +336 -0
- package/dist/modes/interactive/theme/theme.d.ts +119 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme.js +1056 -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 +132 -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 +227 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client.js +467 -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 +637 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +428 -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 +8 -0
- package/dist/package-manager-cli.d.ts.map +1 -0
- package/dist/package-manager-cli.js +659 -0
- package/dist/package-manager-cli.js.map +1 -0
- package/dist/skills/grill-me/SKILL.md +10 -0
- package/dist/skills/handoff/SKILL.md +15 -0
- package/dist/skills/implanger/SKILL.md +68 -0
- package/dist/skills/improve-codebase/REFERENCE.md +78 -0
- package/dist/skills/improve-codebase/SKILL.md +178 -0
- package/dist/skills/planger/SKILL.md +165 -0
- package/dist/skills/ponytail/SKILL.md +117 -0
- package/dist/skills/ponytail-audit/SKILL.md +41 -0
- package/dist/skills/ponytail-debt/SKILL.md +44 -0
- package/dist/skills/ponytail-gain/SKILL.md +50 -0
- package/dist/skills/ponytail-help/SKILL.md +69 -0
- package/dist/skills/ponytail-review/SKILL.md +57 -0
- package/dist/skills/selesai-default/SKILL.md +16 -0
- package/dist/themes/powerline-footer/theme.json +33 -0
- package/dist/utils/ansi.d.ts +2 -0
- package/dist/utils/ansi.d.ts.map +1 -0
- package/dist/utils/ansi.js +52 -0
- package/dist/utils/ansi.js.map +1 -0
- package/dist/utils/changelog.d.ts +22 -0
- package/dist/utils/changelog.d.ts.map +1 -0
- package/dist/utils/changelog.js +165 -0
- package/dist/utils/changelog.js.map +1 -0
- package/dist/utils/child-process.d.ts +18 -0
- package/dist/utils/child-process.d.ts.map +1 -0
- package/dist/utils/child-process.js +106 -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 +10 -0
- package/dist/utils/clipboard-native.d.ts.map +1 -0
- package/dist/utils/clipboard-native.js +20 -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 +117 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/deprecation.d.ts +4 -0
- package/dist/utils/deprecation.d.ts.map +1 -0
- package/dist/utils/deprecation.js +13 -0
- package/dist/utils/deprecation.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 +195 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/html.d.ts +7 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +40 -0
- package/dist/utils/html.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-core.d.ts +30 -0
- package/dist/utils/image-resize-core.d.ts.map +1 -0
- package/dist/utils/image-resize-core.js +124 -0
- package/dist/utils/image-resize-core.js.map +1 -0
- package/dist/utils/image-resize-worker.d.ts +2 -0
- package/dist/utils/image-resize-worker.d.ts.map +1 -0
- package/dist/utils/image-resize-worker.js +31 -0
- package/dist/utils/image-resize-worker.js.map +1 -0
- package/dist/utils/image-resize.d.ts +16 -0
- package/dist/utils/image-resize.d.ts.map +1 -0
- package/dist/utils/image-resize.js +97 -0
- package/dist/utils/image-resize.js.map +1 -0
- package/dist/utils/json.d.ts +3 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +7 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/mime.d.ts +3 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +69 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/open-browser.d.ts +9 -0
- package/dist/utils/open-browser.d.ts.map +1 -0
- package/dist/utils/open-browser.js +22 -0
- package/dist/utils/open-browser.js.map +1 -0
- package/dist/utils/paths.d.ts +31 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +92 -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/pi-user-agent.d.ts +2 -0
- package/dist/utils/pi-user-agent.d.ts.map +1 -0
- package/dist/utils/pi-user-agent.js +5 -0
- package/dist/utils/pi-user-agent.js.map +1 -0
- package/dist/utils/shell.d.ts +31 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +202 -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/syntax-highlight.d.ts +12 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/utils/syntax-highlight.js +118 -0
- package/dist/utils/syntax-highlight.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 +328 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/dist/utils/version-check.d.ts +15 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +52 -0
- package/dist/utils/version-check.js.map +1 -0
- package/dist/utils/windows-self-update.d.ts +3 -0
- package/dist/utils/windows-self-update.d.ts.map +1 -0
- package/dist/utils/windows-self-update.js +77 -0
- package/dist/utils/windows-self-update.js.map +1 -0
- package/docs/compaction.md +396 -0
- package/docs/containerization.md +111 -0
- package/docs/custom-provider.md +737 -0
- package/docs/development.md +71 -0
- package/docs/docs.json +156 -0
- package/docs/extensions.md +2681 -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 +82 -0
- package/docs/json.md +82 -0
- package/docs/keybindings.md +197 -0
- package/docs/models.md +495 -0
- package/docs/packages.md +227 -0
- package/docs/prompt-templates.md +95 -0
- package/docs/providers.md +274 -0
- package/docs/quickstart.md +165 -0
- package/docs/rpc.md +1412 -0
- package/docs/sdk.md +1143 -0
- package/docs/security.md +59 -0
- package/docs/session-format.md +412 -0
- package/docs/sessions.md +145 -0
- package/docs/settings.md +308 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +231 -0
- package/docs/terminal-setup.md +142 -0
- package/docs/termux.md +127 -0
- package/docs/themes.md +295 -0
- package/docs/tmux.md +63 -0
- package/docs/tui.md +927 -0
- package/docs/usage.md +308 -0
- package/docs/windows.md +17 -0
- package/examples/README.md +25 -0
- package/examples/extensions/README.md +211 -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 +150 -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 +404 -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/git-merge-and-resolve.ts +115 -0
- package/examples/extensions/github-issue-autocomplete.ts +185 -0
- package/examples/extensions/gondolin/index.ts +531 -0
- package/examples/extensions/gondolin/package-lock.json +185 -0
- package/examples/extensions/gondolin/package.json +19 -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-streaming.ts +39 -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 +1450 -0
- package/examples/extensions/overlay-test.ts +153 -0
- package/examples/extensions/permission-gate.ts +34 -0
- package/examples/extensions/pirate.ts +47 -0
- package/examples/extensions/plan-mode/README.md +66 -0
- package/examples/extensions/plan-mode/index.ts +390 -0
- package/examples/extensions/plan-mode/utils.ts +168 -0
- package/examples/extensions/preset.ts +436 -0
- package/examples/extensions/project-trust.ts +64 -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 +285 -0
- package/examples/extensions/questionnaire.ts +448 -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 +175 -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 +1015 -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 +146 -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 +26 -0
- package/examples/sdk/02-custom-model.ts +53 -0
- package/examples/sdk/03-custom-prompt.ts +75 -0
- package/examples/sdk/04-skills.ts +55 -0
- package/examples/sdk/05-tools.ts +48 -0
- package/examples/sdk/06-extensions.ts +99 -0
- package/examples/sdk/07-context-files.ts +47 -0
- package/examples/sdk/08-prompt-templates.ts +51 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +52 -0
- package/examples/sdk/10-settings.ts +53 -0
- package/examples/sdk/11-sessions.ts +52 -0
- package/examples/sdk/12-full-control.ts +77 -0
- package/examples/sdk/13-session-runtime.ts +67 -0
- package/examples/sdk/README.md +144 -0
- package/package.json +65 -0
package/dist/config.js
ADDED
|
@@ -0,0 +1,579 @@
|
|
|
1
|
+
import { accessSync, chmodSync, constants, copyFileSync, existsSync, mkdirSync, readFileSync, realpathSync, writeFileSync, } from "fs";
|
|
2
|
+
import { homedir } from "os";
|
|
3
|
+
import { basename, dirname, join, resolve, sep, win32 } from "path";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
import { spawnProcessSync } from "./utils/child-process.js";
|
|
6
|
+
import { normalizePath } from "./utils/paths.js";
|
|
7
|
+
// =============================================================================
|
|
8
|
+
// Package Detection
|
|
9
|
+
// =============================================================================
|
|
10
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
11
|
+
const __dirname = dirname(__filename);
|
|
12
|
+
/**
|
|
13
|
+
* Detect if we're running as a Bun compiled binary.
|
|
14
|
+
* Bun binaries have import.meta.url containing "$bunfs", "~BUN", or "%7EBUN" (Bun's virtual filesystem path)
|
|
15
|
+
*/
|
|
16
|
+
export const isBunBinary = import.meta.url.includes("$bunfs") || import.meta.url.includes("~BUN") || import.meta.url.includes("%7EBUN");
|
|
17
|
+
/** Detect if Bun is the runtime (compiled binary or bun run) */
|
|
18
|
+
export const isBunRuntime = !!process.versions.bun;
|
|
19
|
+
function normalizeSelfUpdatePackageTarget(target) {
|
|
20
|
+
if (typeof target === "string") {
|
|
21
|
+
return { packageName: target, installSpec: target };
|
|
22
|
+
}
|
|
23
|
+
return { packageName: target.packageName, installSpec: target.installSpec ?? target.packageName };
|
|
24
|
+
}
|
|
25
|
+
function makeSelfUpdateCommand(installStep, uninstallStep) {
|
|
26
|
+
if (!uninstallStep)
|
|
27
|
+
return installStep;
|
|
28
|
+
return {
|
|
29
|
+
...installStep,
|
|
30
|
+
display: `${uninstallStep.display} && ${installStep.display}`,
|
|
31
|
+
steps: [uninstallStep, installStep],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function makeSelfUpdateCommandStep(command, args) {
|
|
35
|
+
return {
|
|
36
|
+
command,
|
|
37
|
+
args,
|
|
38
|
+
display: [command, ...args].map((arg) => (/\s/.test(arg) ? `"${arg}"` : arg)).join(" "),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function detectInstallMethod() {
|
|
42
|
+
if (isBunBinary) {
|
|
43
|
+
return "bun-binary";
|
|
44
|
+
}
|
|
45
|
+
const resolvedPath = `${__dirname}\0${process.execPath || ""}`.toLowerCase().replace(/\\/g, "/");
|
|
46
|
+
if (resolvedPath.includes("/pnpm/") || resolvedPath.includes("/.pnpm/")) {
|
|
47
|
+
return "pnpm";
|
|
48
|
+
}
|
|
49
|
+
if (resolvedPath.includes("/yarn/") || resolvedPath.includes("/.yarn/")) {
|
|
50
|
+
return "yarn";
|
|
51
|
+
}
|
|
52
|
+
if (isBunRuntime || resolvedPath.includes("/install/global/node_modules/")) {
|
|
53
|
+
return "bun";
|
|
54
|
+
}
|
|
55
|
+
if (resolvedPath.includes("/npm/") || resolvedPath.includes("/node_modules/")) {
|
|
56
|
+
return "npm";
|
|
57
|
+
}
|
|
58
|
+
return "unknown";
|
|
59
|
+
}
|
|
60
|
+
function getInferredNpmInstall() {
|
|
61
|
+
const packageDir = getPackageDir();
|
|
62
|
+
const path = process.platform === "win32" || packageDir.includes("\\") ? win32 : { basename, dirname };
|
|
63
|
+
const parent = path.dirname(packageDir);
|
|
64
|
+
let root;
|
|
65
|
+
if (path.basename(parent).startsWith("@") && path.basename(path.dirname(parent)) === "node_modules") {
|
|
66
|
+
root = path.dirname(parent);
|
|
67
|
+
}
|
|
68
|
+
else if (path.basename(parent) === "node_modules") {
|
|
69
|
+
root = parent;
|
|
70
|
+
}
|
|
71
|
+
if (!root)
|
|
72
|
+
return undefined;
|
|
73
|
+
const rootParent = path.dirname(root);
|
|
74
|
+
if (path.basename(rootParent) === "lib")
|
|
75
|
+
return { root, prefix: path.dirname(rootParent) };
|
|
76
|
+
// Windows global npm prefixes use `<prefix>\\node_modules`, which is
|
|
77
|
+
// indistinguishable from local project installs by path shape alone. Do not
|
|
78
|
+
// infer unsupported Windows custom prefixes without `npm root -g` evidence.
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
function getSelfUpdateCommandForMethod(method, installedPackageName, updatePackageTarget = installedPackageName, npmCommand) {
|
|
82
|
+
const target = normalizeSelfUpdatePackageTarget(updatePackageTarget);
|
|
83
|
+
switch (method) {
|
|
84
|
+
case "bun-binary":
|
|
85
|
+
return undefined;
|
|
86
|
+
case "pnpm": {
|
|
87
|
+
const match = readCommandOutput("pnpm", ["root", "-g"])
|
|
88
|
+
? undefined
|
|
89
|
+
: /^(.*[\\/]global[\\/][^\\/]+)[\\/]\.pnpm[\\/]/.exec(getPackageDir());
|
|
90
|
+
const binDirArgs = match
|
|
91
|
+
? [`--config.global-bin-dir=${process.env.PNPM_HOME || dirname(dirname(match[1]))}`]
|
|
92
|
+
: [];
|
|
93
|
+
return makeSelfUpdateCommand(makeSelfUpdateCommandStep("pnpm", [
|
|
94
|
+
"install",
|
|
95
|
+
"-g",
|
|
96
|
+
"--ignore-scripts",
|
|
97
|
+
"--config.minimumReleaseAge=0",
|
|
98
|
+
...binDirArgs,
|
|
99
|
+
target.installSpec,
|
|
100
|
+
]), target.packageName === installedPackageName
|
|
101
|
+
? undefined
|
|
102
|
+
: makeSelfUpdateCommandStep("pnpm", ["remove", "-g", ...binDirArgs, installedPackageName]));
|
|
103
|
+
}
|
|
104
|
+
case "yarn":
|
|
105
|
+
return makeSelfUpdateCommand(makeSelfUpdateCommandStep("yarn", ["global", "add", "--ignore-scripts", target.installSpec]), target.packageName === installedPackageName
|
|
106
|
+
? undefined
|
|
107
|
+
: makeSelfUpdateCommandStep("yarn", ["global", "remove", installedPackageName]));
|
|
108
|
+
case "bun":
|
|
109
|
+
return makeSelfUpdateCommand(makeSelfUpdateCommandStep("bun", [
|
|
110
|
+
"install",
|
|
111
|
+
"-g",
|
|
112
|
+
"--ignore-scripts",
|
|
113
|
+
"--minimum-release-age=0",
|
|
114
|
+
target.installSpec,
|
|
115
|
+
]), target.packageName === installedPackageName
|
|
116
|
+
? undefined
|
|
117
|
+
: makeSelfUpdateCommandStep("bun", ["uninstall", "-g", installedPackageName]));
|
|
118
|
+
case "npm": {
|
|
119
|
+
const [command = "npm", ...npmArgs] = npmCommand ?? [];
|
|
120
|
+
const inferred = npmCommand?.length ? undefined : getInferredNpmInstall();
|
|
121
|
+
const prefixArgs = [...npmArgs, ...(inferred ? ["--prefix", inferred.prefix] : [])];
|
|
122
|
+
const installStep = makeSelfUpdateCommandStep(command, [
|
|
123
|
+
...prefixArgs,
|
|
124
|
+
"install",
|
|
125
|
+
"-g",
|
|
126
|
+
"--ignore-scripts",
|
|
127
|
+
"--min-release-age=0",
|
|
128
|
+
target.installSpec,
|
|
129
|
+
]);
|
|
130
|
+
const uninstallStep = target.packageName === installedPackageName
|
|
131
|
+
? undefined
|
|
132
|
+
: makeSelfUpdateCommandStep(command, [...prefixArgs, "uninstall", "-g", installedPackageName]);
|
|
133
|
+
return makeSelfUpdateCommand(installStep, uninstallStep);
|
|
134
|
+
}
|
|
135
|
+
case "unknown":
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function readCommandOutput(command, args, options = {}) {
|
|
140
|
+
const result = spawnProcessSync(command, args, {
|
|
141
|
+
encoding: "utf-8",
|
|
142
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
143
|
+
});
|
|
144
|
+
if (result.status === 0)
|
|
145
|
+
return result.stdout.trim() || undefined;
|
|
146
|
+
if (options.requireSuccess) {
|
|
147
|
+
const reason = result.error?.message || result.stderr.trim() || `exit code ${result.status ?? "unknown"}`;
|
|
148
|
+
throw new Error(`Failed to run ${[command, ...args].join(" ")}: ${reason}`);
|
|
149
|
+
}
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
152
|
+
function getGlobalPackageRoots(method, _packageName, npmCommand) {
|
|
153
|
+
switch (method) {
|
|
154
|
+
case "npm": {
|
|
155
|
+
const configured = !!npmCommand?.length;
|
|
156
|
+
const [command = "npm", ...npmArgs] = npmCommand ?? [];
|
|
157
|
+
if (configured && command === "bun") {
|
|
158
|
+
const bunBin = readCommandOutput(command, [...npmArgs, "pm", "bin", "-g"], {
|
|
159
|
+
requireSuccess: true,
|
|
160
|
+
});
|
|
161
|
+
const roots = [join(homedir(), ".bun", "install", "global", "node_modules")];
|
|
162
|
+
if (bunBin) {
|
|
163
|
+
roots.push(join(dirname(bunBin), "install", "global", "node_modules"));
|
|
164
|
+
}
|
|
165
|
+
return roots;
|
|
166
|
+
}
|
|
167
|
+
const root = readCommandOutput(command, [...npmArgs, "root", "-g"], {
|
|
168
|
+
requireSuccess: configured,
|
|
169
|
+
});
|
|
170
|
+
const inferred = configured ? undefined : getInferredNpmInstall();
|
|
171
|
+
return [root, inferred?.root].filter((x) => !!x);
|
|
172
|
+
}
|
|
173
|
+
case "pnpm": {
|
|
174
|
+
const root = readCommandOutput("pnpm", ["root", "-g"]);
|
|
175
|
+
if (root)
|
|
176
|
+
return [root, dirname(root)];
|
|
177
|
+
const match = /^(.*[\\/]global[\\/][^\\/]+)[\\/]\.pnpm[\\/]/.exec(getPackageDir());
|
|
178
|
+
return match ? [match[1]] : [];
|
|
179
|
+
}
|
|
180
|
+
case "yarn": {
|
|
181
|
+
const dir = readCommandOutput("yarn", ["global", "dir"]);
|
|
182
|
+
return dir ? [dir, join(dir, "node_modules")] : [];
|
|
183
|
+
}
|
|
184
|
+
case "bun": {
|
|
185
|
+
const bunBin = readCommandOutput("bun", ["pm", "bin", "-g"]);
|
|
186
|
+
const roots = [join(homedir(), ".bun", "install", "global", "node_modules")];
|
|
187
|
+
if (bunBin) {
|
|
188
|
+
roots.push(join(dirname(bunBin), "install", "global", "node_modules"));
|
|
189
|
+
}
|
|
190
|
+
return roots;
|
|
191
|
+
}
|
|
192
|
+
case "bun-binary":
|
|
193
|
+
case "unknown":
|
|
194
|
+
return [];
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
function normalizeExistingPathForComparison(path, resolveSymlinks) {
|
|
198
|
+
const resolvedPath = resolve(path);
|
|
199
|
+
if (!existsSync(resolvedPath)) {
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
let normalizedPath = resolvedPath;
|
|
203
|
+
if (resolveSymlinks) {
|
|
204
|
+
try {
|
|
205
|
+
normalizedPath = realpathSync(resolvedPath);
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
return undefined;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (process.platform === "win32") {
|
|
212
|
+
normalizedPath = normalizedPath.toLowerCase();
|
|
213
|
+
}
|
|
214
|
+
return normalizedPath;
|
|
215
|
+
}
|
|
216
|
+
function getPathComparisonCandidates(path) {
|
|
217
|
+
return Array.from(new Set([normalizeExistingPathForComparison(path, false), normalizeExistingPathForComparison(path, true)].filter((candidate) => !!candidate)));
|
|
218
|
+
}
|
|
219
|
+
function getEntrypointPackageDir() {
|
|
220
|
+
const entrypoint = process.argv[1];
|
|
221
|
+
if (!entrypoint)
|
|
222
|
+
return undefined;
|
|
223
|
+
let dir = dirname(entrypoint);
|
|
224
|
+
while (dir !== dirname(dir)) {
|
|
225
|
+
if (existsSync(join(dir, "package.json"))) {
|
|
226
|
+
return dir;
|
|
227
|
+
}
|
|
228
|
+
dir = dirname(dir);
|
|
229
|
+
}
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
function isSelfUpdatePathWritable() {
|
|
233
|
+
const packageDir = getPackageDir();
|
|
234
|
+
try {
|
|
235
|
+
accessSync(packageDir, constants.W_OK);
|
|
236
|
+
accessSync(dirname(packageDir), constants.W_OK);
|
|
237
|
+
return true;
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
return false;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
function isManagedByGlobalPackageManager(method, packageName, npmCommand) {
|
|
244
|
+
const packageDirs = [getPackageDir(), getEntrypointPackageDir()].filter((dir) => !!dir);
|
|
245
|
+
const packageDirCandidates = packageDirs.flatMap((dir) => getPathComparisonCandidates(dir));
|
|
246
|
+
return getGlobalPackageRoots(method, packageName, npmCommand).some((root) => {
|
|
247
|
+
return getPathComparisonCandidates(root).some((normalizedRoot) => {
|
|
248
|
+
const rootPrefix = normalizedRoot.endsWith(sep) ? normalizedRoot : `${normalizedRoot}${sep}`;
|
|
249
|
+
return packageDirCandidates.some((packageDir) => packageDir.startsWith(rootPrefix));
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
export function getSelfUpdateCommand(packageName, npmCommand, updatePackageTarget = packageName) {
|
|
254
|
+
const method = detectInstallMethod();
|
|
255
|
+
const command = getSelfUpdateCommandForMethod(method, packageName, updatePackageTarget, npmCommand);
|
|
256
|
+
if (!command || !isManagedByGlobalPackageManager(method, packageName, npmCommand) || !isSelfUpdatePathWritable()) {
|
|
257
|
+
return undefined;
|
|
258
|
+
}
|
|
259
|
+
return command;
|
|
260
|
+
}
|
|
261
|
+
export function getSelfUpdateUnavailableInstruction(packageName, npmCommand, updatePackageTarget = packageName) {
|
|
262
|
+
const method = detectInstallMethod();
|
|
263
|
+
const target = normalizeSelfUpdatePackageTarget(updatePackageTarget);
|
|
264
|
+
if (method === "bun-binary") {
|
|
265
|
+
return `Download from: https://github.com/earendil-works/pi-mono/releases/latest`;
|
|
266
|
+
}
|
|
267
|
+
const command = getSelfUpdateCommandForMethod(method, packageName, target, npmCommand);
|
|
268
|
+
if (command) {
|
|
269
|
+
if (isManagedByGlobalPackageManager(method, packageName, npmCommand) && !isSelfUpdatePathWritable()) {
|
|
270
|
+
return `This installation is managed by a global ${method} install, but the install path is not writable. Update it yourself with: ${command.display}`;
|
|
271
|
+
}
|
|
272
|
+
return `This installation is not managed by a global ${method} install. Update it with the package manager, wrapper, or source checkout that provides it.`;
|
|
273
|
+
}
|
|
274
|
+
return `Update ${target.installSpec} using the package manager, wrapper, or source checkout that provides this installation.`;
|
|
275
|
+
}
|
|
276
|
+
export function getUpdateInstruction(packageName) {
|
|
277
|
+
const method = detectInstallMethod();
|
|
278
|
+
const command = getSelfUpdateCommandForMethod(method, packageName);
|
|
279
|
+
if (command) {
|
|
280
|
+
return `Run: ${command.display}`;
|
|
281
|
+
}
|
|
282
|
+
return getSelfUpdateUnavailableInstruction(packageName);
|
|
283
|
+
}
|
|
284
|
+
// =============================================================================
|
|
285
|
+
// Package Asset Paths (shipped with executable)
|
|
286
|
+
// =============================================================================
|
|
287
|
+
/**
|
|
288
|
+
* Get the base directory for resolving package assets (themes, package.json, README.md, CHANGELOG.md).
|
|
289
|
+
* - For Bun binary: returns the directory containing the executable
|
|
290
|
+
* - For Node.js (dist/): returns __dirname (the dist/ directory)
|
|
291
|
+
* - For tsx (src/): returns parent directory (the package root)
|
|
292
|
+
*/
|
|
293
|
+
export function getPackageDir() {
|
|
294
|
+
// Allow override via environment variable (useful for Nix/Guix where store paths tokenize poorly)
|
|
295
|
+
const envDir = process.env.PI_PACKAGE_DIR;
|
|
296
|
+
if (envDir) {
|
|
297
|
+
return normalizePath(envDir);
|
|
298
|
+
}
|
|
299
|
+
if (isBunBinary) {
|
|
300
|
+
// Bun binary: process.execPath points to the compiled executable
|
|
301
|
+
return dirname(process.execPath);
|
|
302
|
+
}
|
|
303
|
+
// Node.js: walk up from __dirname until we find package.json
|
|
304
|
+
let dir = __dirname;
|
|
305
|
+
while (dir !== dirname(dir)) {
|
|
306
|
+
if (existsSync(join(dir, "package.json"))) {
|
|
307
|
+
return dir;
|
|
308
|
+
}
|
|
309
|
+
dir = dirname(dir);
|
|
310
|
+
}
|
|
311
|
+
// Fallback (shouldn't happen)
|
|
312
|
+
return __dirname;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Get path to built-in themes directory (shipped with package)
|
|
316
|
+
* - For Bun binary: theme/ next to executable
|
|
317
|
+
* - For Node.js (dist/): dist/modes/interactive/theme/
|
|
318
|
+
* - For tsx (src/): src/modes/interactive/theme/
|
|
319
|
+
*/
|
|
320
|
+
export function getThemesDir() {
|
|
321
|
+
if (isBunBinary) {
|
|
322
|
+
return join(getPackageDir(), "theme");
|
|
323
|
+
}
|
|
324
|
+
// Theme is in modes/interactive/theme/ relative to src/ or dist/
|
|
325
|
+
const packageDir = getPackageDir();
|
|
326
|
+
const srcOrDist = existsSync(join(packageDir, "src")) ? "src" : "dist";
|
|
327
|
+
return join(packageDir, srcOrDist, "modes", "interactive", "theme");
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Get path to HTML export template directory (shipped with package)
|
|
331
|
+
* - For Bun binary: export-html/ next to executable
|
|
332
|
+
* - For Node.js (dist/): dist/core/export-html/
|
|
333
|
+
* - For tsx (src/): src/core/export-html/
|
|
334
|
+
*/
|
|
335
|
+
export function getExportTemplateDir() {
|
|
336
|
+
if (isBunBinary) {
|
|
337
|
+
return join(getPackageDir(), "export-html");
|
|
338
|
+
}
|
|
339
|
+
const packageDir = getPackageDir();
|
|
340
|
+
const srcOrDist = existsSync(join(packageDir, "src")) ? "src" : "dist";
|
|
341
|
+
return join(packageDir, srcOrDist, "core", "export-html");
|
|
342
|
+
}
|
|
343
|
+
/** Get path to package.json */
|
|
344
|
+
export function getPackageJsonPath() {
|
|
345
|
+
return join(getPackageDir(), "package.json");
|
|
346
|
+
}
|
|
347
|
+
/** Get path to README.md */
|
|
348
|
+
export function getReadmePath() {
|
|
349
|
+
return resolve(join(getPackageDir(), "README.md"));
|
|
350
|
+
}
|
|
351
|
+
/** Get path to docs directory */
|
|
352
|
+
export function getDocsPath() {
|
|
353
|
+
return resolve(join(getPackageDir(), "docs"));
|
|
354
|
+
}
|
|
355
|
+
/** Get path to examples directory */
|
|
356
|
+
export function getExamplesPath() {
|
|
357
|
+
return resolve(join(getPackageDir(), "examples"));
|
|
358
|
+
}
|
|
359
|
+
/** Get path to CHANGELOG.md */
|
|
360
|
+
export function getChangelogPath() {
|
|
361
|
+
return resolve(join(getPackageDir(), "CHANGELOG.md"));
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Get path to built-in interactive assets directory.
|
|
365
|
+
* - For Bun binary: assets/ next to executable
|
|
366
|
+
* - For Node.js (dist/): dist/modes/interactive/assets/
|
|
367
|
+
* - For tsx (src/): src/modes/interactive/assets/
|
|
368
|
+
*/
|
|
369
|
+
export function getInteractiveAssetsDir() {
|
|
370
|
+
if (isBunBinary) {
|
|
371
|
+
return join(getPackageDir(), "assets");
|
|
372
|
+
}
|
|
373
|
+
const packageDir = getPackageDir();
|
|
374
|
+
const srcOrDist = existsSync(join(packageDir, "src")) ? "src" : "dist";
|
|
375
|
+
return join(packageDir, srcOrDist, "modes", "interactive", "assets");
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Resolve a bundled subdirectory shipped with the package (defaults/extensions/themes).
|
|
379
|
+
* - For Bun binary: <dir>/ next to executable
|
|
380
|
+
* - For Node.js (dist/): dist/<dir>/
|
|
381
|
+
* - For tsx (src/): src/<dir>/
|
|
382
|
+
*/
|
|
383
|
+
function getBundledSubdir(name) {
|
|
384
|
+
if (isBunBinary) {
|
|
385
|
+
return join(getPackageDir(), name);
|
|
386
|
+
}
|
|
387
|
+
const packageDir = getPackageDir();
|
|
388
|
+
const srcOrDist = existsSync(join(packageDir, "src")) ? "src" : "dist";
|
|
389
|
+
return join(packageDir, srcOrDist, name);
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Get path to bundled default config directory (shipped with package).
|
|
393
|
+
* Holds seed settings.json and models.json copied to ~/.selesai/agent on first run.
|
|
394
|
+
*/
|
|
395
|
+
export function getBundledDefaultsDir() {
|
|
396
|
+
return getBundledSubdir("defaults");
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Get path to bundled built-in extensions directory (shipped with package).
|
|
400
|
+
* Loaded directly via additionalExtensionPaths at boot (not copied into the
|
|
401
|
+
* user agent dir) — same hook as CLI --extension. .ts ships as-is (jiti loads it).
|
|
402
|
+
* - For Bun binary: extensions/ next to executable
|
|
403
|
+
* - For Node.js (dist/): dist/extensions/
|
|
404
|
+
* - For tsx (src/): src/extensions/
|
|
405
|
+
*/
|
|
406
|
+
export function getBundledExtensionsDir() {
|
|
407
|
+
return getBundledSubdir("extensions");
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Get path to bundled built-in themes directory (shipped with package).
|
|
411
|
+
* Loaded directly via additionalThemePaths at boot.
|
|
412
|
+
*/
|
|
413
|
+
export function getBundledThemesDir() {
|
|
414
|
+
return getBundledSubdir("themes");
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Get path to bundled built-in skills directory (shipped with package).
|
|
418
|
+
* Loaded directly via additionalSkillPaths at boot.
|
|
419
|
+
*/
|
|
420
|
+
export function getBundledSkillsDir() {
|
|
421
|
+
return getBundledSubdir("skills");
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Get path to bundled built-in agent personas directory (shipped with package).
|
|
425
|
+
* Loaded directly via additionalAgentPaths at boot.
|
|
426
|
+
*/
|
|
427
|
+
export function getBundledAgentsDir() {
|
|
428
|
+
return getBundledSubdir("agents");
|
|
429
|
+
}
|
|
430
|
+
/** Get path to a bundled interactive asset */
|
|
431
|
+
export function getBundledInteractiveAssetPath(name) {
|
|
432
|
+
return join(getInteractiveAssetsDir(), name);
|
|
433
|
+
}
|
|
434
|
+
let pkg = {};
|
|
435
|
+
try {
|
|
436
|
+
pkg = JSON.parse(readFileSync(getPackageJsonPath(), "utf-8"));
|
|
437
|
+
}
|
|
438
|
+
catch (e) {
|
|
439
|
+
const err = e;
|
|
440
|
+
if (err.code !== "ENOENT")
|
|
441
|
+
throw e;
|
|
442
|
+
}
|
|
443
|
+
const piConfigName = pkg.piConfig?.name;
|
|
444
|
+
export const PACKAGE_NAME = pkg.name || "@earendil-works/pi-coding-agent";
|
|
445
|
+
export const APP_NAME = piConfigName || "pi";
|
|
446
|
+
export const APP_TITLE = piConfigName ? APP_NAME : "π";
|
|
447
|
+
export const CONFIG_DIR_NAME = pkg.piConfig?.configDir || ".pi";
|
|
448
|
+
export const VERSION = pkg.version || "0.0.0";
|
|
449
|
+
// e.g., PI_CODING_AGENT_DIR or TAU_CODING_AGENT_DIR
|
|
450
|
+
export const ENV_AGENT_DIR = `${APP_NAME.toUpperCase()}_CODING_AGENT_DIR`;
|
|
451
|
+
export const ENV_SESSION_DIR = `${APP_NAME.toUpperCase()}_CODING_AGENT_SESSION_DIR`;
|
|
452
|
+
export function expandTildePath(path) {
|
|
453
|
+
return normalizePath(path);
|
|
454
|
+
}
|
|
455
|
+
const DEFAULT_SHARE_VIEWER_URL = "https://pi.dev/session/";
|
|
456
|
+
/** Get the share viewer URL for a gist ID */
|
|
457
|
+
export function getShareViewerUrl(gistId) {
|
|
458
|
+
const baseUrl = process.env.PI_SHARE_VIEWER_URL || DEFAULT_SHARE_VIEWER_URL;
|
|
459
|
+
return `${baseUrl}#${gistId}`;
|
|
460
|
+
}
|
|
461
|
+
// =============================================================================
|
|
462
|
+
// User Config Paths (~/.pi/agent/*)
|
|
463
|
+
// =============================================================================
|
|
464
|
+
/** Get the agent config directory (e.g., ~/.pi/agent/) */
|
|
465
|
+
export function getAgentDir() {
|
|
466
|
+
const envDir = process.env[ENV_AGENT_DIR];
|
|
467
|
+
if (envDir) {
|
|
468
|
+
return expandTildePath(envDir);
|
|
469
|
+
}
|
|
470
|
+
return join(homedir(), CONFIG_DIR_NAME, "agent");
|
|
471
|
+
}
|
|
472
|
+
/** Get path to user's custom themes directory */
|
|
473
|
+
export function getCustomThemesDir() {
|
|
474
|
+
return join(getAgentDir(), "themes");
|
|
475
|
+
}
|
|
476
|
+
/** Get path to models.json */
|
|
477
|
+
export function getModelsPath() {
|
|
478
|
+
return join(getAgentDir(), "models.json");
|
|
479
|
+
}
|
|
480
|
+
/** Get path to auth.json */
|
|
481
|
+
export function getAuthPath() {
|
|
482
|
+
return join(getAgentDir(), "auth.json");
|
|
483
|
+
}
|
|
484
|
+
/** Get path to settings.json */
|
|
485
|
+
export function getSettingsPath() {
|
|
486
|
+
return join(getAgentDir(), "settings.json");
|
|
487
|
+
}
|
|
488
|
+
/** Get path to tools directory */
|
|
489
|
+
export function getToolsDir() {
|
|
490
|
+
return join(getAgentDir(), "tools");
|
|
491
|
+
}
|
|
492
|
+
/** Get path to managed binaries directory (fd, rg) */
|
|
493
|
+
export function getBinDir() {
|
|
494
|
+
return join(getAgentDir(), "bin");
|
|
495
|
+
}
|
|
496
|
+
/** Get path to prompt templates directory */
|
|
497
|
+
export function getPromptsDir() {
|
|
498
|
+
return join(getAgentDir(), "prompts");
|
|
499
|
+
}
|
|
500
|
+
/** Get path to sessions directory */
|
|
501
|
+
export function getSessionsDir() {
|
|
502
|
+
return join(getAgentDir(), "sessions");
|
|
503
|
+
}
|
|
504
|
+
/** Get path to debug log file */
|
|
505
|
+
export function getDebugLogPath() {
|
|
506
|
+
return join(getAgentDir(), `${APP_NAME}-debug.log`);
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Marker file written once first-time onboarding completes. Decouples the
|
|
510
|
+
* first-run dialog gate from settings.json existence so that bootstrapping a
|
|
511
|
+
* bundled default settings.json does not suppress the dialog.
|
|
512
|
+
*/
|
|
513
|
+
export function getFirstRunMarkerPath(agentDir = getAgentDir()) {
|
|
514
|
+
return join(agentDir, ".firstRunComplete");
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Mark first-run onboarding as complete. Safe to call repeatedly.
|
|
518
|
+
*/
|
|
519
|
+
export function markFirstRunComplete(agentDir = getAgentDir()) {
|
|
520
|
+
mkdirSync(agentDir, { recursive: true, mode: 0o700 });
|
|
521
|
+
writeFileSync(getFirstRunMarkerPath(agentDir), "1", { mode: 0o600 });
|
|
522
|
+
}
|
|
523
|
+
// =============================================================================
|
|
524
|
+
// Agent Dir Bootstrap (first-run seeding)
|
|
525
|
+
// =============================================================================
|
|
526
|
+
/** Subdirectories created under the agent dir on first run. */
|
|
527
|
+
const AGENT_SUBDIRS = [
|
|
528
|
+
"themes",
|
|
529
|
+
"tools",
|
|
530
|
+
"bin",
|
|
531
|
+
"prompts",
|
|
532
|
+
"sessions",
|
|
533
|
+
"extensions",
|
|
534
|
+
"skills",
|
|
535
|
+
];
|
|
536
|
+
/**
|
|
537
|
+
* Ensure the agent dir and standard subdirs exist (mode 0o700 for privacy).
|
|
538
|
+
* Safe to call on every startup; no-op when dirs already exist.
|
|
539
|
+
*/
|
|
540
|
+
export function ensureAgentDir(agentDir = getAgentDir()) {
|
|
541
|
+
mkdirSync(agentDir, { recursive: true, mode: 0o700 });
|
|
542
|
+
for (const sub of AGENT_SUBDIRS) {
|
|
543
|
+
mkdirSync(join(agentDir, sub), { recursive: true, mode: 0o700 });
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* Seed a default config file from the bundled defaults dir if it does not yet
|
|
548
|
+
* exist. Never overwrites an existing user file. Returns the destination path
|
|
549
|
+
* when a seed was written, undefined when the file already existed or the
|
|
550
|
+
* bundled source is missing.
|
|
551
|
+
*/
|
|
552
|
+
export function seedDefaultConfigFile(destPath, bundledName, bundledDefaultsDir = getBundledDefaultsDir()) {
|
|
553
|
+
if (existsSync(destPath))
|
|
554
|
+
return undefined;
|
|
555
|
+
const source = join(bundledDefaultsDir, bundledName);
|
|
556
|
+
if (!existsSync(source))
|
|
557
|
+
return undefined;
|
|
558
|
+
mkdirSync(dirname(destPath), { recursive: true, mode: 0o700 });
|
|
559
|
+
copyFileSync(source, destPath);
|
|
560
|
+
try {
|
|
561
|
+
chmodSync(destPath, 0o600);
|
|
562
|
+
}
|
|
563
|
+
catch {
|
|
564
|
+
// chmod is best-effort (no-op on platforms that don't support it).
|
|
565
|
+
}
|
|
566
|
+
return destPath;
|
|
567
|
+
}
|
|
568
|
+
/**
|
|
569
|
+
* Run full first-run bootstrap for the agent dir: ensure directories and seed
|
|
570
|
+
* settings.json + models.json from bundled defaults. Idempotent — safe on every
|
|
571
|
+
* startup. Bundled own extensions/themes are loaded directly at boot via
|
|
572
|
+
* additionalExtensionPaths/additionalThemePaths (see main.ts), not copied here.
|
|
573
|
+
*/
|
|
574
|
+
export function bootstrapAgentDir(agentDir = getAgentDir()) {
|
|
575
|
+
ensureAgentDir(agentDir);
|
|
576
|
+
seedDefaultConfigFile(join(agentDir, "settings.json"), "settings.json");
|
|
577
|
+
seedDefaultConfigFile(join(agentDir, "models.json"), "models.json");
|
|
578
|
+
}
|
|
579
|
+
//# sourceMappingURL=config.js.map
|