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
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
# Orchestration & Subagents
|
|
2
|
+
|
|
3
|
+
`iosm-cli` supports delegated execution through subagents — specialized AI agents that handle task delegation, parallel execution, and multi-agent workflows.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Subagents allow you to:
|
|
8
|
+
- **Delegate tasks** to specialized agents with isolated context windows
|
|
9
|
+
- **Run agents in parallel** for independent analyses or implementations
|
|
10
|
+
- **Orchestrate teams** with dependency ordering and lock-based coordination
|
|
11
|
+
- **Track runs** with full transcripts and result aggregation
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## User-Level Entry Points
|
|
16
|
+
|
|
17
|
+
### 1. Natural Language Delegation
|
|
18
|
+
|
|
19
|
+
Simply describe what you want delegated, and the agent handles orchestration:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
You: Launch 3 agents to analyze security, performance, and code quality separately
|
|
23
|
+
|
|
24
|
+
Agent: I'll create 3 parallel subagents for each analysis area...
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 2. Slash Command Orchestration
|
|
28
|
+
|
|
29
|
+
Use `/orchestrate` for explicit control:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
/orchestrate --parallel --agents 3 \
|
|
33
|
+
--profiles explore,full,iosm_verifier \
|
|
34
|
+
--cwd .,src,.iosm \
|
|
35
|
+
Analyze security, optimize performance, verify IOSM compliance
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 3. Agent Mention
|
|
39
|
+
|
|
40
|
+
Reference a specific agent by name:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
@security-auditor Review the authentication module for vulnerabilities
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## `/orchestrate` Command
|
|
49
|
+
|
|
50
|
+
### Syntax
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
/orchestrate [flags] <task description>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Execution Flags
|
|
57
|
+
|
|
58
|
+
| Flag | Description | Example |
|
|
59
|
+
|------|-------------|---------|
|
|
60
|
+
| `--parallel` | Run agents concurrently | `--parallel` |
|
|
61
|
+
| `--sequential` | Run agents one after another | `--sequential` |
|
|
62
|
+
| `--agents <N>` | Number of agents to spawn | `--agents 3` |
|
|
63
|
+
| `--max-parallel <N>` | Concurrency limit for parallel runs | `--max-parallel 2` |
|
|
64
|
+
|
|
65
|
+
### Profile & Context Flags
|
|
66
|
+
|
|
67
|
+
| Flag | Description | Example |
|
|
68
|
+
|------|-------------|---------|
|
|
69
|
+
| `--profile <name>` | Single profile for all agents | `--profile explore` |
|
|
70
|
+
| `--profiles p1,p2,...` | Per-agent profile assignment | `--profiles explore,full,iosm_verifier` |
|
|
71
|
+
| `--cwd path1,path2,...` | Per-agent working directories | `--cwd .,src,test` |
|
|
72
|
+
|
|
73
|
+
### Coordination Flags
|
|
74
|
+
|
|
75
|
+
| Flag | Description | Example |
|
|
76
|
+
|------|-------------|---------|
|
|
77
|
+
| `--locks lock1,lock2,...` | Write serialization domains | `--locks db,config` |
|
|
78
|
+
| `--depends 2>1,3>2` | Dependency ordering | `--depends 2>1` (agent 2 waits for 1) |
|
|
79
|
+
| `--worktree` | Git worktree isolation | `--worktree` |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Usage Examples
|
|
84
|
+
|
|
85
|
+
### Parallel Independent Analysis
|
|
86
|
+
|
|
87
|
+
Three agents analyze different aspects simultaneously:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
/orchestrate --parallel --agents 3 \
|
|
91
|
+
--profiles explore,explore,explore \
|
|
92
|
+
--cwd src/auth,src/api,src/data \
|
|
93
|
+
Analyze code quality and suggest improvements
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Sequential Pipeline
|
|
97
|
+
|
|
98
|
+
Agent 2 depends on Agent 1's output:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
/orchestrate --sequential --agents 2 \
|
|
102
|
+
--depends 2>1 \
|
|
103
|
+
First: analyze the codebase architecture. \
|
|
104
|
+
Second: propose a refactoring plan based on the analysis.
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Parallel with Write Isolation
|
|
108
|
+
|
|
109
|
+
For concurrent changes that might conflict:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
/orchestrate --parallel --worktree --agents 2 \
|
|
113
|
+
Agent 1: refactor auth module \
|
|
114
|
+
Agent 2: refactor payment module
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Locked Write Coordination
|
|
118
|
+
|
|
119
|
+
Serialize writes to shared resources:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
/orchestrate --parallel --agents 3 \
|
|
123
|
+
--locks database-schema \
|
|
124
|
+
All agents: optimize your assigned module's database queries
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Full Team Orchestration
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
/orchestrate --parallel --agents 4 \
|
|
131
|
+
--profiles iosm_analyst,explore,iosm_verifier,full \
|
|
132
|
+
--max-parallel 2 \
|
|
133
|
+
1: Collect baseline metrics \
|
|
134
|
+
2: Identify optimization opportunities \
|
|
135
|
+
3: Verify current quality gate compliance \
|
|
136
|
+
4: Implement the top-priority fix
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Visibility & Tracking
|
|
142
|
+
|
|
143
|
+
### View Subagent Runs
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
/subagent-runs
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Lists all subagent runs with:
|
|
150
|
+
- Run ID, status (running/complete/failed)
|
|
151
|
+
- Agent profile and task description
|
|
152
|
+
- Timestamps and duration
|
|
153
|
+
|
|
154
|
+
### Resume a Subagent Run
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
/subagent-resume <run-id> [extra instructions]
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Continue or refine a previous subagent's work:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
/subagent-resume run-abc123 "Focus more on error handling"
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Team Run Status
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
/team-runs # List team orchestration runs
|
|
170
|
+
/team-status <team-run-id> # Detailed status of a specific team run
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Artifacts
|
|
174
|
+
|
|
175
|
+
Subagent transcripts and team records are stored in:
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
.iosm/subagents/
|
|
179
|
+
├── runs/ # Individual subagent transcripts
|
|
180
|
+
└── teams/ # Team orchestration records
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Custom Agents
|
|
186
|
+
|
|
187
|
+
### Defining Custom Agents
|
|
188
|
+
|
|
189
|
+
Create markdown files in `.iosm/agents/`:
|
|
190
|
+
|
|
191
|
+
```markdown
|
|
192
|
+
---
|
|
193
|
+
name: security-auditor
|
|
194
|
+
description: Specialized security vulnerability analysis
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
You are a security auditor specializing in web application security.
|
|
198
|
+
|
|
199
|
+
Your responsibilities:
|
|
200
|
+
1. Review code for OWASP Top 10 vulnerabilities
|
|
201
|
+
2. Check authentication and authorization flows
|
|
202
|
+
3. Identify secrets exposure risks
|
|
203
|
+
4. Validate input sanitization
|
|
204
|
+
5. Check for SQL injection, XSS, CSRF vectors
|
|
205
|
+
|
|
206
|
+
Always provide:
|
|
207
|
+
- Severity rating (Critical/High/Medium/Low)
|
|
208
|
+
- Specific file and line references
|
|
209
|
+
- Recommended fixes with code examples
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Using Custom Agents
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# Reference by name in chat
|
|
216
|
+
@security-auditor Review the login flow
|
|
217
|
+
|
|
218
|
+
# View all available agents
|
|
219
|
+
/agents
|
|
220
|
+
|
|
221
|
+
# Use in orchestration
|
|
222
|
+
/orchestrate --agents 1 --profile security-auditor \
|
|
223
|
+
Audit the authentication module
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### System Agents
|
|
227
|
+
|
|
228
|
+
Built-in system agents available by default include auditor, verifier, and executor roles. View them with `/agents`.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Parallel Safety Model
|
|
233
|
+
|
|
234
|
+
### When to Use Locks
|
|
235
|
+
|
|
236
|
+
Use `lock_key` domains when multiple agents might write to the same files:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
/orchestrate --parallel --agents 2 \
|
|
240
|
+
--locks "config-files" \
|
|
241
|
+
Both modify shared configuration
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### When to Use Worktrees
|
|
245
|
+
|
|
246
|
+
Use `--worktree` for large-scale concurrent edits:
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
/orchestrate --parallel --worktree --agents 3 \
|
|
250
|
+
Each refactor a major module independently
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### When No Coordination Is Needed
|
|
254
|
+
|
|
255
|
+
Keep independent analyses lock-free:
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
/orchestrate --parallel --agents 3 \
|
|
259
|
+
--profiles explore,explore,explore \
|
|
260
|
+
Each analyze a different module (read-only)
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## Best Practices
|
|
266
|
+
|
|
267
|
+
1. **Keep tasks independent** — Each agent works best with a well-defined, independent scope
|
|
268
|
+
2. **Narrow responsibilities** — One agent, one clear task
|
|
269
|
+
3. **Use appropriate profiles** — Read-only tasks don't need `full` profile
|
|
270
|
+
4. **Aggregate results** — The orchestrating agent synthesizes all subagent outputs
|
|
271
|
+
5. **Clarify constraints** — Specify boundaries and expected output format
|
|
272
|
+
6. **Monitor progress** — Use `/subagent-runs` and `/team-status` to track execution
|
|
273
|
+
7. **Start small** — Begin with 2-3 agents and scale up as needed
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
# JSON, RPC, and SDK Integrations
|
|
2
|
+
|
|
3
|
+
`iosm-cli` supports multiple integration modes beyond interactive use: JSON event streaming for automation, JSON-RPC for IDE integrations, and a programmatic SDK for embedding.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## JSON Stream Mode
|
|
8
|
+
|
|
9
|
+
Machine-readable line-delimited JSON event stream. Ideal for automation, log processing, and lightweight integrations.
|
|
10
|
+
|
|
11
|
+
### Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
iosm --mode json "Your prompt"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Event Types
|
|
18
|
+
|
|
19
|
+
Each line is a JSON object with a `type` field:
|
|
20
|
+
|
|
21
|
+
```jsonl
|
|
22
|
+
{"type":"text_delta","delta":"Here is "}
|
|
23
|
+
{"type":"text_delta","delta":"my analysis..."}
|
|
24
|
+
{"type":"tool_call_start","toolName":"read","input":{"file_path":"src/main.ts"}}
|
|
25
|
+
{"type":"tool_call_end","toolName":"read","result":"...file contents..."}
|
|
26
|
+
{"type":"text_delta","delta":"Based on the code..."}
|
|
27
|
+
{"type":"agent_end","usage":{"inputTokens":500,"outputTokens":200}}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Example: CI Pipeline
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Check for TODO comments and parse output
|
|
34
|
+
result=$(iosm --mode json -p "Find all TODO comments in src/" 2>/dev/null)
|
|
35
|
+
echo "$result" | jq -r 'select(.type=="text_delta") | .delta' | tr -d '\n'
|
|
36
|
+
|
|
37
|
+
# Automated code review with JSON output
|
|
38
|
+
iosm --mode json -p "Review src/auth.ts for security issues" > review.jsonl
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Example: Script Integration
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
#!/bin/bash
|
|
45
|
+
# Automated documentation generator
|
|
46
|
+
iosm --mode json -p "Generate JSDoc for all exported functions in src/index.ts" \
|
|
47
|
+
| jq -r 'select(.type=="text_delta") | .delta' \
|
|
48
|
+
> generated-docs.md
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## RPC Mode
|
|
54
|
+
|
|
55
|
+
stdio-based JSON-RPC server for stateful IDE/editor integrations.
|
|
56
|
+
|
|
57
|
+
### Starting the RPC Server
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
iosm --mode rpc --no-session
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Protocol
|
|
64
|
+
|
|
65
|
+
Communication happens over stdin/stdout using JSON-RPC 2.0 messages:
|
|
66
|
+
|
|
67
|
+
**Request:**
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"jsonrpc": "2.0",
|
|
71
|
+
"id": 1,
|
|
72
|
+
"method": "prompt",
|
|
73
|
+
"params": {
|
|
74
|
+
"message": "Explain this function",
|
|
75
|
+
"context": {
|
|
76
|
+
"file": "src/auth.ts",
|
|
77
|
+
"selection": "function validateToken(token: string) { ... }"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Response (streaming):**
|
|
84
|
+
```json
|
|
85
|
+
{"jsonrpc":"2.0","id":1,"result":{"type":"text_delta","delta":"This function..."}}
|
|
86
|
+
{"jsonrpc":"2.0","id":1,"result":{"type":"text_delta","delta":" validates..."}}
|
|
87
|
+
{"jsonrpc":"2.0","id":1,"result":{"type":"agent_end"}}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Integration Pattern
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
┌─────────────┐ stdin ┌────────────┐
|
|
94
|
+
│ IDE/App │ ──────────────→ │ iosm-cli │
|
|
95
|
+
│ (Host) │ ←────────────── │ (RPC) │
|
|
96
|
+
└─────────────┘ stdout └────────────┘
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
1. **Spawn** the `iosm --mode rpc --no-session` process
|
|
100
|
+
2. **Send** JSON-RPC requests via stdin
|
|
101
|
+
3. **Receive** streaming responses via stdout
|
|
102
|
+
4. **Manage** lifecycle from the host application
|
|
103
|
+
|
|
104
|
+
### Example: Node.js Client
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
import { spawn } from "child_process";
|
|
108
|
+
|
|
109
|
+
const agent = spawn("iosm", ["--mode", "rpc", "--no-session"]);
|
|
110
|
+
|
|
111
|
+
// Send a request
|
|
112
|
+
const request = JSON.stringify({
|
|
113
|
+
jsonrpc: "2.0",
|
|
114
|
+
id: 1,
|
|
115
|
+
method: "prompt",
|
|
116
|
+
params: { message: "Hello, explain TypeScript generics" }
|
|
117
|
+
});
|
|
118
|
+
agent.stdin.write(request + "\n");
|
|
119
|
+
|
|
120
|
+
// Read responses
|
|
121
|
+
agent.stdout.on("data", (data) => {
|
|
122
|
+
const lines = data.toString().split("\n").filter(Boolean);
|
|
123
|
+
for (const line of lines) {
|
|
124
|
+
const response = JSON.parse(line);
|
|
125
|
+
if (response.result?.type === "text_delta") {
|
|
126
|
+
process.stdout.write(response.result.delta);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### RPC Extension UI
|
|
133
|
+
|
|
134
|
+
Extensions can expose UI elements through RPC mode. See [rpc-extension-ui.ts](../examples/rpc-extension-ui.ts) for a complete example of using `confirm`, `select`, `notify`, and other UI methods over RPC.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Print Mode
|
|
139
|
+
|
|
140
|
+
Single-turn output mode for scripts and CI:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
iosm -p "Summarize the repository architecture"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Use Cases
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# Code review in CI
|
|
150
|
+
iosm -p "Review the last 5 commits for potential issues"
|
|
151
|
+
|
|
152
|
+
# Documentation generation
|
|
153
|
+
iosm -p "Generate API documentation for src/core/sdk.ts" > api-docs.md
|
|
154
|
+
|
|
155
|
+
# Dependency analysis
|
|
156
|
+
iosm --tools read,grep,find,ls -p "List all external dependencies and their versions"
|
|
157
|
+
|
|
158
|
+
# With specific model
|
|
159
|
+
iosm --model gpt-4o -p "Explain the authentication flow"
|
|
160
|
+
|
|
161
|
+
# With file attachments
|
|
162
|
+
iosm @src/auth.ts -p "Find vulnerabilities in this file"
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## SDK (Programmatic API)
|
|
168
|
+
|
|
169
|
+
`iosm-cli` exposes a full SDK for embedding the agent in custom applications.
|
|
170
|
+
|
|
171
|
+
### Core Factory
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
import { createAgentSession, AuthStorage, ModelRegistry } from "iosm-cli";
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Minimal Example
|
|
178
|
+
|
|
179
|
+
```typescript
|
|
180
|
+
import { createAgentSession, AuthStorage, ModelRegistry } from "iosm-cli";
|
|
181
|
+
|
|
182
|
+
const authStorage = AuthStorage.create();
|
|
183
|
+
const modelRegistry = new ModelRegistry(authStorage);
|
|
184
|
+
|
|
185
|
+
const { session } = await createAgentSession({
|
|
186
|
+
authStorage,
|
|
187
|
+
modelRegistry,
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
session.subscribe((event) => {
|
|
191
|
+
if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
|
|
192
|
+
process.stdout.write(event.assistantMessageEvent.delta);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
await session.prompt("Hello, analyze this project");
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Custom Model
|
|
200
|
+
|
|
201
|
+
```typescript
|
|
202
|
+
import { getModel } from "@mariozechner/pi-ai";
|
|
203
|
+
|
|
204
|
+
const model = getModel("anthropic", "claude-sonnet-4-20250514");
|
|
205
|
+
const { session } = await createAgentSession({
|
|
206
|
+
model,
|
|
207
|
+
thinkingLevel: "high",
|
|
208
|
+
authStorage,
|
|
209
|
+
modelRegistry,
|
|
210
|
+
});
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Custom System Prompt
|
|
214
|
+
|
|
215
|
+
```typescript
|
|
216
|
+
import { DefaultResourceLoader } from "iosm-cli";
|
|
217
|
+
|
|
218
|
+
const loader = new DefaultResourceLoader({
|
|
219
|
+
systemPromptOverride: (base) => `${base}\n\nAlways respond in Russian.`,
|
|
220
|
+
});
|
|
221
|
+
await loader.reload();
|
|
222
|
+
|
|
223
|
+
const { session } = await createAgentSession({
|
|
224
|
+
resourceLoader: loader,
|
|
225
|
+
authStorage,
|
|
226
|
+
modelRegistry,
|
|
227
|
+
});
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Read-Only Mode
|
|
231
|
+
|
|
232
|
+
```typescript
|
|
233
|
+
import { readOnlyTools } from "iosm-cli";
|
|
234
|
+
|
|
235
|
+
const { session } = await createAgentSession({
|
|
236
|
+
tools: readOnlyTools, // Only: read, grep, find, ls
|
|
237
|
+
authStorage,
|
|
238
|
+
modelRegistry,
|
|
239
|
+
});
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### In-Memory Session (No Persistence)
|
|
243
|
+
|
|
244
|
+
```typescript
|
|
245
|
+
import { SessionManager } from "iosm-cli";
|
|
246
|
+
|
|
247
|
+
const { session } = await createAgentSession({
|
|
248
|
+
sessionManager: SessionManager.inMemory(),
|
|
249
|
+
authStorage,
|
|
250
|
+
modelRegistry,
|
|
251
|
+
});
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Full Control
|
|
255
|
+
|
|
256
|
+
```typescript
|
|
257
|
+
import {
|
|
258
|
+
createAgentSession,
|
|
259
|
+
AuthStorage,
|
|
260
|
+
ModelRegistry,
|
|
261
|
+
DefaultResourceLoader,
|
|
262
|
+
SessionManager,
|
|
263
|
+
SettingsManager,
|
|
264
|
+
readTool,
|
|
265
|
+
bashTool,
|
|
266
|
+
} from "iosm-cli";
|
|
267
|
+
|
|
268
|
+
// Custom auth
|
|
269
|
+
const customAuth = AuthStorage.create("/my/app/auth.json");
|
|
270
|
+
customAuth.setRuntimeApiKey("anthropic", process.env.MY_KEY!);
|
|
271
|
+
|
|
272
|
+
// Custom resource loader
|
|
273
|
+
const resourceLoader = new DefaultResourceLoader({
|
|
274
|
+
systemPromptOverride: () => "You are a specialized code reviewer.",
|
|
275
|
+
extensionFactories: [myExtension],
|
|
276
|
+
skillsOverride: () => ({ skills: [], diagnostics: [] }),
|
|
277
|
+
agentsFilesOverride: () => ({ agentsFiles: [] }),
|
|
278
|
+
promptsOverride: () => ({ prompts: [], diagnostics: [] }),
|
|
279
|
+
});
|
|
280
|
+
await resourceLoader.reload();
|
|
281
|
+
|
|
282
|
+
// Create session with full control
|
|
283
|
+
const { session } = await createAgentSession({
|
|
284
|
+
model: getModel("anthropic", "claude-sonnet-4-20250514"),
|
|
285
|
+
authStorage: customAuth,
|
|
286
|
+
modelRegistry: new ModelRegistry(customAuth),
|
|
287
|
+
resourceLoader,
|
|
288
|
+
tools: [readTool, bashTool],
|
|
289
|
+
customTools: [{ tool: myCustomTool }],
|
|
290
|
+
sessionManager: SessionManager.inMemory(),
|
|
291
|
+
settingsManager: SettingsManager.inMemory(),
|
|
292
|
+
});
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### SDK Options Reference
|
|
296
|
+
|
|
297
|
+
| Option | Default | Description |
|
|
298
|
+
|--------|---------|-------------|
|
|
299
|
+
| `authStorage` | `AuthStorage.create()` | Credential storage |
|
|
300
|
+
| `modelRegistry` | `new ModelRegistry(auth)` | Model registry |
|
|
301
|
+
| `cwd` | `process.cwd()` | Working directory |
|
|
302
|
+
| `agentDir` | `~/.iosm/agent` | Config directory |
|
|
303
|
+
| `model` | From settings | Model to use |
|
|
304
|
+
| `thinkingLevel` | `"off"` | Thinking level: off, low, medium, high |
|
|
305
|
+
| `tools` | `codingTools` | Built-in tools array |
|
|
306
|
+
| `customTools` | `[]` | Additional custom tools |
|
|
307
|
+
| `resourceLoader` | `DefaultResourceLoader` | Extension/skill/prompt/theme loader |
|
|
308
|
+
| `sessionManager` | `SessionManager.create(cwd)` | Session persistence |
|
|
309
|
+
| `settingsManager` | `SettingsManager.create(cwd, agentDir)` | Settings management |
|
|
310
|
+
|
|
311
|
+
### Event Types
|
|
312
|
+
|
|
313
|
+
```typescript
|
|
314
|
+
session.subscribe((event) => {
|
|
315
|
+
switch (event.type) {
|
|
316
|
+
case "message_update":
|
|
317
|
+
// Streaming text, thinking, tool calls
|
|
318
|
+
if (event.assistantMessageEvent.type === "text_delta") {
|
|
319
|
+
process.stdout.write(event.assistantMessageEvent.delta);
|
|
320
|
+
}
|
|
321
|
+
break;
|
|
322
|
+
case "tool_execution_start":
|
|
323
|
+
console.log(`Running tool: ${event.toolName}`);
|
|
324
|
+
break;
|
|
325
|
+
case "tool_execution_end":
|
|
326
|
+
console.log(`Tool result: ${event.result}`);
|
|
327
|
+
break;
|
|
328
|
+
case "agent_end":
|
|
329
|
+
console.log("Agent finished");
|
|
330
|
+
break;
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Integration Strategy Guide
|
|
338
|
+
|
|
339
|
+
| Use Case | Recommended Mode | Why |
|
|
340
|
+
|----------|-----------------|-----|
|
|
341
|
+
| CI/CD automation | `--mode json` or `-p` | Lightweight, parseable output |
|
|
342
|
+
| IDE integration | `--mode rpc` | Stateful, bidirectional communication |
|
|
343
|
+
| Custom application | SDK | Full programmatic control |
|
|
344
|
+
| Scripting | `-p` (print mode) | Simplest for one-off tasks |
|
|
345
|
+
| Log analysis pipeline | `--mode json` | Structured event stream |
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## Further Reading
|
|
350
|
+
|
|
351
|
+
- [12 SDK examples](../examples/sdk/) — Complete programmatic usage patterns
|
|
352
|
+
- [Extensions](./extensions-packages-themes.md) — Extension system for custom tools
|
|
353
|
+
- [Configuration](./configuration.md) — Provider setup and credentials
|