@phi-code-admin/phi-code 0.56.3
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 +2994 -0
- package/README.md +567 -0
- package/dist/cli/args.d.ts +48 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +299 -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 +16 -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 +614 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +2475 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/auth-storage.d.ts +134 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +415 -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 +610 -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 +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/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 +63 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -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 +426 -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 +640 -0
- package/dist/core/extensions/runner.js.map +1 -0
- package/dist/core/extensions/types.d.ts +1017 -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 +151 -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 +114 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +548 -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 +462 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/package-manager.d.ts +156 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +1442 -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 +633 -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 +235 -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 +1094 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/settings-manager.d.ts +232 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +682 -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 +22 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/system-prompt.d.ts +28 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +159 -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 +73 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +61 -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/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 +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -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 +661 -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 +329 -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 +92 -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 +156 -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 +48 -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 +42 -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 +43 -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 +470 -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 +28 -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 +63 -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 +74 -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 +138 -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 +20 -0
- package/dist/modes/interactive/components/dynamic-border.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 +105 -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 +55 -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 +71 -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 +196 -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 +139 -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 +259 -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 +92 -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 +271 -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 +825 -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 +295 -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 +34 -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 +45 -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 +44 -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 +46 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +77 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +773 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +70 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-selector.js +921 -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 +110 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +9 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message.js +27 -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 +329 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +3710 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -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 +404 -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 +251 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/extensions/phi/README.md +228 -0
- package/extensions/phi/benchmark.ts +490 -0
- package/extensions/phi/init.ts +331 -0
- package/extensions/phi/memory.ts +285 -0
- package/extensions/phi/orchestrator.ts +411 -0
- package/extensions/phi/skill-loader.ts +336 -0
- package/extensions/phi/smart-router.ts +290 -0
- package/extensions/phi/web-search.ts +284 -0
- package/package.json +101 -0
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator Extension - High-level project planning and task orchestration
|
|
3
|
+
*
|
|
4
|
+
* Provides tools to break down high-level project descriptions into structured
|
|
5
|
+
* specifications and actionable task lists. Helps manage complex projects by
|
|
6
|
+
* creating organized plans and tracking progress.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - /plan command for interactive planning
|
|
10
|
+
* - orchestrate tool callable by LLM
|
|
11
|
+
* - Automatic directory structure creation
|
|
12
|
+
* - Timestamped spec and todo files
|
|
13
|
+
* - Task status tracking (pending/done)
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* 1. Copy to packages/coding-agent/extensions/phi/orchestrator.ts
|
|
17
|
+
* 2. Use /plan <description> to create project plans
|
|
18
|
+
* 3. Plans are stored in .phi/plans/ directory
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { Type } from "@sinclair/typebox";
|
|
22
|
+
import type { ExtensionAPI } from "phi-code";
|
|
23
|
+
import { writeFile, mkdir, readdir, readFile } from "node:fs/promises";
|
|
24
|
+
import { join } from "node:path";
|
|
25
|
+
|
|
26
|
+
interface TaskItem {
|
|
27
|
+
id: number;
|
|
28
|
+
description: string;
|
|
29
|
+
status: "pending" | "done";
|
|
30
|
+
subtasks?: TaskItem[];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
interface ProjectPlan {
|
|
34
|
+
title: string;
|
|
35
|
+
description: string;
|
|
36
|
+
timestamp: string;
|
|
37
|
+
goals: string[];
|
|
38
|
+
requirements: string[];
|
|
39
|
+
architecture: string[];
|
|
40
|
+
tasks: TaskItem[];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export default function orchestratorExtension(pi: ExtensionAPI) {
|
|
44
|
+
const plansDir = join(process.cwd(), ".phi", "plans");
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Ensure plans directory exists
|
|
48
|
+
*/
|
|
49
|
+
async function ensurePlansDirectory() {
|
|
50
|
+
try {
|
|
51
|
+
await mkdir(plansDir, { recursive: true });
|
|
52
|
+
} catch (error) {
|
|
53
|
+
console.warn("Failed to create plans directory:", error);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Generate timestamp for file naming
|
|
59
|
+
*/
|
|
60
|
+
function getTimestamp(): string {
|
|
61
|
+
return new Date().toISOString().replace(/[:.]/g, "-").replace("T", "_").slice(0, 19);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Analyze description and create structured project plan
|
|
66
|
+
*/
|
|
67
|
+
function analyzeProject(description: string): ProjectPlan {
|
|
68
|
+
const timestamp = new Date().toISOString();
|
|
69
|
+
|
|
70
|
+
// Extract title from first sentence or use generic title
|
|
71
|
+
let title = "Project Plan";
|
|
72
|
+
const firstSentence = description.split('.')[0].trim();
|
|
73
|
+
if (firstSentence.length > 10 && firstSentence.length < 100) {
|
|
74
|
+
title = firstSentence;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Basic analysis to extract goals, requirements, and tasks
|
|
78
|
+
const lines = description.split('\n').filter(line => line.trim());
|
|
79
|
+
const goals: string[] = [];
|
|
80
|
+
const requirements: string[] = [];
|
|
81
|
+
const architecture: string[] = [];
|
|
82
|
+
const tasks: TaskItem[] = [];
|
|
83
|
+
|
|
84
|
+
// Simple pattern matching for structure
|
|
85
|
+
let taskId = 1;
|
|
86
|
+
for (const line of lines) {
|
|
87
|
+
const trimmed = line.trim();
|
|
88
|
+
|
|
89
|
+
// Look for action words to identify tasks
|
|
90
|
+
if (trimmed.match(/^(create|build|implement|develop|add|setup|configure|install|write|design|test)/i)) {
|
|
91
|
+
tasks.push({
|
|
92
|
+
id: taskId++,
|
|
93
|
+
description: trimmed,
|
|
94
|
+
status: "pending"
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
// Look for requirements keywords
|
|
98
|
+
else if (trimmed.match(/(require|need|must|should have|depend)/i)) {
|
|
99
|
+
requirements.push(trimmed);
|
|
100
|
+
}
|
|
101
|
+
// Look for architecture/tech keywords
|
|
102
|
+
else if (trimmed.match(/(using|with|technology|framework|database|api|service)/i)) {
|
|
103
|
+
architecture.push(trimmed);
|
|
104
|
+
}
|
|
105
|
+
// Everything else could be goals
|
|
106
|
+
else if (trimmed.length > 10) {
|
|
107
|
+
goals.push(trimmed);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// If no explicit tasks found, break down description into logical steps
|
|
112
|
+
if (tasks.length === 0) {
|
|
113
|
+
const generalTasks = [
|
|
114
|
+
"Analyze requirements and define scope",
|
|
115
|
+
"Design system architecture",
|
|
116
|
+
"Set up development environment",
|
|
117
|
+
"Implement core functionality",
|
|
118
|
+
"Add tests and documentation",
|
|
119
|
+
"Deploy and validate solution"
|
|
120
|
+
];
|
|
121
|
+
|
|
122
|
+
generalTasks.forEach((task, index) => {
|
|
123
|
+
tasks.push({
|
|
124
|
+
id: index + 1,
|
|
125
|
+
description: task,
|
|
126
|
+
status: "pending"
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
return {
|
|
132
|
+
title,
|
|
133
|
+
description,
|
|
134
|
+
timestamp,
|
|
135
|
+
goals: goals.length > 0 ? goals : [description],
|
|
136
|
+
requirements,
|
|
137
|
+
architecture,
|
|
138
|
+
tasks
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Generate specification markdown content
|
|
144
|
+
*/
|
|
145
|
+
function generateSpecContent(plan: ProjectPlan): string {
|
|
146
|
+
const timestamp = new Date(plan.timestamp).toLocaleString();
|
|
147
|
+
|
|
148
|
+
return `# ${plan.title}
|
|
149
|
+
|
|
150
|
+
**Created:** ${timestamp}
|
|
151
|
+
|
|
152
|
+
## Description
|
|
153
|
+
|
|
154
|
+
${plan.description}
|
|
155
|
+
|
|
156
|
+
## Goals
|
|
157
|
+
|
|
158
|
+
${plan.goals.map(goal => `- ${goal}`).join('\n')}
|
|
159
|
+
|
|
160
|
+
## Requirements
|
|
161
|
+
|
|
162
|
+
${plan.requirements.length > 0
|
|
163
|
+
? plan.requirements.map(req => `- ${req}`).join('\n')
|
|
164
|
+
: '- To be defined based on project analysis'
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
## Architecture
|
|
168
|
+
|
|
169
|
+
${plan.architecture.length > 0
|
|
170
|
+
? plan.architecture.map(arch => `- ${arch}`).join('\n')
|
|
171
|
+
: '- To be designed during implementation planning'
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
## Implementation Notes
|
|
175
|
+
|
|
176
|
+
- This specification was generated automatically from the project description
|
|
177
|
+
- Review and refine requirements based on detailed analysis
|
|
178
|
+
- Update architecture section with technical decisions
|
|
179
|
+
- Use the corresponding TODO file to track progress
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
*Generated by Phi Code Orchestrator*
|
|
184
|
+
`;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Generate TODO markdown content
|
|
189
|
+
*/
|
|
190
|
+
function generateTodoContent(plan: ProjectPlan): string {
|
|
191
|
+
const timestamp = new Date(plan.timestamp).toLocaleString();
|
|
192
|
+
|
|
193
|
+
let todoContent = `# TODO: ${plan.title}
|
|
194
|
+
|
|
195
|
+
**Created:** ${timestamp}
|
|
196
|
+
|
|
197
|
+
## Tasks
|
|
198
|
+
|
|
199
|
+
`;
|
|
200
|
+
|
|
201
|
+
plan.tasks.forEach(task => {
|
|
202
|
+
const checkbox = task.status === "done" ? "[x]" : "[ ]";
|
|
203
|
+
todoContent += `${checkbox} **Task ${task.id}:** ${task.description}\n`;
|
|
204
|
+
|
|
205
|
+
if (task.subtasks) {
|
|
206
|
+
task.subtasks.forEach(subtask => {
|
|
207
|
+
const subCheckbox = subtask.status === "done" ? "[x]" : "[ ]";
|
|
208
|
+
todoContent += ` ${subCheckbox} ${subtask.description}\n`;
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
todoContent += '\n';
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
todoContent += `
|
|
215
|
+
## Progress
|
|
216
|
+
|
|
217
|
+
- Total tasks: ${plan.tasks.length}
|
|
218
|
+
- Completed: ${plan.tasks.filter(t => t.status === "done").length}
|
|
219
|
+
- Remaining: ${plan.tasks.filter(t => t.status === "pending").length}
|
|
220
|
+
|
|
221
|
+
## Notes
|
|
222
|
+
|
|
223
|
+
- Update task status by changing [ ] to [x] when completed
|
|
224
|
+
- Add subtasks under main tasks as needed
|
|
225
|
+
- Use this file to track detailed progress
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
*Generated by Phi Code Orchestrator*
|
|
230
|
+
`;
|
|
231
|
+
|
|
232
|
+
return todoContent;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Create project plan files
|
|
237
|
+
*/
|
|
238
|
+
async function createPlanFiles(description: string): Promise<{ specFile: string; todoFile: string; plan: ProjectPlan }> {
|
|
239
|
+
await ensurePlansDirectory();
|
|
240
|
+
|
|
241
|
+
const plan = analyzeProject(description);
|
|
242
|
+
const timestamp = getTimestamp();
|
|
243
|
+
|
|
244
|
+
const specFilename = `spec-${timestamp}.md`;
|
|
245
|
+
const todoFilename = `todo-${timestamp}.md`;
|
|
246
|
+
|
|
247
|
+
const specPath = join(plansDir, specFilename);
|
|
248
|
+
const todoPath = join(plansDir, todoFilename);
|
|
249
|
+
|
|
250
|
+
const specContent = generateSpecContent(plan);
|
|
251
|
+
const todoContent = generateTodoContent(plan);
|
|
252
|
+
|
|
253
|
+
await writeFile(specPath, specContent, 'utf-8');
|
|
254
|
+
await writeFile(todoPath, todoContent, 'utf-8');
|
|
255
|
+
|
|
256
|
+
return {
|
|
257
|
+
specFile: specFilename,
|
|
258
|
+
todoFile: todoFilename,
|
|
259
|
+
plan
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Orchestrate tool - Create project plans programmatically
|
|
265
|
+
*/
|
|
266
|
+
pi.registerTool({
|
|
267
|
+
name: "orchestrate",
|
|
268
|
+
label: "Project Orchestrator",
|
|
269
|
+
description: "Break down high-level project descriptions into structured specifications and task lists",
|
|
270
|
+
parameters: Type.Object({
|
|
271
|
+
description: Type.String({
|
|
272
|
+
description: "High-level project description to analyze and plan"
|
|
273
|
+
}),
|
|
274
|
+
}),
|
|
275
|
+
|
|
276
|
+
async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
|
|
277
|
+
const { description } = params as { description: string };
|
|
278
|
+
|
|
279
|
+
try {
|
|
280
|
+
const result = await createPlanFiles(description);
|
|
281
|
+
|
|
282
|
+
const summary = `**Project orchestration completed!**
|
|
283
|
+
|
|
284
|
+
**Generated files:**
|
|
285
|
+
- Specification: ${result.specFile}
|
|
286
|
+
- Task list: ${result.todoFile}
|
|
287
|
+
|
|
288
|
+
**Project:** ${result.plan.title}
|
|
289
|
+
**Tasks created:** ${result.plan.tasks.length}
|
|
290
|
+
**Goals identified:** ${result.plan.goals.length}
|
|
291
|
+
**Requirements:** ${result.plan.requirements.length}
|
|
292
|
+
|
|
293
|
+
**Next steps:**
|
|
294
|
+
1. Review and refine the specification
|
|
295
|
+
2. Update task details in the TODO file
|
|
296
|
+
3. Begin implementation following the task order
|
|
297
|
+
4. Mark tasks as completed by updating the TODO file
|
|
298
|
+
|
|
299
|
+
Files are saved in .phi/plans/ directory.`;
|
|
300
|
+
|
|
301
|
+
return {
|
|
302
|
+
content: [{ type: "text", text: summary }],
|
|
303
|
+
details: {
|
|
304
|
+
specFile: result.specFile,
|
|
305
|
+
todoFile: result.todoFile,
|
|
306
|
+
taskCount: result.plan.tasks.length,
|
|
307
|
+
project: result.plan.title
|
|
308
|
+
}
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
} catch (error) {
|
|
312
|
+
return {
|
|
313
|
+
content: [{ type: "text", text: `Orchestration failed: ${error}` }],
|
|
314
|
+
details: { error: String(error) }
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* /plan command - Interactive project planning
|
|
322
|
+
*/
|
|
323
|
+
pi.registerCommand("plan", {
|
|
324
|
+
description: "Create a structured project plan from a description",
|
|
325
|
+
handler: async (args, ctx) => {
|
|
326
|
+
const description = args.trim();
|
|
327
|
+
|
|
328
|
+
if (!description) {
|
|
329
|
+
ctx.ui.notify("Usage: /plan <project description>", "warning");
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
try {
|
|
334
|
+
ctx.ui.notify("Creating project plan...", "info");
|
|
335
|
+
|
|
336
|
+
const result = await createPlanFiles(description);
|
|
337
|
+
|
|
338
|
+
const message = `✅ Project plan created!
|
|
339
|
+
|
|
340
|
+
📋 **${result.plan.title}**
|
|
341
|
+
📁 Spec: ${result.specFile}
|
|
342
|
+
📋 TODO: ${result.todoFile}
|
|
343
|
+
🎯 ${result.plan.tasks.length} tasks identified
|
|
344
|
+
|
|
345
|
+
Open .phi/plans/ to review your project files.`;
|
|
346
|
+
|
|
347
|
+
ctx.ui.notify(message, "info");
|
|
348
|
+
|
|
349
|
+
} catch (error) {
|
|
350
|
+
ctx.ui.notify(`Failed to create plan: ${error}`, "error");
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
});
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* /plans command - List existing plans
|
|
357
|
+
*/
|
|
358
|
+
pi.registerCommand("plans", {
|
|
359
|
+
description: "List existing project plans",
|
|
360
|
+
handler: async (_args, ctx) => {
|
|
361
|
+
try {
|
|
362
|
+
const files = await readdir(plansDir);
|
|
363
|
+
const specFiles = files.filter(f => f.startsWith('spec-') && f.endsWith('.md'));
|
|
364
|
+
const todoFiles = files.filter(f => f.startsWith('todo-') && f.endsWith('.md'));
|
|
365
|
+
|
|
366
|
+
if (specFiles.length === 0) {
|
|
367
|
+
ctx.ui.notify("No project plans found. Use /plan <description> to create one.", "info");
|
|
368
|
+
return;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
let message = `📁 **Project Plans** (${specFiles.length} found)\n\n`;
|
|
372
|
+
|
|
373
|
+
// Group by timestamp
|
|
374
|
+
const planPairs: Array<{ spec: string; todo: string; timestamp: string }> = [];
|
|
375
|
+
|
|
376
|
+
for (const specFile of specFiles) {
|
|
377
|
+
const timestamp = specFile.replace('spec-', '').replace('.md', '');
|
|
378
|
+
const todoFile = `todo-${timestamp}.md`;
|
|
379
|
+
|
|
380
|
+
if (todoFiles.includes(todoFile)) {
|
|
381
|
+
planPairs.push({ spec: specFile, todo: todoFile, timestamp });
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
planPairs.sort((a, b) => b.timestamp.localeCompare(a.timestamp));
|
|
386
|
+
|
|
387
|
+
for (const pair of planPairs) {
|
|
388
|
+
// Try to read spec title
|
|
389
|
+
try {
|
|
390
|
+
const specContent = await readFile(join(plansDir, pair.spec), 'utf-8');
|
|
391
|
+
const titleMatch = specContent.match(/^# (.+)$/m);
|
|
392
|
+
const title = titleMatch ? titleMatch[1] : pair.spec;
|
|
393
|
+
|
|
394
|
+
const date = pair.timestamp.replace(/_/g, ' ').replace(/-/g, ':');
|
|
395
|
+
message += `📋 **${title}**\n`;
|
|
396
|
+
message += ` 📄 ${pair.spec}\n`;
|
|
397
|
+
message += ` ✅ ${pair.todo}\n`;
|
|
398
|
+
message += ` 🕒 ${date}\n\n`;
|
|
399
|
+
} catch {
|
|
400
|
+
message += `📋 ${pair.spec} / ${pair.todo}\n\n`;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
ctx.ui.notify(message, "info");
|
|
405
|
+
|
|
406
|
+
} catch (error) {
|
|
407
|
+
ctx.ui.notify(`Failed to list plans: ${error}`, "error");
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
});
|
|
411
|
+
}
|