indusagi-coding-agent 0.1.37 → 0.1.39
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 +23 -7
- 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 +23 -0
- 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 +36 -217
- 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 +7 -1
- 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/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 +60 -88
- package/LICENSE.md +0 -22
- 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/cli/args.js
CHANGED
|
@@ -1,32 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI Argument Parser - Command-line argument handling and validation
|
|
3
|
-
*
|
|
4
|
-
* Responsibilities:
|
|
5
|
-
* - Parse command-line arguments into structured format
|
|
6
|
-
* - Validate argument combinations
|
|
7
|
-
* - Provide helpful error messages for invalid args
|
|
8
|
-
* - Generate help documentation
|
|
9
|
-
* - Support extension flags registration
|
|
10
|
-
*
|
|
11
|
-
* Based on argument parsing patterns from indusagi CLI
|
|
12
|
-
* Original: https://github.com/varunisrani/indusagi-ts/vendor/indusagi-agent
|
|
13
|
-
*
|
|
14
|
-
* Adapted to:
|
|
15
|
-
* - Improve error messages
|
|
16
|
-
* - Add comprehensive documentation
|
|
17
|
-
* - Enhance validation
|
|
18
|
-
* - Improve UX with better prompts
|
|
19
|
-
*/
|
|
20
1
|
import chalk from "chalk";
|
|
21
2
|
import { APP_NAME, CONFIG_DIR_NAME, ENV_AGENT_DIR } from "../config.js";
|
|
22
|
-
// ============================================================================
|
|
23
|
-
// CONSTANTS
|
|
24
|
-
// ============================================================================
|
|
25
|
-
/** Valid thinking levels for the --thinking flag */
|
|
26
3
|
const VALID_THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
|
|
27
|
-
/** Default tools enabled when no --tools or --no-tools is specified */
|
|
28
|
-
const DEFAULT_TOOLS = ["read", "bash", "edit", "write", "task", "todoread", "todowrite"];
|
|
29
|
-
/** All available tool names for validation */
|
|
30
4
|
const AVAILABLE_TOOLS = [
|
|
31
5
|
"read",
|
|
32
6
|
"bash",
|
|
@@ -39,472 +13,303 @@ const AVAILABLE_TOOLS = [
|
|
|
39
13
|
"todoread",
|
|
40
14
|
"todowrite",
|
|
41
15
|
];
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* @returns True if the string is a valid ThinkingLevel
|
|
50
|
-
*/
|
|
16
|
+
const FLAG_ALIASES = {
|
|
17
|
+
"-h": "help",
|
|
18
|
+
"-v": "version",
|
|
19
|
+
"-c": "continue",
|
|
20
|
+
"-r": "resume",
|
|
21
|
+
"-p": "print",
|
|
22
|
+
};
|
|
51
23
|
export function isValidThinkingLevel(level) {
|
|
52
24
|
return VALID_THINKING_LEVELS.includes(level);
|
|
53
25
|
}
|
|
54
|
-
/**
|
|
55
|
-
* Type guard to check if a string is a valid Mode
|
|
56
|
-
*
|
|
57
|
-
* @param mode - The string to check
|
|
58
|
-
* @returns True if the string is a valid Mode
|
|
59
|
-
*/
|
|
60
26
|
export function isValidMode(mode) {
|
|
61
27
|
return mode === "text" || mode === "json" || mode === "rpc";
|
|
62
28
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Type guard to check if a tool name is valid
|
|
65
|
-
*
|
|
66
|
-
* @param toolName - The tool name to check
|
|
67
|
-
* @returns True if the tool name is in the available tools list
|
|
68
|
-
*/
|
|
69
29
|
export function isValidToolName(toolName) {
|
|
70
30
|
return AVAILABLE_TOOLS.includes(toolName);
|
|
71
31
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
32
|
+
function createArgsResult() {
|
|
33
|
+
return {
|
|
34
|
+
messages: [],
|
|
35
|
+
fileArgs: [],
|
|
36
|
+
unknownFlags: new Map(),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function peekNextValue(state) {
|
|
40
|
+
return state.args[state.index + 1];
|
|
41
|
+
}
|
|
42
|
+
function consumeFlagValue(state, flag) {
|
|
43
|
+
const next = peekNextValue(state);
|
|
44
|
+
if (next === undefined) {
|
|
45
|
+
console.error(chalk.yellow(`Warning: ${flag} requires a value.`));
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
state.index += 1;
|
|
49
|
+
return next;
|
|
50
|
+
}
|
|
51
|
+
function pushListValue(target, value) {
|
|
52
|
+
return [...(target ?? []), value];
|
|
53
|
+
}
|
|
54
|
+
function parseCommaSeparatedList(value) {
|
|
55
|
+
return value
|
|
56
|
+
.split(",")
|
|
57
|
+
.map((part) => part.trim())
|
|
58
|
+
.filter(Boolean);
|
|
59
|
+
}
|
|
60
|
+
function parseToolList(value) {
|
|
61
|
+
const valid = [];
|
|
62
|
+
for (const name of parseCommaSeparatedList(value)) {
|
|
84
63
|
if (isValidToolName(name)) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
else {
|
|
88
|
-
console.error(chalk.yellow(`Warning: Unknown tool "${name}". Valid tools: ${AVAILABLE_TOOLS.join(", ")}`));
|
|
64
|
+
valid.push(name);
|
|
65
|
+
continue;
|
|
89
66
|
}
|
|
67
|
+
console.error(chalk.yellow(`Warning: Unknown tool "${name}". Valid tools: ${AVAILABLE_TOOLS.join(", ")}`));
|
|
68
|
+
}
|
|
69
|
+
return valid;
|
|
70
|
+
}
|
|
71
|
+
function parseModeFlag(value) {
|
|
72
|
+
if (!value) {
|
|
73
|
+
return undefined;
|
|
90
74
|
}
|
|
91
|
-
|
|
75
|
+
if (isValidMode(value)) {
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
console.error(chalk.yellow(`Warning: Invalid mode "${value}". Valid values: text, json, rpc`));
|
|
79
|
+
return undefined;
|
|
92
80
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
* @param level - The thinking level to validate
|
|
97
|
-
* @returns The validated thinking level or undefined if invalid
|
|
98
|
-
*/
|
|
99
|
-
function validateThinkingLevel(level) {
|
|
100
|
-
if (isValidThinkingLevel(level)) {
|
|
101
|
-
return level;
|
|
81
|
+
function parseThinkingFlag(value) {
|
|
82
|
+
if (!value) {
|
|
83
|
+
return undefined;
|
|
102
84
|
}
|
|
103
|
-
|
|
85
|
+
if (isValidThinkingLevel(value)) {
|
|
86
|
+
return value;
|
|
87
|
+
}
|
|
88
|
+
console.error(chalk.yellow(`Warning: Invalid thinking level "${value}". Valid values: ${VALID_THINKING_LEVELS.join(", ")}`));
|
|
104
89
|
return undefined;
|
|
105
90
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
91
|
+
function parseListModelsValue(state) {
|
|
92
|
+
const next = peekNextValue(state);
|
|
93
|
+
if (next && !next.startsWith("-") && !next.startsWith("@")) {
|
|
94
|
+
state.index += 1;
|
|
95
|
+
return next;
|
|
96
|
+
}
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
function parseUnknownExtensionFlag(state, arg) {
|
|
100
|
+
if (!arg.startsWith("--") || !state.extensionFlags) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
const flagName = arg.slice(2);
|
|
104
|
+
const definition = state.extensionFlags.get(flagName);
|
|
105
|
+
if (!definition) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
if (definition.type === "boolean") {
|
|
109
|
+
state.result.unknownFlags.set(flagName, true);
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
const value = consumeFlagValue(state, `--${flagName}`);
|
|
113
|
+
if (value !== undefined) {
|
|
114
|
+
state.result.unknownFlags.set(flagName, value);
|
|
115
|
+
}
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
function handleAlias(state, arg) {
|
|
119
|
+
const alias = FLAG_ALIASES[arg];
|
|
120
|
+
if (!alias) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
state.result[alias] = true;
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
function handleScalarFlags(state, arg) {
|
|
127
|
+
switch (arg) {
|
|
128
|
+
case "--help":
|
|
129
|
+
state.result.help = true;
|
|
130
|
+
return true;
|
|
131
|
+
case "--version":
|
|
132
|
+
state.result.version = true;
|
|
133
|
+
return true;
|
|
134
|
+
case "--continue":
|
|
135
|
+
state.result.continue = true;
|
|
136
|
+
return true;
|
|
137
|
+
case "--resume":
|
|
138
|
+
state.result.resume = true;
|
|
139
|
+
return true;
|
|
140
|
+
case "--no-session":
|
|
141
|
+
state.result.noSession = true;
|
|
142
|
+
return true;
|
|
143
|
+
case "--no-tools":
|
|
144
|
+
state.result.noTools = true;
|
|
145
|
+
return true;
|
|
146
|
+
case "--print":
|
|
147
|
+
state.result.print = true;
|
|
148
|
+
return true;
|
|
149
|
+
case "--verbose":
|
|
150
|
+
state.result.verbose = true;
|
|
151
|
+
return true;
|
|
152
|
+
case "--no-extensions":
|
|
153
|
+
state.result.noExtensions = true;
|
|
154
|
+
return true;
|
|
155
|
+
case "--no-hooks":
|
|
156
|
+
state.result.noHooks = true;
|
|
157
|
+
return true;
|
|
158
|
+
case "--no-skills":
|
|
159
|
+
state.result.noSkills = true;
|
|
160
|
+
return true;
|
|
161
|
+
case "--no-prompt-templates":
|
|
162
|
+
state.result.noPromptTemplates = true;
|
|
163
|
+
return true;
|
|
164
|
+
case "--no-themes":
|
|
165
|
+
state.result.noThemes = true;
|
|
166
|
+
return true;
|
|
167
|
+
case "--mcp":
|
|
168
|
+
state.result.mcp = true;
|
|
169
|
+
return true;
|
|
170
|
+
case "--no-mcp":
|
|
171
|
+
state.result.noMcp = true;
|
|
172
|
+
return true;
|
|
173
|
+
case "--memory":
|
|
174
|
+
state.result.memory = true;
|
|
175
|
+
return true;
|
|
176
|
+
case "--no-memory":
|
|
177
|
+
state.result.noMemory = true;
|
|
178
|
+
return true;
|
|
179
|
+
case "--list-models":
|
|
180
|
+
state.result.listModels = parseListModelsValue(state);
|
|
181
|
+
return true;
|
|
182
|
+
default:
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
function handleValueFlags(state, arg) {
|
|
187
|
+
switch (arg) {
|
|
188
|
+
case "--mode":
|
|
189
|
+
state.result.mode = parseModeFlag(consumeFlagValue(state, arg));
|
|
190
|
+
return true;
|
|
191
|
+
case "--session":
|
|
192
|
+
state.result.session = consumeFlagValue(state, arg);
|
|
193
|
+
return true;
|
|
194
|
+
case "--session-dir":
|
|
195
|
+
state.result.sessionDir = consumeFlagValue(state, arg);
|
|
196
|
+
return true;
|
|
197
|
+
case "--provider":
|
|
198
|
+
state.result.provider = consumeFlagValue(state, arg);
|
|
199
|
+
return true;
|
|
200
|
+
case "--account":
|
|
201
|
+
state.result.account = consumeFlagValue(state, arg);
|
|
202
|
+
return true;
|
|
203
|
+
case "--api-key":
|
|
204
|
+
state.result.apiKey = consumeFlagValue(state, arg);
|
|
205
|
+
return true;
|
|
206
|
+
case "--model":
|
|
207
|
+
state.result.model = consumeFlagValue(state, arg);
|
|
208
|
+
return true;
|
|
209
|
+
case "--models": {
|
|
210
|
+
const value = consumeFlagValue(state, arg);
|
|
211
|
+
state.result.models = value ? parseCommaSeparatedList(value) : undefined;
|
|
212
|
+
return true;
|
|
213
|
+
}
|
|
214
|
+
case "--system-prompt":
|
|
215
|
+
state.result.systemPrompt = consumeFlagValue(state, arg);
|
|
216
|
+
return true;
|
|
217
|
+
case "--append-system-prompt":
|
|
218
|
+
state.result.appendSystemPrompt = consumeFlagValue(state, arg);
|
|
219
|
+
return true;
|
|
220
|
+
case "--tools": {
|
|
221
|
+
const value = consumeFlagValue(state, arg);
|
|
222
|
+
state.result.tools = value ? parseToolList(value) : undefined;
|
|
223
|
+
return true;
|
|
224
|
+
}
|
|
225
|
+
case "--thinking":
|
|
226
|
+
state.result.thinking = parseThinkingFlag(consumeFlagValue(state, arg));
|
|
227
|
+
return true;
|
|
228
|
+
case "--export":
|
|
229
|
+
state.result.export = consumeFlagValue(state, arg);
|
|
230
|
+
return true;
|
|
231
|
+
case "--mcp-config":
|
|
232
|
+
state.result.mcpConfig = consumeFlagValue(state, arg);
|
|
233
|
+
return true;
|
|
234
|
+
case "--memory-config":
|
|
235
|
+
state.result.memoryConfig = consumeFlagValue(state, arg);
|
|
236
|
+
return true;
|
|
237
|
+
default:
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
function handleRepeatedPathFlags(state, arg) {
|
|
242
|
+
const value = arg === "--extension" || arg === "-e" || arg === "--hook" || arg === "--skill" || arg === "--prompt-template" || arg === "--theme"
|
|
243
|
+
? consumeFlagValue(state, arg)
|
|
244
|
+
: undefined;
|
|
245
|
+
if (!value) {
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
switch (arg) {
|
|
249
|
+
case "--extension":
|
|
250
|
+
case "-e":
|
|
251
|
+
state.result.extensions = pushListValue(state.result.extensions, value);
|
|
252
|
+
return true;
|
|
253
|
+
case "--hook":
|
|
254
|
+
state.result.hooks = pushListValue(state.result.hooks, value);
|
|
255
|
+
return true;
|
|
256
|
+
case "--skill":
|
|
257
|
+
state.result.skills = pushListValue(state.result.skills, value);
|
|
258
|
+
return true;
|
|
259
|
+
case "--prompt-template":
|
|
260
|
+
state.result.promptTemplates = pushListValue(state.result.promptTemplates, value);
|
|
261
|
+
return true;
|
|
262
|
+
case "--theme":
|
|
263
|
+
state.result.themes = pushListValue(state.result.themes, value);
|
|
264
|
+
return true;
|
|
265
|
+
default:
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
function handlePositionalArgument(result, arg) {
|
|
270
|
+
if (arg.startsWith("@")) {
|
|
271
|
+
result.fileArgs.push(arg.slice(1));
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
if (!arg.startsWith("-")) {
|
|
275
|
+
result.messages.push(arg);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
131
278
|
export function parseArgs(args, extensionFlags) {
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
279
|
+
const state = {
|
|
280
|
+
index: 0,
|
|
281
|
+
args,
|
|
282
|
+
result: createArgsResult(),
|
|
283
|
+
extensionFlags,
|
|
136
284
|
};
|
|
137
|
-
for (
|
|
138
|
-
const arg = args[
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
// ============================================================================
|
|
151
|
-
else if (arg === "--mode" && i + 1 < args.length) {
|
|
152
|
-
const mode = args[++i];
|
|
153
|
-
if (isValidMode(mode)) {
|
|
154
|
-
result.mode = mode;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
// ============================================================================
|
|
158
|
-
// SESSION FLAGS
|
|
159
|
-
// ============================================================================
|
|
160
|
-
else if (arg === "--continue" || arg === "-c") {
|
|
161
|
-
result.continue = true;
|
|
162
|
-
}
|
|
163
|
-
else if (arg === "--resume" || arg === "-r") {
|
|
164
|
-
result.resume = true;
|
|
165
|
-
}
|
|
166
|
-
else if (arg === "--no-session") {
|
|
167
|
-
result.noSession = true;
|
|
168
|
-
}
|
|
169
|
-
else if (arg === "--session" && i + 1 < args.length) {
|
|
170
|
-
result.session = args[++i];
|
|
171
|
-
}
|
|
172
|
-
else if (arg === "--session-dir" && i + 1 < args.length) {
|
|
173
|
-
result.sessionDir = args[++i];
|
|
174
|
-
}
|
|
175
|
-
// ============================================================================
|
|
176
|
-
// PROVIDER AND AUTH FLAGS
|
|
177
|
-
// ============================================================================
|
|
178
|
-
else if (arg === "--provider" && i + 1 < args.length) {
|
|
179
|
-
result.provider = args[++i];
|
|
180
|
-
}
|
|
181
|
-
else if (arg === "--account" && i + 1 < args.length) {
|
|
182
|
-
result.account = args[++i];
|
|
183
|
-
}
|
|
184
|
-
else if (arg === "--api-key" && i + 1 < args.length) {
|
|
185
|
-
result.apiKey = args[++i];
|
|
186
|
-
}
|
|
187
|
-
// ============================================================================
|
|
188
|
-
// MODEL FLAGS
|
|
189
|
-
// ============================================================================
|
|
190
|
-
else if (arg === "--model" && i + 1 < args.length) {
|
|
191
|
-
result.model = args[++i];
|
|
192
|
-
}
|
|
193
|
-
else if (arg === "--models" && i + 1 < args.length) {
|
|
194
|
-
result.models = args[++i].split(",").map((s) => s.trim());
|
|
195
|
-
}
|
|
196
|
-
else if (arg === "--list-models") {
|
|
197
|
-
// Check if next arg is a search pattern (not a flag or file arg)
|
|
198
|
-
if (i + 1 < args.length && !args[i + 1].startsWith("-") && !args[i + 1].startsWith("@")) {
|
|
199
|
-
result.listModels = args[++i];
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
result.listModels = true;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
// ============================================================================
|
|
206
|
-
// SYSTEM PROMPT FLAGS
|
|
207
|
-
// ============================================================================
|
|
208
|
-
else if (arg === "--system-prompt" && i + 1 < args.length) {
|
|
209
|
-
result.systemPrompt = args[++i];
|
|
210
|
-
}
|
|
211
|
-
else if (arg === "--append-system-prompt" && i + 1 < args.length) {
|
|
212
|
-
result.appendSystemPrompt = args[++i];
|
|
213
|
-
}
|
|
214
|
-
// ============================================================================
|
|
215
|
-
// TOOL FLAGS
|
|
216
|
-
// ============================================================================
|
|
217
|
-
else if (arg === "--no-tools") {
|
|
218
|
-
result.noTools = true;
|
|
219
|
-
}
|
|
220
|
-
else if (arg === "--tools" && i + 1 < args.length) {
|
|
221
|
-
const toolNames = args[++i].split(",").map((s) => s.trim());
|
|
222
|
-
result.tools = validateToolNames(toolNames);
|
|
223
|
-
}
|
|
224
|
-
// ============================================================================
|
|
225
|
-
// THINKING FLAG
|
|
226
|
-
// ============================================================================
|
|
227
|
-
else if (arg === "--thinking" && i + 1 < args.length) {
|
|
228
|
-
const level = args[++i];
|
|
229
|
-
result.thinking = validateThinkingLevel(level);
|
|
230
|
-
}
|
|
231
|
-
// ============================================================================
|
|
232
|
-
// OUTPUT FLAGS
|
|
233
|
-
// ============================================================================
|
|
234
|
-
else if (arg === "--print" || arg === "-p") {
|
|
235
|
-
result.print = true;
|
|
236
|
-
}
|
|
237
|
-
else if (arg === "--export" && i + 1 < args.length) {
|
|
238
|
-
result.export = args[++i];
|
|
239
|
-
}
|
|
240
|
-
else if (arg === "--verbose") {
|
|
241
|
-
result.verbose = true;
|
|
242
|
-
}
|
|
243
|
-
// ============================================================================
|
|
244
|
-
// EXTENSION FLAGS
|
|
245
|
-
// ============================================================================
|
|
246
|
-
else if ((arg === "--extension" || arg === "-e") && i + 1 < args.length) {
|
|
247
|
-
result.extensions = result.extensions ?? [];
|
|
248
|
-
result.extensions.push(args[++i]);
|
|
249
|
-
}
|
|
250
|
-
else if (arg === "--no-extensions") {
|
|
251
|
-
result.noExtensions = true;
|
|
252
|
-
}
|
|
253
|
-
else if (arg === "--hook" && i + 1 < args.length) {
|
|
254
|
-
result.hooks = result.hooks ?? [];
|
|
255
|
-
result.hooks.push(args[++i]);
|
|
256
|
-
}
|
|
257
|
-
else if (arg === "--no-hooks") {
|
|
258
|
-
result.noHooks = true;
|
|
259
|
-
}
|
|
260
|
-
// ============================================================================
|
|
261
|
-
// SKILL FLAGS
|
|
262
|
-
// ============================================================================
|
|
263
|
-
else if (arg === "--skill" && i + 1 < args.length) {
|
|
264
|
-
result.skills = result.skills ?? [];
|
|
265
|
-
result.skills.push(args[++i]);
|
|
266
|
-
}
|
|
267
|
-
else if (arg === "--no-skills") {
|
|
268
|
-
result.noSkills = true;
|
|
269
|
-
}
|
|
270
|
-
// ============================================================================
|
|
271
|
-
// PROMPT TEMPLATE FLAGS
|
|
272
|
-
// ============================================================================
|
|
273
|
-
else if (arg === "--prompt-template" && i + 1 < args.length) {
|
|
274
|
-
result.promptTemplates = result.promptTemplates ?? [];
|
|
275
|
-
result.promptTemplates.push(args[++i]);
|
|
276
|
-
}
|
|
277
|
-
else if (arg === "--no-prompt-templates") {
|
|
278
|
-
result.noPromptTemplates = true;
|
|
279
|
-
}
|
|
280
|
-
// ============================================================================
|
|
281
|
-
// THEME FLAGS
|
|
282
|
-
// ============================================================================
|
|
283
|
-
else if (arg === "--theme" && i + 1 < args.length) {
|
|
284
|
-
result.themes = result.themes ?? [];
|
|
285
|
-
result.themes.push(args[++i]);
|
|
286
|
-
}
|
|
287
|
-
else if (arg === "--no-themes") {
|
|
288
|
-
result.noThemes = true;
|
|
289
|
-
}
|
|
290
|
-
// ============================================================================
|
|
291
|
-
// MCP FLAGS (Model Context Protocol)
|
|
292
|
-
// ============================================================================
|
|
293
|
-
else if (arg === "--mcp") {
|
|
294
|
-
result.mcp = true;
|
|
295
|
-
}
|
|
296
|
-
else if (arg === "--no-mcp") {
|
|
297
|
-
result.noMcp = true;
|
|
298
|
-
}
|
|
299
|
-
else if (arg === "--mcp-config" && i + 1 < args.length) {
|
|
300
|
-
result.mcpConfig = args[++i];
|
|
301
|
-
}
|
|
302
|
-
// ============================================================================
|
|
303
|
-
// MEMORY FLAGS
|
|
304
|
-
// ============================================================================
|
|
305
|
-
else if (arg === "--memory") {
|
|
306
|
-
result.memory = true;
|
|
307
|
-
}
|
|
308
|
-
else if (arg === "--no-memory") {
|
|
309
|
-
result.noMemory = true;
|
|
310
|
-
}
|
|
311
|
-
else if (arg === "--memory-config" && i + 1 < args.length) {
|
|
312
|
-
result.memoryConfig = args[++i];
|
|
313
|
-
}
|
|
314
|
-
// ============================================================================
|
|
315
|
-
// FILE ARGUMENTS
|
|
316
|
-
// ============================================================================
|
|
317
|
-
else if (arg.startsWith("@")) {
|
|
318
|
-
result.fileArgs.push(arg.slice(1)); // Remove @ prefix
|
|
319
|
-
}
|
|
320
|
-
// ============================================================================
|
|
321
|
-
// EXTENSION FLAGS (VENDOR CODE)
|
|
322
|
-
// ============================================================================
|
|
323
|
-
else if (arg.startsWith("--") && extensionFlags) {
|
|
324
|
-
// Check if it's an extension-registered flag
|
|
325
|
-
const flagName = arg.slice(2);
|
|
326
|
-
const extFlag = extensionFlags.get(flagName);
|
|
327
|
-
if (extFlag) {
|
|
328
|
-
if (extFlag.type === "boolean") {
|
|
329
|
-
result.unknownFlags.set(flagName, true);
|
|
330
|
-
}
|
|
331
|
-
else if (extFlag.type === "string" && i + 1 < args.length) {
|
|
332
|
-
result.unknownFlags.set(flagName, args[++i]);
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
// Unknown flags without extensionFlags are silently ignored (first pass)
|
|
336
|
-
}
|
|
337
|
-
// ============================================================================
|
|
338
|
-
// POSITIONAL ARGUMENTS (MESSAGES)
|
|
339
|
-
// ============================================================================
|
|
340
|
-
else if (!arg.startsWith("-")) {
|
|
341
|
-
result.messages.push(arg);
|
|
342
|
-
}
|
|
285
|
+
for (; state.index < state.args.length; state.index++) {
|
|
286
|
+
const arg = state.args[state.index];
|
|
287
|
+
if (handleAlias(state, arg))
|
|
288
|
+
continue;
|
|
289
|
+
if (handleScalarFlags(state, arg))
|
|
290
|
+
continue;
|
|
291
|
+
if (handleValueFlags(state, arg))
|
|
292
|
+
continue;
|
|
293
|
+
if (handleRepeatedPathFlags(state, arg))
|
|
294
|
+
continue;
|
|
295
|
+
if (parseUnknownExtensionFlag(state, arg))
|
|
296
|
+
continue;
|
|
297
|
+
handlePositionalArgument(state.result, arg);
|
|
343
298
|
}
|
|
344
|
-
return result;
|
|
299
|
+
return state.result;
|
|
300
|
+
}
|
|
301
|
+
function buildHelpSections() {
|
|
302
|
+
return [
|
|
303
|
+
`${chalk.bold(APP_NAME)} - AI coding assistant with read, bash, edit, write tools`,
|
|
304
|
+
`${chalk.bold("Usage:")}\n ${APP_NAME} [options] [@files...] [messages...]`,
|
|
305
|
+
`${chalk.bold("Commands:")}\n ${APP_NAME} login [--provider <name>] Authenticate with an AI provider (OAuth or API key)\n [--method oauth|api-key]\n ${APP_NAME} install <source> [-l] Install extension source and add to settings\n ${APP_NAME} remove <source> [-l] Remove extension source from settings\n ${APP_NAME} update [source] Update installed extensions (skips pinned sources)\n ${APP_NAME} list List installed extensions from settings\n ${APP_NAME} config Open TUI to enable/disable package resources`,
|
|
306
|
+
`${chalk.bold("Options:")}\n --provider <name> Provider name (default: google)\n --account <name> Account name for multi-account providers (default: default)\n --model <id> Model ID (default: gemini-2.5-flash)\n --api-key <key> API key (defaults to env vars)\n --system-prompt <text> System prompt (default: coding assistant prompt)\n --append-system-prompt <text> Append text or file contents to system prompt\n --mode <mode> Output mode: text (default), json, or rpc\n --print, -p Non-interactive mode: process prompt and exit\n --continue, -c Continue previous session\n --resume, -r Select a session to resume\n --session <path> Use specific session file\n --session-dir <dir> Directory for session storage and lookup\n --no-session Don't save session (ephemeral)\n --models <patterns> Comma-separated model patterns for Ctrl+P cycling\n Supports globs (anthropic/*, *sonnet*) and fuzzy matching\n --no-tools Disable all built-in tools\n --tools <tools> Comma-separated list of tools to enable\n Available: ${AVAILABLE_TOOLS.join(", ")}\n --thinking <level> Set thinking level: ${VALID_THINKING_LEVELS.join(", ")}\n --extension, -e <path> Load an extension file (can be used multiple times)\n --no-extensions Disable extension discovery (explicit -e paths still work)\n --hook <path> Load a hook file or directory (can be used multiple times)\n --no-hooks Disable hook discovery (explicit --hook paths still work)\n --skill <path> Load a skill file or directory (can be used multiple times)\n --no-skills Disable skills discovery and loading\n --prompt-template <path> Load a prompt template file or directory (can be used multiple times)\n --no-prompt-templates Disable prompt template discovery and loading\n --theme <path> Load a theme file or directory (can be used multiple times)\n --no-themes Disable theme discovery and loading\n --mcp Enable MCP tool integration (default: auto-detect)\n --no-mcp Disable MCP tools\n --mcp-config <file> Path to MCP servers config (default: ~/.indusagi/agent/mcp-servers.json)\n --memory Enable memory system (default: auto-detect)\n --no-memory Disable memory system\n --memory-config <file> Path to memory config (default: ~/.indusagi/agent/memory.json)\n --export <file> Export session file to HTML and exit\n --list-models [search] List available models (with optional fuzzy search)\n --verbose Force verbose startup (overrides quietStartup setting)\n --help, -h Show this help\n --version, -v Show version number\n\nExtensions can register additional flags (e.g., --plan from plan-mode extension).`,
|
|
307
|
+
`${chalk.bold("Examples:")}\n # Interactive mode\n ${APP_NAME}\n\n # Interactive mode with initial prompt\n ${APP_NAME} "List all .ts files in src/"\n\n # Include files in initial message\n ${APP_NAME} @prompt.md @image.png "What color is the sky?"\n\n # Non-interactive mode (process and exit)\n ${APP_NAME} -p "List all .ts files in src/"\n\n # Multiple messages (interactive)\n ${APP_NAME} "Read package.json" "What dependencies do we have?"\n\n # Continue previous session\n ${APP_NAME} --continue "What did we discuss?"\n\n # Use different model\n ${APP_NAME} --provider openai --model gpt-4o-mini "Help me refactor this code"\n\n # Limit model cycling to specific models\n ${APP_NAME} --models claude-sonnet,claude-haiku,gpt-4o\n\n # Limit to a specific provider with glob pattern\n ${APP_NAME} --models "github-copilot/*"\n\n # Cycle models with fixed thinking levels\n ${APP_NAME} --models sonnet:high,haiku:low\n\n # Start with a specific thinking level\n ${APP_NAME} --thinking high "Solve this complex problem"\n\n # Read-only mode (no file modifications possible)\n ${APP_NAME} --tools read,grep,find,ls -p "Review the code in src/"\n\n # Export a session file to HTML\n ${APP_NAME} --export ~/${CONFIG_DIR_NAME}/agent/sessions/--path--/session.jsonl\n ${APP_NAME} --export session.jsonl output.html\n\n # Authentication / Login\n ${APP_NAME} login\n ${APP_NAME} login --provider kimi\n ${APP_NAME} login --provider anthropic\n ${APP_NAME} login --provider minimax --account prod\n ${APP_NAME} login --list\n ${APP_NAME} logout --provider minimax --account dev`,
|
|
308
|
+
`${chalk.bold("Environment Variables:")}\n ANTHROPIC_AINDUSAGI_KEY - Anthropic Claude API key\n ANTHROPIC_OAUTH_TOKEN - Anthropic OAuth token (alternative to API key)\n OPENAI_AINDUSAGI_KEY - OpenAI GPT API key\n AZURE_OPENAI_AINDUSAGI_KEY - Azure OpenAI API key\n AZURE_OPENAI_BASE_URL - Azure OpenAI base URL\n AZURE_OPENAI_RESOURCE_NAME - Azure OpenAI resource name\n AZURE_OPENAI_AINDUSAGI_VERSION - Azure OpenAI API version\n AZURE_OPENAI_DEPLOYMENT_NAME_MAP - Azure OpenAI model=deployment map\n GEMINI_AINDUSAGI_KEY - Google Gemini API key\n GROQ_AINDUSAGI_KEY - Groq API key\n CEREBRAS_AINDUSAGI_KEY - Cerebras API key\n XAI_AINDUSAGI_KEY - xAI Grok API key\n OPENROUTER_AINDUSAGI_KEY - OpenRouter API key\n AI_GATEWAY_AINDUSAGI_KEY - Vercel AI Gateway API key\n ZAI_AINDUSAGI_KEY - ZAI API key\n MISTRAL_AINDUSAGI_KEY - Mistral API key\n MINIMAX_AINDUSAGI_KEY - MiniMax API key\n KIMI_AINDUSAGI_KEY - Kimi (Moonshot AI) API key\n KIMICODE_AINDUSAGI_KEY - Kimi Code (subscription) API key\n AWS_PROFILE - AWS profile for Amazon Bedrock\n AWS_ACCESS_KEY_ID - AWS access key for Amazon Bedrock\n AWS_SECRET_ACCESS_KEY - AWS secret key for Amazon Bedrock\n AWS_BEARER_TOKEN_BEDROCK - Bedrock API key (bearer token)\n AWS_REGION - AWS region for Amazon Bedrock\n ${ENV_AGENT_DIR.padEnd(32)} - Session storage directory (default: ~/${CONFIG_DIR_NAME}/agent)\n INDUSAGI_SHARE_VIEWER_URL - Base URL for /share command (default: https://buildwithindusagi.ai/session/)`,
|
|
309
|
+
`${chalk.bold("Available Tools:")}\n read - Read file contents\n bash - Execute bash commands\n edit - Edit files with find/replace\n write - Write files (creates/overwrites)\n task - Delegate work to a subagent\n grep - Search file contents (read-only, off by default)\n find - Find files by glob pattern (read-only, off by default)\n ls - List directory contents (read-only, off by default)\n todoread - Read the current todo list\n todowrite - Update the current todo list`,
|
|
310
|
+
];
|
|
345
311
|
}
|
|
346
|
-
// ============================================================================
|
|
347
|
-
// HELP DOCUMENTATION
|
|
348
|
-
// ============================================================================
|
|
349
|
-
/**
|
|
350
|
-
* Print comprehensive help documentation to stdout
|
|
351
|
-
*
|
|
352
|
-
* Displays:
|
|
353
|
-
* - Application name and brief description
|
|
354
|
-
* - Usage syntax
|
|
355
|
-
* - Available commands
|
|
356
|
-
* - All options with descriptions
|
|
357
|
-
* - Environment variables
|
|
358
|
-
* - Available tools
|
|
359
|
-
* - Example usage
|
|
360
|
-
*/
|
|
361
312
|
export function printHelp() {
|
|
362
|
-
console.log(
|
|
363
|
-
|
|
364
|
-
${chalk.bold("Usage:")}
|
|
365
|
-
${APP_NAME} [options] [@files...] [messages...]
|
|
366
|
-
|
|
367
|
-
${chalk.bold("Commands:")}
|
|
368
|
-
${APP_NAME} login [--provider <name>] Authenticate with an AI provider (OAuth or API key)
|
|
369
|
-
[--method oauth|api-key]
|
|
370
|
-
${APP_NAME} install <source> [-l] Install extension source and add to settings
|
|
371
|
-
${APP_NAME} remove <source> [-l] Remove extension source from settings
|
|
372
|
-
${APP_NAME} update [source] Update installed extensions (skips pinned sources)
|
|
373
|
-
${APP_NAME} list List installed extensions from settings
|
|
374
|
-
${APP_NAME} config Open TUI to enable/disable package resources
|
|
375
|
-
|
|
376
|
-
${chalk.bold("Options:")}
|
|
377
|
-
--provider <name> Provider name (default: google)
|
|
378
|
-
--account <name> Account name for multi-account providers (default: default)
|
|
379
|
-
--model <id> Model ID (default: gemini-2.5-flash)
|
|
380
|
-
--api-key <key> API key (defaults to env vars)
|
|
381
|
-
--system-prompt <text> System prompt (default: coding assistant prompt)
|
|
382
|
-
--append-system-prompt <text> Append text or file contents to system prompt
|
|
383
|
-
--mode <mode> Output mode: text (default), json, or rpc
|
|
384
|
-
--print, -p Non-interactive mode: process prompt and exit
|
|
385
|
-
--continue, -c Continue previous session
|
|
386
|
-
--resume, -r Select a session to resume
|
|
387
|
-
--session <path> Use specific session file
|
|
388
|
-
--session-dir <dir> Directory for session storage and lookup
|
|
389
|
-
--no-session Don't save session (ephemeral)
|
|
390
|
-
--models <patterns> Comma-separated model patterns for Ctrl+P cycling
|
|
391
|
-
Supports globs (anthropic/*, *sonnet*) and fuzzy matching
|
|
392
|
-
--no-tools Disable all built-in tools
|
|
393
|
-
--tools <tools> Comma-separated list of tools to enable (default: read,bash,edit,write,task,todoread,todowrite)
|
|
394
|
-
Available: read, bash, edit, write, task, grep, find, ls, todoread, todowrite
|
|
395
|
-
--thinking <level> Set thinking level: off, minimal, low, medium, high, xhigh
|
|
396
|
-
--extension, -e <path> Load an extension file (can be used multiple times)
|
|
397
|
-
--no-extensions Disable extension discovery (explicit -e paths still work)
|
|
398
|
-
--hook <path> Load a hook file or directory (can be used multiple times)
|
|
399
|
-
--no-hooks Disable hook discovery (explicit --hook paths still work)
|
|
400
|
-
--skill <path> Load a skill file or directory (can be used multiple times)
|
|
401
|
-
--no-skills Disable skills discovery and loading
|
|
402
|
-
--prompt-template <path> Load a prompt template file or directory (can be used multiple times)
|
|
403
|
-
--no-prompt-templates Disable prompt template discovery and loading
|
|
404
|
-
--theme <path> Load a theme file or directory (can be used multiple times)
|
|
405
|
-
--no-themes Disable theme discovery and loading
|
|
406
|
-
--mcp Enable MCP tool integration (default: auto-detect)
|
|
407
|
-
--no-mcp Disable MCP tools
|
|
408
|
-
--mcp-config <file> Path to MCP servers config (default: ~/.indusagi/agent/mcp-servers.json)
|
|
409
|
-
--memory Enable memory system (default: auto-detect)
|
|
410
|
-
--no-memory Disable memory system
|
|
411
|
-
--memory-config <file> Path to memory config (default: ~/.indusagi/agent/memory.json)
|
|
412
|
-
--export <file> Export session file to HTML and exit
|
|
413
|
-
--list-models [search] List available models (with optional fuzzy search)
|
|
414
|
-
--verbose Force verbose startup (overrides quietStartup setting)
|
|
415
|
-
--help, -h Show this help
|
|
416
|
-
--version, -v Show version number
|
|
417
|
-
|
|
418
|
-
Extensions can register additional flags (e.g., --plan from plan-mode extension).
|
|
419
|
-
|
|
420
|
-
${chalk.bold("Examples:")}
|
|
421
|
-
# Interactive mode
|
|
422
|
-
${APP_NAME}
|
|
423
|
-
|
|
424
|
-
# Interactive mode with initial prompt
|
|
425
|
-
${APP_NAME} "List all .ts files in src/"
|
|
426
|
-
|
|
427
|
-
# Include files in initial message
|
|
428
|
-
${APP_NAME} @prompt.md @image.png "What color is the sky?"
|
|
429
|
-
|
|
430
|
-
# Non-interactive mode (process and exit)
|
|
431
|
-
${APP_NAME} -p "List all .ts files in src/"
|
|
432
|
-
|
|
433
|
-
# Multiple messages (interactive)
|
|
434
|
-
${APP_NAME} "Read package.json" "What dependencies do we have?"
|
|
435
|
-
|
|
436
|
-
# Continue previous session
|
|
437
|
-
${APP_NAME} --continue "What did we discuss?"
|
|
438
|
-
|
|
439
|
-
# Use different model
|
|
440
|
-
${APP_NAME} --provider openai --model gpt-4o-mini "Help me refactor this code"
|
|
441
|
-
|
|
442
|
-
# Limit model cycling to specific models
|
|
443
|
-
${APP_NAME} --models claude-sonnet,claude-haiku,gpt-4o
|
|
444
|
-
|
|
445
|
-
# Limit to a specific provider with glob pattern
|
|
446
|
-
${APP_NAME} --models "github-copilot/*"
|
|
447
|
-
|
|
448
|
-
# Cycle models with fixed thinking levels
|
|
449
|
-
${APP_NAME} --models sonnet:high,haiku:low
|
|
450
|
-
|
|
451
|
-
# Start with a specific thinking level
|
|
452
|
-
${APP_NAME} --thinking high "Solve this complex problem"
|
|
453
|
-
|
|
454
|
-
# Read-only mode (no file modifications possible)
|
|
455
|
-
${APP_NAME} --tools read,grep,find,ls -p "Review the code in src/"
|
|
456
|
-
|
|
457
|
-
# Export a session file to HTML
|
|
458
|
-
${APP_NAME} --export ~/${CONFIG_DIR_NAME}/agent/sessions/--path--/session.jsonl
|
|
459
|
-
${APP_NAME} --export session.jsonl output.html
|
|
460
|
-
|
|
461
|
-
# Authentication / Login
|
|
462
|
-
${APP_NAME} login # Show available providers for login
|
|
463
|
-
${APP_NAME} login --provider kimi # Login to Kimi with API key
|
|
464
|
-
${APP_NAME} login --provider kimi-coding # Login to Kimi Code with API key
|
|
465
|
-
${APP_NAME} login --provider anthropic # Login to Anthropic with OAuth
|
|
466
|
-
${APP_NAME} login --provider openai # Login to OpenAI with API key
|
|
467
|
-
${APP_NAME} login --provider minimax --account prod # Login to MiniMax (prod account)
|
|
468
|
-
${APP_NAME} login --provider minimax --account dev # Login to MiniMax (dev account)
|
|
469
|
-
${APP_NAME} login --list # List all saved accounts
|
|
470
|
-
${APP_NAME} logout --provider minimax --account dev # Logout specific account
|
|
471
|
-
|
|
472
|
-
${chalk.bold("Environment Variables:")}
|
|
473
|
-
ANTHROPIC_AINDUSAGI_KEY - Anthropic Claude API key
|
|
474
|
-
ANTHROPIC_OAUTH_TOKEN - Anthropic OAuth token (alternative to API key)
|
|
475
|
-
OPENAI_AINDUSAGI_KEY - OpenAI GPT API key
|
|
476
|
-
AZURE_OPENAI_AINDUSAGI_KEY - Azure OpenAI API key
|
|
477
|
-
AZURE_OPENAI_BASE_URL - Azure OpenAI base URL (https://{resource}.openai.azure.com/openai/v1)
|
|
478
|
-
AZURE_OPENAI_RESOURCE_NAME - Azure OpenAI resource name (alternative to base URL)
|
|
479
|
-
AZURE_OPENAI_AINDUSAGI_VERSION - Azure OpenAI API version (default: v1)
|
|
480
|
-
AZURE_OPENAI_DEPLOYMENT_NAME_MAP - Azure OpenAI model=deployment map (comma-separated)
|
|
481
|
-
GEMINI_AINDUSAGI_KEY - Google Gemini API key
|
|
482
|
-
GROQ_AINDUSAGI_KEY - Groq API key
|
|
483
|
-
CEREBRAS_AINDUSAGI_KEY - Cerebras API key
|
|
484
|
-
XAI_AINDUSAGI_KEY - xAI Grok API key
|
|
485
|
-
OPENROUTER_AINDUSAGI_KEY - OpenRouter API key
|
|
486
|
-
AI_GATEWAY_AINDUSAGI_KEY - Vercel AI Gateway API key
|
|
487
|
-
ZAI_AINDUSAGI_KEY - ZAI API key
|
|
488
|
-
MISTRAL_AINDUSAGI_KEY - Mistral API key
|
|
489
|
-
MINIMAX_AINDUSAGI_KEY - MiniMax API key
|
|
490
|
-
KIMI_AINDUSAGI_KEY - Kimi (Moonshot AI) API key
|
|
491
|
-
KIMICODE_AINDUSAGI_KEY - Kimi Code (subscription) API key
|
|
492
|
-
AWS_PROFILE - AWS profile for Amazon Bedrock
|
|
493
|
-
AWS_ACCESS_KEY_ID - AWS access key for Amazon Bedrock
|
|
494
|
-
AWS_SECRET_ACCESS_KEY - AWS secret key for Amazon Bedrock
|
|
495
|
-
AWS_BEARER_TOKEN_BEDROCK - Bedrock API key (bearer token)
|
|
496
|
-
AWS_REGION - AWS region for Amazon Bedrock (e.g., us-east-1)
|
|
497
|
-
${ENV_AGENT_DIR.padEnd(32)} - Session storage directory (default: ~/${CONFIG_DIR_NAME}/agent)
|
|
498
|
-
INDUSAGI_SHARE_VIEWER_URL - Base URL for /share command (default: https://buildwithindusagi.ai/session/)
|
|
499
|
-
|
|
500
|
-
${chalk.bold("Available Tools (default: read, bash, edit, write):")}
|
|
501
|
-
read - Read file contents
|
|
502
|
-
bash - Execute bash commands
|
|
503
|
-
edit - Edit files with find/replace
|
|
504
|
-
write - Write files (creates/overwrites)
|
|
505
|
-
grep - Search file contents (read-only, off by default)
|
|
506
|
-
find - Find files by glob pattern (read-only, off by default)
|
|
507
|
-
ls - List directory contents (read-only, off by default)
|
|
508
|
-
`);
|
|
313
|
+
console.log(buildHelpSections().join("\n\n"));
|
|
509
314
|
}
|
|
510
315
|
//# sourceMappingURL=args.js.map
|