iosm-cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +55 -0
- package/LICENSE +21 -0
- package/README.md +650 -0
- package/dist/cli/args.d.ts +54 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +331 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/config-selector.d.ts +14 -0
- package/dist/cli/config-selector.d.ts.map +1 -0
- package/dist/cli/config-selector.js +31 -0
- package/dist/cli/config-selector.js.map +1 -0
- package/dist/cli/file-processor.d.ts +15 -0
- package/dist/cli/file-processor.d.ts.map +1 -0
- package/dist/cli/file-processor.js +79 -0
- package/dist/cli/file-processor.js.map +1 -0
- package/dist/cli/list-models.d.ts +9 -0
- package/dist/cli/list-models.d.ts.map +1 -0
- package/dist/cli/list-models.js +92 -0
- package/dist/cli/list-models.js.map +1 -0
- package/dist/cli/session-picker.d.ts +9 -0
- package/dist/cli/session-picker.d.ts.map +1 -0
- package/dist/cli/session-picker.js +34 -0
- package/dist/cli/session-picker.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +15 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +88 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +262 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-profiles.d.ts +29 -0
- package/dist/core/agent-profiles.d.ts.map +1 -0
- package/dist/core/agent-profiles.js +86 -0
- package/dist/core/agent-profiles.js.map +1 -0
- package/dist/core/agent-session.d.ts +688 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +3112 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/agent-teams.d.ts +41 -0
- package/dist/core/agent-teams.d.ts.map +1 -0
- package/dist/core/agent-teams.js +90 -0
- package/dist/core/agent-teams.js.map +1 -0
- package/dist/core/ask-user-tool.d.ts +22 -0
- package/dist/core/ask-user-tool.d.ts.map +1 -0
- package/dist/core/ask-user-tool.js +115 -0
- package/dist/core/ask-user-tool.js.map +1 -0
- package/dist/core/auth-storage.d.ts +133 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +391 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/bash-executor.d.ts +49 -0
- package/dist/core/bash-executor.d.ts.map +1 -0
- package/dist/core/bash-executor.js +213 -0
- package/dist/core/bash-executor.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +86 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/core/compaction/branch-summarization.js +242 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -0
- package/dist/core/compaction/compaction.d.ts +121 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -0
- package/dist/core/compaction/compaction.js +610 -0
- package/dist/core/compaction/compaction.js.map +1 -0
- package/dist/core/compaction/index.d.ts +7 -0
- package/dist/core/compaction/index.d.ts.map +1 -0
- package/dist/core/compaction/index.js +7 -0
- package/dist/core/compaction/index.js.map +1 -0
- package/dist/core/compaction/utils.d.ts +35 -0
- package/dist/core/compaction/utils.d.ts.map +1 -0
- package/dist/core/compaction/utils.js +138 -0
- package/dist/core/compaction/utils.js.map +1 -0
- package/dist/core/defaults.d.ts +3 -0
- package/dist/core/defaults.d.ts.map +1 -0
- package/dist/core/defaults.js +2 -0
- package/dist/core/defaults.js.map +1 -0
- package/dist/core/diagnostics.d.ts +15 -0
- package/dist/core/diagnostics.d.ts.map +1 -0
- package/dist/core/diagnostics.js +2 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/event-bus.d.ts +9 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +25 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/exec.d.ts +29 -0
- package/dist/core/exec.d.ts.map +1 -0
- package/dist/core/exec.js +71 -0
- package/dist/core/exec.js.map +1 -0
- package/dist/core/export-html/ansi-to-html.d.ts +22 -0
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
- package/dist/core/export-html/ansi-to-html.js +249 -0
- package/dist/core/export-html/ansi-to-html.js.map +1 -0
- package/dist/core/export-html/index.d.ts +34 -0
- package/dist/core/export-html/index.d.ts.map +1 -0
- package/dist/core/export-html/index.js +222 -0
- package/dist/core/export-html/index.js.map +1 -0
- package/dist/core/export-html/template.css +971 -0
- package/dist/core/export-html/template.html +54 -0
- package/dist/core/export-html/template.js +1590 -0
- package/dist/core/export-html/tool-renderer.d.ts +35 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/core/export-html/tool-renderer.js +63 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -0
- package/dist/core/export-html/vendor/highlight.min.js +1213 -0
- package/dist/core/export-html/vendor/marked.min.js +6 -0
- package/dist/core/extensions/index.d.ts +11 -0
- package/dist/core/extensions/index.d.ts.map +1 -0
- package/dist/core/extensions/index.js +9 -0
- package/dist/core/extensions/index.js.map +1 -0
- package/dist/core/extensions/loader.d.ts +25 -0
- package/dist/core/extensions/loader.d.ts.map +1 -0
- package/dist/core/extensions/loader.js +447 -0
- package/dist/core/extensions/loader.js.map +1 -0
- package/dist/core/extensions/runner.d.ts +146 -0
- package/dist/core/extensions/runner.d.ts.map +1 -0
- package/dist/core/extensions/runner.js +652 -0
- package/dist/core/extensions/runner.js.map +1 -0
- package/dist/core/extensions/types.d.ts +1074 -0
- package/dist/core/extensions/types.d.ts.map +1 -0
- package/dist/core/extensions/types.js +35 -0
- package/dist/core/extensions/types.js.map +1 -0
- package/dist/core/extensions/wrapper.d.ts +27 -0
- package/dist/core/extensions/wrapper.d.ts.map +1 -0
- package/dist/core/extensions/wrapper.js +102 -0
- package/dist/core/extensions/wrapper.js.map +1 -0
- package/dist/core/footer-data-provider.d.ts +32 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -0
- package/dist/core/footer-data-provider.js +134 -0
- package/dist/core/footer-data-provider.js.map +1 -0
- package/dist/core/hooks.d.ts +53 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js +332 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +9 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/keybindings.d.ts +55 -0
- package/dist/core/keybindings.d.ts.map +1 -0
- package/dist/core/keybindings.js +157 -0
- package/dist/core/keybindings.js.map +1 -0
- package/dist/core/mcp/cli.d.ts +27 -0
- package/dist/core/mcp/cli.d.ts.map +1 -0
- package/dist/core/mcp/cli.js +275 -0
- package/dist/core/mcp/cli.js.map +1 -0
- package/dist/core/mcp/config.d.ts +11 -0
- package/dist/core/mcp/config.d.ts.map +1 -0
- package/dist/core/mcp/config.js +310 -0
- package/dist/core/mcp/config.js.map +1 -0
- package/dist/core/mcp/index.d.ts +5 -0
- package/dist/core/mcp/index.d.ts.map +1 -0
- package/dist/core/mcp/index.js +4 -0
- package/dist/core/mcp/index.js.map +1 -0
- package/dist/core/mcp/runtime.d.ts +42 -0
- package/dist/core/mcp/runtime.d.ts.map +1 -0
- package/dist/core/mcp/runtime.js +387 -0
- package/dist/core/mcp/runtime.js.map +1 -0
- package/dist/core/mcp/types.d.ts +76 -0
- package/dist/core/mcp/types.d.ts.map +1 -0
- package/dist/core/mcp/types.js +2 -0
- package/dist/core/mcp/types.js.map +1 -0
- package/dist/core/memory.d.ts +27 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +203 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/messages.d.ts +84 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +141 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/model-registry.d.ts +115 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +549 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +104 -0
- package/dist/core/model-resolver.d.ts.map +1 -0
- package/dist/core/model-resolver.js +448 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/package-manager.d.ts +156 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +1465 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/parallel-task-agent.d.ts +19 -0
- package/dist/core/parallel-task-agent.d.ts.map +1 -0
- package/dist/core/parallel-task-agent.js +482 -0
- package/dist/core/parallel-task-agent.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +50 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +251 -0
- package/dist/core/prompt-templates.js.map +1 -0
- package/dist/core/qwen-cli-provider.d.ts +10 -0
- package/dist/core/qwen-cli-provider.d.ts.map +1 -0
- package/dist/core/qwen-cli-provider.js +271 -0
- package/dist/core/qwen-cli-provider.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +17 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -0
- package/dist/core/resolve-config-value.js +60 -0
- package/dist/core/resolve-config-value.js.map +1 -0
- package/dist/core/resource-loader.d.ts +195 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +820 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/sdk.d.ts +106 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/sdk.js +460 -0
- package/dist/core/sdk.js.map +1 -0
- package/dist/core/session-manager.d.ts +323 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +1094 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/settings-manager.d.ts +243 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +691 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +58 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +364 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/slash-commands.d.ts +15 -0
- package/dist/core/slash-commands.d.ts.map +1 -0
- package/dist/core/slash-commands.js +64 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/subagent-runs.d.ts +16 -0
- package/dist/core/subagent-runs.d.ts.map +1 -0
- package/dist/core/subagent-runs.js +70 -0
- package/dist/core/subagent-runs.js.map +1 -0
- package/dist/core/subagents.d.ts +45 -0
- package/dist/core/subagents.d.ts.map +1 -0
- package/dist/core/subagents.js +467 -0
- package/dist/core/subagents.js.map +1 -0
- package/dist/core/system-prompt.d.ts +28 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +196 -0
- package/dist/core/system-prompt.js.map +1 -0
- package/dist/core/task-plan.d.ts +32 -0
- package/dist/core/task-plan.d.ts.map +1 -0
- package/dist/core/task-plan.js +155 -0
- package/dist/core/task-plan.js.map +1 -0
- package/dist/core/timings.d.ts +7 -0
- package/dist/core/timings.d.ts.map +1 -0
- package/dist/core/timings.js +26 -0
- package/dist/core/timings.js.map +1 -0
- package/dist/core/tools/bash.d.ts +58 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +275 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +63 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +243 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +42 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +158 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/find.d.ts +39 -0
- package/dist/core/tools/find.d.ts.map +1 -0
- package/dist/core/tools/find.js +219 -0
- package/dist/core/tools/find.js.map +1 -0
- package/dist/core/tools/grep.d.ts +45 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +254 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/ignore-filter.d.ts +5 -0
- package/dist/core/tools/ignore-filter.d.ts.map +1 -0
- package/dist/core/tools/ignore-filter.js +97 -0
- package/dist/core/tools/ignore-filter.js.map +1 -0
- package/dist/core/tools/index.d.ts +97 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +78 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/ls.d.ts +46 -0
- package/dist/core/tools/ls.d.ts.map +1 -0
- package/dist/core/tools/ls.js +136 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/path-utils.d.ts +8 -0
- package/dist/core/tools/path-utils.d.ts.map +1 -0
- package/dist/core/tools/path-utils.js +81 -0
- package/dist/core/tools/path-utils.js.map +1 -0
- package/dist/core/tools/permissions.d.ts +8 -0
- package/dist/core/tools/permissions.d.ts.map +1 -0
- package/dist/core/tools/permissions.js +2 -0
- package/dist/core/tools/permissions.js.map +1 -0
- package/dist/core/tools/read.d.ts +39 -0
- package/dist/core/tools/read.d.ts.map +1 -0
- package/dist/core/tools/read.js +166 -0
- package/dist/core/tools/read.js.map +1 -0
- package/dist/core/tools/task.d.ts +109 -0
- package/dist/core/tools/task.d.ts.map +1 -0
- package/dist/core/tools/task.js +1065 -0
- package/dist/core/tools/task.js.map +1 -0
- package/dist/core/tools/todo.d.ts +42 -0
- package/dist/core/tools/todo.d.ts.map +1 -0
- package/dist/core/tools/todo.js +159 -0
- package/dist/core/tools/todo.js.map +1 -0
- package/dist/core/tools/truncate.d.ts +70 -0
- package/dist/core/tools/truncate.d.ts.map +1 -0
- package/dist/core/tools/truncate.js +205 -0
- package/dist/core/tools/truncate.js.map +1 -0
- package/dist/core/tools/write.d.ts +32 -0
- package/dist/core/tools/write.d.ts.map +1 -0
- package/dist/core/tools/write.js +90 -0
- package/dist/core/tools/write.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/iosm/agent-verification.d.ts +16 -0
- package/dist/iosm/agent-verification.d.ts.map +1 -0
- package/dist/iosm/agent-verification.js +138 -0
- package/dist/iosm/agent-verification.js.map +1 -0
- package/dist/iosm/automation.d.ts +40 -0
- package/dist/iosm/automation.d.ts.map +1 -0
- package/dist/iosm/automation.js +76 -0
- package/dist/iosm/automation.js.map +1 -0
- package/dist/iosm/config.d.ts +151 -0
- package/dist/iosm/config.d.ts.map +1 -0
- package/dist/iosm/config.js +323 -0
- package/dist/iosm/config.js.map +1 -0
- package/dist/iosm/context-loader.d.ts +12 -0
- package/dist/iosm/context-loader.d.ts.map +1 -0
- package/dist/iosm/context-loader.js +50 -0
- package/dist/iosm/context-loader.js.map +1 -0
- package/dist/iosm/cycle.d.ts +51 -0
- package/dist/iosm/cycle.d.ts.map +1 -0
- package/dist/iosm/cycle.js +861 -0
- package/dist/iosm/cycle.js.map +1 -0
- package/dist/iosm/guide.d.ts +31 -0
- package/dist/iosm/guide.d.ts.map +1 -0
- package/dist/iosm/guide.js +101 -0
- package/dist/iosm/guide.js.map +1 -0
- package/dist/iosm/index.d.ts +12 -0
- package/dist/iosm/index.d.ts.map +1 -0
- package/dist/iosm/index.js +11 -0
- package/dist/iosm/index.js.map +1 -0
- package/dist/iosm/init.d.ts +58 -0
- package/dist/iosm/init.d.ts.map +1 -0
- package/dist/iosm/init.js +1221 -0
- package/dist/iosm/init.js.map +1 -0
- package/dist/iosm/metrics.d.ts +23 -0
- package/dist/iosm/metrics.d.ts.map +1 -0
- package/dist/iosm/metrics.js +336 -0
- package/dist/iosm/metrics.js.map +1 -0
- package/dist/iosm/paths.d.ts +24 -0
- package/dist/iosm/paths.d.ts.map +1 -0
- package/dist/iosm/paths.js +77 -0
- package/dist/iosm/paths.js.map +1 -0
- package/dist/iosm/runtime-context.d.ts +20 -0
- package/dist/iosm/runtime-context.d.ts.map +1 -0
- package/dist/iosm/runtime-context.js +170 -0
- package/dist/iosm/runtime-context.js.map +1 -0
- package/dist/iosm/types.d.ts +151 -0
- package/dist/iosm/types.d.ts.map +1 -0
- package/dist/iosm/types.js +3 -0
- package/dist/iosm/types.js.map +1 -0
- package/dist/main.d.ts +8 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +1478 -0
- package/dist/main.js.map +1 -0
- package/dist/migrations.d.ts +33 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +261 -0
- package/dist/migrations.js.map +1 -0
- package/dist/modes/index.d.ts +9 -0
- package/dist/modes/index.d.ts.map +1 -0
- package/dist/modes/index.js +8 -0
- package/dist/modes/index.js.map +1 -0
- package/dist/modes/interactive/components/armin.d.ts +34 -0
- package/dist/modes/interactive/components/armin.d.ts.map +1 -0
- package/dist/modes/interactive/components/armin.js +329 -0
- package/dist/modes/interactive/components/armin.js.map +1 -0
- package/dist/modes/interactive/components/ascii-logo.d.ts +11 -0
- package/dist/modes/interactive/components/ascii-logo.d.ts.map +1 -0
- package/dist/modes/interactive/components/ascii-logo.js +25 -0
- package/dist/modes/interactive/components/ascii-logo.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +16 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/assistant-message.js +92 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +36 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/bash-execution.js +170 -0
- package/dist/modes/interactive/components/bash-execution.js.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.js +48 -0
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.js +42 -0
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +43 -0
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/config-selector.d.ts +71 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/config-selector.js +470 -0
- package/dist/modes/interactive/components/config-selector.js.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.js +28 -0
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-editor.js +63 -0
- package/dist/modes/interactive/components/custom-editor.js.map +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +20 -0
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-message.js +74 -0
- package/dist/modes/interactive/components/custom-message.js.map +1 -0
- package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
- package/dist/modes/interactive/components/daxnuts.js +138 -0
- package/dist/modes/interactive/components/daxnuts.js.map +1 -0
- package/dist/modes/interactive/components/decrypt-loader.d.ts +25 -0
- package/dist/modes/interactive/components/decrypt-loader.d.ts.map +1 -0
- package/dist/modes/interactive/components/decrypt-loader.js +102 -0
- package/dist/modes/interactive/components/decrypt-loader.js.map +1 -0
- package/dist/modes/interactive/components/diff.d.ts +12 -0
- package/dist/modes/interactive/components/diff.d.ts.map +1 -0
- package/dist/modes/interactive/components/diff.js +133 -0
- package/dist/modes/interactive/components/diff.js.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.js +20 -0
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +20 -0
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-editor.js +105 -0
- package/dist/modes/interactive/components/extension-editor.js.map +1 -0
- package/dist/modes/interactive/components/extension-input.d.ts +23 -0
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-input.js +55 -0
- package/dist/modes/interactive/components/extension-input.js.map +1 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +24 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-selector.js +71 -0
- package/dist/modes/interactive/components/extension-selector.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts +39 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/modes/interactive/components/footer.js +285 -0
- package/dist/modes/interactive/components/footer.js.map +1 -0
- package/dist/modes/interactive/components/index.d.ts +33 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -0
- package/dist/modes/interactive/components/index.js +34 -0
- package/dist/modes/interactive/components/index.js.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +50 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.js +85 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +42 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/modes/interactive/components/login-dialog.js +139 -0
- package/dist/modes/interactive/components/login-dialog.js.map +1 -0
- package/dist/modes/interactive/components/mcp-selector.d.ts +31 -0
- package/dist/modes/interactive/components/mcp-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/mcp-selector.js +171 -0
- package/dist/modes/interactive/components/mcp-selector.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +51 -0
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/model-selector.js +292 -0
- package/dist/modes/interactive/components/model-selector.js.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +19 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.js +134 -0
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +49 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +271 -0
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.js +155 -0
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts +95 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector.js +839 -0
- package/dist/modes/interactive/components/session-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +60 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-selector.js +311 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.js +34 -0
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +45 -0
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
- package/dist/modes/interactive/components/subagent-message.d.ts +91 -0
- package/dist/modes/interactive/components/subagent-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/subagent-message.js +306 -0
- package/dist/modes/interactive/components/subagent-message.js.map +1 -0
- package/dist/modes/interactive/components/task-plan-message.d.ts +12 -0
- package/dist/modes/interactive/components/task-plan-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/task-plan-message.js +61 -0
- package/dist/modes/interactive/components/task-plan-message.js.map +1 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/theme-selector.js +44 -0
- package/dist/modes/interactive/components/theme-selector.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.js +46 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +78 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +880 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +70 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-selector.js +921 -0
- package/dist/modes/interactive/components/tree-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.js +110 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +9 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message.js +27 -0
- package/dist/modes/interactive/components/user-message.js.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.js +33 -0
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +453 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +8669 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -0
- package/dist/modes/interactive/theme/dark.json +85 -0
- package/dist/modes/interactive/theme/light.json +84 -0
- package/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/dist/modes/interactive/theme/theme.d.ts +78 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme.js +944 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -0
- package/dist/modes/print-mode.d.ts +28 -0
- package/dist/modes/print-mode.d.ts.map +1 -0
- package/dist/modes/print-mode.js +101 -0
- package/dist/modes/print-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-client.d.ts +217 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client.js +404 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts +20 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-mode.js +580 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +409 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-types.js +8 -0
- package/dist/modes/rpc/rpc-types.js.map +1 -0
- package/dist/utils/changelog.d.ts +21 -0
- package/dist/utils/changelog.d.ts.map +1 -0
- package/dist/utils/changelog.js +87 -0
- package/dist/utils/changelog.js.map +1 -0
- package/dist/utils/clipboard-image.d.ts +11 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -0
- package/dist/utils/clipboard-image.js +162 -0
- package/dist/utils/clipboard-image.js.map +1 -0
- package/dist/utils/clipboard-native.d.ts +7 -0
- package/dist/utils/clipboard-native.d.ts.map +1 -0
- package/dist/utils/clipboard-native.js +14 -0
- package/dist/utils/clipboard-native.js.map +1 -0
- package/dist/utils/clipboard.d.ts +2 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +67 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +8 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +26 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/git.d.ts +26 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +163 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/image-convert.d.ts +9 -0
- package/dist/utils/image-convert.d.ts.map +1 -0
- package/dist/utils/image-convert.js +35 -0
- package/dist/utils/image-convert.js.map +1 -0
- package/dist/utils/image-resize.d.ts +36 -0
- package/dist/utils/image-resize.d.ts.map +1 -0
- package/dist/utils/image-resize.js +181 -0
- package/dist/utils/image-resize.js.map +1 -0
- package/dist/utils/mime.d.ts +2 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +26 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/photon.d.ts +21 -0
- package/dist/utils/photon.d.ts.map +1 -0
- package/dist/utils/photon.js +121 -0
- package/dist/utils/photon.js.map +1 -0
- package/dist/utils/shell.d.ts +26 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +186 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/sleep.d.ts +5 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +17 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/utils/tools-manager.d.ts +3 -0
- package/dist/utils/tools-manager.d.ts.map +1 -0
- package/dist/utils/tools-manager.js +251 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/docs/README.md +32 -0
- package/docs/cli-reference.md +342 -0
- package/docs/configuration.md +301 -0
- package/docs/development-and-testing.md +295 -0
- package/docs/extensions-packages-themes.md +415 -0
- package/docs/getting-started.md +246 -0
- package/docs/interactive-mode.md +272 -0
- package/docs/iosm-init-and-cycles.md +355 -0
- package/docs/orchestration-and-subagents.md +273 -0
- package/docs/rpc-json-sdk.md +353 -0
- package/docs/sessions-traces-export.md +260 -0
- package/examples/README.md +120 -0
- package/examples/extensions/README.md +306 -0
- package/examples/extensions/antigravity-image-gen.ts +415 -0
- package/examples/extensions/auto-commit-on-exit.ts +49 -0
- package/examples/extensions/bash-spawn-hook.ts +30 -0
- package/examples/extensions/bookmark.ts +50 -0
- package/examples/extensions/built-in-tool-renderer.ts +246 -0
- package/examples/extensions/claude-rules.ts +86 -0
- package/examples/extensions/commands.ts +72 -0
- package/examples/extensions/confirm-destructive.ts +59 -0
- package/examples/extensions/custom-compaction.ts +114 -0
- package/examples/extensions/custom-footer.ts +64 -0
- package/examples/extensions/custom-header.ts +73 -0
- package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
- package/examples/extensions/custom-provider-anthropic/package.json +19 -0
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +349 -0
- package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
- package/examples/extensions/custom-provider-qwen-cli/index.ts +345 -0
- package/examples/extensions/custom-provider-qwen-cli/package.json +16 -0
- package/examples/extensions/dirty-repo-guard.ts +56 -0
- package/examples/extensions/doom-overlay/README.md +46 -0
- package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
- package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
- package/examples/extensions/doom-overlay/doom/build.sh +152 -0
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
- package/examples/extensions/doom-overlay/doom-component.ts +132 -0
- package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
- package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
- package/examples/extensions/doom-overlay/index.ts +74 -0
- package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
- package/examples/extensions/dynamic-resources/SKILL.md +8 -0
- package/examples/extensions/dynamic-resources/dynamic.json +79 -0
- package/examples/extensions/dynamic-resources/dynamic.md +5 -0
- package/examples/extensions/dynamic-resources/index.ts +15 -0
- package/examples/extensions/dynamic-tools.ts +74 -0
- package/examples/extensions/event-bus.ts +43 -0
- package/examples/extensions/file-trigger.ts +41 -0
- package/examples/extensions/git-checkpoint.ts +53 -0
- package/examples/extensions/handoff.ts +150 -0
- package/examples/extensions/hello.ts +25 -0
- package/examples/extensions/inline-bash.ts +94 -0
- package/examples/extensions/input-transform.ts +43 -0
- package/examples/extensions/interactive-shell.ts +196 -0
- package/examples/extensions/mac-system-theme.ts +47 -0
- package/examples/extensions/message-renderer.ts +59 -0
- package/examples/extensions/minimal-mode.ts +426 -0
- package/examples/extensions/modal-editor.ts +85 -0
- package/examples/extensions/model-status.ts +31 -0
- package/examples/extensions/notify.ts +55 -0
- package/examples/extensions/overlay-qa-tests.ts +881 -0
- package/examples/extensions/overlay-test.ts +150 -0
- package/examples/extensions/permission-gate.ts +34 -0
- package/examples/extensions/pirate.ts +47 -0
- package/examples/extensions/plan-mode/README.md +65 -0
- package/examples/extensions/plan-mode/index.ts +340 -0
- package/examples/extensions/plan-mode/utils.ts +168 -0
- package/examples/extensions/preset.ts +398 -0
- package/examples/extensions/protected-paths.ts +30 -0
- package/examples/extensions/qna.ts +119 -0
- package/examples/extensions/question.ts +264 -0
- package/examples/extensions/questionnaire.ts +427 -0
- package/examples/extensions/rainbow-editor.ts +88 -0
- package/examples/extensions/reload-runtime.ts +37 -0
- package/examples/extensions/rpc-demo.ts +124 -0
- package/examples/extensions/sandbox/index.ts +318 -0
- package/examples/extensions/sandbox/package-lock.json +92 -0
- package/examples/extensions/sandbox/package.json +19 -0
- package/examples/extensions/send-user-message.ts +97 -0
- package/examples/extensions/session-name.ts +27 -0
- package/examples/extensions/shutdown-command.ts +63 -0
- package/examples/extensions/snake.ts +343 -0
- package/examples/extensions/space-invaders.ts +560 -0
- package/examples/extensions/ssh.ts +220 -0
- package/examples/extensions/status-line.ts +40 -0
- package/examples/extensions/subagent/README.md +172 -0
- package/examples/extensions/subagent/agents/planner.md +37 -0
- package/examples/extensions/subagent/agents/reviewer.md +35 -0
- package/examples/extensions/subagent/agents/scout.md +50 -0
- package/examples/extensions/subagent/agents/worker.md +24 -0
- package/examples/extensions/subagent/agents.ts +126 -0
- package/examples/extensions/subagent/index.ts +964 -0
- package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
- package/examples/extensions/subagent/prompts/implement.md +10 -0
- package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
- package/examples/extensions/summarize.ts +195 -0
- package/examples/extensions/system-prompt-header.ts +17 -0
- package/examples/extensions/timed-confirm.ts +70 -0
- package/examples/extensions/titlebar-spinner.ts +58 -0
- package/examples/extensions/todo.ts +299 -0
- package/examples/extensions/tool-override.ts +143 -0
- package/examples/extensions/tools.ts +146 -0
- package/examples/extensions/trigger-compact.ts +40 -0
- package/examples/extensions/truncated-tool.ts +192 -0
- package/examples/extensions/widget-placement.ts +17 -0
- package/examples/extensions/with-deps/index.ts +36 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +22 -0
- package/examples/rpc-extension-ui.ts +632 -0
- package/examples/sdk/01-minimal.ts +22 -0
- package/examples/sdk/02-custom-model.ts +49 -0
- package/examples/sdk/03-custom-prompt.ts +55 -0
- package/examples/sdk/04-skills.ts +46 -0
- package/examples/sdk/05-tools.ts +56 -0
- package/examples/sdk/06-extensions.ts +88 -0
- package/examples/sdk/07-context-files.ts +40 -0
- package/examples/sdk/08-prompt-templates.ts +47 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +48 -0
- package/examples/sdk/10-settings.ts +51 -0
- package/examples/sdk/11-sessions.ts +48 -0
- package/examples/sdk/12-full-control.ts +82 -0
- package/examples/sdk/README.md +337 -0
- package/examples/tsconfig.json +3 -0
- package/package.json +107 -0
package/README.md
ADDED
|
@@ -0,0 +1,650 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<h1 align="center">iosm-cli</h1>
|
|
3
|
+
<p align="center">
|
|
4
|
+
<strong>AI-Powered Engineering Agent with IOSM Methodology</strong>
|
|
5
|
+
</p>
|
|
6
|
+
<p align="center">
|
|
7
|
+
Interactive terminal agent · Multi-provider LLM support · Built-in tools · IOSM cycles · Subagent orchestration · Extensions
|
|
8
|
+
</p>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/iosm-cli"><img alt="npm version" src="https://img.shields.io/npm/v/iosm-cli?style=flat-square&color=cb3837"></a>
|
|
13
|
+
<a href="https://opensource.org/licenses/MIT"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue?style=flat-square"></a>
|
|
14
|
+
<img alt="Node.js" src="https://img.shields.io/badge/node-%3E%3D20.6.0-brightgreen?style=flat-square&logo=node.js">
|
|
15
|
+
<img alt="TypeScript" src="https://img.shields.io/badge/TypeScript-5.9-blue?style=flat-square&logo=typescript">
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
`iosm-cli` is a standalone TypeScript CLI that combines an LLM-powered coding agent with the **IOSM** (Improve → Optimize → Shrink → Modularize) methodology for systematic engineering excellence. It provides a rich interactive terminal, built-in file/code tools, multi-provider model support, session management, subagent orchestration, and a full extension system.
|
|
21
|
+
|
|
22
|
+
## ✨ Feature Highlights
|
|
23
|
+
|
|
24
|
+
| Feature | Description |
|
|
25
|
+
|---------|-------------|
|
|
26
|
+
| **Interactive Agent** | Multi-turn terminal sessions with persistent history, branching, and tree navigation |
|
|
27
|
+
| **15+ LLM Providers** | Anthropic, OpenAI, Google Gemini, Groq, Cerebras, xAI, OpenRouter, Mistral, AWS Bedrock, Azure OpenAI, and more |
|
|
28
|
+
| **7 Built-in Tools** | `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls` — full filesystem and shell integration |
|
|
29
|
+
| **IOSM Methodology** | Algorithmic improvement cycles with quality gates, metrics, hypothesis cards, and IOSM-Index scoring |
|
|
30
|
+
| **Subagent Orchestration** | Parallel/sequential task delegation with isolation, locks, and worktree support |
|
|
31
|
+
| **Extension System** | Custom tools, commands, hooks, UI components, themes, and provider integrations |
|
|
32
|
+
| **Skills & Prompts** | Markdown-based workflow modules and reusable prompt templates |
|
|
33
|
+
| **Session Management** | Persistence, branching, forking, HTML export, and sharing via GitHub Gists |
|
|
34
|
+
| **Multi-Mode Output** | Interactive, print (`-p`), JSON stream, and JSON-RPC for IDE integrations |
|
|
35
|
+
| **Package Manager** | Install extensions/skills/themes from npm, git, or local paths |
|
|
36
|
+
| **Programmatic SDK** | Full API via `createAgentSession()` for embedding in custom applications |
|
|
37
|
+
| **Configurable Profiles** | `full`, `plan`, `iosm` + advanced profiles for specialized workflows |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 📦 Installation
|
|
42
|
+
|
|
43
|
+
### Global Install (recommended)
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm install -g iosm-cli
|
|
47
|
+
iosm --version
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Run Without Installing
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npx iosm-cli --version
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Build from Source
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
git clone https://github.com/rokoss21/iosm-cli.git
|
|
60
|
+
cd iosm-cli
|
|
61
|
+
npm install
|
|
62
|
+
npm run build
|
|
63
|
+
npm link
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Requirements
|
|
67
|
+
|
|
68
|
+
- **Node.js** `>=20.6.0`
|
|
69
|
+
- **npm** (bundled with Node.js)
|
|
70
|
+
- At least one LLM provider API key (see [Providers](#-supported-providers))
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 🚀 Quick Start
|
|
75
|
+
|
|
76
|
+
### 1. Set Up a Provider
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
export ANTHROPIC_API_KEY="sk-ant-..."
|
|
80
|
+
# or
|
|
81
|
+
export OPENAI_API_KEY="sk-..."
|
|
82
|
+
# or
|
|
83
|
+
export GEMINI_API_KEY="..."
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 2. Start Interactive Mode
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
iosm
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
You'll enter a multi-turn terminal session where you can converse with the AI agent and leverage all built-in tools.
|
|
93
|
+
|
|
94
|
+
### 3. One-Shot Prompt
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Run a single prompt and exit
|
|
98
|
+
iosm -p "Review src/ and list the top 5 refactoring opportunities"
|
|
99
|
+
|
|
100
|
+
# Read-only mode (no writes)
|
|
101
|
+
iosm --tools read,grep,find,ls -p "Audit src/ for dead code"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 4. Initialize IOSM Workspace
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# Bootstrap IOSM artifacts for your project
|
|
108
|
+
iosm init
|
|
109
|
+
|
|
110
|
+
# Plan an improvement cycle
|
|
111
|
+
iosm cycle plan "reduce API latency" "simplify auth module"
|
|
112
|
+
|
|
113
|
+
# Check cycle progress
|
|
114
|
+
iosm cycle status
|
|
115
|
+
|
|
116
|
+
# View cycle report
|
|
117
|
+
iosm cycle report
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## 🛠 Built-in Tools
|
|
123
|
+
|
|
124
|
+
The agent has access to 7 built-in tools for direct filesystem and shell interaction:
|
|
125
|
+
|
|
126
|
+
| Tool | Description | Key Capabilities |
|
|
127
|
+
|------|-------------|-----------------|
|
|
128
|
+
| `read` | Read file contents | Line-range selection, image support, streaming for large files |
|
|
129
|
+
| `bash` | Execute shell commands | Full shell access with configurable permissions and timeouts |
|
|
130
|
+
| `edit` | Edit existing files | Diff-based editing with before/after verification |
|
|
131
|
+
| `write` | Create/overwrite files | New file creation, directory auto-creation |
|
|
132
|
+
| `grep` | Search file contents | Regex/literal search, include/exclude patterns, context lines |
|
|
133
|
+
| `find` | Find files by name/pattern | Glob patterns, type filters, depth limits |
|
|
134
|
+
| `ls` | List directory contents | Recursive listing, size/date info, ignore patterns |
|
|
135
|
+
|
|
136
|
+
### Tool Control
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Use all tools (default)
|
|
140
|
+
iosm
|
|
141
|
+
|
|
142
|
+
# Read-only tools
|
|
143
|
+
iosm --tools read,grep,find,ls
|
|
144
|
+
|
|
145
|
+
# Disable all tools
|
|
146
|
+
iosm --no-tools
|
|
147
|
+
|
|
148
|
+
# Specific tool selection
|
|
149
|
+
iosm --tools read,bash,grep
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 🤖 Supported Providers
|
|
155
|
+
|
|
156
|
+
| Provider | Environment Variable | Example Model |
|
|
157
|
+
|----------|---------------------|---------------|
|
|
158
|
+
| Anthropic | `ANTHROPIC_API_KEY` | `claude-sonnet-4-20250514` |
|
|
159
|
+
| OpenAI | `OPENAI_API_KEY` | `gpt-4o` |
|
|
160
|
+
| Google Gemini | `GEMINI_API_KEY` | `gemini-2.5-pro` |
|
|
161
|
+
| Groq | `GROQ_API_KEY` | `llama-3.3-70b` |
|
|
162
|
+
| Cerebras | `CEREBRAS_API_KEY` | `llama-3.3-70b` |
|
|
163
|
+
| xAI | `XAI_API_KEY` | `grok-3` |
|
|
164
|
+
| OpenRouter | `OPENROUTER_API_KEY` | `anthropic/claude-sonnet-4` |
|
|
165
|
+
| Mistral | `MISTRAL_API_KEY` | `mistral-large` |
|
|
166
|
+
| AWS Bedrock | `AWS_ACCESS_KEY_ID` | `anthropic.claude-v2` |
|
|
167
|
+
| Azure OpenAI | `AZURE_OPENAI_API_KEY` | `gpt-4o` |
|
|
168
|
+
| MiniMax | `MINIMAX_API_KEY` | — |
|
|
169
|
+
| Kimi | `KIMI_API_KEY` | — |
|
|
170
|
+
| AI Gateway | `AI_GATEWAY_API_KEY` | — |
|
|
171
|
+
|
|
172
|
+
### Model Selection
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# Full provider/model specification
|
|
176
|
+
iosm --provider openai --model gpt-4o
|
|
177
|
+
|
|
178
|
+
# Shorthand with provider prefix
|
|
179
|
+
iosm --model openai/gpt-4o
|
|
180
|
+
|
|
181
|
+
# Model with thinking level
|
|
182
|
+
iosm --model sonnet:high
|
|
183
|
+
|
|
184
|
+
# Cycle through models during session
|
|
185
|
+
iosm --models "sonnet,gpt-4o,gemini-2.5-pro"
|
|
186
|
+
|
|
187
|
+
# List available models
|
|
188
|
+
iosm --list-models
|
|
189
|
+
iosm --list-models gemini
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## 💬 Interactive Mode
|
|
195
|
+
|
|
196
|
+
Interactive mode is the default experience — a rich multi-turn terminal session:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
iosm
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Slash Commands
|
|
203
|
+
|
|
204
|
+
| Category | Commands |
|
|
205
|
+
|----------|----------|
|
|
206
|
+
| **Session** | `/new` `/resume` `/fork` `/tree` `/checkpoint` `/rollback` `/name` `/session` `/quit` |
|
|
207
|
+
| **Model** | `/model` `/scoped-models` `/settings` `/hotkeys` `/changelog` |
|
|
208
|
+
| **MCP** | `/mcp` |
|
|
209
|
+
| **Context** | `/memory` |
|
|
210
|
+
| **IOSM** | `/init` `/iosm` `/cycle-plan` `/cycle-status` `/cycle-report` `/cycle-list` |
|
|
211
|
+
| **Orchestration** | `/orchestrate` `/agents` `/subagent-runs` `/subagent-resume` `/team-runs` `/team-status` |
|
|
212
|
+
| **System** | `/doctor` `/export` `/share` `/copy` `/compact` `/reload` `/permissions` `/yolo` `/login` `/logout` |
|
|
213
|
+
|
|
214
|
+
`/mcp add` without flags opens a guided add-server wizard directly in the TUI.
|
|
215
|
+
`/memory` opens an interactive memory manager (add/edit/remove/scope/path), and `/memory <text>` appends a note to `memory.md` with immediate context reload.
|
|
216
|
+
|
|
217
|
+
### Keyboard Shortcuts
|
|
218
|
+
|
|
219
|
+
| Key | Action |
|
|
220
|
+
|-----|--------|
|
|
221
|
+
| `Esc` | Interrupt current run |
|
|
222
|
+
| `Ctrl+C` | Clear input |
|
|
223
|
+
| `Ctrl+D` | Exit |
|
|
224
|
+
| `Shift+Tab` | Cycle profile (full → plan → iosm) |
|
|
225
|
+
| `Shift+Ctrl+T` | Cycle thinking level |
|
|
226
|
+
| `Ctrl+P` / `Shift+Ctrl+P` | Next/previous model |
|
|
227
|
+
| `Ctrl+L` | Open model selector |
|
|
228
|
+
| `Ctrl+O` | Expand/collapse tool output |
|
|
229
|
+
| `Ctrl+T` | Toggle thinking panel |
|
|
230
|
+
| `Ctrl+G` | Open external editor |
|
|
231
|
+
| `Alt+Enter` | Queue follow-up message |
|
|
232
|
+
|
|
233
|
+
Customize keybindings via `~/.iosm/agent/keybindings.json`.
|
|
234
|
+
|
|
235
|
+
### Profiles
|
|
236
|
+
|
|
237
|
+
| Profile | Behavior |
|
|
238
|
+
|---------|----------|
|
|
239
|
+
| `full` | Default — all tools enabled, full agent capabilities |
|
|
240
|
+
| `plan` | Read-first planning and architecture mode |
|
|
241
|
+
| `iosm` | IOSM context with artifact synchronization |
|
|
242
|
+
| `explore` | Exploratory analysis (advanced) |
|
|
243
|
+
| `iosm_analyst` | IOSM metric analysis (advanced) |
|
|
244
|
+
| `iosm_verifier` | IOSM verification (advanced) |
|
|
245
|
+
| `cycle_planner` | Cycle planning specialist (advanced) |
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
iosm --profile plan
|
|
249
|
+
iosm --profile iosm
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## 🔄 IOSM Methodology
|
|
255
|
+
|
|
256
|
+
IOSM (**Improve → Optimize → Shrink → Modularize**) is an algorithmic methodology for systematic engineering improvement. Each cycle follows a fixed phase order with quality gates:
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
PLAN → HYPOTHESIZE → IMPROVE → GATE_I → OPTIMIZE → GATE_O → SHRINK → GATE_S → MODULARIZE → GATE_M → SCORE → LEARN → DECIDE
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### Workspace Artifacts
|
|
263
|
+
|
|
264
|
+
Running `iosm init` creates:
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
project/
|
|
268
|
+
├── iosm.yaml # Configuration, thresholds, weights, policies
|
|
269
|
+
├── IOSM.md # Operator/agent playbook and priority checklist
|
|
270
|
+
└── .iosm/
|
|
271
|
+
├── metrics-history.jsonl # Longitudinal cycle metrics
|
|
272
|
+
├── decision-log.md # Historical decisions and rationale
|
|
273
|
+
├── pattern-library.md # Reusable implementation patterns
|
|
274
|
+
├── waivers.yaml # Governance exceptions
|
|
275
|
+
├── invariants.yaml # Logic baseline
|
|
276
|
+
├── contracts.yaml # Boundary control
|
|
277
|
+
└── cycles/
|
|
278
|
+
└── <cycle-id>/
|
|
279
|
+
├── baseline-report.json
|
|
280
|
+
├── hypotheses.json
|
|
281
|
+
├── cycle-report.json
|
|
282
|
+
└── phase-reports/
|
|
283
|
+
├── improve.json
|
|
284
|
+
├── optimize.json
|
|
285
|
+
├── shrink.json
|
|
286
|
+
└── modularize.json
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### Six Canonical Metrics
|
|
290
|
+
|
|
291
|
+
| Metric | Intent |
|
|
292
|
+
|--------|--------|
|
|
293
|
+
| `semantic` | The system says one thing in one way |
|
|
294
|
+
| `logic` | The system behaves consistently |
|
|
295
|
+
| `performance` | The system is fast enough and survives disruption |
|
|
296
|
+
| `simplicity` | The system is easier to use and change |
|
|
297
|
+
| `modularity` | The system evolves with low blast radius |
|
|
298
|
+
| `flow` | The organization ships changes predictably |
|
|
299
|
+
|
|
300
|
+
### Example Workflow
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
# 1. Initialize IOSM workspace
|
|
304
|
+
iosm init
|
|
305
|
+
|
|
306
|
+
# 2. Plan a cycle with goals
|
|
307
|
+
iosm cycle plan "reduce checkout latency" "simplify auth module"
|
|
308
|
+
|
|
309
|
+
# 3. Work through the cycle in interactive mode
|
|
310
|
+
iosm --profile iosm
|
|
311
|
+
|
|
312
|
+
# 4. Check progress
|
|
313
|
+
iosm cycle status
|
|
314
|
+
|
|
315
|
+
# 5. View the full report
|
|
316
|
+
iosm cycle report
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
For the full IOSM specification, see [iosm-spec.md](./iosm-spec.md).
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## 🤝 Subagent Orchestration
|
|
324
|
+
|
|
325
|
+
Delegate tasks to specialized subagents with parallel or sequential execution:
|
|
326
|
+
|
|
327
|
+
```bash
|
|
328
|
+
# Orchestrate 3 parallel agents with different profiles
|
|
329
|
+
/orchestrate --parallel --agents 3 \
|
|
330
|
+
--profiles explore,full,iosm_verifier \
|
|
331
|
+
--cwd .,src,.iosm \
|
|
332
|
+
Implement feature X
|
|
333
|
+
|
|
334
|
+
# Sequential with dependencies
|
|
335
|
+
/orchestrate --sequential --agents 2 \
|
|
336
|
+
--depends 2>1 \
|
|
337
|
+
First analyze, then implement
|
|
338
|
+
|
|
339
|
+
# With worktree isolation for write-heavy work
|
|
340
|
+
/orchestrate --parallel --worktree --agents 2 \
|
|
341
|
+
Refactor both modules independently
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### Custom Agents
|
|
345
|
+
|
|
346
|
+
Define custom agents in `.iosm/agents/*.md`:
|
|
347
|
+
|
|
348
|
+
```markdown
|
|
349
|
+
---
|
|
350
|
+
name: security-auditor
|
|
351
|
+
description: Specialized security review agent
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
You are a security auditor. Review code for:
|
|
355
|
+
- SQL injection vulnerabilities
|
|
356
|
+
- XSS attack vectors
|
|
357
|
+
- Authentication bypasses
|
|
358
|
+
- Secrets exposure
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
Use with `@security-auditor` mention in interactive mode.
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
## 🔌 Extension System
|
|
366
|
+
|
|
367
|
+
Extensions are TypeScript modules that can register tools, commands, hooks, UI components, and provider integrations.
|
|
368
|
+
|
|
369
|
+
### Quick Example
|
|
370
|
+
|
|
371
|
+
```typescript
|
|
372
|
+
import type { ExtensionAPI } from "iosm-cli";
|
|
373
|
+
import { Type } from "@sinclair/typebox";
|
|
374
|
+
|
|
375
|
+
export default function (pi: ExtensionAPI) {
|
|
376
|
+
// Register a custom tool
|
|
377
|
+
pi.registerTool({
|
|
378
|
+
name: "greet",
|
|
379
|
+
label: "Greeting",
|
|
380
|
+
description: "Generate a greeting",
|
|
381
|
+
parameters: Type.Object({
|
|
382
|
+
name: Type.String({ description: "Name to greet" }),
|
|
383
|
+
}),
|
|
384
|
+
async execute(toolCallId, params) {
|
|
385
|
+
return {
|
|
386
|
+
content: [{ type: "text", text: `Hello, ${params.name}!` }],
|
|
387
|
+
details: {},
|
|
388
|
+
};
|
|
389
|
+
},
|
|
390
|
+
});
|
|
391
|
+
|
|
392
|
+
// Register a slash command
|
|
393
|
+
pi.registerCommand("hello", {
|
|
394
|
+
description: "Say hello",
|
|
395
|
+
handler: async (args, ctx) => {
|
|
396
|
+
ctx.ui.notify("Hello from extension!", "info");
|
|
397
|
+
},
|
|
398
|
+
});
|
|
399
|
+
|
|
400
|
+
// Subscribe to lifecycle events
|
|
401
|
+
pi.on("tool_call", async (event, ctx) => {
|
|
402
|
+
if (event.toolName === "bash" && event.input.command?.includes("rm -rf")) {
|
|
403
|
+
const ok = await ctx.ui.confirm("Warning", "Allow rm -rf?");
|
|
404
|
+
if (!ok) return { block: true, reason: "Blocked by user" };
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
### Loading Extensions
|
|
411
|
+
|
|
412
|
+
```bash
|
|
413
|
+
# CLI flag
|
|
414
|
+
iosm -e ./my-extension.ts
|
|
415
|
+
|
|
416
|
+
# Auto-discovery directories
|
|
417
|
+
~/.iosm/agent/extensions/ # Global
|
|
418
|
+
.iosm/extensions/ # Project-local
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
See [66 extension examples](./examples/extensions/) covering tools, UI, git integration, providers, and more.
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## 📡 SDK & Programmatic Usage
|
|
426
|
+
|
|
427
|
+
Use `iosm-cli` as a library in your own applications:
|
|
428
|
+
|
|
429
|
+
```typescript
|
|
430
|
+
import { createAgentSession, AuthStorage, ModelRegistry } from "iosm-cli";
|
|
431
|
+
|
|
432
|
+
const authStorage = AuthStorage.create();
|
|
433
|
+
const modelRegistry = new ModelRegistry(authStorage);
|
|
434
|
+
|
|
435
|
+
// Create a session
|
|
436
|
+
const { session } = await createAgentSession({
|
|
437
|
+
authStorage,
|
|
438
|
+
modelRegistry,
|
|
439
|
+
});
|
|
440
|
+
|
|
441
|
+
// Subscribe to events
|
|
442
|
+
session.subscribe((event) => {
|
|
443
|
+
if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
|
|
444
|
+
process.stdout.write(event.assistantMessageEvent.delta);
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
|
|
448
|
+
// Send prompts
|
|
449
|
+
await session.prompt("Analyze this codebase and suggest improvements");
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
### Output Modes
|
|
453
|
+
|
|
454
|
+
```bash
|
|
455
|
+
# JSON event stream (for automation)
|
|
456
|
+
iosm --mode json "Your prompt"
|
|
457
|
+
|
|
458
|
+
# JSON-RPC server (for IDE integration)
|
|
459
|
+
iosm --mode rpc --no-session
|
|
460
|
+
|
|
461
|
+
# Single-turn print (for scripts/CI)
|
|
462
|
+
iosm -p "Summarize the architecture"
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
See [12 SDK examples](./examples/sdk/) for complete usage patterns.
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## 📂 Sessions & Export
|
|
470
|
+
|
|
471
|
+
### Session Persistence
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
# Continue previous session
|
|
475
|
+
iosm --continue
|
|
476
|
+
iosm -c
|
|
477
|
+
|
|
478
|
+
# Interactive session picker
|
|
479
|
+
iosm --resume
|
|
480
|
+
iosm -r
|
|
481
|
+
|
|
482
|
+
# Use specific session file
|
|
483
|
+
iosm --session /path/to/session.jsonl
|
|
484
|
+
|
|
485
|
+
# Ephemeral (no persistence)
|
|
486
|
+
iosm --no-session
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
### Export & Sharing
|
|
490
|
+
|
|
491
|
+
```bash
|
|
492
|
+
# Export session to HTML
|
|
493
|
+
/export
|
|
494
|
+
|
|
495
|
+
# Share via GitHub Gist
|
|
496
|
+
/share
|
|
497
|
+
|
|
498
|
+
# Copy last response to clipboard
|
|
499
|
+
/copy
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
### Session Navigation
|
|
503
|
+
|
|
504
|
+
```bash
|
|
505
|
+
# View session tree
|
|
506
|
+
/tree
|
|
507
|
+
|
|
508
|
+
# Fork from a previous point
|
|
509
|
+
/fork
|
|
510
|
+
|
|
511
|
+
# Name the session
|
|
512
|
+
/name "refactoring-auth-module"
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
---
|
|
516
|
+
|
|
517
|
+
## ⚙️ Configuration
|
|
518
|
+
|
|
519
|
+
### Hierarchy (highest priority first)
|
|
520
|
+
|
|
521
|
+
1. **CLI flags** — runtime overrides
|
|
522
|
+
2. **Project settings** — `.iosm/settings.json`
|
|
523
|
+
3. **Global settings** — `~/.iosm/agent/settings.json`
|
|
524
|
+
|
|
525
|
+
### Key Directories
|
|
526
|
+
|
|
527
|
+
| Path | Purpose |
|
|
528
|
+
|------|---------|
|
|
529
|
+
| `~/.iosm/agent/` | Global config, models, auth, sessions |
|
|
530
|
+
| `~/.iosm/agent/settings.json` | Global settings |
|
|
531
|
+
| `~/.iosm/agent/auth.json` | Provider credentials |
|
|
532
|
+
| `~/.iosm/agent/extensions/` | Global extensions |
|
|
533
|
+
| `~/.iosm/agent/skills/` | Global skills |
|
|
534
|
+
| `~/.iosm/agent/themes/` | Global themes |
|
|
535
|
+
| `.iosm/` | Project-local workspace |
|
|
536
|
+
| `.iosm/settings.json` | Project settings |
|
|
537
|
+
| `.iosm/extensions/` | Project extensions |
|
|
538
|
+
|
|
539
|
+
### Environment Variables
|
|
540
|
+
|
|
541
|
+
```bash
|
|
542
|
+
# Provider keys
|
|
543
|
+
export ANTHROPIC_API_KEY="..."
|
|
544
|
+
export OPENAI_API_KEY="..."
|
|
545
|
+
export GEMINI_API_KEY="..."
|
|
546
|
+
|
|
547
|
+
# Runtime behavior
|
|
548
|
+
export IOSM_OFFLINE=1 # Disable network on startup
|
|
549
|
+
export IOSM_SESSION_TRACE=1 # Enable JSONL trace
|
|
550
|
+
export IOSM_SESSION_TRACE_DIR="/traces" # Trace directory
|
|
551
|
+
export IOSM_CODING_AGENT_DIR="/custom" # Override agent directory
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## 📁 Repository Structure
|
|
557
|
+
|
|
558
|
+
```
|
|
559
|
+
iosm-cli/
|
|
560
|
+
├── src/
|
|
561
|
+
│ ├── cli/ # CLI argument parsing and config
|
|
562
|
+
│ ├── core/ # Runtime engine
|
|
563
|
+
│ │ ├── tools/ # Built-in tools (read, bash, edit, write, grep, find, ls)
|
|
564
|
+
│ │ ├── extensions/ # Extension system (discovery, runners, hooks)
|
|
565
|
+
│ │ ├── compaction/ # Context compaction and summarization
|
|
566
|
+
│ │ ├── export-html/ # HTML session export templates
|
|
567
|
+
│ │ ├── agent-session.ts # Core agent session logic
|
|
568
|
+
│ │ ├── subagents.ts # Subagent orchestration
|
|
569
|
+
│ │ ├── session-manager.ts # Session persistence
|
|
570
|
+
│ │ ├── model-registry.ts # Multi-provider model registry
|
|
571
|
+
│ │ ├── package-manager.ts # Package install/remove/update
|
|
572
|
+
│ │ ├── sdk.ts # Programmatic API
|
|
573
|
+
│ │ └── ...
|
|
574
|
+
│ ├── iosm/ # IOSM methodology implementation
|
|
575
|
+
│ │ ├── init.ts # Workspace bootstrapping
|
|
576
|
+
│ │ ├── cycle.ts # Cycle lifecycle management
|
|
577
|
+
│ │ ├── metrics.ts # Metric calculation and normalization
|
|
578
|
+
│ │ ├── config.ts # IOSM configuration parsing
|
|
579
|
+
│ │ └── ...
|
|
580
|
+
│ ├── modes/ # Output modes
|
|
581
|
+
│ │ ├── interactive/ # TUI with full keyboard/UI
|
|
582
|
+
│ │ ├── rpc/ # JSON-RPC server mode
|
|
583
|
+
│ │ └── print-mode.ts # Single-shot print mode
|
|
584
|
+
│ └── utils/ # Utilities (git, shell, clipboard, images)
|
|
585
|
+
├── test/ # 73 Vitest test files
|
|
586
|
+
├── examples/
|
|
587
|
+
│ ├── extensions/ # 66 extension examples
|
|
588
|
+
│ └── sdk/ # 12 SDK examples
|
|
589
|
+
├── docs/ # Comprehensive documentation
|
|
590
|
+
├── iosm-spec.md # Full IOSM methodology specification
|
|
591
|
+
├── package.json
|
|
592
|
+
├── tsconfig.base.json
|
|
593
|
+
└── vitest.config.ts
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
---
|
|
597
|
+
|
|
598
|
+
## 🧑💻 Development
|
|
599
|
+
|
|
600
|
+
```bash
|
|
601
|
+
# Install dependencies
|
|
602
|
+
npm install
|
|
603
|
+
|
|
604
|
+
# Type-check
|
|
605
|
+
npm run check
|
|
606
|
+
|
|
607
|
+
# Run tests
|
|
608
|
+
npm test
|
|
609
|
+
|
|
610
|
+
# Build
|
|
611
|
+
npm run build
|
|
612
|
+
|
|
613
|
+
# Watch mode (development)
|
|
614
|
+
npm run dev
|
|
615
|
+
|
|
616
|
+
# Build standalone binary (via Bun)
|
|
617
|
+
npm run build:binary
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
See [Development & Testing](./docs/development-and-testing.md) and [CONTRIBUTING.md](./CONTRIBUTING.md) for details.
|
|
621
|
+
|
|
622
|
+
---
|
|
623
|
+
|
|
624
|
+
## 📚 Documentation
|
|
625
|
+
|
|
626
|
+
| Document | Description |
|
|
627
|
+
|----------|-------------|
|
|
628
|
+
| [Getting Started](./docs/getting-started.md) | Installation, first run, provider setup |
|
|
629
|
+
| [CLI Reference](./docs/cli-reference.md) | Complete flag and option reference |
|
|
630
|
+
| [Interactive Mode](./docs/interactive-mode.md) | Slash commands, keybindings, profiles |
|
|
631
|
+
| [IOSM Init & Cycles](./docs/iosm-init-and-cycles.md) | Workspace bootstrap and cycle operations |
|
|
632
|
+
| [Orchestration & Subagents](./docs/orchestration-and-subagents.md) | Task delegation and parallel execution |
|
|
633
|
+
| [Extensions & Packages](./docs/extensions-packages-themes.md) | Extension API, skills, themes, packages |
|
|
634
|
+
| [Configuration](./docs/configuration.md) | Settings, env vars, profiles |
|
|
635
|
+
| [Sessions & Export](./docs/sessions-traces-export.md) | Persistence, traces, HTML export |
|
|
636
|
+
| [JSON/RPC/SDK](./docs/rpc-json-sdk.md) | Programmatic integrations |
|
|
637
|
+
| [Development & Testing](./docs/development-and-testing.md) | Contributing, architecture, tests |
|
|
638
|
+
| [IOSM Specification](./iosm-spec.md) | Full methodology specification |
|
|
639
|
+
|
|
640
|
+
---
|
|
641
|
+
|
|
642
|
+
## 📄 License
|
|
643
|
+
|
|
644
|
+
[MIT](./LICENSE) © 2026 Emil Rokossovskiy
|
|
645
|
+
|
|
646
|
+
---
|
|
647
|
+
|
|
648
|
+
<p align="center">
|
|
649
|
+
<sub>Created by Emil Rokossovskiy · <a href="https://github.com/rokoss21">@rokoss21</a> · ecsiar@gmail.com</sub>
|
|
650
|
+
</p>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI argument parsing and help display
|
|
3
|
+
*/
|
|
4
|
+
import type { ThinkingLevel } from "@mariozechner/pi-agent-core";
|
|
5
|
+
import { type ToolName } from "../core/tools/index.js";
|
|
6
|
+
export type Mode = "text" | "json" | "rpc";
|
|
7
|
+
export interface Args {
|
|
8
|
+
provider?: string;
|
|
9
|
+
model?: string;
|
|
10
|
+
apiKey?: string;
|
|
11
|
+
systemPrompt?: string;
|
|
12
|
+
appendSystemPrompt?: string;
|
|
13
|
+
thinking?: ThinkingLevel;
|
|
14
|
+
continue?: boolean;
|
|
15
|
+
resume?: boolean;
|
|
16
|
+
help?: boolean;
|
|
17
|
+
version?: boolean;
|
|
18
|
+
mode?: Mode;
|
|
19
|
+
noSession?: boolean;
|
|
20
|
+
session?: string;
|
|
21
|
+
sessionDir?: string;
|
|
22
|
+
models?: string[];
|
|
23
|
+
tools?: ToolName[];
|
|
24
|
+
noTools?: boolean;
|
|
25
|
+
extensions?: string[];
|
|
26
|
+
noExtensions?: boolean;
|
|
27
|
+
print?: boolean;
|
|
28
|
+
export?: string;
|
|
29
|
+
noSkills?: boolean;
|
|
30
|
+
skills?: string[];
|
|
31
|
+
promptTemplates?: string[];
|
|
32
|
+
noPromptTemplates?: boolean;
|
|
33
|
+
themes?: string[];
|
|
34
|
+
noThemes?: boolean;
|
|
35
|
+
listModels?: string | true;
|
|
36
|
+
offline?: boolean;
|
|
37
|
+
sessionTrace?: boolean;
|
|
38
|
+
sessionTraceDir?: string;
|
|
39
|
+
verbose?: boolean;
|
|
40
|
+
/** Enable plan mode: agent explores read-only then presents plan for approval before executing */
|
|
41
|
+
plan?: boolean;
|
|
42
|
+
/** Agent profile to use: full | plan | iosm (main) plus advanced/internal profiles */
|
|
43
|
+
profile?: string;
|
|
44
|
+
messages: string[];
|
|
45
|
+
fileArgs: string[];
|
|
46
|
+
/** Unknown flags (potentially extension flags) - map of flag name to value */
|
|
47
|
+
unknownFlags: Map<string, boolean | string>;
|
|
48
|
+
}
|
|
49
|
+
export declare function isValidThinkingLevel(level: string): level is ThinkingLevel;
|
|
50
|
+
export declare function parseArgs(args: string[], extensionFlags?: Map<string, {
|
|
51
|
+
type: "boolean" | "string";
|
|
52
|
+
}>): Args;
|
|
53
|
+
export declare function printHelp(): void;
|
|
54
|
+
//# sourceMappingURL=args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAajE,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3C,MAAM,WAAW,IAAI;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kGAAkG;IAClG,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8EAA8E;IAC9E,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;CAC5C;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,aAAa,CAE1E;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAA;CAAE,CAAC,GAAG,IAAI,CAkI5G;AAED,wBAAgB,SAAS,IAAI,IAAI,CA6JhC"}
|