indusagi-coding-agent 0.1.38 → 0.1.40
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 +22 -7
- package/{LICENSE.md → LICENSE} +0 -1
- package/README.md +2 -4
- package/dist/cli/args.d.ts +6 -128
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +277 -472
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts +9 -62
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +31 -146
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/file-processor.d.ts +1 -69
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +36 -267
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/list-models.d.ts +0 -60
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +53 -246
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/session-picker.d.ts +1 -72
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +57 -231
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/cli.js +25 -31
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +0 -42
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +62 -97
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +26 -2
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +78 -66
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +4 -95
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +233 -288
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts +0 -323
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +126 -359
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +3 -3
- package/dist/core/compaction/branch-summarization.js +16 -16
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +3 -3
- package/dist/core/compaction/compaction.js +40 -40
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/index.d.ts +32 -4
- package/dist/core/compaction/index.d.ts.map +1 -1
- package/dist/core/compaction/index.js +30 -4
- package/dist/core/compaction/index.js.map +1 -1
- package/dist/core/compaction/utils.d.ts +1 -19
- package/dist/core/compaction/utils.d.ts.map +1 -1
- package/dist/core/compaction/utils.js +92 -113
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/discover-packages.d.ts +0 -4
- package/dist/core/discover-packages.d.ts.map +1 -1
- package/dist/core/discover-packages.js +41 -44
- package/dist/core/discover-packages.js.map +1 -1
- package/dist/core/event-bus.d.ts +1 -147
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js +17 -106
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/exec.d.ts +0 -16
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js +18 -27
- package/dist/core/exec.js.map +1 -1
- package/dist/core/export-html/ansi-to-html.ts +262 -0
- package/dist/core/export-html/index.ts +433 -0
- package/dist/core/export-html/template.html +48 -26
- package/dist/core/export-html/tool-renderer.d.ts +0 -21
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js +35 -51
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/export-html/tool-renderer.ts +80 -0
- package/dist/core/export-html/vendor/highlight.min.js +401 -370
- package/dist/core/export-html/vendor/marked.min.js +71 -3
- package/dist/core/extensions/index.d.ts +7 -4
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js +17 -3
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +0 -6
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +60 -56
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +48 -80
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +50 -23
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/footer-data-provider.d.ts +2 -15
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +21 -33
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/hooks/loader.js +2 -2
- package/dist/core/hooks/loader.js.map +1 -1
- package/dist/core/index.d.ts +29 -10
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +29 -10
- package/dist/core/index.js.map +1 -1
- package/dist/core/keybindings.d.ts +2 -179
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +64 -238
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-registry.d.ts +26 -181
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +228 -407
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +0 -139
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +34 -215
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/package-manager.d.ts +25 -57
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +326 -964
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/prompt-templates.d.ts +2 -34
- package/dist/core/prompt-templates.d.ts.map +1 -1
- package/dist/core/prompt-templates.js +122 -170
- package/dist/core/prompt-templates.js.map +1 -1
- package/dist/core/resource-loader.d.ts +19 -12
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +353 -467
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +2 -61
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +184 -252
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +447 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +1176 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +9 -12
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +170 -398
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts +2 -27
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +149 -212
- package/dist/core/skills.js.map +1 -1
- package/dist/core/subagents.d.ts +2 -2
- package/dist/core/subagents.d.ts.map +1 -1
- package/dist/core/subagents.js +21 -14
- package/dist/core/subagents.js.map +1 -1
- package/dist/core/system-prompt.d.ts +0 -11
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +168 -139
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/timings.d.ts +1 -4
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js +34 -18
- package/dist/core/timings.js.map +1 -1
- package/dist/core/todo-store.d.ts +20 -0
- package/dist/core/todo-store.d.ts.map +1 -0
- package/dist/core/todo-store.js +60 -0
- package/dist/core/todo-store.js.map +1 -0
- package/dist/core/tools/bash.d.ts +2 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +2 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/bg-process.d.ts +1 -6
- package/dist/core/tools/bg-process.d.ts.map +1 -1
- package/dist/core/tools/bg-process.js +4 -18
- package/dist/core/tools/bg-process.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts +9 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +2 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +2 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +2 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/find.d.ts +2 -0
- package/dist/core/tools/find.d.ts.map +1 -0
- package/dist/core/tools/find.js +2 -0
- package/dist/core/tools/find.js.map +1 -0
- package/dist/core/tools/grep.d.ts +2 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +2 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +8 -2
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/ls.d.ts +2 -0
- package/dist/core/tools/ls.d.ts.map +1 -0
- package/dist/core/tools/ls.js +2 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/memory.d.ts +50 -1
- package/dist/core/tools/memory.d.ts.map +1 -1
- package/dist/core/tools/memory.js +11 -7
- package/dist/core/tools/memory.js.map +1 -1
- package/dist/core/tools/path-utils.d.ts +2 -0
- package/dist/core/tools/path-utils.d.ts.map +1 -0
- package/dist/core/tools/path-utils.js +2 -0
- package/dist/core/tools/path-utils.js.map +1 -0
- package/dist/core/tools/read.d.ts +2 -0
- package/dist/core/tools/read.d.ts.map +1 -0
- package/dist/core/tools/read.js +2 -0
- package/dist/core/tools/read.js.map +1 -0
- package/dist/core/tools/registry.d.ts +0 -15
- package/dist/core/tools/registry.d.ts.map +1 -1
- package/dist/core/tools/registry.js +13 -37
- package/dist/core/tools/registry.js.map +1 -1
- package/dist/core/tools/task.d.ts +17 -23
- package/dist/core/tools/task.d.ts.map +1 -1
- package/dist/core/tools/task.js +43 -82
- package/dist/core/tools/task.js.map +1 -1
- package/dist/core/tools/todo.d.ts +17 -20
- package/dist/core/tools/todo.d.ts.map +1 -1
- package/dist/core/tools/todo.js +79 -58
- package/dist/core/tools/todo.js.map +1 -1
- package/dist/core/tools/truncate.d.ts +2 -0
- package/dist/core/tools/truncate.d.ts.map +1 -0
- package/dist/core/tools/truncate.js +2 -0
- package/dist/core/tools/truncate.js.map +1 -0
- package/dist/core/tools/webfetch.d.ts +2 -0
- package/dist/core/tools/webfetch.d.ts.map +1 -0
- package/dist/core/tools/webfetch.js +2 -0
- package/dist/core/tools/webfetch.js.map +1 -0
- package/dist/core/tools/websearch.d.ts +2 -0
- package/dist/core/tools/websearch.d.ts.map +1 -0
- package/dist/core/tools/websearch.js +2 -0
- package/dist/core/tools/websearch.js.map +1 -0
- package/dist/core/tools/write.d.ts +2 -0
- package/dist/core/tools/write.d.ts.map +1 -0
- package/dist/core/tools/write.js +2 -0
- package/dist/core/tools/write.js.map +1 -0
- package/dist/index.d.ts +35 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -41
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +237 -225
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts +0 -25
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +129 -180
- package/dist/migrations.js.map +1 -1
- package/dist/modes/index.d.ts +13 -6
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js +11 -5
- package/dist/modes/index.js.map +1 -1
- package/dist/modes/interactive/components/armin.d.ts +8 -23
- package/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/dist/modes/interactive/components/armin.js +217 -266
- package/dist/modes/interactive/components/armin.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +2 -168
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +61 -216
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts +6 -313
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +86 -403
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts +1 -3
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js +59 -29
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts +3 -3
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +30 -17
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +3 -3
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +35 -18
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +60 -68
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts +2 -6
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.js +32 -18
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts +1 -5
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +45 -37
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts +5 -6
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +43 -53
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/diff.d.ts +0 -3
- package/dist/modes/interactive/components/diff.d.ts.map +1 -1
- package/dist/modes/interactive/components/diff.js +101 -108
- package/dist/modes/interactive/components/diff.js.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts +7 -2
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.js +24 -4
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts +5 -9
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +43 -46
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts +4 -9
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.js +45 -28
- package/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts +7 -12
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js +54 -32
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +2 -11
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +135 -183
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +79 -30
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +73 -31
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -18
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js +24 -31
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +11 -24
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +89 -86
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +15 -19
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +104 -157
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +5 -5
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +12 -22
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +111 -132
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts +3 -3
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js +92 -103
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +28 -39
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +111 -203
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js +17 -19
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +3 -3
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +29 -19
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts +2 -2
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js +20 -25
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +19 -20
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +12 -10
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +14 -8
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +53 -60
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts +3 -9
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js +57 -68
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.d.ts +0 -12
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.js +14 -22
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +6 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +118 -113
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +189 -39
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +8 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +88 -59
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +24 -46
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +75 -409
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js +21 -360
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/observability/core/config.d.ts +28 -0
- package/dist/observability/core/config.d.ts.map +1 -0
- package/dist/observability/core/config.js +150 -0
- package/dist/observability/core/config.js.map +1 -0
- package/dist/observability/core/event-bus.d.ts +15 -0
- package/dist/observability/core/event-bus.d.ts.map +1 -0
- package/dist/observability/core/event-bus.js +37 -0
- package/dist/observability/core/event-bus.js.map +1 -0
- package/dist/observability/core/index.d.ts +12 -0
- package/dist/observability/core/index.d.ts.map +1 -0
- package/dist/observability/core/index.js +14 -0
- package/dist/observability/core/index.js.map +1 -0
- package/dist/observability/core/observability.d.ts +63 -0
- package/dist/observability/core/observability.d.ts.map +1 -0
- package/dist/observability/core/observability.js +127 -0
- package/dist/observability/core/observability.js.map +1 -0
- package/dist/observability/core/span.d.ts +37 -0
- package/dist/observability/core/span.d.ts.map +1 -0
- package/dist/observability/core/span.js +90 -0
- package/dist/observability/core/span.js.map +1 -0
- package/dist/observability/core/tracer.d.ts +22 -0
- package/dist/observability/core/tracer.d.ts.map +1 -0
- package/dist/observability/core/tracer.js +79 -0
- package/dist/observability/core/tracer.js.map +1 -0
- package/dist/observability/core/types.d.ts +155 -0
- package/dist/observability/core/types.d.ts.map +1 -0
- package/dist/observability/core/types.js +38 -0
- package/dist/observability/core/types.js.map +1 -0
- package/dist/observability/exporters/base-exporter.d.ts +16 -0
- package/dist/observability/exporters/base-exporter.d.ts.map +1 -0
- package/dist/observability/exporters/base-exporter.js +26 -0
- package/dist/observability/exporters/base-exporter.js.map +1 -0
- package/dist/observability/exporters/console-exporter.d.ts +22 -0
- package/dist/observability/exporters/console-exporter.d.ts.map +1 -0
- package/dist/observability/exporters/console-exporter.js +80 -0
- package/dist/observability/exporters/console-exporter.js.map +1 -0
- package/dist/observability/exporters/file-exporter.d.ts +31 -0
- package/dist/observability/exporters/file-exporter.d.ts.map +1 -0
- package/dist/observability/exporters/file-exporter.js +120 -0
- package/dist/observability/exporters/file-exporter.js.map +1 -0
- package/dist/observability/exporters/index.d.ts +12 -0
- package/dist/observability/exporters/index.d.ts.map +1 -0
- package/dist/observability/exporters/index.js +11 -0
- package/dist/observability/exporters/index.js.map +1 -0
- package/dist/observability/exporters/langfuse-exporter.d.ts +27 -0
- package/dist/observability/exporters/langfuse-exporter.d.ts.map +1 -0
- package/dist/observability/exporters/langfuse-exporter.js +146 -0
- package/dist/observability/exporters/langfuse-exporter.js.map +1 -0
- package/dist/observability/exporters/sentry-exporter.d.ts +22 -0
- package/dist/observability/exporters/sentry-exporter.d.ts.map +1 -0
- package/dist/observability/exporters/sentry-exporter.js +121 -0
- package/dist/observability/exporters/sentry-exporter.js.map +1 -0
- package/dist/observability/index.d.ts +3 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +3 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/utils/changelog.d.ts +1 -2
- package/dist/utils/changelog.d.ts.map +1 -1
- package/dist/utils/changelog.js +53 -61
- package/dist/utils/changelog.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +77 -83
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +62 -49
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/image-convert.d.ts +6 -6
- package/dist/utils/image-convert.d.ts.map +1 -1
- package/dist/utils/image-convert.js +29 -23
- package/dist/utils/image-convert.js.map +1 -1
- package/dist/utils/image-resize.d.ts +0 -17
- package/dist/utils/image-resize.d.ts.map +1 -1
- package/dist/utils/image-resize.js +100 -138
- package/dist/utils/image-resize.js.map +1 -1
- package/dist/utils/mime.d.ts +1 -0
- package/dist/utils/mime.d.ts.map +1 -1
- package/dist/utils/mime.js +35 -15
- package/dist/utils/mime.js.map +1 -1
- package/dist/utils/photon.d.ts +4 -15
- package/dist/utils/photon.d.ts.map +1 -1
- package/dist/utils/photon.js +71 -60
- package/dist/utils/photon.js.map +1 -1
- package/dist/utils/shell.d.ts +4 -21
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +101 -124
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/sleep.d.ts +1 -1
- package/dist/utils/sleep.d.ts.map +1 -1
- package/dist/utils/sleep.js +32 -8
- package/dist/utils/sleep.js.map +1 -1
- package/dist/utils/tools-manager.d.ts +4 -2
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +96 -122
- package/dist/utils/tools-manager.js.map +1 -1
- package/docs/PI_MONO_MIT_REMOVAL_GUIDE.md +2132 -0
- package/docs/SAME_TO_SAME_PARITY_REPORT.md +312 -0
- package/examples/README.md +12 -0
- package/package.json +62 -88
- package/dist/modes/interactive/theme/dark.json +0 -85
- package/dist/modes/interactive/theme/light.json +0 -84
- package/dist/modes/interactive/theme/theme-schema.json +0 -335
- package/docs/FEATURES.md +0 -306
- package/docs/MCP.md +0 -341
- package/docs/MEMORY.md +0 -443
- package/examples/mcp-servers.example.json +0 -50
package/dist/utils/mime.js
CHANGED
|
@@ -1,26 +1,46 @@
|
|
|
1
1
|
import { open } from "node:fs/promises";
|
|
2
|
+
import { extname } from "node:path";
|
|
2
3
|
import { fileTypeFromBuffer } from "file-type";
|
|
3
|
-
const IMAGE_MIME_TYPES = new Set(["image/jpeg", "image/png", "image/gif", "image/webp"]);
|
|
4
4
|
const FILE_TYPE_SNIFF_BYTES = 4100;
|
|
5
|
-
|
|
5
|
+
const SUPPORTED_IMAGE_MIME_TYPES = new Set(["image/jpeg", "image/png", "image/gif", "image/webp"]);
|
|
6
|
+
const EXTENSION_MIME_FALLBACKS = new Map([
|
|
7
|
+
[".jpg", "image/jpeg"],
|
|
8
|
+
[".jpeg", "image/jpeg"],
|
|
9
|
+
[".png", "image/png"],
|
|
10
|
+
[".gif", "image/gif"],
|
|
11
|
+
[".webp", "image/webp"],
|
|
12
|
+
]);
|
|
13
|
+
async function readHeaderBytes(filePath, byteCount = FILE_TYPE_SNIFF_BYTES) {
|
|
6
14
|
const fileHandle = await open(filePath, "r");
|
|
7
15
|
try {
|
|
8
|
-
const buffer = Buffer.alloc(
|
|
9
|
-
const { bytesRead } = await fileHandle.read(buffer, 0,
|
|
10
|
-
|
|
11
|
-
return null;
|
|
12
|
-
}
|
|
13
|
-
const fileType = await fileTypeFromBuffer(buffer.subarray(0, bytesRead));
|
|
14
|
-
if (!fileType) {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
if (!IMAGE_MIME_TYPES.has(fileType.mime)) {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
return fileType.mime;
|
|
16
|
+
const buffer = Buffer.alloc(byteCount);
|
|
17
|
+
const { bytesRead } = await fileHandle.read(buffer, 0, byteCount, 0);
|
|
18
|
+
return buffer.subarray(0, bytesRead);
|
|
21
19
|
}
|
|
22
20
|
finally {
|
|
23
21
|
await fileHandle.close();
|
|
24
22
|
}
|
|
25
23
|
}
|
|
24
|
+
async function detectMimeFromBuffer(buffer) {
|
|
25
|
+
if (buffer.length === 0) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
const detected = await fileTypeFromBuffer(buffer);
|
|
29
|
+
return detected?.mime ?? null;
|
|
30
|
+
}
|
|
31
|
+
export function isSupportedImageMimeType(mimeType) {
|
|
32
|
+
return typeof mimeType === "string" && SUPPORTED_IMAGE_MIME_TYPES.has(mimeType);
|
|
33
|
+
}
|
|
34
|
+
function detectMimeFromExtension(filePath) {
|
|
35
|
+
return EXTENSION_MIME_FALLBACKS.get(extname(filePath).toLowerCase()) ?? null;
|
|
36
|
+
}
|
|
37
|
+
export async function detectSupportedImageMimeTypeFromFile(filePath) {
|
|
38
|
+
const headerBytes = await readHeaderBytes(filePath);
|
|
39
|
+
const detectedMimeType = await detectMimeFromBuffer(headerBytes);
|
|
40
|
+
if (isSupportedImageMimeType(detectedMimeType)) {
|
|
41
|
+
return detectedMimeType;
|
|
42
|
+
}
|
|
43
|
+
const extensionMimeType = detectMimeFromExtension(filePath);
|
|
44
|
+
return isSupportedImageMimeType(extensionMimeType) ? extensionMimeType : null;
|
|
45
|
+
}
|
|
26
46
|
//# sourceMappingURL=mime.js.map
|
package/dist/utils/mime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mime.js","sourceRoot":"","sources":["../../src/utils/mime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,
|
|
1
|
+
{"version":3,"file":"mime.js","sourceRoot":"","sources":["../../src/utils/mime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AACnG,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAiB;IACvD,CAAC,MAAM,EAAE,YAAY,CAAC;IACtB,CAAC,OAAO,EAAE,YAAY,CAAC;IACvB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,OAAO,EAAE,YAAY,CAAC;CACxB,CAAC,CAAC;AAEH,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,YAAoB,qBAAqB;IACxF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;YAAS,CAAC;QACT,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,MAAc;IAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAAmC;IAC1E,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,OAAO,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oCAAoC,CAAC,QAAgB;IACzE,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEjE,IAAI,wBAAwB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/C,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC5D,OAAO,wBAAwB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;AAChF,CAAC"}
|
package/dist/utils/photon.d.ts
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Photon image processing wrapper.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* 2. Bun compiled binaries (standalone distribution)
|
|
7
|
-
*
|
|
8
|
-
* The challenge: photon-node's CJS entry uses fs.readFileSync(__dirname + '/photon_rs_bg.wasm')
|
|
9
|
-
* which bakes the build machine's absolute path into Bun compiled binaries.
|
|
10
|
-
*
|
|
11
|
-
* Solution:
|
|
12
|
-
* 1. Patch fs.readFileSync to redirect missing photon_rs_bg.wasm reads
|
|
13
|
-
* 2. Copy photon_rs_bg.wasm next to the executable in build:binary
|
|
4
|
+
* Loads `@silvia-odwyer/photon-node` in a way that also works when the wasm
|
|
5
|
+
* file needs to be resolved from fallback locations.
|
|
14
6
|
*/
|
|
15
7
|
export type { PhotonImage as PhotonImageType } from "@silvia-odwyer/photon-node";
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
* Returns cached module on subsequent calls.
|
|
19
|
-
*/
|
|
20
|
-
export declare function loadPhoton(): Promise<typeof import("@silvia-odwyer/photon-node") | null>;
|
|
8
|
+
type PhotonModule = typeof import("@silvia-odwyer/photon-node");
|
|
9
|
+
export declare function loadPhoton(): Promise<PhotonModule | null>;
|
|
21
10
|
//# sourceMappingURL=photon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"photon.d.ts","sourceRoot":"","sources":["../../src/utils/photon.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"photon.d.ts","sourceRoot":"","sources":["../../src/utils/photon.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,YAAY,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAEjF,KAAK,YAAY,GAAG,cAAc,4BAA4B,CAAC,CAAC;AA2IhE,wBAAsB,UAAU,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAE/D"}
|
package/dist/utils/photon.js
CHANGED
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Photon image processing wrapper.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* 2. Bun compiled binaries (standalone distribution)
|
|
7
|
-
*
|
|
8
|
-
* The challenge: photon-node's CJS entry uses fs.readFileSync(__dirname + '/photon_rs_bg.wasm')
|
|
9
|
-
* which bakes the build machine's absolute path into Bun compiled binaries.
|
|
10
|
-
*
|
|
11
|
-
* Solution:
|
|
12
|
-
* 1. Patch fs.readFileSync to redirect missing photon_rs_bg.wasm reads
|
|
13
|
-
* 2. Copy photon_rs_bg.wasm next to the executable in build:binary
|
|
4
|
+
* Loads `@silvia-odwyer/photon-node` in a way that also works when the wasm
|
|
5
|
+
* file needs to be resolved from fallback locations.
|
|
14
6
|
*/
|
|
15
7
|
import { createRequire } from "module";
|
|
16
8
|
import * as path from "path";
|
|
@@ -18,10 +10,9 @@ import { fileURLToPath } from "url";
|
|
|
18
10
|
const require = createRequire(import.meta.url);
|
|
19
11
|
const fs = require("fs");
|
|
20
12
|
const WASM_FILENAME = "photon_rs_bg.wasm";
|
|
21
|
-
|
|
22
|
-
let
|
|
23
|
-
|
|
24
|
-
function pathOrNull(file) {
|
|
13
|
+
let cachedPhotonModule = null;
|
|
14
|
+
let pendingPhotonModuleLoad = null;
|
|
15
|
+
function normalizePathInput(file) {
|
|
25
16
|
if (typeof file === "string") {
|
|
26
17
|
return file;
|
|
27
18
|
}
|
|
@@ -30,43 +21,59 @@ function pathOrNull(file) {
|
|
|
30
21
|
}
|
|
31
22
|
return null;
|
|
32
23
|
}
|
|
33
|
-
function
|
|
24
|
+
function dedupePaths(paths) {
|
|
25
|
+
const seen = new Set();
|
|
26
|
+
const unique = [];
|
|
27
|
+
for (const candidate of paths) {
|
|
28
|
+
if (seen.has(candidate)) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
seen.add(candidate);
|
|
32
|
+
unique.push(candidate);
|
|
33
|
+
}
|
|
34
|
+
return unique;
|
|
35
|
+
}
|
|
36
|
+
function resolvePhotonWasmCandidates() {
|
|
37
|
+
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
38
|
+
const packageDir = path.resolve(moduleDir, "..", "..");
|
|
34
39
|
const execDir = path.dirname(process.execPath);
|
|
35
|
-
return [
|
|
40
|
+
return dedupePaths([
|
|
36
41
|
path.join(execDir, WASM_FILENAME),
|
|
37
42
|
path.join(execDir, "photon", WASM_FILENAME),
|
|
38
43
|
path.join(process.cwd(), WASM_FILENAME),
|
|
39
|
-
|
|
44
|
+
path.join(packageDir, WASM_FILENAME),
|
|
45
|
+
path.join(packageDir, "dist", WASM_FILENAME),
|
|
46
|
+
path.join(packageDir, "node_modules", "@silvia-odwyer", "photon-node", WASM_FILENAME),
|
|
47
|
+
]);
|
|
48
|
+
}
|
|
49
|
+
function readFromFallbackCandidates(originalReadFileSync, fallbackCandidates, options) {
|
|
50
|
+
for (const fallbackPath of fallbackCandidates) {
|
|
51
|
+
if (!fs.existsSync(fallbackPath)) {
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
return options === undefined ? originalReadFileSync(fallbackPath) : originalReadFileSync(fallbackPath, options);
|
|
55
|
+
}
|
|
56
|
+
throw new Error(`Unable to locate ${WASM_FILENAME} in fallback paths.`);
|
|
40
57
|
}
|
|
41
|
-
function
|
|
58
|
+
function installPhotonReadPatch() {
|
|
42
59
|
const originalReadFileSync = fs.readFileSync.bind(fs);
|
|
43
|
-
const
|
|
60
|
+
const fallbackCandidates = resolvePhotonWasmCandidates();
|
|
44
61
|
const mutableFs = fs;
|
|
45
|
-
const patchedReadFileSync = ((
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
for (const fallbackPath of fallbackPaths) {
|
|
58
|
-
if (!fs.existsSync(fallbackPath)) {
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
if (options === undefined) {
|
|
62
|
-
return originalReadFileSync(fallbackPath);
|
|
63
|
-
}
|
|
64
|
-
return originalReadFileSync(fallbackPath, options);
|
|
65
|
-
}
|
|
62
|
+
const patchedReadFileSync = ((file, options) => {
|
|
63
|
+
const resolvedPath = normalizePathInput(file);
|
|
64
|
+
if (!resolvedPath?.endsWith(WASM_FILENAME)) {
|
|
65
|
+
return originalReadFileSync(file, options);
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
return originalReadFileSync(file, options);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
const readError = error;
|
|
72
|
+
if (readError?.code && readError.code !== "ENOENT") {
|
|
66
73
|
throw error;
|
|
67
74
|
}
|
|
75
|
+
return readFromFallbackCandidates(originalReadFileSync, fallbackCandidates, options);
|
|
68
76
|
}
|
|
69
|
-
return originalReadFileSync(...args);
|
|
70
77
|
});
|
|
71
78
|
try {
|
|
72
79
|
mutableFs.readFileSync = patchedReadFileSync;
|
|
@@ -91,31 +98,35 @@ function patchPhotonWasmRead() {
|
|
|
91
98
|
}
|
|
92
99
|
};
|
|
93
100
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return photonModule;
|
|
101
|
+
async function importPhotonModule() {
|
|
102
|
+
try {
|
|
103
|
+
return await import("@silvia-odwyer/photon-node");
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return null;
|
|
101
107
|
}
|
|
102
|
-
|
|
103
|
-
|
|
108
|
+
}
|
|
109
|
+
async function loadPhotonModuleOnce() {
|
|
110
|
+
if (cachedPhotonModule) {
|
|
111
|
+
return cachedPhotonModule;
|
|
112
|
+
}
|
|
113
|
+
if (pendingPhotonModuleLoad) {
|
|
114
|
+
return pendingPhotonModuleLoad;
|
|
104
115
|
}
|
|
105
|
-
|
|
106
|
-
const
|
|
116
|
+
pendingPhotonModuleLoad = (async () => {
|
|
117
|
+
const restoreReadPatch = installPhotonReadPatch();
|
|
107
118
|
try {
|
|
108
|
-
|
|
109
|
-
return
|
|
110
|
-
}
|
|
111
|
-
catch {
|
|
112
|
-
photonModule = null;
|
|
113
|
-
return photonModule;
|
|
119
|
+
cachedPhotonModule = await importPhotonModule();
|
|
120
|
+
return cachedPhotonModule;
|
|
114
121
|
}
|
|
115
122
|
finally {
|
|
116
|
-
|
|
123
|
+
restoreReadPatch();
|
|
124
|
+
pendingPhotonModuleLoad = null;
|
|
117
125
|
}
|
|
118
126
|
})();
|
|
119
|
-
return
|
|
127
|
+
return pendingPhotonModuleLoad;
|
|
128
|
+
}
|
|
129
|
+
export async function loadPhoton() {
|
|
130
|
+
return loadPhotonModuleOnce();
|
|
120
131
|
}
|
|
121
132
|
//# sourceMappingURL=photon.js.map
|
package/dist/utils/photon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"photon.js","sourceRoot":"","sources":["../../src/utils/photon.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"photon.js","sourceRoot":"","sources":["../../src/utils/photon.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/shell.d.ts
CHANGED
|
@@ -1,27 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
* Get shell configuration based on platform.
|
|
3
|
-
* Resolution order:
|
|
4
|
-
* 1. User-specified shellPath in settings.json
|
|
5
|
-
* 2. On Windows: Git Bash in known locations, then bash on PATH
|
|
6
|
-
* 3. On Unix: /bin/bash
|
|
7
|
-
* 4. Fallback: sh
|
|
8
|
-
*/
|
|
9
|
-
export declare function getShellConfig(): {
|
|
1
|
+
interface ShellConfig {
|
|
10
2
|
shell: string;
|
|
11
3
|
args: string[];
|
|
12
|
-
}
|
|
4
|
+
}
|
|
5
|
+
export declare function getShellConfig(): ShellConfig;
|
|
13
6
|
export declare function getShellEnv(): NodeJS.ProcessEnv;
|
|
14
|
-
/**
|
|
15
|
-
* Sanitize binary output for display/storage.
|
|
16
|
-
* Removes characters that crash string-width or cause display issues:
|
|
17
|
-
* - Control characters (except tab, newline, carriage return)
|
|
18
|
-
* - Lone surrogates
|
|
19
|
-
* - Unicode Format characters (crash string-width due to a bug)
|
|
20
|
-
* - Characters with undefined code points
|
|
21
|
-
*/
|
|
22
7
|
export declare function sanitizeBinaryOutput(str: string): string;
|
|
23
|
-
/**
|
|
24
|
-
* Kill a process and all its children (cross-platform)
|
|
25
|
-
*/
|
|
26
8
|
export declare function killProcessTree(pid: number): void;
|
|
9
|
+
export {};
|
|
27
10
|
//# sourceMappingURL=shell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"AAMA,UAAU,WAAW;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;CACf;AAkFD,wBAAgB,cAAc,IAAI,WAAW,CAK5C;AAOD,wBAAgB,WAAW,IAAI,MAAM,CAAC,UAAU,CAO/C;AAuBD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAsBD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAMjD"}
|
package/dist/utils/shell.js
CHANGED
|
@@ -3,163 +3,140 @@ import { delimiter } from "node:path";
|
|
|
3
3
|
import { spawn, spawnSync } from "child_process";
|
|
4
4
|
import { getBinDir, getSettingsPath } from "../config.js";
|
|
5
5
|
import { SettingsManager } from "../core/settings-manager.js";
|
|
6
|
+
const SHELL_ARGS = ["-c"];
|
|
6
7
|
let cachedShellConfig = null;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
function resolveWindowsBashCandidates(env = process.env) {
|
|
9
|
+
return [env.ProgramFiles && `${env.ProgramFiles}\\Git\\bin\\bash.exe`, env["ProgramFiles(x86)"] && `${env["ProgramFiles(x86)"]}\\Git\\bin\\bash.exe`].filter((candidate) => Boolean(candidate));
|
|
10
|
+
}
|
|
11
|
+
function canRunCommand(command, args) {
|
|
12
|
+
try {
|
|
13
|
+
const result = spawnSync(command, args, { encoding: "utf-8", timeout: 5000, stdio: "pipe" });
|
|
14
|
+
return !result.error && result.status === 0;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
10
20
|
function findBashOnPath() {
|
|
11
21
|
try {
|
|
12
22
|
const result = spawnSync("where", ["bash.exe"], { encoding: "utf-8", timeout: 5000 });
|
|
13
|
-
if (result.status
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
23
|
+
if (result.status !== 0 || !result.stdout) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
for (const candidate of result.stdout.trim().split(/\r?\n/)) {
|
|
27
|
+
if (candidate && existsSync(candidate)) {
|
|
28
|
+
return candidate;
|
|
17
29
|
}
|
|
18
30
|
}
|
|
19
31
|
}
|
|
20
32
|
catch {
|
|
21
|
-
//
|
|
33
|
+
// ignore resolution failures
|
|
22
34
|
}
|
|
23
35
|
return null;
|
|
24
36
|
}
|
|
25
|
-
|
|
26
|
-
* Get shell configuration based on platform.
|
|
27
|
-
* Resolution order:
|
|
28
|
-
* 1. User-specified shellPath in settings.json
|
|
29
|
-
* 2. On Windows: Git Bash in known locations, then bash on PATH
|
|
30
|
-
* 3. On Unix: /bin/bash
|
|
31
|
-
* 4. Fallback: sh
|
|
32
|
-
*/
|
|
33
|
-
export function getShellConfig() {
|
|
34
|
-
if (cachedShellConfig) {
|
|
35
|
-
return cachedShellConfig;
|
|
36
|
-
}
|
|
37
|
+
function resolveConfiguredShellPath() {
|
|
37
38
|
const settings = SettingsManager.create();
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (existsSync(customShellPath)) {
|
|
42
|
-
cachedShellConfig = { shell: customShellPath, args: ["-c"] };
|
|
43
|
-
return cachedShellConfig;
|
|
44
|
-
}
|
|
45
|
-
throw new Error(`Custom shell path not found: ${customShellPath}\nPlease update shellPath in ${getSettingsPath()}`);
|
|
39
|
+
const configuredShell = settings.getShellPath();
|
|
40
|
+
if (!configuredShell) {
|
|
41
|
+
return null;
|
|
46
42
|
}
|
|
47
|
-
if (
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
paths.push(`${programFilesX86}\\Git\\bin\\bash.exe`);
|
|
57
|
-
}
|
|
58
|
-
for (const path of paths) {
|
|
59
|
-
if (existsSync(path)) {
|
|
60
|
-
cachedShellConfig = { shell: path, args: ["-c"] };
|
|
61
|
-
return cachedShellConfig;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
// 3. Fallback: search bash.exe on PATH (Cygwin, MSYS2, WSL, etc.)
|
|
65
|
-
const bashOnPath = findBashOnPath();
|
|
66
|
-
if (bashOnPath) {
|
|
67
|
-
cachedShellConfig = { shell: bashOnPath, args: ["-c"] };
|
|
68
|
-
return cachedShellConfig;
|
|
43
|
+
if (!existsSync(configuredShell)) {
|
|
44
|
+
throw new Error(`Custom shell path not found: ${configuredShell}\nPlease update shellPath in ${getSettingsPath()}`);
|
|
45
|
+
}
|
|
46
|
+
return { shell: configuredShell, args: [...SHELL_ARGS] };
|
|
47
|
+
}
|
|
48
|
+
function resolveWindowsShellConfig() {
|
|
49
|
+
for (const candidate of resolveWindowsBashCandidates()) {
|
|
50
|
+
if (existsSync(candidate)) {
|
|
51
|
+
return { shell: candidate, args: [...SHELL_ARGS] };
|
|
69
52
|
}
|
|
70
|
-
throw new Error(`No bash shell found. Options:\n` +
|
|
71
|
-
` 1. Install Git for Windows: https://git-scm.com/download/win\n` +
|
|
72
|
-
` 2. Add your bash to PATH (Cygwin, MSYS2, etc.)\n` +
|
|
73
|
-
` 3. Set shellPath in ${getSettingsPath()}\n\n` +
|
|
74
|
-
`Searched Git Bash in:\n${paths.map((p) => ` ${p}`).join("\n")}`);
|
|
75
53
|
}
|
|
76
|
-
|
|
54
|
+
const pathBash = findBashOnPath();
|
|
55
|
+
if (pathBash) {
|
|
56
|
+
return { shell: pathBash, args: [...SHELL_ARGS] };
|
|
57
|
+
}
|
|
58
|
+
const searchedLocations = resolveWindowsBashCandidates().map((candidate) => ` ${candidate}`).join("\n");
|
|
59
|
+
throw new Error(`No bash shell found. Options:\n` +
|
|
60
|
+
` 1. Install Git for Windows: https://git-scm.com/download/win\n` +
|
|
61
|
+
` 2. Add your bash to PATH (Cygwin, MSYS2, etc.)\n` +
|
|
62
|
+
` 3. Set shellPath in ${getSettingsPath()}\n\n` +
|
|
63
|
+
`Searched Git Bash in:\n${searchedLocations}`);
|
|
64
|
+
}
|
|
65
|
+
function resolvePosixShellConfig() {
|
|
77
66
|
if (existsSync("/bin/bash")) {
|
|
78
|
-
|
|
79
|
-
|
|
67
|
+
return { shell: "/bin/bash", args: [...SHELL_ARGS] };
|
|
68
|
+
}
|
|
69
|
+
return { shell: "sh", args: [...SHELL_ARGS] };
|
|
70
|
+
}
|
|
71
|
+
function computeShellConfig() {
|
|
72
|
+
return resolveConfiguredShellPath() ?? (process.platform === "win32" ? resolveWindowsShellConfig() : resolvePosixShellConfig());
|
|
73
|
+
}
|
|
74
|
+
export function getShellConfig() {
|
|
75
|
+
if (!cachedShellConfig) {
|
|
76
|
+
cachedShellConfig = computeShellConfig();
|
|
80
77
|
}
|
|
81
|
-
cachedShellConfig = { shell: "sh", args: ["-c"] };
|
|
82
78
|
return cachedShellConfig;
|
|
83
79
|
}
|
|
80
|
+
function prependBinDirToPath(pathValue, binDir) {
|
|
81
|
+
const entries = pathValue.split(delimiter).filter(Boolean);
|
|
82
|
+
return entries.includes(binDir) ? pathValue : [binDir, pathValue].filter(Boolean).join(delimiter);
|
|
83
|
+
}
|
|
84
84
|
export function getShellEnv() {
|
|
85
85
|
const binDir = getBinDir();
|
|
86
86
|
const pathKey = Object.keys(process.env).find((key) => key.toLowerCase() === "path") ?? "PATH";
|
|
87
|
-
const currentPath = process.env[pathKey] ?? "";
|
|
88
|
-
const pathEntries = currentPath.split(delimiter).filter(Boolean);
|
|
89
|
-
const hasBinDir = pathEntries.includes(binDir);
|
|
90
|
-
const updatedPath = hasBinDir ? currentPath : [binDir, currentPath].filter(Boolean).join(delimiter);
|
|
91
87
|
return {
|
|
92
88
|
...process.env,
|
|
93
|
-
[pathKey]:
|
|
89
|
+
[pathKey]: prependBinDirToPath(process.env[pathKey] ?? "", binDir),
|
|
94
90
|
};
|
|
95
91
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
// Use Array.from to properly iterate over code points (not code units)
|
|
106
|
-
// This handles surrogate pairs correctly and catches edge cases where
|
|
107
|
-
// codePointAt() might return undefined
|
|
108
|
-
return Array.from(str)
|
|
109
|
-
.filter((char) => {
|
|
110
|
-
// Filter out characters that cause string-width to crash
|
|
111
|
-
// This includes:
|
|
112
|
-
// - Unicode format characters
|
|
113
|
-
// - Lone surrogates (already filtered by Array.from)
|
|
114
|
-
// - Control chars except \t \n \r
|
|
115
|
-
// - Characters with undefined code points
|
|
116
|
-
const code = char.codePointAt(0);
|
|
117
|
-
// Skip if code point is undefined (edge case with invalid strings)
|
|
118
|
-
if (code === undefined)
|
|
119
|
-
return false;
|
|
120
|
-
// Allow tab, newline, carriage return
|
|
121
|
-
if (code === 0x09 || code === 0x0a || code === 0x0d)
|
|
122
|
-
return true;
|
|
123
|
-
// Filter out control characters (0x00-0x1F, except 0x09, 0x0a, 0x0x0d)
|
|
124
|
-
if (code <= 0x1f)
|
|
125
|
-
return false;
|
|
126
|
-
// Filter out Unicode format characters
|
|
127
|
-
if (code >= 0xfff9 && code <= 0xfffb)
|
|
128
|
-
return false;
|
|
92
|
+
function isAllowedControlCharacter(code) {
|
|
93
|
+
return code === 0x09 || code === 0x0a || code === 0x0d;
|
|
94
|
+
}
|
|
95
|
+
function shouldKeepCharacter(char) {
|
|
96
|
+
const code = char.codePointAt(0);
|
|
97
|
+
if (code === undefined) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
if (isAllowedControlCharacter(code)) {
|
|
129
101
|
return true;
|
|
130
|
-
}
|
|
131
|
-
|
|
102
|
+
}
|
|
103
|
+
if (code <= 0x1f) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
if (code >= 0xfff9 && code <= 0xfffb) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
return true;
|
|
132
110
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
try {
|
|
140
|
-
spawn("taskkill", ["/F", "/T", "/PID", String(pid)], {
|
|
141
|
-
stdio: "ignore",
|
|
142
|
-
detached: true,
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
catch {
|
|
146
|
-
// Ignore errors if taskkill fails
|
|
147
|
-
}
|
|
111
|
+
export function sanitizeBinaryOutput(str) {
|
|
112
|
+
return Array.from(str).filter(shouldKeepCharacter).join("");
|
|
113
|
+
}
|
|
114
|
+
function killWindowsProcessTree(pid) {
|
|
115
|
+
try {
|
|
116
|
+
spawn("taskkill", ["/F", "/T", "/PID", String(pid)], { stdio: "ignore", detached: true });
|
|
148
117
|
}
|
|
149
|
-
|
|
150
|
-
//
|
|
118
|
+
catch {
|
|
119
|
+
// ignore taskkill failures
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function killPosixProcessTree(pid) {
|
|
123
|
+
try {
|
|
124
|
+
process.kill(-pid, "SIGKILL");
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
151
127
|
try {
|
|
152
|
-
process.kill(
|
|
128
|
+
process.kill(pid, "SIGKILL");
|
|
153
129
|
}
|
|
154
130
|
catch {
|
|
155
|
-
//
|
|
156
|
-
try {
|
|
157
|
-
process.kill(pid, "SIGKILL");
|
|
158
|
-
}
|
|
159
|
-
catch {
|
|
160
|
-
// Process already dead
|
|
161
|
-
}
|
|
131
|
+
// already gone
|
|
162
132
|
}
|
|
163
133
|
}
|
|
164
134
|
}
|
|
135
|
+
export function killProcessTree(pid) {
|
|
136
|
+
if (process.platform === "win32") {
|
|
137
|
+
killWindowsProcessTree(pid);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
killPosixProcessTree(pid);
|
|
141
|
+
}
|
|
165
142
|
//# sourceMappingURL=shell.js.map
|