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,138 @@
|
|
|
1
|
+
import { IOSM_METRICS } from "./metrics.js";
|
|
2
|
+
function formatMetricValue(value) {
|
|
3
|
+
return value === null ? "n/a" : value.toFixed(3);
|
|
4
|
+
}
|
|
5
|
+
export function createMetricSnapshot(report) {
|
|
6
|
+
return {
|
|
7
|
+
metrics: report.metrics,
|
|
8
|
+
iosm_index: report.iosm_index,
|
|
9
|
+
decision_confidence: report.decision_confidence,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function formatMetricSnapshot(snapshot) {
|
|
13
|
+
const metricLine = IOSM_METRICS.map((metric) => `${metric}=${formatMetricValue(snapshot.metrics[metric])}`).join(", ");
|
|
14
|
+
return `${metricLine}, iosm_index=${formatMetricValue(snapshot.iosm_index)}, confidence=${formatMetricValue(snapshot.decision_confidence)}`;
|
|
15
|
+
}
|
|
16
|
+
export function summarizeMetricDelta(before, after) {
|
|
17
|
+
if (!before || !after) {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
const lines = [];
|
|
21
|
+
for (const metric of IOSM_METRICS) {
|
|
22
|
+
const left = before.metrics[metric];
|
|
23
|
+
const right = after.metrics[metric];
|
|
24
|
+
if (left === right) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
lines.push(`${metric}: ${formatMetricValue(left)} -> ${formatMetricValue(right)}`);
|
|
28
|
+
}
|
|
29
|
+
if (before.iosm_index !== after.iosm_index) {
|
|
30
|
+
lines.push(`iosm_index: ${formatMetricValue(before.iosm_index)} -> ${formatMetricValue(after.iosm_index)}`);
|
|
31
|
+
}
|
|
32
|
+
if (before.decision_confidence !== after.decision_confidence) {
|
|
33
|
+
lines.push(`decision_confidence: ${formatMetricValue(before.decision_confidence)} -> ${formatMetricValue(after.decision_confidence)}`);
|
|
34
|
+
}
|
|
35
|
+
return lines;
|
|
36
|
+
}
|
|
37
|
+
export function extractAssistantText(message) {
|
|
38
|
+
if (!message) {
|
|
39
|
+
return "";
|
|
40
|
+
}
|
|
41
|
+
return message.content
|
|
42
|
+
.filter((part) => part.type === "text")
|
|
43
|
+
.map((part) => part.text.trim())
|
|
44
|
+
.filter((text) => text.length > 0)
|
|
45
|
+
.join("\n\n");
|
|
46
|
+
}
|
|
47
|
+
export function buildIosmAgentVerificationPrompt(initResult) {
|
|
48
|
+
const cycleId = initResult.cycle?.cycleId ?? "unknown-cycle";
|
|
49
|
+
const cycleReportPath = initResult.cycle?.reportPath ??
|
|
50
|
+
`${initResult.rootDir}/.iosm/cycles/${cycleId}/cycle-report.json`;
|
|
51
|
+
const baselineReportPath = initResult.cycle?.baselineReportPath ??
|
|
52
|
+
`${initResult.rootDir}/.iosm/cycles/${cycleId}/baseline-report.json`;
|
|
53
|
+
const metricsLine = IOSM_METRICS.map((metric) => `${metric}=${formatMetricValue(initResult.analysis.metrics[metric])}`).join(", ");
|
|
54
|
+
const goalsLine = initResult.analysis.goals.length > 0 ? initResult.analysis.goals.join(" | ") : "none";
|
|
55
|
+
const rawGroups = Object.keys(initResult.analysis.raw_measurements).sort();
|
|
56
|
+
const rawGroupsLine = rawGroups.length > 0 ? rawGroups.join(", ") : "none";
|
|
57
|
+
return [
|
|
58
|
+
"You are running an IOSM post-init verification pass.",
|
|
59
|
+
`Repository root: ${initResult.rootDir}`,
|
|
60
|
+
`Cycle id: ${cycleId}`,
|
|
61
|
+
"",
|
|
62
|
+
"Objective:",
|
|
63
|
+
"- Verify and refine IOSM metrics using concrete repository evidence.",
|
|
64
|
+
"- Correct IOSM artifacts so baseline is not heuristic-only.",
|
|
65
|
+
"",
|
|
66
|
+
"Required workflow:",
|
|
67
|
+
"1. Read current IOSM artifacts:",
|
|
68
|
+
` - ${cycleReportPath}`,
|
|
69
|
+
` - ${baselineReportPath}`,
|
|
70
|
+
` - ${initResult.rootDir}/.iosm/decision-log.md`,
|
|
71
|
+
` - ${initResult.rootDir}/.iosm/pattern-library.md`,
|
|
72
|
+
` - ${initResult.rootDir}/IOSM.md`,
|
|
73
|
+
"2. Collect evidence with deterministic repository checks (bash/read tools, rg/find/stat/cat).",
|
|
74
|
+
"3. Update only existing .iosm artifacts in this pass. Do not modify product source code.",
|
|
75
|
+
`4. Update ${cycleReportPath} (do not create alternate files like report.json).`,
|
|
76
|
+
"5. Ensure cycle report fields are fully populated and consistent:",
|
|
77
|
+
" metrics, metric_confidences, metric_tiers, raw_measurements, iosm_index, decision_confidence.",
|
|
78
|
+
"6. Keep confidence conservative unless evidence is concrete and reproducible.",
|
|
79
|
+
`7. Validate JSON after edits: python3 -m json.tool ${cycleReportPath} >/dev/null`,
|
|
80
|
+
"8. Keep checks focused and bounded: avoid full repository listings and cap command output with head/tail/wc.",
|
|
81
|
+
"9. Do not run dependency installation commands (pip/npm/cargo install); this pass must remain non-mutating outside .iosm files.",
|
|
82
|
+
"10. If a command fails, adjust once and proceed; do not loop on the same failing probe.",
|
|
83
|
+
"11. Keep IOSM.md aligned with verified priorities, checklist, and artifact links.",
|
|
84
|
+
"",
|
|
85
|
+
"Baseline from static init (must be verified, can be corrected):",
|
|
86
|
+
`- metrics: ${metricsLine}`,
|
|
87
|
+
`- goals: ${goalsLine}`,
|
|
88
|
+
`- raw measurement groups: ${rawGroupsLine}`,
|
|
89
|
+
"",
|
|
90
|
+
"Final response requirements:",
|
|
91
|
+
"- Output current values only (no before/after deltas).",
|
|
92
|
+
"- Provide one compact line with semantic, logic, performance, simplicity, modularity, flow, iosm_index, decision_confidence.",
|
|
93
|
+
"- Then provide at most 3 risks with numeric evidence.",
|
|
94
|
+
].join("\n");
|
|
95
|
+
}
|
|
96
|
+
export function buildIosmGuideAuthoringPrompt(initResult) {
|
|
97
|
+
const cycleId = initResult.cycle?.cycleId ?? "unknown-cycle";
|
|
98
|
+
const cycleReportPath = initResult.cycle?.reportPath ??
|
|
99
|
+
`${initResult.rootDir}/.iosm/cycles/${cycleId}/cycle-report.json`;
|
|
100
|
+
const baselineReportPath = initResult.cycle?.baselineReportPath ??
|
|
101
|
+
`${initResult.rootDir}/.iosm/cycles/${cycleId}/baseline-report.json`;
|
|
102
|
+
return [
|
|
103
|
+
"You are authoring IOSM.md for this repository after init verification.",
|
|
104
|
+
`Repository root: ${initResult.rootDir}`,
|
|
105
|
+
`Cycle id: ${cycleId}`,
|
|
106
|
+
"",
|
|
107
|
+
"Required workflow:",
|
|
108
|
+
"1. Inspect repository structure and key runtime/build/test files.",
|
|
109
|
+
"2. Read IOSM artifacts and metrics first:",
|
|
110
|
+
` - ${cycleReportPath}`,
|
|
111
|
+
` - ${baselineReportPath}`,
|
|
112
|
+
` - ${initResult.rootDir}/iosm.yaml`,
|
|
113
|
+
` - ${initResult.rootDir}/.iosm/decision-log.md`,
|
|
114
|
+
` - ${initResult.rootDir}/.iosm/pattern-library.md`,
|
|
115
|
+
"3. Produce a practical IOSM.md that is operational for daily engineering work.",
|
|
116
|
+
"",
|
|
117
|
+
"Output requirements:",
|
|
118
|
+
"- Output ONLY markdown for IOSM.md (no code fences, no commentary).",
|
|
119
|
+
"- Start with heading '# IOSM.md'.",
|
|
120
|
+
"- Include sections:",
|
|
121
|
+
" - Project Snapshot",
|
|
122
|
+
" - IOSM Metrics and Priorities (with current metric values)",
|
|
123
|
+
" - Stack / Run / Test Commands",
|
|
124
|
+
" - Repository Map (important paths)",
|
|
125
|
+
" - IOSM Workspace and Artifact Paths",
|
|
126
|
+
" - Agent Operating Contract (I->O->S->M, gates, evidence rules)",
|
|
127
|
+
" - Current Cycle Focus",
|
|
128
|
+
"- Keep text concise, concrete, and file-path-driven.",
|
|
129
|
+
"- If unknown, write 'Unknown' explicitly.",
|
|
130
|
+
].join("\n");
|
|
131
|
+
}
|
|
132
|
+
export function normalizeIosmGuideMarkdown(raw) {
|
|
133
|
+
const trimmed = raw.trim();
|
|
134
|
+
if (!trimmed)
|
|
135
|
+
return "";
|
|
136
|
+
return trimmed.startsWith("# IOSM.md") ? `${trimmed}\n` : `# IOSM.md\n\n${trimmed}\n`;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=agent-verification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-verification.js","sourceRoot":"","sources":["../../src/iosm/agent-verification.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssistantMessage } from \"@mariozechner/pi-ai\";\nimport type { IosmInitResult } from \"./init.js\";\nimport { IOSM_METRICS } from \"./metrics.js\";\nimport type { IosmCycleReport, IosmMetricRecord } from \"./types.js\";\n\nexport interface IosmMetricSnapshot {\n\tmetrics: IosmMetricRecord<number | null>;\n\tiosm_index: number | null;\n\tdecision_confidence: number | null;\n}\n\nfunction formatMetricValue(value: number | null): string {\n\treturn value === null ? \"n/a\" : value.toFixed(3);\n}\n\nexport function createMetricSnapshot(\n\treport: Pick<IosmCycleReport, \"metrics\" | \"iosm_index\" | \"decision_confidence\">,\n): IosmMetricSnapshot {\n\treturn {\n\t\tmetrics: report.metrics,\n\t\tiosm_index: report.iosm_index,\n\t\tdecision_confidence: report.decision_confidence,\n\t};\n}\n\nexport function formatMetricSnapshot(snapshot: IosmMetricSnapshot): string {\n\tconst metricLine = IOSM_METRICS.map((metric) => `${metric}=${formatMetricValue(snapshot.metrics[metric])}`).join(\", \");\n\treturn `${metricLine}, iosm_index=${formatMetricValue(snapshot.iosm_index)}, confidence=${formatMetricValue(snapshot.decision_confidence)}`;\n}\n\nexport function summarizeMetricDelta(before?: IosmMetricSnapshot, after?: IosmMetricSnapshot): string[] {\n\tif (!before || !after) {\n\t\treturn [];\n\t}\n\n\tconst lines: string[] = [];\n\tfor (const metric of IOSM_METRICS) {\n\t\tconst left = before.metrics[metric];\n\t\tconst right = after.metrics[metric];\n\t\tif (left === right) {\n\t\t\tcontinue;\n\t\t}\n\t\tlines.push(`${metric}: ${formatMetricValue(left)} -> ${formatMetricValue(right)}`);\n\t}\n\n\tif (before.iosm_index !== after.iosm_index) {\n\t\tlines.push(`iosm_index: ${formatMetricValue(before.iosm_index)} -> ${formatMetricValue(after.iosm_index)}`);\n\t}\n\n\tif (before.decision_confidence !== after.decision_confidence) {\n\t\tlines.push(\n\t\t\t`decision_confidence: ${formatMetricValue(before.decision_confidence)} -> ${formatMetricValue(after.decision_confidence)}`,\n\t\t);\n\t}\n\n\treturn lines;\n}\n\nexport function extractAssistantText(message: AssistantMessage | undefined): string {\n\tif (!message) {\n\t\treturn \"\";\n\t}\n\n\treturn message.content\n\t\t.filter((part): part is { type: \"text\"; text: string } => part.type === \"text\")\n\t\t.map((part) => part.text.trim())\n\t\t.filter((text) => text.length > 0)\n\t\t.join(\"\\n\\n\");\n}\n\nexport function buildIosmAgentVerificationPrompt(initResult: IosmInitResult): string {\n\tconst cycleId = initResult.cycle?.cycleId ?? \"unknown-cycle\";\n\tconst cycleReportPath =\n\t\tinitResult.cycle?.reportPath ??\n\t\t`${initResult.rootDir}/.iosm/cycles/${cycleId}/cycle-report.json`;\n\tconst baselineReportPath =\n\t\tinitResult.cycle?.baselineReportPath ??\n\t\t`${initResult.rootDir}/.iosm/cycles/${cycleId}/baseline-report.json`;\n\tconst metricsLine = IOSM_METRICS.map(\n\t\t(metric) => `${metric}=${formatMetricValue(initResult.analysis.metrics[metric])}`,\n\t).join(\", \");\n\tconst goalsLine = initResult.analysis.goals.length > 0 ? initResult.analysis.goals.join(\" | \") : \"none\";\n\tconst rawGroups = Object.keys(initResult.analysis.raw_measurements).sort();\n\tconst rawGroupsLine = rawGroups.length > 0 ? rawGroups.join(\", \") : \"none\";\n\n\treturn [\n\t\t\"You are running an IOSM post-init verification pass.\",\n\t\t`Repository root: ${initResult.rootDir}`,\n\t\t`Cycle id: ${cycleId}`,\n\t\t\"\",\n\t\t\"Objective:\",\n\t\t\"- Verify and refine IOSM metrics using concrete repository evidence.\",\n\t\t\"- Correct IOSM artifacts so baseline is not heuristic-only.\",\n\t\t\"\",\n\t\t\"Required workflow:\",\n\t\t\"1. Read current IOSM artifacts:\",\n\t\t` - ${cycleReportPath}`,\n\t\t` - ${baselineReportPath}`,\n\t\t` - ${initResult.rootDir}/.iosm/decision-log.md`,\n\t\t` - ${initResult.rootDir}/.iosm/pattern-library.md`,\n\t\t` - ${initResult.rootDir}/IOSM.md`,\n\t\t\"2. Collect evidence with deterministic repository checks (bash/read tools, rg/find/stat/cat).\",\n\t\t\"3. Update only existing .iosm artifacts in this pass. Do not modify product source code.\",\n\t\t`4. Update ${cycleReportPath} (do not create alternate files like report.json).`,\n\t\t\"5. Ensure cycle report fields are fully populated and consistent:\",\n\t\t\" metrics, metric_confidences, metric_tiers, raw_measurements, iosm_index, decision_confidence.\",\n\t\t\"6. Keep confidence conservative unless evidence is concrete and reproducible.\",\n\t\t`7. Validate JSON after edits: python3 -m json.tool ${cycleReportPath} >/dev/null`,\n\t\t\"8. Keep checks focused and bounded: avoid full repository listings and cap command output with head/tail/wc.\",\n\t\t\"9. Do not run dependency installation commands (pip/npm/cargo install); this pass must remain non-mutating outside .iosm files.\",\n\t\t\"10. If a command fails, adjust once and proceed; do not loop on the same failing probe.\",\n\t\t\"11. Keep IOSM.md aligned with verified priorities, checklist, and artifact links.\",\n\t\t\"\",\n\t\t\"Baseline from static init (must be verified, can be corrected):\",\n\t\t`- metrics: ${metricsLine}`,\n\t\t`- goals: ${goalsLine}`,\n\t\t`- raw measurement groups: ${rawGroupsLine}`,\n\t\t\"\",\n\t\t\"Final response requirements:\",\n\t\t\"- Output current values only (no before/after deltas).\",\n\t\t\"- Provide one compact line with semantic, logic, performance, simplicity, modularity, flow, iosm_index, decision_confidence.\",\n\t\t\"- Then provide at most 3 risks with numeric evidence.\",\n\t].join(\"\\n\");\n}\n\nexport function buildIosmGuideAuthoringPrompt(initResult: IosmInitResult): string {\n\tconst cycleId = initResult.cycle?.cycleId ?? \"unknown-cycle\";\n\tconst cycleReportPath =\n\t\tinitResult.cycle?.reportPath ??\n\t\t`${initResult.rootDir}/.iosm/cycles/${cycleId}/cycle-report.json`;\n\tconst baselineReportPath =\n\t\tinitResult.cycle?.baselineReportPath ??\n\t\t`${initResult.rootDir}/.iosm/cycles/${cycleId}/baseline-report.json`;\n\n\treturn [\n\t\t\"You are authoring IOSM.md for this repository after init verification.\",\n\t\t`Repository root: ${initResult.rootDir}`,\n\t\t`Cycle id: ${cycleId}`,\n\t\t\"\",\n\t\t\"Required workflow:\",\n\t\t\"1. Inspect repository structure and key runtime/build/test files.\",\n\t\t\"2. Read IOSM artifacts and metrics first:\",\n\t\t` - ${cycleReportPath}`,\n\t\t` - ${baselineReportPath}`,\n\t\t` - ${initResult.rootDir}/iosm.yaml`,\n\t\t` - ${initResult.rootDir}/.iosm/decision-log.md`,\n\t\t` - ${initResult.rootDir}/.iosm/pattern-library.md`,\n\t\t\"3. Produce a practical IOSM.md that is operational for daily engineering work.\",\n\t\t\"\",\n\t\t\"Output requirements:\",\n\t\t\"- Output ONLY markdown for IOSM.md (no code fences, no commentary).\",\n\t\t\"- Start with heading '# IOSM.md'.\",\n\t\t\"- Include sections:\",\n\t\t\" - Project Snapshot\",\n\t\t\" - IOSM Metrics and Priorities (with current metric values)\",\n\t\t\" - Stack / Run / Test Commands\",\n\t\t\" - Repository Map (important paths)\",\n\t\t\" - IOSM Workspace and Artifact Paths\",\n\t\t\" - Agent Operating Contract (I->O->S->M, gates, evidence rules)\",\n\t\t\" - Current Cycle Focus\",\n\t\t\"- Keep text concise, concrete, and file-path-driven.\",\n\t\t\"- If unknown, write 'Unknown' explicitly.\",\n\t].join(\"\\n\");\n}\n\nexport function normalizeIosmGuideMarkdown(raw: string): string {\n\tconst trimmed = raw.trim();\n\tif (!trimmed) return \"\";\n\treturn trimmed.startsWith(\"# IOSM.md\") ? `${trimmed}\\n` : `# IOSM.md\\n\\n${trimmed}\\n`;\n}\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { IosmMetricSnapshot } from "./agent-verification.js";
|
|
2
|
+
import type { IosmConfig } from "./config.js";
|
|
3
|
+
import type { IosmPriorityChecklistItem } from "./guide.js";
|
|
4
|
+
import type { IosmDecision } from "./types.js";
|
|
5
|
+
export interface IosmAutomationOverrides {
|
|
6
|
+
targetIndex?: number;
|
|
7
|
+
maxIterations?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface IosmAutomationSettings {
|
|
10
|
+
targetIndex: number;
|
|
11
|
+
maxIterations: number;
|
|
12
|
+
}
|
|
13
|
+
export interface IosmAutomationPromptInput {
|
|
14
|
+
rootDir: string;
|
|
15
|
+
cycleId?: string;
|
|
16
|
+
targetIndex: number;
|
|
17
|
+
iteration: number;
|
|
18
|
+
maxIterations: number;
|
|
19
|
+
snapshot: IosmMetricSnapshot;
|
|
20
|
+
goals: string[];
|
|
21
|
+
priorities: IosmPriorityChecklistItem[];
|
|
22
|
+
currentDecision?: IosmDecision;
|
|
23
|
+
criticalityProfile?: IosmConfig["iosm"]["metadata"]["criticality_profile"];
|
|
24
|
+
approvalRequirements?: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface IosmAutomationProgress {
|
|
27
|
+
targetSatisfied: boolean;
|
|
28
|
+
stabilized: boolean;
|
|
29
|
+
failed: boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare function resolveIosmAutomationSettings(config: Pick<IosmConfig, "iosm">, overrides?: IosmAutomationOverrides): IosmAutomationSettings;
|
|
32
|
+
export declare function hasReachedIosmTarget(snapshot: Pick<IosmMetricSnapshot, "iosm_index">, targetIndex: number): boolean;
|
|
33
|
+
export declare function evaluateIosmAutomationProgress(input: {
|
|
34
|
+
snapshot: Pick<IosmMetricSnapshot, "iosm_index">;
|
|
35
|
+
targetIndex: number;
|
|
36
|
+
cycleDecision?: IosmDecision;
|
|
37
|
+
explicitTarget: boolean;
|
|
38
|
+
}): IosmAutomationProgress;
|
|
39
|
+
export declare function buildIosmAutomationPrompt(input: IosmAutomationPromptInput): string;
|
|
40
|
+
//# sourceMappingURL=automation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation.d.ts","sourceRoot":"","sources":["../../src/iosm/automation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,MAAM,WAAW,uBAAuB;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,yBAAyB,EAAE,CAAC;IACxC,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,kBAAkB,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAC3E,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACtC,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CAChB;AAMD,wBAAgB,6BAA6B,CAC5C,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAChC,SAAS,GAAE,uBAA4B,GACrC,sBAAsB,CAUxB;AAED,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC,EAChD,WAAW,EAAE,MAAM,GACjB,OAAO,CAET;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACrD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;CACxB,GAAG,sBAAsB,CAMzB;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,yBAAyB,GAAG,MAAM,CAqDlF"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { IOSM_METRICS } from "./metrics.js";
|
|
2
|
+
import { IOSM_PHASES } from "./types.js";
|
|
3
|
+
function formatValue(value) {
|
|
4
|
+
return value === null || value === undefined ? "n/a" : value.toFixed(3);
|
|
5
|
+
}
|
|
6
|
+
export function resolveIosmAutomationSettings(config, overrides = {}) {
|
|
7
|
+
const targetIndex = overrides.targetIndex ?? config.iosm.cycle_policy.stabilization.target_index;
|
|
8
|
+
const maxIterations = overrides.maxIterations ??
|
|
9
|
+
Math.max(1, config.iosm.cycle_policy.max_iterations_per_phase * IOSM_PHASES.length);
|
|
10
|
+
return {
|
|
11
|
+
targetIndex,
|
|
12
|
+
maxIterations,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function hasReachedIosmTarget(snapshot, targetIndex) {
|
|
16
|
+
return snapshot.iosm_index !== null && snapshot.iosm_index >= targetIndex;
|
|
17
|
+
}
|
|
18
|
+
export function evaluateIosmAutomationProgress(input) {
|
|
19
|
+
return {
|
|
20
|
+
targetSatisfied: input.explicitTarget && hasReachedIosmTarget(input.snapshot, input.targetIndex),
|
|
21
|
+
stabilized: input.cycleDecision === "STOP",
|
|
22
|
+
failed: input.cycleDecision === "FAIL",
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function buildIosmAutomationPrompt(input) {
|
|
26
|
+
const metricLine = IOSM_METRICS.map((metric) => `${metric}=${formatValue(input.snapshot.metrics[metric])}`).join(", ");
|
|
27
|
+
const priorities = input.priorities.length > 0
|
|
28
|
+
? input.priorities
|
|
29
|
+
.map((item, index) => `${index + 1}. ${item.title} (${formatValue(item.value)}): ${item.action}`)
|
|
30
|
+
.join("\n")
|
|
31
|
+
: "1. No explicit priorities captured; use the weakest evidence-backed bottleneck.";
|
|
32
|
+
const goals = input.goals.length > 0 ? input.goals.map((goal) => `- ${goal}`).join("\n") : "- No goals recorded.";
|
|
33
|
+
const approvalRequirements = input.approvalRequirements && input.approvalRequirements.length > 0
|
|
34
|
+
? input.approvalRequirements.map((item) => `- ${item}`).join("\n")
|
|
35
|
+
: "- none declared";
|
|
36
|
+
return [
|
|
37
|
+
"You are in an IOSM automation loop.",
|
|
38
|
+
"",
|
|
39
|
+
`Repository root: ${input.rootDir}`,
|
|
40
|
+
`Active cycle: ${input.cycleId ?? "unknown"}`,
|
|
41
|
+
`Iteration: ${input.iteration}/${input.maxIterations}`,
|
|
42
|
+
`Target IOSM index: ${input.targetIndex.toFixed(3)}`,
|
|
43
|
+
`Current IOSM index: ${formatValue(input.snapshot.iosm_index)}`,
|
|
44
|
+
`Current decision confidence: ${formatValue(input.snapshot.decision_confidence)}`,
|
|
45
|
+
`Current cycle decision: ${input.currentDecision ?? "unknown"}`,
|
|
46
|
+
`Criticality profile: ${input.criticalityProfile ?? "unknown"}`,
|
|
47
|
+
`Current metrics: ${metricLine}`,
|
|
48
|
+
"",
|
|
49
|
+
"Priority bottlenecks:",
|
|
50
|
+
priorities,
|
|
51
|
+
"",
|
|
52
|
+
"Current goals:",
|
|
53
|
+
goals,
|
|
54
|
+
"",
|
|
55
|
+
"Human approval required for:",
|
|
56
|
+
approvalRequirements,
|
|
57
|
+
"",
|
|
58
|
+
"Execution contract:",
|
|
59
|
+
"1. Make one coherent improvement pass that should raise the IOSM index.",
|
|
60
|
+
"2. You may change product code, tests, and project docs when they materially improve the system.",
|
|
61
|
+
"3. Do not run /init and do not regenerate IOSM scaffolding; the outer loop will refresh and re-score after your pass.",
|
|
62
|
+
"4. Keep repository exploration bounded and efficient. Prefer find/grep/read before broad bash scans.",
|
|
63
|
+
"5. If a material product or architecture ambiguity affects the outcome, call ask_user with concise options and allow a custom answer before proceeding.",
|
|
64
|
+
"6. If the intended change may fall into a human-approval category, call ask_user and obtain explicit approval before making that change.",
|
|
65
|
+
"7. Keep IOSM automation governance auditable: update automation actor provenance, diff scope, and linked evidence when your pass changes those records.",
|
|
66
|
+
"8. Run focused validation for the touched area before finishing the pass.",
|
|
67
|
+
"9. Update IOSM artifacts only when they are stale because of the changes you made.",
|
|
68
|
+
"10. Do not claim a new IOSM index in the answer; the outer loop will verify it.",
|
|
69
|
+
"",
|
|
70
|
+
"Final response format:",
|
|
71
|
+
"- Short summary of changes and why they should improve IOSM.",
|
|
72
|
+
"- Validation run.",
|
|
73
|
+
"- Remaining bottleneck.",
|
|
74
|
+
].join("\n");
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=automation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation.js","sourceRoot":"","sources":["../../src/iosm/automation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IosmMetricSnapshot } from \"./agent-verification.js\";\nimport type { IosmConfig } from \"./config.js\";\nimport type { IosmPriorityChecklistItem } from \"./guide.js\";\nimport { IOSM_METRICS } from \"./metrics.js\";\nimport type { IosmDecision } from \"./types.js\";\nimport { IOSM_PHASES } from \"./types.js\";\n\nexport interface IosmAutomationOverrides {\n\ttargetIndex?: number;\n\tmaxIterations?: number;\n}\n\nexport interface IosmAutomationSettings {\n\ttargetIndex: number;\n\tmaxIterations: number;\n}\n\nexport interface IosmAutomationPromptInput {\n\trootDir: string;\n\tcycleId?: string;\n\ttargetIndex: number;\n\titeration: number;\n\tmaxIterations: number;\n\tsnapshot: IosmMetricSnapshot;\n\tgoals: string[];\n\tpriorities: IosmPriorityChecklistItem[];\n\tcurrentDecision?: IosmDecision;\n\tcriticalityProfile?: IosmConfig[\"iosm\"][\"metadata\"][\"criticality_profile\"];\n\tapprovalRequirements?: string[];\n}\n\nexport interface IosmAutomationProgress {\n\ttargetSatisfied: boolean;\n\tstabilized: boolean;\n\tfailed: boolean;\n}\n\nfunction formatValue(value: number | null | undefined): string {\n\treturn value === null || value === undefined ? \"n/a\" : value.toFixed(3);\n}\n\nexport function resolveIosmAutomationSettings(\n\tconfig: Pick<IosmConfig, \"iosm\">,\n\toverrides: IosmAutomationOverrides = {},\n): IosmAutomationSettings {\n\tconst targetIndex = overrides.targetIndex ?? config.iosm.cycle_policy.stabilization.target_index;\n\tconst maxIterations =\n\t\toverrides.maxIterations ??\n\t\tMath.max(1, config.iosm.cycle_policy.max_iterations_per_phase * IOSM_PHASES.length);\n\n\treturn {\n\t\ttargetIndex,\n\t\tmaxIterations,\n\t};\n}\n\nexport function hasReachedIosmTarget(\n\tsnapshot: Pick<IosmMetricSnapshot, \"iosm_index\">,\n\ttargetIndex: number,\n): boolean {\n\treturn snapshot.iosm_index !== null && snapshot.iosm_index >= targetIndex;\n}\n\nexport function evaluateIosmAutomationProgress(input: {\n\tsnapshot: Pick<IosmMetricSnapshot, \"iosm_index\">;\n\ttargetIndex: number;\n\tcycleDecision?: IosmDecision;\n\texplicitTarget: boolean;\n}): IosmAutomationProgress {\n\treturn {\n\t\ttargetSatisfied: input.explicitTarget && hasReachedIosmTarget(input.snapshot, input.targetIndex),\n\t\tstabilized: input.cycleDecision === \"STOP\",\n\t\tfailed: input.cycleDecision === \"FAIL\",\n\t};\n}\n\nexport function buildIosmAutomationPrompt(input: IosmAutomationPromptInput): string {\n\tconst metricLine = IOSM_METRICS.map((metric) => `${metric}=${formatValue(input.snapshot.metrics[metric])}`).join(\", \");\n\tconst priorities =\n\t\tinput.priorities.length > 0\n\t\t\t? input.priorities\n\t\t\t\t\t.map((item, index) => `${index + 1}. ${item.title} (${formatValue(item.value)}): ${item.action}`)\n\t\t\t\t\t.join(\"\\n\")\n\t\t\t: \"1. No explicit priorities captured; use the weakest evidence-backed bottleneck.\";\n\tconst goals = input.goals.length > 0 ? input.goals.map((goal) => `- ${goal}`).join(\"\\n\") : \"- No goals recorded.\";\n\tconst approvalRequirements =\n\t\tinput.approvalRequirements && input.approvalRequirements.length > 0\n\t\t\t? input.approvalRequirements.map((item) => `- ${item}`).join(\"\\n\")\n\t\t\t: \"- none declared\";\n\n\treturn [\n\t\t\"You are in an IOSM automation loop.\",\n\t\t\"\",\n\t\t`Repository root: ${input.rootDir}`,\n\t\t`Active cycle: ${input.cycleId ?? \"unknown\"}`,\n\t\t`Iteration: ${input.iteration}/${input.maxIterations}`,\n\t\t`Target IOSM index: ${input.targetIndex.toFixed(3)}`,\n\t\t`Current IOSM index: ${formatValue(input.snapshot.iosm_index)}`,\n\t\t`Current decision confidence: ${formatValue(input.snapshot.decision_confidence)}`,\n\t\t`Current cycle decision: ${input.currentDecision ?? \"unknown\"}`,\n\t\t`Criticality profile: ${input.criticalityProfile ?? \"unknown\"}`,\n\t\t`Current metrics: ${metricLine}`,\n\t\t\"\",\n\t\t\"Priority bottlenecks:\",\n\t\tpriorities,\n\t\t\"\",\n\t\t\"Current goals:\",\n\t\tgoals,\n\t\t\"\",\n\t\t\"Human approval required for:\",\n\t\tapprovalRequirements,\n\t\t\"\",\n\t\t\"Execution contract:\",\n\t\t\"1. Make one coherent improvement pass that should raise the IOSM index.\",\n\t\t\"2. You may change product code, tests, and project docs when they materially improve the system.\",\n\t\t\"3. Do not run /init and do not regenerate IOSM scaffolding; the outer loop will refresh and re-score after your pass.\",\n\t\t\"4. Keep repository exploration bounded and efficient. Prefer find/grep/read before broad bash scans.\",\n\t\t\"5. If a material product or architecture ambiguity affects the outcome, call ask_user with concise options and allow a custom answer before proceeding.\",\n\t\t\"6. If the intended change may fall into a human-approval category, call ask_user and obtain explicit approval before making that change.\",\n\t\t\"7. Keep IOSM automation governance auditable: update automation actor provenance, diff scope, and linked evidence when your pass changes those records.\",\n\t\t\"8. Run focused validation for the touched area before finishing the pass.\",\n\t\t\"9. Update IOSM artifacts only when they are stale because of the changes you made.\",\n\t\t\"10. Do not claim a new IOSM index in the answer; the outer loop will verify it.\",\n\t\t\"\",\n\t\t\"Final response format:\",\n\t\t\"- Short summary of changes and why they should improve IOSM.\",\n\t\t\"- Validation run.\",\n\t\t\"- Remaining bottleneck.\",\n\t].join(\"\\n\");\n}\n"]}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { IosmMetricRecord } from "./types.js";
|
|
2
|
+
type IosmCriticalityProfile = "exploratory" | "standard" | "critical";
|
|
3
|
+
export interface IosmMetadataConfig {
|
|
4
|
+
system_name: string;
|
|
5
|
+
scope: string;
|
|
6
|
+
criticality_profile: IosmCriticalityProfile;
|
|
7
|
+
delivery_boundary: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IosmPlanningConfig {
|
|
10
|
+
use_economic_decision: boolean;
|
|
11
|
+
prioritization_formula: string;
|
|
12
|
+
min_confidence: number;
|
|
13
|
+
hypothesis_required: boolean;
|
|
14
|
+
cycle_scope_required: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface IosmCycleCapacityConfig {
|
|
17
|
+
max_goals: number;
|
|
18
|
+
max_scope_items: number;
|
|
19
|
+
max_expected_change_surface: number;
|
|
20
|
+
}
|
|
21
|
+
export interface IosmStabilizationConfig {
|
|
22
|
+
target_index: number;
|
|
23
|
+
consecutive_cycles: number;
|
|
24
|
+
global_metric_floor: number;
|
|
25
|
+
max_consecutive_unexplained_declines: number;
|
|
26
|
+
metric_floors: Partial<IosmMetricRecord<number>>;
|
|
27
|
+
}
|
|
28
|
+
export interface IosmCyclePolicyConfig {
|
|
29
|
+
max_iterations_per_phase: number;
|
|
30
|
+
stabilization: IosmStabilizationConfig;
|
|
31
|
+
}
|
|
32
|
+
export interface IosmQualityGateIConfig {
|
|
33
|
+
semantic_min: number;
|
|
34
|
+
logical_consistency_min: number;
|
|
35
|
+
duplication_max: number;
|
|
36
|
+
}
|
|
37
|
+
export interface IosmQualityGateOConfig {
|
|
38
|
+
latency_ms: {
|
|
39
|
+
p50_max: number;
|
|
40
|
+
p95_max: number;
|
|
41
|
+
p99_max: number;
|
|
42
|
+
};
|
|
43
|
+
error_budget_respected: boolean;
|
|
44
|
+
chaos_pass_rate_min: number;
|
|
45
|
+
}
|
|
46
|
+
export interface IosmQualityGateSConfig {
|
|
47
|
+
at_least_one_dimension: boolean;
|
|
48
|
+
api_surface_reduction_min: number;
|
|
49
|
+
dependency_hygiene_min: number;
|
|
50
|
+
onboarding_time_minutes_max: number;
|
|
51
|
+
regression_budget_max: number;
|
|
52
|
+
}
|
|
53
|
+
export interface IosmQualityGateMConfig {
|
|
54
|
+
change_surface_max: number;
|
|
55
|
+
coupling_max: number;
|
|
56
|
+
cohesion_min: number;
|
|
57
|
+
contracts_pass: boolean;
|
|
58
|
+
}
|
|
59
|
+
export interface IosmQualityGatesConfig {
|
|
60
|
+
gate_I: IosmQualityGateIConfig;
|
|
61
|
+
gate_O: IosmQualityGateOConfig;
|
|
62
|
+
gate_S: IosmQualityGateSConfig;
|
|
63
|
+
gate_M: IosmQualityGateMConfig;
|
|
64
|
+
}
|
|
65
|
+
export interface IosmGuardrailsConfig {
|
|
66
|
+
max_negative_delta: IosmMetricRecord<number>;
|
|
67
|
+
}
|
|
68
|
+
export interface IosmEvidenceConfig {
|
|
69
|
+
min_decision_confidence: number;
|
|
70
|
+
freshness_sla_hours: {
|
|
71
|
+
tier_a: number;
|
|
72
|
+
tier_b: number;
|
|
73
|
+
};
|
|
74
|
+
min_metric_confidence: IosmMetricRecord<number>;
|
|
75
|
+
}
|
|
76
|
+
export interface IosmWaiversConfig {
|
|
77
|
+
max_duration_days: number;
|
|
78
|
+
require_human_approval: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface IosmMetricTargetsConfig {
|
|
81
|
+
semantic: {
|
|
82
|
+
glossary_coverage_min: number;
|
|
83
|
+
naming_consistency_min: number;
|
|
84
|
+
ambiguity_ratio_max: number;
|
|
85
|
+
};
|
|
86
|
+
logic: {
|
|
87
|
+
invariant_pass_rate_min: number;
|
|
88
|
+
};
|
|
89
|
+
performance: {
|
|
90
|
+
latency_ms: {
|
|
91
|
+
p50_max: number;
|
|
92
|
+
p95_max: number;
|
|
93
|
+
p99_max: number;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
simplicity: {
|
|
97
|
+
onboarding_time_minutes_max: number;
|
|
98
|
+
};
|
|
99
|
+
modularity: {
|
|
100
|
+
change_surface_max: number;
|
|
101
|
+
};
|
|
102
|
+
flow: {
|
|
103
|
+
lead_time_hours_max: number;
|
|
104
|
+
deploy_frequency_per_week_min: number;
|
|
105
|
+
change_failure_rate_max: number;
|
|
106
|
+
review_latency_hours_max: number;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export interface IosmIndexConfig {
|
|
110
|
+
weights: IosmMetricRecord<number>;
|
|
111
|
+
}
|
|
112
|
+
export interface IosmAutomationConfig {
|
|
113
|
+
allow_agents: boolean;
|
|
114
|
+
human_approval_required_for: string[];
|
|
115
|
+
}
|
|
116
|
+
export interface IosmReportingConfig {
|
|
117
|
+
persist_history: boolean;
|
|
118
|
+
output_format: string;
|
|
119
|
+
}
|
|
120
|
+
export interface IosmLearningConfig {
|
|
121
|
+
update_pattern_library: boolean;
|
|
122
|
+
update_decision_log: boolean;
|
|
123
|
+
update_glossary: boolean;
|
|
124
|
+
}
|
|
125
|
+
export interface IosmConfigModel {
|
|
126
|
+
metadata: IosmMetadataConfig;
|
|
127
|
+
planning: IosmPlanningConfig;
|
|
128
|
+
cycle_capacity: IosmCycleCapacityConfig;
|
|
129
|
+
cycle_policy: IosmCyclePolicyConfig;
|
|
130
|
+
quality_gates: IosmQualityGatesConfig;
|
|
131
|
+
guardrails: IosmGuardrailsConfig;
|
|
132
|
+
evidence: IosmEvidenceConfig;
|
|
133
|
+
waivers: IosmWaiversConfig;
|
|
134
|
+
metric_targets: IosmMetricTargetsConfig;
|
|
135
|
+
index: IosmIndexConfig;
|
|
136
|
+
automation: IosmAutomationConfig;
|
|
137
|
+
reporting: IosmReportingConfig;
|
|
138
|
+
learning: IosmLearningConfig;
|
|
139
|
+
}
|
|
140
|
+
export interface IosmConfig {
|
|
141
|
+
iosm: IosmConfigModel;
|
|
142
|
+
}
|
|
143
|
+
export declare function findIosmRootDir(startDir?: string): string | undefined;
|
|
144
|
+
export declare function resolveIosmRootDir(startDir?: string): string;
|
|
145
|
+
export declare function loadIosmConfig(cwd?: string): {
|
|
146
|
+
rootDir: string;
|
|
147
|
+
path: string;
|
|
148
|
+
config: IosmConfig;
|
|
149
|
+
};
|
|
150
|
+
export {};
|
|
151
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/iosm/config.ts"],"names":[],"mappings":"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"}
|