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.
Files changed (729) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/LICENSE +21 -0
  3. package/README.md +650 -0
  4. package/dist/cli/args.d.ts +54 -0
  5. package/dist/cli/args.d.ts.map +1 -0
  6. package/dist/cli/args.js +331 -0
  7. package/dist/cli/args.js.map +1 -0
  8. package/dist/cli/config-selector.d.ts +14 -0
  9. package/dist/cli/config-selector.d.ts.map +1 -0
  10. package/dist/cli/config-selector.js +31 -0
  11. package/dist/cli/config-selector.js.map +1 -0
  12. package/dist/cli/file-processor.d.ts +15 -0
  13. package/dist/cli/file-processor.d.ts.map +1 -0
  14. package/dist/cli/file-processor.js +79 -0
  15. package/dist/cli/file-processor.js.map +1 -0
  16. package/dist/cli/list-models.d.ts +9 -0
  17. package/dist/cli/list-models.d.ts.map +1 -0
  18. package/dist/cli/list-models.js +92 -0
  19. package/dist/cli/list-models.js.map +1 -0
  20. package/dist/cli/session-picker.d.ts +9 -0
  21. package/dist/cli/session-picker.d.ts.map +1 -0
  22. package/dist/cli/session-picker.js +34 -0
  23. package/dist/cli/session-picker.js.map +1 -0
  24. package/dist/cli.d.ts +3 -0
  25. package/dist/cli.d.ts.map +1 -0
  26. package/dist/cli.js +15 -0
  27. package/dist/cli.js.map +1 -0
  28. package/dist/config.d.ts +88 -0
  29. package/dist/config.d.ts.map +1 -0
  30. package/dist/config.js +262 -0
  31. package/dist/config.js.map +1 -0
  32. package/dist/core/agent-profiles.d.ts +29 -0
  33. package/dist/core/agent-profiles.d.ts.map +1 -0
  34. package/dist/core/agent-profiles.js +86 -0
  35. package/dist/core/agent-profiles.js.map +1 -0
  36. package/dist/core/agent-session.d.ts +688 -0
  37. package/dist/core/agent-session.d.ts.map +1 -0
  38. package/dist/core/agent-session.js +3112 -0
  39. package/dist/core/agent-session.js.map +1 -0
  40. package/dist/core/agent-teams.d.ts +41 -0
  41. package/dist/core/agent-teams.d.ts.map +1 -0
  42. package/dist/core/agent-teams.js +90 -0
  43. package/dist/core/agent-teams.js.map +1 -0
  44. package/dist/core/ask-user-tool.d.ts +22 -0
  45. package/dist/core/ask-user-tool.d.ts.map +1 -0
  46. package/dist/core/ask-user-tool.js +115 -0
  47. package/dist/core/ask-user-tool.js.map +1 -0
  48. package/dist/core/auth-storage.d.ts +133 -0
  49. package/dist/core/auth-storage.d.ts.map +1 -0
  50. package/dist/core/auth-storage.js +391 -0
  51. package/dist/core/auth-storage.js.map +1 -0
  52. package/dist/core/bash-executor.d.ts +49 -0
  53. package/dist/core/bash-executor.d.ts.map +1 -0
  54. package/dist/core/bash-executor.js +213 -0
  55. package/dist/core/bash-executor.js.map +1 -0
  56. package/dist/core/compaction/branch-summarization.d.ts +86 -0
  57. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  58. package/dist/core/compaction/branch-summarization.js +242 -0
  59. package/dist/core/compaction/branch-summarization.js.map +1 -0
  60. package/dist/core/compaction/compaction.d.ts +121 -0
  61. package/dist/core/compaction/compaction.d.ts.map +1 -0
  62. package/dist/core/compaction/compaction.js +610 -0
  63. package/dist/core/compaction/compaction.js.map +1 -0
  64. package/dist/core/compaction/index.d.ts +7 -0
  65. package/dist/core/compaction/index.d.ts.map +1 -0
  66. package/dist/core/compaction/index.js +7 -0
  67. package/dist/core/compaction/index.js.map +1 -0
  68. package/dist/core/compaction/utils.d.ts +35 -0
  69. package/dist/core/compaction/utils.d.ts.map +1 -0
  70. package/dist/core/compaction/utils.js +138 -0
  71. package/dist/core/compaction/utils.js.map +1 -0
  72. package/dist/core/defaults.d.ts +3 -0
  73. package/dist/core/defaults.d.ts.map +1 -0
  74. package/dist/core/defaults.js +2 -0
  75. package/dist/core/defaults.js.map +1 -0
  76. package/dist/core/diagnostics.d.ts +15 -0
  77. package/dist/core/diagnostics.d.ts.map +1 -0
  78. package/dist/core/diagnostics.js +2 -0
  79. package/dist/core/diagnostics.js.map +1 -0
  80. package/dist/core/event-bus.d.ts +9 -0
  81. package/dist/core/event-bus.d.ts.map +1 -0
  82. package/dist/core/event-bus.js +25 -0
  83. package/dist/core/event-bus.js.map +1 -0
  84. package/dist/core/exec.d.ts +29 -0
  85. package/dist/core/exec.d.ts.map +1 -0
  86. package/dist/core/exec.js +71 -0
  87. package/dist/core/exec.js.map +1 -0
  88. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  89. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  90. package/dist/core/export-html/ansi-to-html.js +249 -0
  91. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  92. package/dist/core/export-html/index.d.ts +34 -0
  93. package/dist/core/export-html/index.d.ts.map +1 -0
  94. package/dist/core/export-html/index.js +222 -0
  95. package/dist/core/export-html/index.js.map +1 -0
  96. package/dist/core/export-html/template.css +971 -0
  97. package/dist/core/export-html/template.html +54 -0
  98. package/dist/core/export-html/template.js +1590 -0
  99. package/dist/core/export-html/tool-renderer.d.ts +35 -0
  100. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  101. package/dist/core/export-html/tool-renderer.js +63 -0
  102. package/dist/core/export-html/tool-renderer.js.map +1 -0
  103. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  104. package/dist/core/export-html/vendor/marked.min.js +6 -0
  105. package/dist/core/extensions/index.d.ts +11 -0
  106. package/dist/core/extensions/index.d.ts.map +1 -0
  107. package/dist/core/extensions/index.js +9 -0
  108. package/dist/core/extensions/index.js.map +1 -0
  109. package/dist/core/extensions/loader.d.ts +25 -0
  110. package/dist/core/extensions/loader.d.ts.map +1 -0
  111. package/dist/core/extensions/loader.js +447 -0
  112. package/dist/core/extensions/loader.js.map +1 -0
  113. package/dist/core/extensions/runner.d.ts +146 -0
  114. package/dist/core/extensions/runner.d.ts.map +1 -0
  115. package/dist/core/extensions/runner.js +652 -0
  116. package/dist/core/extensions/runner.js.map +1 -0
  117. package/dist/core/extensions/types.d.ts +1074 -0
  118. package/dist/core/extensions/types.d.ts.map +1 -0
  119. package/dist/core/extensions/types.js +35 -0
  120. package/dist/core/extensions/types.js.map +1 -0
  121. package/dist/core/extensions/wrapper.d.ts +27 -0
  122. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  123. package/dist/core/extensions/wrapper.js +102 -0
  124. package/dist/core/extensions/wrapper.js.map +1 -0
  125. package/dist/core/footer-data-provider.d.ts +32 -0
  126. package/dist/core/footer-data-provider.d.ts.map +1 -0
  127. package/dist/core/footer-data-provider.js +134 -0
  128. package/dist/core/footer-data-provider.js.map +1 -0
  129. package/dist/core/hooks.d.ts +53 -0
  130. package/dist/core/hooks.d.ts.map +1 -0
  131. package/dist/core/hooks.js +332 -0
  132. package/dist/core/hooks.js.map +1 -0
  133. package/dist/core/index.d.ts +9 -0
  134. package/dist/core/index.d.ts.map +1 -0
  135. package/dist/core/index.js +9 -0
  136. package/dist/core/index.js.map +1 -0
  137. package/dist/core/keybindings.d.ts +55 -0
  138. package/dist/core/keybindings.d.ts.map +1 -0
  139. package/dist/core/keybindings.js +157 -0
  140. package/dist/core/keybindings.js.map +1 -0
  141. package/dist/core/mcp/cli.d.ts +27 -0
  142. package/dist/core/mcp/cli.d.ts.map +1 -0
  143. package/dist/core/mcp/cli.js +275 -0
  144. package/dist/core/mcp/cli.js.map +1 -0
  145. package/dist/core/mcp/config.d.ts +11 -0
  146. package/dist/core/mcp/config.d.ts.map +1 -0
  147. package/dist/core/mcp/config.js +310 -0
  148. package/dist/core/mcp/config.js.map +1 -0
  149. package/dist/core/mcp/index.d.ts +5 -0
  150. package/dist/core/mcp/index.d.ts.map +1 -0
  151. package/dist/core/mcp/index.js +4 -0
  152. package/dist/core/mcp/index.js.map +1 -0
  153. package/dist/core/mcp/runtime.d.ts +42 -0
  154. package/dist/core/mcp/runtime.d.ts.map +1 -0
  155. package/dist/core/mcp/runtime.js +387 -0
  156. package/dist/core/mcp/runtime.js.map +1 -0
  157. package/dist/core/mcp/types.d.ts +76 -0
  158. package/dist/core/mcp/types.d.ts.map +1 -0
  159. package/dist/core/mcp/types.js +2 -0
  160. package/dist/core/mcp/types.js.map +1 -0
  161. package/dist/core/memory.d.ts +27 -0
  162. package/dist/core/memory.d.ts.map +1 -0
  163. package/dist/core/memory.js +203 -0
  164. package/dist/core/memory.js.map +1 -0
  165. package/dist/core/messages.d.ts +84 -0
  166. package/dist/core/messages.d.ts.map +1 -0
  167. package/dist/core/messages.js +141 -0
  168. package/dist/core/messages.js.map +1 -0
  169. package/dist/core/model-registry.d.ts +115 -0
  170. package/dist/core/model-registry.d.ts.map +1 -0
  171. package/dist/core/model-registry.js +549 -0
  172. package/dist/core/model-registry.js.map +1 -0
  173. package/dist/core/model-resolver.d.ts +104 -0
  174. package/dist/core/model-resolver.d.ts.map +1 -0
  175. package/dist/core/model-resolver.js +448 -0
  176. package/dist/core/model-resolver.js.map +1 -0
  177. package/dist/core/package-manager.d.ts +156 -0
  178. package/dist/core/package-manager.d.ts.map +1 -0
  179. package/dist/core/package-manager.js +1465 -0
  180. package/dist/core/package-manager.js.map +1 -0
  181. package/dist/core/parallel-task-agent.d.ts +19 -0
  182. package/dist/core/parallel-task-agent.d.ts.map +1 -0
  183. package/dist/core/parallel-task-agent.js +482 -0
  184. package/dist/core/parallel-task-agent.js.map +1 -0
  185. package/dist/core/prompt-templates.d.ts +50 -0
  186. package/dist/core/prompt-templates.d.ts.map +1 -0
  187. package/dist/core/prompt-templates.js +251 -0
  188. package/dist/core/prompt-templates.js.map +1 -0
  189. package/dist/core/qwen-cli-provider.d.ts +10 -0
  190. package/dist/core/qwen-cli-provider.d.ts.map +1 -0
  191. package/dist/core/qwen-cli-provider.js +271 -0
  192. package/dist/core/qwen-cli-provider.js.map +1 -0
  193. package/dist/core/resolve-config-value.d.ts +17 -0
  194. package/dist/core/resolve-config-value.d.ts.map +1 -0
  195. package/dist/core/resolve-config-value.js +60 -0
  196. package/dist/core/resolve-config-value.js.map +1 -0
  197. package/dist/core/resource-loader.d.ts +195 -0
  198. package/dist/core/resource-loader.d.ts.map +1 -0
  199. package/dist/core/resource-loader.js +820 -0
  200. package/dist/core/resource-loader.js.map +1 -0
  201. package/dist/core/sdk.d.ts +106 -0
  202. package/dist/core/sdk.d.ts.map +1 -0
  203. package/dist/core/sdk.js +460 -0
  204. package/dist/core/sdk.js.map +1 -0
  205. package/dist/core/session-manager.d.ts +323 -0
  206. package/dist/core/session-manager.d.ts.map +1 -0
  207. package/dist/core/session-manager.js +1094 -0
  208. package/dist/core/session-manager.js.map +1 -0
  209. package/dist/core/settings-manager.d.ts +243 -0
  210. package/dist/core/settings-manager.d.ts.map +1 -0
  211. package/dist/core/settings-manager.js +691 -0
  212. package/dist/core/settings-manager.js.map +1 -0
  213. package/dist/core/skills.d.ts +58 -0
  214. package/dist/core/skills.d.ts.map +1 -0
  215. package/dist/core/skills.js +364 -0
  216. package/dist/core/skills.js.map +1 -0
  217. package/dist/core/slash-commands.d.ts +15 -0
  218. package/dist/core/slash-commands.d.ts.map +1 -0
  219. package/dist/core/slash-commands.js +64 -0
  220. package/dist/core/slash-commands.js.map +1 -0
  221. package/dist/core/subagent-runs.d.ts +16 -0
  222. package/dist/core/subagent-runs.d.ts.map +1 -0
  223. package/dist/core/subagent-runs.js +70 -0
  224. package/dist/core/subagent-runs.js.map +1 -0
  225. package/dist/core/subagents.d.ts +45 -0
  226. package/dist/core/subagents.d.ts.map +1 -0
  227. package/dist/core/subagents.js +467 -0
  228. package/dist/core/subagents.js.map +1 -0
  229. package/dist/core/system-prompt.d.ts +28 -0
  230. package/dist/core/system-prompt.d.ts.map +1 -0
  231. package/dist/core/system-prompt.js +196 -0
  232. package/dist/core/system-prompt.js.map +1 -0
  233. package/dist/core/task-plan.d.ts +32 -0
  234. package/dist/core/task-plan.d.ts.map +1 -0
  235. package/dist/core/task-plan.js +155 -0
  236. package/dist/core/task-plan.js.map +1 -0
  237. package/dist/core/timings.d.ts +7 -0
  238. package/dist/core/timings.d.ts.map +1 -0
  239. package/dist/core/timings.js +26 -0
  240. package/dist/core/timings.js.map +1 -0
  241. package/dist/core/tools/bash.d.ts +58 -0
  242. package/dist/core/tools/bash.d.ts.map +1 -0
  243. package/dist/core/tools/bash.js +275 -0
  244. package/dist/core/tools/bash.js.map +1 -0
  245. package/dist/core/tools/edit-diff.d.ts +63 -0
  246. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  247. package/dist/core/tools/edit-diff.js +243 -0
  248. package/dist/core/tools/edit-diff.js.map +1 -0
  249. package/dist/core/tools/edit.d.ts +42 -0
  250. package/dist/core/tools/edit.d.ts.map +1 -0
  251. package/dist/core/tools/edit.js +158 -0
  252. package/dist/core/tools/edit.js.map +1 -0
  253. package/dist/core/tools/find.d.ts +39 -0
  254. package/dist/core/tools/find.d.ts.map +1 -0
  255. package/dist/core/tools/find.js +219 -0
  256. package/dist/core/tools/find.js.map +1 -0
  257. package/dist/core/tools/grep.d.ts +45 -0
  258. package/dist/core/tools/grep.d.ts.map +1 -0
  259. package/dist/core/tools/grep.js +254 -0
  260. package/dist/core/tools/grep.js.map +1 -0
  261. package/dist/core/tools/ignore-filter.d.ts +5 -0
  262. package/dist/core/tools/ignore-filter.d.ts.map +1 -0
  263. package/dist/core/tools/ignore-filter.js +97 -0
  264. package/dist/core/tools/ignore-filter.js.map +1 -0
  265. package/dist/core/tools/index.d.ts +97 -0
  266. package/dist/core/tools/index.d.ts.map +1 -0
  267. package/dist/core/tools/index.js +78 -0
  268. package/dist/core/tools/index.js.map +1 -0
  269. package/dist/core/tools/ls.d.ts +46 -0
  270. package/dist/core/tools/ls.d.ts.map +1 -0
  271. package/dist/core/tools/ls.js +136 -0
  272. package/dist/core/tools/ls.js.map +1 -0
  273. package/dist/core/tools/path-utils.d.ts +8 -0
  274. package/dist/core/tools/path-utils.d.ts.map +1 -0
  275. package/dist/core/tools/path-utils.js +81 -0
  276. package/dist/core/tools/path-utils.js.map +1 -0
  277. package/dist/core/tools/permissions.d.ts +8 -0
  278. package/dist/core/tools/permissions.d.ts.map +1 -0
  279. package/dist/core/tools/permissions.js +2 -0
  280. package/dist/core/tools/permissions.js.map +1 -0
  281. package/dist/core/tools/read.d.ts +39 -0
  282. package/dist/core/tools/read.d.ts.map +1 -0
  283. package/dist/core/tools/read.js +166 -0
  284. package/dist/core/tools/read.js.map +1 -0
  285. package/dist/core/tools/task.d.ts +109 -0
  286. package/dist/core/tools/task.d.ts.map +1 -0
  287. package/dist/core/tools/task.js +1065 -0
  288. package/dist/core/tools/task.js.map +1 -0
  289. package/dist/core/tools/todo.d.ts +42 -0
  290. package/dist/core/tools/todo.d.ts.map +1 -0
  291. package/dist/core/tools/todo.js +159 -0
  292. package/dist/core/tools/todo.js.map +1 -0
  293. package/dist/core/tools/truncate.d.ts +70 -0
  294. package/dist/core/tools/truncate.d.ts.map +1 -0
  295. package/dist/core/tools/truncate.js +205 -0
  296. package/dist/core/tools/truncate.js.map +1 -0
  297. package/dist/core/tools/write.d.ts +32 -0
  298. package/dist/core/tools/write.d.ts.map +1 -0
  299. package/dist/core/tools/write.js +90 -0
  300. package/dist/core/tools/write.js.map +1 -0
  301. package/dist/index.d.ts +30 -0
  302. package/dist/index.d.ts.map +1 -0
  303. package/dist/index.js +45 -0
  304. package/dist/index.js.map +1 -0
  305. package/dist/iosm/agent-verification.d.ts +16 -0
  306. package/dist/iosm/agent-verification.d.ts.map +1 -0
  307. package/dist/iosm/agent-verification.js +138 -0
  308. package/dist/iosm/agent-verification.js.map +1 -0
  309. package/dist/iosm/automation.d.ts +40 -0
  310. package/dist/iosm/automation.d.ts.map +1 -0
  311. package/dist/iosm/automation.js +76 -0
  312. package/dist/iosm/automation.js.map +1 -0
  313. package/dist/iosm/config.d.ts +151 -0
  314. package/dist/iosm/config.d.ts.map +1 -0
  315. package/dist/iosm/config.js +323 -0
  316. package/dist/iosm/config.js.map +1 -0
  317. package/dist/iosm/context-loader.d.ts +12 -0
  318. package/dist/iosm/context-loader.d.ts.map +1 -0
  319. package/dist/iosm/context-loader.js +50 -0
  320. package/dist/iosm/context-loader.js.map +1 -0
  321. package/dist/iosm/cycle.d.ts +51 -0
  322. package/dist/iosm/cycle.d.ts.map +1 -0
  323. package/dist/iosm/cycle.js +861 -0
  324. package/dist/iosm/cycle.js.map +1 -0
  325. package/dist/iosm/guide.d.ts +31 -0
  326. package/dist/iosm/guide.d.ts.map +1 -0
  327. package/dist/iosm/guide.js +101 -0
  328. package/dist/iosm/guide.js.map +1 -0
  329. package/dist/iosm/index.d.ts +12 -0
  330. package/dist/iosm/index.d.ts.map +1 -0
  331. package/dist/iosm/index.js +11 -0
  332. package/dist/iosm/index.js.map +1 -0
  333. package/dist/iosm/init.d.ts +58 -0
  334. package/dist/iosm/init.d.ts.map +1 -0
  335. package/dist/iosm/init.js +1221 -0
  336. package/dist/iosm/init.js.map +1 -0
  337. package/dist/iosm/metrics.d.ts +23 -0
  338. package/dist/iosm/metrics.d.ts.map +1 -0
  339. package/dist/iosm/metrics.js +336 -0
  340. package/dist/iosm/metrics.js.map +1 -0
  341. package/dist/iosm/paths.d.ts +24 -0
  342. package/dist/iosm/paths.d.ts.map +1 -0
  343. package/dist/iosm/paths.js +77 -0
  344. package/dist/iosm/paths.js.map +1 -0
  345. package/dist/iosm/runtime-context.d.ts +20 -0
  346. package/dist/iosm/runtime-context.d.ts.map +1 -0
  347. package/dist/iosm/runtime-context.js +170 -0
  348. package/dist/iosm/runtime-context.js.map +1 -0
  349. package/dist/iosm/types.d.ts +151 -0
  350. package/dist/iosm/types.d.ts.map +1 -0
  351. package/dist/iosm/types.js +3 -0
  352. package/dist/iosm/types.js.map +1 -0
  353. package/dist/main.d.ts +8 -0
  354. package/dist/main.d.ts.map +1 -0
  355. package/dist/main.js +1478 -0
  356. package/dist/main.js.map +1 -0
  357. package/dist/migrations.d.ts +33 -0
  358. package/dist/migrations.d.ts.map +1 -0
  359. package/dist/migrations.js +261 -0
  360. package/dist/migrations.js.map +1 -0
  361. package/dist/modes/index.d.ts +9 -0
  362. package/dist/modes/index.d.ts.map +1 -0
  363. package/dist/modes/index.js +8 -0
  364. package/dist/modes/index.js.map +1 -0
  365. package/dist/modes/interactive/components/armin.d.ts +34 -0
  366. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  367. package/dist/modes/interactive/components/armin.js +329 -0
  368. package/dist/modes/interactive/components/armin.js.map +1 -0
  369. package/dist/modes/interactive/components/ascii-logo.d.ts +11 -0
  370. package/dist/modes/interactive/components/ascii-logo.d.ts.map +1 -0
  371. package/dist/modes/interactive/components/ascii-logo.js +25 -0
  372. package/dist/modes/interactive/components/ascii-logo.js.map +1 -0
  373. package/dist/modes/interactive/components/assistant-message.d.ts +16 -0
  374. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  375. package/dist/modes/interactive/components/assistant-message.js +92 -0
  376. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  377. package/dist/modes/interactive/components/bash-execution.d.ts +36 -0
  378. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  379. package/dist/modes/interactive/components/bash-execution.js +170 -0
  380. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  381. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  382. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  383. package/dist/modes/interactive/components/bordered-loader.js +48 -0
  384. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  385. package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  386. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  387. package/dist/modes/interactive/components/branch-summary-message.js +42 -0
  388. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  389. package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  390. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  391. package/dist/modes/interactive/components/compaction-summary-message.js +43 -0
  392. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  393. package/dist/modes/interactive/components/config-selector.d.ts +71 -0
  394. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  395. package/dist/modes/interactive/components/config-selector.js +470 -0
  396. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  397. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  398. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  399. package/dist/modes/interactive/components/countdown-timer.js +28 -0
  400. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  401. package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  402. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  403. package/dist/modes/interactive/components/custom-editor.js +63 -0
  404. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  405. package/dist/modes/interactive/components/custom-message.d.ts +20 -0
  406. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  407. package/dist/modes/interactive/components/custom-message.js +74 -0
  408. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  409. package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  410. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
  411. package/dist/modes/interactive/components/daxnuts.js +138 -0
  412. package/dist/modes/interactive/components/daxnuts.js.map +1 -0
  413. package/dist/modes/interactive/components/decrypt-loader.d.ts +25 -0
  414. package/dist/modes/interactive/components/decrypt-loader.d.ts.map +1 -0
  415. package/dist/modes/interactive/components/decrypt-loader.js +102 -0
  416. package/dist/modes/interactive/components/decrypt-loader.js.map +1 -0
  417. package/dist/modes/interactive/components/diff.d.ts +12 -0
  418. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  419. package/dist/modes/interactive/components/diff.js +133 -0
  420. package/dist/modes/interactive/components/diff.js.map +1 -0
  421. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  422. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  423. package/dist/modes/interactive/components/dynamic-border.js +20 -0
  424. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  425. package/dist/modes/interactive/components/extension-editor.d.ts +20 -0
  426. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  427. package/dist/modes/interactive/components/extension-editor.js +105 -0
  428. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  429. package/dist/modes/interactive/components/extension-input.d.ts +23 -0
  430. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  431. package/dist/modes/interactive/components/extension-input.js +55 -0
  432. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  433. package/dist/modes/interactive/components/extension-selector.d.ts +24 -0
  434. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  435. package/dist/modes/interactive/components/extension-selector.js +71 -0
  436. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  437. package/dist/modes/interactive/components/footer.d.ts +39 -0
  438. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  439. package/dist/modes/interactive/components/footer.js +285 -0
  440. package/dist/modes/interactive/components/footer.js.map +1 -0
  441. package/dist/modes/interactive/components/index.d.ts +33 -0
  442. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  443. package/dist/modes/interactive/components/index.js +34 -0
  444. package/dist/modes/interactive/components/index.js.map +1 -0
  445. package/dist/modes/interactive/components/keybinding-hints.d.ts +50 -0
  446. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  447. package/dist/modes/interactive/components/keybinding-hints.js +85 -0
  448. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  449. package/dist/modes/interactive/components/login-dialog.d.ts +42 -0
  450. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  451. package/dist/modes/interactive/components/login-dialog.js +139 -0
  452. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  453. package/dist/modes/interactive/components/mcp-selector.d.ts +31 -0
  454. package/dist/modes/interactive/components/mcp-selector.d.ts.map +1 -0
  455. package/dist/modes/interactive/components/mcp-selector.js +171 -0
  456. package/dist/modes/interactive/components/mcp-selector.js.map +1 -0
  457. package/dist/modes/interactive/components/model-selector.d.ts +51 -0
  458. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  459. package/dist/modes/interactive/components/model-selector.js +292 -0
  460. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  461. package/dist/modes/interactive/components/oauth-selector.d.ts +19 -0
  462. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  463. package/dist/modes/interactive/components/oauth-selector.js +134 -0
  464. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  465. package/dist/modes/interactive/components/scoped-models-selector.d.ts +49 -0
  466. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  467. package/dist/modes/interactive/components/scoped-models-selector.js +271 -0
  468. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  469. package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  470. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  471. package/dist/modes/interactive/components/session-selector-search.js +155 -0
  472. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  473. package/dist/modes/interactive/components/session-selector.d.ts +95 -0
  474. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  475. package/dist/modes/interactive/components/session-selector.js +839 -0
  476. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  477. package/dist/modes/interactive/components/settings-selector.d.ts +60 -0
  478. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  479. package/dist/modes/interactive/components/settings-selector.js +311 -0
  480. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  481. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  482. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  483. package/dist/modes/interactive/components/show-images-selector.js +34 -0
  484. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  485. package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  486. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  487. package/dist/modes/interactive/components/skill-invocation-message.js +45 -0
  488. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  489. package/dist/modes/interactive/components/subagent-message.d.ts +91 -0
  490. package/dist/modes/interactive/components/subagent-message.d.ts.map +1 -0
  491. package/dist/modes/interactive/components/subagent-message.js +306 -0
  492. package/dist/modes/interactive/components/subagent-message.js.map +1 -0
  493. package/dist/modes/interactive/components/task-plan-message.d.ts +12 -0
  494. package/dist/modes/interactive/components/task-plan-message.d.ts.map +1 -0
  495. package/dist/modes/interactive/components/task-plan-message.js +61 -0
  496. package/dist/modes/interactive/components/task-plan-message.js.map +1 -0
  497. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  498. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  499. package/dist/modes/interactive/components/theme-selector.js +44 -0
  500. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  501. package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  502. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  503. package/dist/modes/interactive/components/thinking-selector.js +46 -0
  504. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  505. package/dist/modes/interactive/components/tool-execution.d.ts +78 -0
  506. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  507. package/dist/modes/interactive/components/tool-execution.js +880 -0
  508. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  509. package/dist/modes/interactive/components/tree-selector.d.ts +70 -0
  510. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  511. package/dist/modes/interactive/components/tree-selector.js +921 -0
  512. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  513. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  514. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  515. package/dist/modes/interactive/components/user-message-selector.js +110 -0
  516. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  517. package/dist/modes/interactive/components/user-message.d.ts +9 -0
  518. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  519. package/dist/modes/interactive/components/user-message.js +27 -0
  520. package/dist/modes/interactive/components/user-message.js.map +1 -0
  521. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  522. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  523. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  524. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  525. package/dist/modes/interactive/interactive-mode.d.ts +453 -0
  526. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  527. package/dist/modes/interactive/interactive-mode.js +8669 -0
  528. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  529. package/dist/modes/interactive/theme/dark.json +85 -0
  530. package/dist/modes/interactive/theme/light.json +84 -0
  531. package/dist/modes/interactive/theme/theme-schema.json +335 -0
  532. package/dist/modes/interactive/theme/theme.d.ts +78 -0
  533. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  534. package/dist/modes/interactive/theme/theme.js +944 -0
  535. package/dist/modes/interactive/theme/theme.js.map +1 -0
  536. package/dist/modes/print-mode.d.ts +28 -0
  537. package/dist/modes/print-mode.d.ts.map +1 -0
  538. package/dist/modes/print-mode.js +101 -0
  539. package/dist/modes/print-mode.js.map +1 -0
  540. package/dist/modes/rpc/rpc-client.d.ts +217 -0
  541. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  542. package/dist/modes/rpc/rpc-client.js +404 -0
  543. package/dist/modes/rpc/rpc-client.js.map +1 -0
  544. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  545. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  546. package/dist/modes/rpc/rpc-mode.js +580 -0
  547. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  548. package/dist/modes/rpc/rpc-types.d.ts +409 -0
  549. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  550. package/dist/modes/rpc/rpc-types.js +8 -0
  551. package/dist/modes/rpc/rpc-types.js.map +1 -0
  552. package/dist/utils/changelog.d.ts +21 -0
  553. package/dist/utils/changelog.d.ts.map +1 -0
  554. package/dist/utils/changelog.js +87 -0
  555. package/dist/utils/changelog.js.map +1 -0
  556. package/dist/utils/clipboard-image.d.ts +11 -0
  557. package/dist/utils/clipboard-image.d.ts.map +1 -0
  558. package/dist/utils/clipboard-image.js +162 -0
  559. package/dist/utils/clipboard-image.js.map +1 -0
  560. package/dist/utils/clipboard-native.d.ts +7 -0
  561. package/dist/utils/clipboard-native.d.ts.map +1 -0
  562. package/dist/utils/clipboard-native.js +14 -0
  563. package/dist/utils/clipboard-native.js.map +1 -0
  564. package/dist/utils/clipboard.d.ts +2 -0
  565. package/dist/utils/clipboard.d.ts.map +1 -0
  566. package/dist/utils/clipboard.js +67 -0
  567. package/dist/utils/clipboard.js.map +1 -0
  568. package/dist/utils/frontmatter.d.ts +8 -0
  569. package/dist/utils/frontmatter.d.ts.map +1 -0
  570. package/dist/utils/frontmatter.js +26 -0
  571. package/dist/utils/frontmatter.js.map +1 -0
  572. package/dist/utils/git.d.ts +26 -0
  573. package/dist/utils/git.d.ts.map +1 -0
  574. package/dist/utils/git.js +163 -0
  575. package/dist/utils/git.js.map +1 -0
  576. package/dist/utils/image-convert.d.ts +9 -0
  577. package/dist/utils/image-convert.d.ts.map +1 -0
  578. package/dist/utils/image-convert.js +35 -0
  579. package/dist/utils/image-convert.js.map +1 -0
  580. package/dist/utils/image-resize.d.ts +36 -0
  581. package/dist/utils/image-resize.d.ts.map +1 -0
  582. package/dist/utils/image-resize.js +181 -0
  583. package/dist/utils/image-resize.js.map +1 -0
  584. package/dist/utils/mime.d.ts +2 -0
  585. package/dist/utils/mime.d.ts.map +1 -0
  586. package/dist/utils/mime.js +26 -0
  587. package/dist/utils/mime.js.map +1 -0
  588. package/dist/utils/photon.d.ts +21 -0
  589. package/dist/utils/photon.d.ts.map +1 -0
  590. package/dist/utils/photon.js +121 -0
  591. package/dist/utils/photon.js.map +1 -0
  592. package/dist/utils/shell.d.ts +26 -0
  593. package/dist/utils/shell.d.ts.map +1 -0
  594. package/dist/utils/shell.js +186 -0
  595. package/dist/utils/shell.js.map +1 -0
  596. package/dist/utils/sleep.d.ts +5 -0
  597. package/dist/utils/sleep.d.ts.map +1 -0
  598. package/dist/utils/sleep.js +17 -0
  599. package/dist/utils/sleep.js.map +1 -0
  600. package/dist/utils/tools-manager.d.ts +3 -0
  601. package/dist/utils/tools-manager.d.ts.map +1 -0
  602. package/dist/utils/tools-manager.js +251 -0
  603. package/dist/utils/tools-manager.js.map +1 -0
  604. package/docs/README.md +32 -0
  605. package/docs/cli-reference.md +342 -0
  606. package/docs/configuration.md +301 -0
  607. package/docs/development-and-testing.md +295 -0
  608. package/docs/extensions-packages-themes.md +415 -0
  609. package/docs/getting-started.md +246 -0
  610. package/docs/interactive-mode.md +272 -0
  611. package/docs/iosm-init-and-cycles.md +355 -0
  612. package/docs/orchestration-and-subagents.md +273 -0
  613. package/docs/rpc-json-sdk.md +353 -0
  614. package/docs/sessions-traces-export.md +260 -0
  615. package/examples/README.md +120 -0
  616. package/examples/extensions/README.md +306 -0
  617. package/examples/extensions/antigravity-image-gen.ts +415 -0
  618. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  619. package/examples/extensions/bash-spawn-hook.ts +30 -0
  620. package/examples/extensions/bookmark.ts +50 -0
  621. package/examples/extensions/built-in-tool-renderer.ts +246 -0
  622. package/examples/extensions/claude-rules.ts +86 -0
  623. package/examples/extensions/commands.ts +72 -0
  624. package/examples/extensions/confirm-destructive.ts +59 -0
  625. package/examples/extensions/custom-compaction.ts +114 -0
  626. package/examples/extensions/custom-footer.ts +64 -0
  627. package/examples/extensions/custom-header.ts +73 -0
  628. package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
  629. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  630. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  631. package/examples/extensions/custom-provider-gitlab-duo/index.ts +349 -0
  632. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  633. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  634. package/examples/extensions/custom-provider-qwen-cli/index.ts +345 -0
  635. package/examples/extensions/custom-provider-qwen-cli/package.json +16 -0
  636. package/examples/extensions/dirty-repo-guard.ts +56 -0
  637. package/examples/extensions/doom-overlay/README.md +46 -0
  638. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  639. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  640. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  641. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  642. package/examples/extensions/doom-overlay/doom-component.ts +132 -0
  643. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  644. package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  645. package/examples/extensions/doom-overlay/index.ts +74 -0
  646. package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  647. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  648. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  649. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  650. package/examples/extensions/dynamic-resources/index.ts +15 -0
  651. package/examples/extensions/dynamic-tools.ts +74 -0
  652. package/examples/extensions/event-bus.ts +43 -0
  653. package/examples/extensions/file-trigger.ts +41 -0
  654. package/examples/extensions/git-checkpoint.ts +53 -0
  655. package/examples/extensions/handoff.ts +150 -0
  656. package/examples/extensions/hello.ts +25 -0
  657. package/examples/extensions/inline-bash.ts +94 -0
  658. package/examples/extensions/input-transform.ts +43 -0
  659. package/examples/extensions/interactive-shell.ts +196 -0
  660. package/examples/extensions/mac-system-theme.ts +47 -0
  661. package/examples/extensions/message-renderer.ts +59 -0
  662. package/examples/extensions/minimal-mode.ts +426 -0
  663. package/examples/extensions/modal-editor.ts +85 -0
  664. package/examples/extensions/model-status.ts +31 -0
  665. package/examples/extensions/notify.ts +55 -0
  666. package/examples/extensions/overlay-qa-tests.ts +881 -0
  667. package/examples/extensions/overlay-test.ts +150 -0
  668. package/examples/extensions/permission-gate.ts +34 -0
  669. package/examples/extensions/pirate.ts +47 -0
  670. package/examples/extensions/plan-mode/README.md +65 -0
  671. package/examples/extensions/plan-mode/index.ts +340 -0
  672. package/examples/extensions/plan-mode/utils.ts +168 -0
  673. package/examples/extensions/preset.ts +398 -0
  674. package/examples/extensions/protected-paths.ts +30 -0
  675. package/examples/extensions/qna.ts +119 -0
  676. package/examples/extensions/question.ts +264 -0
  677. package/examples/extensions/questionnaire.ts +427 -0
  678. package/examples/extensions/rainbow-editor.ts +88 -0
  679. package/examples/extensions/reload-runtime.ts +37 -0
  680. package/examples/extensions/rpc-demo.ts +124 -0
  681. package/examples/extensions/sandbox/index.ts +318 -0
  682. package/examples/extensions/sandbox/package-lock.json +92 -0
  683. package/examples/extensions/sandbox/package.json +19 -0
  684. package/examples/extensions/send-user-message.ts +97 -0
  685. package/examples/extensions/session-name.ts +27 -0
  686. package/examples/extensions/shutdown-command.ts +63 -0
  687. package/examples/extensions/snake.ts +343 -0
  688. package/examples/extensions/space-invaders.ts +560 -0
  689. package/examples/extensions/ssh.ts +220 -0
  690. package/examples/extensions/status-line.ts +40 -0
  691. package/examples/extensions/subagent/README.md +172 -0
  692. package/examples/extensions/subagent/agents/planner.md +37 -0
  693. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  694. package/examples/extensions/subagent/agents/scout.md +50 -0
  695. package/examples/extensions/subagent/agents/worker.md +24 -0
  696. package/examples/extensions/subagent/agents.ts +126 -0
  697. package/examples/extensions/subagent/index.ts +964 -0
  698. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  699. package/examples/extensions/subagent/prompts/implement.md +10 -0
  700. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  701. package/examples/extensions/summarize.ts +195 -0
  702. package/examples/extensions/system-prompt-header.ts +17 -0
  703. package/examples/extensions/timed-confirm.ts +70 -0
  704. package/examples/extensions/titlebar-spinner.ts +58 -0
  705. package/examples/extensions/todo.ts +299 -0
  706. package/examples/extensions/tool-override.ts +143 -0
  707. package/examples/extensions/tools.ts +146 -0
  708. package/examples/extensions/trigger-compact.ts +40 -0
  709. package/examples/extensions/truncated-tool.ts +192 -0
  710. package/examples/extensions/widget-placement.ts +17 -0
  711. package/examples/extensions/with-deps/index.ts +36 -0
  712. package/examples/extensions/with-deps/package-lock.json +31 -0
  713. package/examples/extensions/with-deps/package.json +22 -0
  714. package/examples/rpc-extension-ui.ts +632 -0
  715. package/examples/sdk/01-minimal.ts +22 -0
  716. package/examples/sdk/02-custom-model.ts +49 -0
  717. package/examples/sdk/03-custom-prompt.ts +55 -0
  718. package/examples/sdk/04-skills.ts +46 -0
  719. package/examples/sdk/05-tools.ts +56 -0
  720. package/examples/sdk/06-extensions.ts +88 -0
  721. package/examples/sdk/07-context-files.ts +40 -0
  722. package/examples/sdk/08-prompt-templates.ts +47 -0
  723. package/examples/sdk/09-api-keys-and-oauth.ts +48 -0
  724. package/examples/sdk/10-settings.ts +51 -0
  725. package/examples/sdk/11-sessions.ts +48 -0
  726. package/examples/sdk/12-full-control.ts +82 -0
  727. package/examples/sdk/README.md +337 -0
  728. package/examples/tsconfig.json +3 -0
  729. package/package.json +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cycle.js","sourceRoot":"","sources":["../../src/iosm/cycle.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, readFileSync, readdirSync, writeFileSync, mkdirSync } from \"node:fs\";\nimport { basename } from \"node:path\";\nimport { type IosmConfig, loadIosmConfig, resolveIosmRootDir } from \"./config.js\";\nimport {\n\tassessDeclineCoverage,\n\tbuildCycleBudget,\n\tcalculateDecisionConfidence,\n\tcalculateIosmIndex,\n\tcalculateIosmMetricsFromRawMeasurements,\n\tcalculateMetricDeltas,\n\tcreateMetricRecord,\n\thasCompleteNumericMetricRecord,\n\thasCompleteTierMetricRecord,\n\tIOSM_METRICS,\n\tmergeMetricValues,\n\tvalidateGuardrails,\n} from \"./metrics.js\";\nimport {\n\tgetIosmBaselineReportPath,\n\tgetIosmCycleDir,\n\tgetIosmCycleReportPath,\n\tgetIosmCyclesDir,\n\tgetIosmHypothesesPath,\n\tgetIosmMetricsHistoryPath,\n\tgetIosmPhaseReportPath,\n\tgetIosmPhaseReportsDir,\n} from \"./paths.js\";\nimport type {\n\tIosmBaselineReport,\n\tIosmCycleCapacityReport,\n\tIosmCycleReport,\n\tIosmCycleScope,\n\tIosmDecision,\n\tIosmEvidenceTier,\n\tIosmGateResult,\n\tIosmGuardrailViolation,\n\tIosmHypothesisCard,\n\tIosmHypothesisOutcome,\n\tIosmMetric,\n\tIosmMetricRecord,\n\tIosmMetricsHistoryEntry,\n\tIosmPhase,\n\tIosmPhasePointer,\n\tIosmPhaseReport,\n} from \"./types.js\";\nimport { IOSM_PHASES } from \"./types.js\";\n\nconst IOSM_PHASE_GATES: Record<IosmPhase, \"gate_I\" | \"gate_O\" | \"gate_S\" | \"gate_M\"> = {\n\timprove: \"gate_I\",\n\toptimize: \"gate_O\",\n\tshrink: \"gate_S\",\n\tmodularize: \"gate_M\",\n};\n\ntype UnknownRecord = Record<string, unknown>;\n\nexport interface PlanIosmCycleOptions {\n\tcwd?: string;\n\tgoals: string[];\n\tcycleId?: string;\n\tforce?: boolean;\n}\n\nexport interface PlannedIosmCycle {\n\tcycleId: string;\n\tcycleDir: string;\n\treportPath: string;\n\tbaselineReportPath: string;\n\thypothesesPath: string;\n}\n\nexport interface IosmCycleListItem {\n\tcycleId: string;\n\tpath: string;\n\tstatus: IosmCycleReport[\"status\"] | \"unknown\";\n\tgoals: string[];\n\tdecision: IosmDecision | \"unknown\";\n}\n\nexport interface IosmCycleStatus {\n\tcycleId: string;\n\trootDir: string;\n\treportPath: string;\n\tstatus: IosmCycleReport[\"status\"];\n\tdecision: IosmDecision;\n\treportComplete: boolean;\n\tlearningClosed: boolean;\n\thistoryRecorded: boolean;\n\tcapacityPass: boolean;\n\tguardrailsPass: boolean | null;\n\tblockingIssues: string[];\n\twarnings: string[];\n}\n\nexport interface IosmCycleHistoryRecordResult {\n\tcycleId: string;\n\thistoryPath: string;\n\treplaced: boolean;\n}\n\nfunction isPlainObject(value: unknown): value is UnknownRecord {\n\treturn !!value && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction asString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" ? value : undefined;\n}\n\nfunction asNumber(value: unknown): number | undefined {\n\treturn typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\nfunction asBoolean(value: unknown): boolean | undefined {\n\treturn typeof value === \"boolean\" ? value : undefined;\n}\n\nfunction asStringArray(value: unknown): string[] {\n\tif (!Array.isArray(value)) {\n\t\treturn [];\n\t}\n\n\treturn value.filter((entry): entry is string => typeof entry === \"string\");\n}\n\nfunction jsonWrite(filePath: string, value: unknown): void {\n\twriteFileSync(filePath, `${JSON.stringify(value, null, 2)}\\n`, \"utf8\");\n}\n\nfunction readJson<T>(filePath: string): T {\n\treturn JSON.parse(readFileSync(filePath, \"utf8\")) as T;\n}\n\nfunction formatLocalDate(now: Date): string {\n\tconst year = now.getFullYear();\n\tconst month = String(now.getMonth() + 1).padStart(2, \"0\");\n\tconst day = String(now.getDate()).padStart(2, \"0\");\n\treturn `${year}-${month}-${day}`;\n}\n\nfunction createObservationWindow(now: Date): string {\n\tconst date = formatLocalDate(now);\n\treturn `${date}/${date}`;\n}\n\nfunction slugify(value: string): string {\n\treturn value\n\t\t.toLowerCase()\n\t\t.trim()\n\t\t.replace(/[^a-z0-9]+/g, \"-\")\n\t\t.replace(/^-+|-+$/g, \"\")\n\t\t.slice(0, 48);\n}\n\nfunction countScopeItems(scope: IosmCycleScope): number {\n\treturn scope.modules.length + scope.services.length + scope.domains.length + scope.contracts.length;\n}\n\nfunction estimateExpectedChangeSurface(hypotheses: IosmHypothesisCard[], cycleScope: IosmCycleScope): number {\n\tconst scopeSize = countScopeItems(cycleScope);\n\treturn scopeSize > 0 ? scopeSize : Math.max(hypotheses.length, 1);\n}\n\nfunction nextCycleId(rootDir: string): string {\n\tconst today = formatLocalDate(new Date());\n\tconst prefix = `iosm-${today}-`;\n\tconst cycleDir = getIosmCyclesDir(rootDir);\n\tif (!existsSync(cycleDir)) {\n\t\treturn `${prefix}001`;\n\t}\n\n\tconst suffixes = readdirSync(cycleDir)\n\t\t.filter((entry) => entry.startsWith(prefix))\n\t\t.map((entry) => Number.parseInt(entry.slice(prefix.length), 10))\n\t\t.filter((value) => Number.isFinite(value));\n\n\tconst nextIndex = suffixes.length === 0 ? 1 : Math.max(...suffixes) + 1;\n\treturn `${prefix}${String(nextIndex).padStart(3, \"0\")}`;\n}\n\nfunction createCycleScopeTemplate(): IosmCycleScope {\n\treturn {\n\t\tmodules: [],\n\t\tservices: [],\n\t\tdomains: [],\n\t\tcontracts: [],\n\t\trationale: \"Fill in cycle scope before phase execution.\",\n\t};\n}\n\nfunction normalizeCycleScope(value: unknown): IosmCycleScope {\n\tconst object = isPlainObject(value) ? value : {};\n\treturn {\n\t\tmodules: asStringArray(object.modules),\n\t\tservices: asStringArray(object.services),\n\t\tdomains: asStringArray(object.domains),\n\t\tcontracts: asStringArray(object.contracts),\n\t\trationale: asString(object.rationale) ?? \"\",\n\t};\n}\n\nfunction normalizeMetricNumbers(value: unknown, fallback: number | null): IosmMetricRecord<number | null> {\n\tconst object = isPlainObject(value) ? value : {};\n\treturn createMetricRecord((metric) => asNumber(object[metric]) ?? fallback);\n}\n\nfunction normalizeMetricTiers(value: unknown): IosmMetricRecord<IosmEvidenceTier | null> {\n\tconst object = isPlainObject(value) ? value : {};\n\treturn createMetricRecord((metric) => {\n\t\tconst tier = asString(object[metric]);\n\t\treturn tier === \"A\" || tier === \"B\" || tier === \"C\" ? tier : null;\n\t});\n}\n\nfunction normalizeMetricBooleans(value: unknown, fallback: boolean): IosmMetricRecord<boolean> {\n\tconst object = isPlainObject(value) ? value : {};\n\treturn createMetricRecord((metric) => asBoolean(object[metric]) ?? fallback);\n}\n\nfunction createCycleCapacity(\n\tgoals: string[],\n\tcycleScope: IosmCycleScope,\n\thypotheses: IosmHypothesisCard[],\n\tconfig: IosmConfig[\"iosm\"][\"cycle_capacity\"],\n): IosmCycleCapacityReport {\n\tconst goalCount = goals.length;\n\tconst scopeSize = countScopeItems(cycleScope);\n\tconst expectedChangeSurface = estimateExpectedChangeSurface(hypotheses, cycleScope);\n\treturn {\n\t\tgoal_count: goalCount,\n\t\tscope_size: scopeSize,\n\t\texpected_change_surface: expectedChangeSurface,\n\t\tpass:\n\t\t\tgoalCount <= config.max_goals &&\n\t\t\tscopeSize <= config.max_scope_items &&\n\t\t\texpectedChangeSurface <= config.max_expected_change_surface,\n\t};\n}\n\nfunction createHypotheses(goals: string[], config: IosmConfig): IosmHypothesisCard[] {\n\treturn goals.map((goal, index) => {\n\t\tconst slug = slugify(goal) || `goal-${index + 1}`;\n\t\treturn {\n\t\t\tid: `hyp-${slug}-${String(index + 1).padStart(3, \"0\")}`,\n\t\t\tgoal_id: slug,\n\t\t\towner: \"unassigned\",\n\t\t\tstatement: `If ${goal.toLowerCase()}, the target metrics should improve without violating guardrails.`,\n\t\t\texpected_positive_delta: {},\n\t\t\tallowed_negative_delta: { ...config.iosm.guardrails.max_negative_delta },\n\t\t\texpected_business_signal: {\n\t\t\t\tmetric: \"\",\n\t\t\t\tdirection: \"up\",\n\t\t\t},\n\t\t\tvalidation: {\n\t\t\t\tmethod: \"fill-in\",\n\t\t\t\twindow: \"fill-in\",\n\t\t\t},\n\t\t\trollback_trigger: [],\n\t\t\tconfidence: config.iosm.planning.min_confidence,\n\t\t};\n\t});\n}\n\nfunction buildHypothesisInteractions(hypotheses: IosmHypothesisCard[]): {\n\tpass: boolean;\n\tconflicts: Array<Record<string, unknown>>;\n} {\n\tconst seenGoalIds = new Set<string>();\n\tconst conflicts: Array<Record<string, unknown>> = [];\n\n\tfor (const hypothesis of hypotheses) {\n\t\tif (seenGoalIds.has(hypothesis.goal_id)) {\n\t\t\tconflicts.push({\n\t\t\t\ttype: \"duplicate_goal_id\",\n\t\t\t\tgoal_id: hypothesis.goal_id,\n\t\t\t\thypothesis_id: hypothesis.id,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tseenGoalIds.add(hypothesis.goal_id);\n\t}\n\n\treturn {\n\t\tpass: conflicts.length === 0,\n\t\tconflicts,\n\t};\n}\n\nfunction createPhaseReport(phase: IosmPhase): IosmPhaseReport {\n\treturn {\n\t\tphase,\n\t\tgate: IOSM_PHASE_GATES[phase],\n\t\tstatus: \"pending\",\n\t\tpass: null,\n\t\tinputs: [],\n\t\tactions_taken: [],\n\t\toutputs: [],\n\t\tlinked_hypotheses: [],\n\t\tgate_measurements: {},\n\t};\n}\n\nfunction createPhasePointers(cycleId: string, rootDir: string): Record<IosmPhase, IosmPhasePointer> {\n\treturn Object.fromEntries(\n\t\tIOSM_PHASES.map((phase) => [\n\t\t\tphase,\n\t\t\t{\n\t\t\t\tpath: getIosmPhaseReportPath(cycleId, phase, rootDir),\n\t\t\t\tgate: IOSM_PHASE_GATES[phase],\n\t\t\t\tstatus: \"pending\" as const,\n\t\t\t\tpass: null,\n\t\t\t},\n\t\t]),\n\t) as Record<IosmPhase, IosmPhasePointer>;\n}\n\nfunction createGateResults(): Record<\"gate_I\" | \"gate_O\" | \"gate_S\" | \"gate_M\", IosmGateResult> {\n\treturn {\n\t\tgate_I: { pass: null, waived: false, status: \"pending\" },\n\t\tgate_O: { pass: null, waived: false, status: \"pending\" },\n\t\tgate_S: { pass: null, waived: false, status: \"pending\" },\n\t\tgate_M: { pass: null, waived: false, status: \"pending\" },\n\t};\n}\n\nfunction createBaselineReport(\n\trootDir: string,\n\tcycleId: string,\n\tconfig: IosmConfig,\n\tcycleScope: IosmCycleScope,\n): IosmBaselineReport {\n\treturn {\n\t\tcycle_id: cycleId,\n\t\tcaptured_at: new Date().toISOString(),\n\t\tsystem: config.iosm.metadata.system_name || basename(rootDir),\n\t\tscope: config.iosm.metadata.scope,\n\t\tdelivery_boundary: config.iosm.metadata.delivery_boundary,\n\t\tcycle_scope: cycleScope,\n\t\tbaseline_metrics: {\n\t\t\tvalues: createMetricRecord(() => null),\n\t\t\traw_measurements: {},\n\t\t},\n\t\tsource_systems: [config.iosm.metadata.system_name],\n\t};\n}\n\nfunction createCycleReport(\n\trootDir: string,\n\tcycleId: string,\n\tgoals: string[],\n\thypotheses: IosmHypothesisCard[],\n\tconfig: IosmConfig,\n): IosmCycleReport {\n\tconst cycleScope = createCycleScopeTemplate();\n\tconst cycleCapacity = createCycleCapacity(goals, cycleScope, hypotheses, config.iosm.cycle_capacity);\n\tconst hypothesisInteractions = buildHypothesisInteractions(hypotheses);\n\tconst effectiveBudget = buildCycleBudget(config.iosm.guardrails.max_negative_delta, hypotheses);\n\n\treturn {\n\t\tcycle_id: cycleId,\n\t\tstatus: \"planned\",\n\t\tsystem: config.iosm.metadata.system_name || basename(rootDir),\n\t\tscope: config.iosm.metadata.scope,\n\t\tcriticality_profile: config.iosm.metadata.criticality_profile,\n\t\tdelivery_boundary: config.iosm.metadata.delivery_boundary,\n\t\tcycle_scope: cycleScope,\n\t\tcycle_capacity: cycleCapacity,\n\t\twindow: createObservationWindow(new Date()),\n\t\tgoals,\n\t\thypotheses: hypotheses.map((hypothesis) => ({ ...hypothesis, pass: null, notes: [] })),\n\t\thypothesis_interactions: hypothesisInteractions,\n\t\tphase_reports: createPhasePointers(cycleId, rootDir),\n\t\tgates: createGateResults(),\n\t\tmetrics: createMetricRecord(() => null),\n\t\tmetric_confidences: createMetricRecord(() => null),\n\t\tmetric_tiers: createMetricRecord(() => null),\n\t\traw_measurements: {},\n\t\tguardrails: {\n\t\t\tpass: null,\n\t\t\teffective_budget: effectiveBudget,\n\t\t\tviolations: [],\n\t\t},\n\t\tmetric_deltas: createMetricRecord(() => null),\n\t\tdecline_coverage: createMetricRecord(() => true),\n\t\tiosm_index: null,\n\t\tdecision_confidence: null,\n\t\twaivers: [],\n\t\tautomation_actors: [{ type: \"agent\", role: \"analyst\", identity: \"iosm-cli\" }],\n\t\tapproval_path: [],\n\t\tanti_patterns: [],\n\t\tlearning_artifacts: [],\n\t\tincomplete: true,\n\t\tdecision: \"CONTINUE\",\n\t};\n}\n\nfunction writeScaffoldFile(filePath: string, value: unknown, force: boolean): void {\n\tif (existsSync(filePath) && !force) {\n\t\tthrow new Error(`Refusing to overwrite existing file: ${filePath}. Use --force to replace it.`);\n\t}\n\n\tjsonWrite(filePath, value);\n}\n\nfunction parseExistingHypothesisState(\n\tvalue: unknown,\n): Map<string, { pass: boolean | null; notes: string[] }> {\n\tconst result = new Map<string, { pass: boolean | null; notes: string[] }>();\n\tif (!Array.isArray(value)) {\n\t\treturn result;\n\t}\n\n\tfor (const entry of value) {\n\t\tif (!isPlainObject(entry)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst id = asString(entry.id);\n\t\tif (!id) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst pass = entry.pass === null || typeof entry.pass === \"boolean\" ? entry.pass : null;\n\t\tresult.set(id, {\n\t\t\tpass,\n\t\t\tnotes: asStringArray(entry.notes),\n\t\t});\n\t}\n\n\treturn result;\n}\n\nfunction normalizeHypotheses(\n\treportHypotheses: unknown,\n\thypothesisCards: IosmHypothesisCard[],\n): IosmHypothesisOutcome[] {\n\tconst existingState = parseExistingHypothesisState(reportHypotheses);\n\treturn hypothesisCards.map((hypothesis) => {\n\t\tconst state = existingState.get(hypothesis.id);\n\t\treturn {\n\t\t\t...hypothesis,\n\t\t\tpass: state?.pass ?? null,\n\t\t\tnotes: state?.notes ?? [],\n\t\t};\n\t});\n}\n\nfunction normalizePhaseReport(value: unknown, phase: IosmPhase): IosmPhaseReport {\n\tconst object = isPlainObject(value) ? value : {};\n\treturn {\n\t\tphase,\n\t\tgate: asString(object.gate) ?? IOSM_PHASE_GATES[phase],\n\t\tstatus:\n\t\t\tasString(object.status) === \"passed\" ||\n\t\t\tasString(object.status) === \"failed\" ||\n\t\t\tasString(object.status) === \"waived\"\n\t\t\t\t? (asString(object.status) as IosmPhaseReport[\"status\"])\n\t\t\t\t: \"pending\",\n\t\tpass: object.pass === null || typeof object.pass === \"boolean\" ? object.pass : null,\n\t\tinputs: asStringArray(object.inputs),\n\t\tactions_taken: asStringArray(object.actions_taken),\n\t\toutputs: asStringArray(object.outputs),\n\t\tlinked_hypotheses: asStringArray(object.linked_hypotheses),\n\t\tgate_measurements: isPlainObject(object.gate_measurements) ? object.gate_measurements : {},\n\t};\n}\n\nfunction loadPhaseReports(rootDir: string, cycleId: string): Record<IosmPhase, IosmPhaseReport> {\n\treturn Object.fromEntries(\n\t\tIOSM_PHASES.map((phase) => {\n\t\t\tconst path = getIosmPhaseReportPath(cycleId, phase, rootDir);\n\t\t\tif (!existsSync(path)) {\n\t\t\t\treturn [phase, createPhaseReport(phase)];\n\t\t\t}\n\t\t\treturn [phase, normalizePhaseReport(readJson<unknown>(path), phase)];\n\t\t}),\n\t) as Record<IosmPhase, IosmPhaseReport>;\n}\n\nfunction deriveGateResults(\n\tphaseReports: Record<IosmPhase, IosmPhaseReport>,\n\texistingGates: unknown,\n): Record<\"gate_I\" | \"gate_O\" | \"gate_S\" | \"gate_M\", IosmGateResult> {\n\tconst object = isPlainObject(existingGates) ? existingGates : {};\n\tconst results = createGateResults();\n\tfor (const phase of IOSM_PHASES) {\n\t\tconst gate = IOSM_PHASE_GATES[phase];\n\t\tconst existing = isPlainObject(object[gate]) ? object[gate] : {};\n\t\tconst phaseReport = phaseReports[phase];\n\t\tresults[gate] = {\n\t\t\tpass: phaseReport.pass,\n\t\t\twaived: asBoolean(existing.waived) ?? phaseReport.status === \"waived\",\n\t\t\tstatus: phaseReport.status,\n\t\t};\n\t}\n\treturn results;\n}\n\nfunction derivePhasePointers(\n\trootDir: string,\n\tcycleId: string,\n\tphaseReports: Record<IosmPhase, IosmPhaseReport>,\n): Record<IosmPhase, IosmPhasePointer> {\n\treturn Object.fromEntries(\n\t\tIOSM_PHASES.map((phase) => [\n\t\t\tphase,\n\t\t\t{\n\t\t\t\tpath: getIosmPhaseReportPath(cycleId, phase, rootDir),\n\t\t\t\tgate: IOSM_PHASE_GATES[phase],\n\t\t\t\tstatus: phaseReports[phase].status,\n\t\t\t\tpass: phaseReports[phase].pass,\n\t\t\t},\n\t\t]),\n\t) as Record<IosmPhase, IosmPhasePointer>;\n}\n\nfunction loadBaselineMetrics(rootDir: string, cycleId: string, config: IosmConfig): IosmMetricRecord<number | null> {\n\tconst path = getIosmBaselineReportPath(cycleId, rootDir);\n\tif (!existsSync(path)) {\n\t\treturn createMetricRecord(() => null);\n\t}\n\n\tconst baseline = readJson<IosmBaselineReport>(path);\n\tconst storedMetrics = normalizeMetricNumbers(baseline.baseline_metrics?.values, null);\n\tconst computedMetrics = calculateIosmMetricsFromRawMeasurements(\n\t\tbaseline.baseline_metrics?.raw_measurements ?? {},\n\t\tconfig,\n\t);\n\treturn mergeMetricValues(storedMetrics, computedMetrics);\n}\n\nfunction hasBlockingFailure(report: IosmCycleReport): boolean {\n\treturn Object.values(report.gates).some((gate) => gate.pass === false && !gate.waived);\n}\n\nfunction hasActiveBlockingWaivers(waivers: Array<Record<string, unknown>>): boolean {\n\treturn waivers.some((waiver) => {\n\t\tif (!isPlainObject(waiver)) {\n\t\t\treturn false;\n\t\t}\n\t\tconst status = asString(waiver.status);\n\t\tif (!status) {\n\t\t\treturn true;\n\t\t}\n\t\treturn status !== \"expired\" && status !== \"closed\" && status !== \"resolved\";\n\t});\n}\n\nfunction hasActiveBlockingWaiver(report: IosmCycleReport): boolean {\n\treturn hasActiveBlockingWaivers(report.waivers);\n}\n\nfunction metricFloorsMet(\n\tmetrics: IosmMetricRecord<number>,\n\tstabilization: IosmConfig[\"iosm\"][\"cycle_policy\"][\"stabilization\"],\n): boolean {\n\tfor (const metric of IOSM_METRICS) {\n\t\tif (metrics[metric] < stabilization.global_metric_floor) {\n\t\t\treturn false;\n\t\t}\n\t\tconst specificFloor = stabilization.metric_floors[metric];\n\t\tif (specificFloor !== undefined && metrics[metric] < specificFloor) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\nfunction evidenceThresholdsMet(\n\tconfidences: IosmMetricRecord<number>,\n\tminimums: IosmMetricRecord<number>,\n): boolean {\n\treturn IOSM_METRICS.every((metric) => confidences[metric] >= minimums[metric]);\n}\n\nfunction hasTierAWindow(entries: IosmMetricsHistoryEntry[], metrics: IosmMetric[]): boolean {\n\treturn entries.some((entry) => metrics.every((metric) => entry.metric_tiers[metric] === \"A\"));\n}\n\nfunction hasExcessUnexplainedDrift(entries: IosmMetricsHistoryEntry[], maxConsecutiveDeclines: number): boolean {\n\tfor (const metric of IOSM_METRICS) {\n\t\tlet streak = 0;\n\t\tfor (let index = entries.length - 1; index >= 0; index--) {\n\t\t\tconst entry = entries[index];\n\t\t\tif (entry.metric_deltas[metric] < 0 && !entry.decline_coverage[metric]) {\n\t\t\t\tstreak += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tif (streak > maxConsecutiveDeclines) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction readMetricsHistoryEntries(rootDir: string): IosmMetricsHistoryEntry[] {\n\tconst historyPath = getIosmMetricsHistoryPath(rootDir);\n\tif (!existsSync(historyPath)) {\n\t\treturn [];\n\t}\n\n\treturn readFileSync(historyPath, \"utf8\")\n\t\t.split(\"\\n\")\n\t\t.map((line) => line.trim())\n\t\t.filter((line) => line.length > 0)\n\t\t.flatMap((line) => {\n\t\t\ttry {\n\t\t\t\treturn [JSON.parse(line) as IosmMetricsHistoryEntry];\n\t\t\t} catch {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t});\n}\n\nfunction writeMetricsHistoryEntries(rootDir: string, entries: IosmMetricsHistoryEntry[]): void {\n\tconst historyPath = getIosmMetricsHistoryPath(rootDir);\n\tconst contents = entries.map((entry) => JSON.stringify(entry)).join(\"\\n\");\n\twriteFileSync(historyPath, contents.length > 0 ? `${contents}\\n` : \"\", \"utf8\");\n}\n\nfunction toHistoryEntry(report: IosmCycleReport): IosmMetricsHistoryEntry | null {\n\tif (\n\t\t!hasCompleteNumericMetricRecord(report.metrics) ||\n\t\t!hasCompleteNumericMetricRecord(report.metric_confidences) ||\n\t\t!hasCompleteTierMetricRecord(report.metric_tiers) ||\n\t\t!hasCompleteNumericMetricRecord(report.metric_deltas) ||\n\t\treport.iosm_index === null ||\n\t\treport.decision_confidence === null\n\t) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tcycle_id: report.cycle_id,\n\t\trecorded_at: new Date().toISOString(),\n\t\tstatus: report.status,\n\t\tmetrics: report.metrics,\n\t\tmetric_confidences: report.metric_confidences,\n\t\tmetric_tiers: report.metric_tiers,\n\t\tmetric_deltas: report.metric_deltas,\n\t\tdecline_coverage: report.decline_coverage,\n\t\tiosm_index: report.iosm_index,\n\t\tdecision_confidence: report.decision_confidence,\n\t\thas_blocking_failure: hasBlockingFailure(report),\n\t\thas_guardrail_violation: report.guardrails.pass === false,\n\t\thas_active_blocking_waiver: hasActiveBlockingWaiver(report),\n\t\tincomplete: report.incomplete,\n\t};\n}\n\nfunction deriveDecision(\n\treport: IosmCycleReport,\n\tconfig: IosmConfig,\n\thistoryEntries: IosmMetricsHistoryEntry[],\n): IosmDecision {\n\tif (report.status === \"failed\" || hasBlockingFailure(report) || report.guardrails.pass === false) {\n\t\treturn \"FAIL\";\n\t}\n\n\tif (config.iosm.metadata.criticality_profile === \"exploratory\") {\n\t\treturn \"CONTINUE\";\n\t}\n\n\tif (\n\t\treport.incomplete ||\n\t\t!hasCompleteNumericMetricRecord(report.metrics) ||\n\t\t!hasCompleteNumericMetricRecord(report.metric_confidences) ||\n\t\t!hasCompleteTierMetricRecord(report.metric_tiers) ||\n\t\treport.iosm_index === null ||\n\t\treport.decision_confidence === null\n\t) {\n\t\treturn \"CONTINUE\";\n\t}\n\n\tif (report.decision_confidence < config.iosm.evidence.min_decision_confidence) {\n\t\treturn \"CONTINUE\";\n\t}\n\n\tif (!metricFloorsMet(report.metrics, config.iosm.cycle_policy.stabilization)) {\n\t\treturn \"CONTINUE\";\n\t}\n\n\tif (!evidenceThresholdsMet(report.metric_confidences, config.iosm.evidence.min_metric_confidence)) {\n\t\treturn \"CONTINUE\";\n\t}\n\n\tif (hasActiveBlockingWaiver(report)) {\n\t\treturn \"CONTINUE\";\n\t}\n\n\tconst currentEntry = toHistoryEntry(report);\n\tif (!currentEntry) {\n\t\treturn \"CONTINUE\";\n\t}\n\n\tconst relevantHistory = historyEntries.filter((entry) => entry.cycle_id !== report.cycle_id);\n\tconst combined = [...relevantHistory, currentEntry];\n\tif (\n\t\thasExcessUnexplainedDrift(\n\t\t\tcombined,\n\t\t\tconfig.iosm.cycle_policy.stabilization.max_consecutive_unexplained_declines,\n\t\t)\n\t) {\n\t\treturn \"CONTINUE\";\n\t}\n\n\tconst recent = combined.slice(-config.iosm.cycle_policy.stabilization.consecutive_cycles);\n\tif (recent.length < config.iosm.cycle_policy.stabilization.consecutive_cycles) {\n\t\treturn \"CONTINUE\";\n\t}\n\n\tif (\n\t\trecent.some(\n\t\t\t(entry) =>\n\t\t\t\tentry.has_blocking_failure ||\n\t\t\t\tentry.has_guardrail_violation ||\n\t\t\t\tentry.has_active_blocking_waiver ||\n\t\t\t\tentry.incomplete ||\n\t\t\t\t!metricFloorsMet(entry.metrics, config.iosm.cycle_policy.stabilization),\n\t\t)\n\t) {\n\t\treturn \"CONTINUE\";\n\t}\n\n\tif (\n\t\tconfig.iosm.metadata.criticality_profile === \"critical\" &&\n\t\t!hasTierAWindow(recent, [\"logic\", \"performance\"])\n\t) {\n\t\treturn \"CONTINUE\";\n\t}\n\n\tif (recent.every((entry) => entry.iosm_index >= config.iosm.cycle_policy.stabilization.target_index)) {\n\t\treturn \"STOP\";\n\t}\n\n\treturn \"CONTINUE\";\n}\n\nfunction hydrateCycleReport(rootDir: string, cycleId: string, config: IosmConfig): IosmCycleReport {\n\tconst reportPath = getIosmCycleReportPath(cycleId, rootDir);\n\tif (!existsSync(reportPath)) {\n\t\tthrow new Error(`Missing cycle report for ${cycleId}: ${reportPath}`);\n\t}\n\n\tconst rawReport = readJson<unknown>(reportPath);\n\tconst reportObject = isPlainObject(rawReport) ? rawReport : {};\n\tconst goals = asStringArray(reportObject.goals);\n\tconst hypothesisCards = existsSync(getIosmHypothesesPath(cycleId, rootDir))\n\t\t? readJson<IosmHypothesisCard[]>(getIosmHypothesesPath(cycleId, rootDir))\n\t\t: [];\n\tconst hypotheses = normalizeHypotheses(reportObject.hypotheses, hypothesisCards);\n\tconst cycleScope = normalizeCycleScope(reportObject.cycle_scope);\n\tconst phaseReports = loadPhaseReports(rootDir, cycleId);\n\tconst gates = deriveGateResults(phaseReports, reportObject.gates);\n\tconst phasePointers = derivePhasePointers(rootDir, cycleId, phaseReports);\n\tconst metrics = mergeMetricValues(\n\t\tnormalizeMetricNumbers(reportObject.metrics, null),\n\t\tcalculateIosmMetricsFromRawMeasurements(\n\t\t\tisPlainObject(reportObject.raw_measurements) ? reportObject.raw_measurements : {},\n\t\t\tconfig,\n\t\t),\n\t);\n\tconst metricConfidences = normalizeMetricNumbers(reportObject.metric_confidences, null);\n\tconst metricTiers = normalizeMetricTiers(reportObject.metric_tiers);\n\tconst baselineMetrics = loadBaselineMetrics(rootDir, cycleId, config);\n\tconst cycleCapacity = createCycleCapacity(goals, cycleScope, hypothesisCards, config.iosm.cycle_capacity);\n\tconst effectiveBudget = buildCycleBudget(config.iosm.guardrails.max_negative_delta, hypothesisCards);\n\tconst waivers = Array.isArray(reportObject.waivers) ? reportObject.waivers.filter(isPlainObject) : [];\n\tconst metricDeltas = mergeMetricValues(\n\t\tnormalizeMetricNumbers(reportObject.metric_deltas, null),\n\t\tcalculateMetricDeltas(baselineMetrics, metrics),\n\t);\n\tconst declineCoverage =\n\t\thasCompleteNumericMetricRecord(baselineMetrics) && hasCompleteNumericMetricRecord(metrics)\n\t\t\t? assessDeclineCoverage(baselineMetrics, metrics, hypothesisCards, hasActiveBlockingWaivers(waivers))\n\t\t\t: normalizeMetricBooleans(reportObject.decline_coverage, true);\n\tconst guardrailResult = validateGuardrails(baselineMetrics, metrics, effectiveBudget);\n\tconst historyEntries = readMetricsHistoryEntries(rootDir);\n\n\tconst report: IosmCycleReport = {\n\t\tcycle_id: cycleId,\n\t\tstatus:\n\t\t\tasString(reportObject.status) === \"active\" ||\n\t\t\tasString(reportObject.status) === \"completed\" ||\n\t\t\tasString(reportObject.status) === \"failed\"\n\t\t\t\t? (asString(reportObject.status) as IosmCycleReport[\"status\"])\n\t\t\t\t: \"planned\",\n\t\tsystem: asString(reportObject.system) ?? config.iosm.metadata.system_name,\n\t\tscope: asString(reportObject.scope) ?? config.iosm.metadata.scope,\n\t\tcriticality_profile:\n\t\t\tasString(reportObject.criticality_profile) ?? config.iosm.metadata.criticality_profile,\n\t\tdelivery_boundary:\n\t\t\tasString(reportObject.delivery_boundary) ?? config.iosm.metadata.delivery_boundary,\n\t\tcycle_scope: cycleScope,\n\t\tcycle_capacity: cycleCapacity,\n\t\twindow: asString(reportObject.window) ?? \"\",\n\t\tgoals,\n\t\thypotheses,\n\t\thypothesis_interactions:\n\t\t\tisPlainObject(reportObject.hypothesis_interactions)\n\t\t\t\t? {\n\t\t\t\t\t\tpass: asBoolean(reportObject.hypothesis_interactions.pass) ?? buildHypothesisInteractions(hypothesisCards).pass,\n\t\t\t\t\t\tconflicts: Array.isArray(reportObject.hypothesis_interactions.conflicts)\n\t\t\t\t\t\t\t? reportObject.hypothesis_interactions.conflicts.filter(isPlainObject)\n\t\t\t\t\t\t\t: buildHypothesisInteractions(hypothesisCards).conflicts,\n\t\t\t\t\t}\n\t\t\t\t: buildHypothesisInteractions(hypothesisCards),\n\t\tphase_reports: phasePointers,\n\t\tgates,\n\t\tmetrics,\n\t\tmetric_confidences: metricConfidences,\n\t\tmetric_tiers: metricTiers,\n\t\traw_measurements: isPlainObject(reportObject.raw_measurements) ? reportObject.raw_measurements : {},\n\t\tguardrails: {\n\t\t\tpass:\n\t\t\t\tguardrailResult.pass ??\n\t\t\t\t(isPlainObject(reportObject.guardrails) ? (asBoolean(reportObject.guardrails.pass) ?? null) : null),\n\t\t\teffective_budget: effectiveBudget,\n\t\t\tviolations:\n\t\t\t\tguardrailResult.pass !== null\n\t\t\t\t\t? guardrailResult.violations\n\t\t\t\t\t: (() => {\n\t\t\t\t\t\t\tconst rawViolations = isPlainObject(reportObject.guardrails) ? reportObject.guardrails.violations : undefined;\n\t\t\t\t\t\t\tif (!Array.isArray(rawViolations)) {\n\t\t\t\t\t\t\t\treturn [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn rawViolations.filter(isPlainObject).flatMap((entry) => {\n\t\t\t\t\t\t\t\tconst metric = asString(entry.metric);\n\t\t\t\t\t\t\t\tconst negativeDelta = asNumber(entry.negative_delta);\n\t\t\t\t\t\t\t\tconst budget = asNumber(entry.budget);\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t(metric !== \"semantic\" &&\n\t\t\t\t\t\t\t\t\t\tmetric !== \"logic\" &&\n\t\t\t\t\t\t\t\t\t\tmetric !== \"performance\" &&\n\t\t\t\t\t\t\t\t\t\tmetric !== \"simplicity\" &&\n\t\t\t\t\t\t\t\t\t\tmetric !== \"modularity\" &&\n\t\t\t\t\t\t\t\t\t\tmetric !== \"flow\") ||\n\t\t\t\t\t\t\t\t\tnegativeDelta === undefined ||\n\t\t\t\t\t\t\t\t\tbudget === undefined\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\treturn [];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tmetric,\n\t\t\t\t\t\t\t\t\t\tnegative_delta: negativeDelta,\n\t\t\t\t\t\t\t\t\t\tbudget,\n\t\t\t\t\t\t\t\t\t} satisfies IosmGuardrailViolation,\n\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t})(),\n\t\t},\n\t\tmetric_deltas: metricDeltas,\n\t\tdecline_coverage: declineCoverage,\n\t\tiosm_index:\n\t\t\tcalculateIosmIndex(metrics, config.iosm.index.weights) ??\n\t\t\t(asNumber(reportObject.iosm_index) ?? null),\n\t\tdecision_confidence:\n\t\t\tcalculateDecisionConfidence(metricConfidences, config.iosm.index.weights) ??\n\t\t\t(asNumber(reportObject.decision_confidence) ?? null),\n\t\twaivers,\n\t\tautomation_actors: Array.isArray(reportObject.automation_actors)\n\t\t\t? reportObject.automation_actors.filter(isPlainObject).map((entry) => ({\n\t\t\t\t\ttype: asString(entry.type) ?? \"unknown\",\n\t\t\t\t\trole: asString(entry.role) ?? \"observer\",\n\t\t\t\t\tidentity: asString(entry.identity),\n\t\t\t\t\tprovenance: asString(entry.provenance),\n\t\t\t\t}))\n\t\t\t: [{ type: \"agent\", role: \"analyst\", identity: \"iosm-cli\" }],\n\t\tapproval_path: Array.isArray(reportObject.approval_path)\n\t\t\t? reportObject.approval_path.filter(isPlainObject).map((entry) => ({\n\t\t\t\t\taction: asString(entry.action) ?? \"unspecified\",\n\t\t\t\t\trequired: asBoolean(entry.required) ?? false,\n\t\t\t\t\tapproved_by: asString(entry.approved_by),\n\t\t\t\t\tapproved_at: asString(entry.approved_at),\n\t\t\t\t\tnotes: asString(entry.notes),\n\t\t\t\t}))\n\t\t\t: [],\n\t\tanti_patterns: Array.isArray(reportObject.anti_patterns)\n\t\t\t? reportObject.anti_patterns.filter(isPlainObject)\n\t\t\t: [],\n\t\tlearning_artifacts: asStringArray(reportObject.learning_artifacts),\n\t\tincomplete: true,\n\t\tdecision: \"CONTINUE\",\n\t};\n\n\treport.incomplete =\n\t\t!hasCompleteNumericMetricRecord(report.metrics) ||\n\t\t!hasCompleteNumericMetricRecord(report.metric_confidences) ||\n\t\t!hasCompleteTierMetricRecord(report.metric_tiers) ||\n\t\treport.window.length === 0;\n\treport.decision = deriveDecision(report, config, historyEntries);\n\treturn report;\n}\n\nfunction resolveCycleId(rootDir: string, cycleId?: string): string {\n\tconst cyclesDir = getIosmCyclesDir(rootDir);\n\tif (!existsSync(cyclesDir)) {\n\t\tthrow new Error(`No cycles found in ${cyclesDir}.`);\n\t}\n\n\tconst entries = readdirSync(cyclesDir)\n\t\t.filter((entry) => entry !== \".gitkeep\")\n\t\t.sort();\n\n\tif (entries.length === 0) {\n\t\tthrow new Error(`No cycles found in ${cyclesDir}.`);\n\t}\n\n\tif (!cycleId) {\n\t\treturn entries[entries.length - 1];\n\t}\n\n\tconst exactMatch = entries.find((entry) => entry === cycleId);\n\tif (exactMatch) {\n\t\treturn exactMatch;\n\t}\n\n\tconst prefixMatches = entries.filter((entry) => entry.startsWith(cycleId));\n\tif (prefixMatches.length === 1) {\n\t\treturn prefixMatches[0];\n\t}\n\tif (prefixMatches.length > 1) {\n\t\tthrow new Error(`Cycle id \"${cycleId}\" is ambiguous: ${prefixMatches.join(\", \")}`);\n\t}\n\n\tthrow new Error(`Cycle \"${cycleId}\" not found.`);\n}\n\nexport function planIosmCycle(options: PlanIosmCycleOptions): PlannedIosmCycle {\n\tconst { rootDir, config } = loadIosmConfig(options.cwd ?? process.cwd());\n\n\tif (options.goals.length === 0) {\n\t\tthrow new Error(\"At least one goal is required. Example: iosm cycle plan \\\"reduce latency\\\"\");\n\t}\n\n\tif (options.goals.length > config.iosm.cycle_capacity.max_goals) {\n\t\tthrow new Error(\n\t\t\t`Goal count ${options.goals.length} exceeds iosm.cycle_capacity.max_goals=${config.iosm.cycle_capacity.max_goals}. Reduce the plan before starting a cycle.`,\n\t\t);\n\t}\n\n\tconst cycleId = options.cycleId ?? nextCycleId(rootDir);\n\tconst cycleDir = getIosmCycleDir(cycleId, rootDir);\n\tconst force = options.force ?? false;\n\n\tif (existsSync(cycleDir) && !force) {\n\t\tthrow new Error(`Cycle ${cycleId} already exists. Use --force to overwrite its scaffold.`);\n\t}\n\n\tmkdirSync(cycleDir, { recursive: true });\n\tmkdirSync(getIosmPhaseReportsDir(cycleId, rootDir), { recursive: true });\n\n\tconst hypotheses = createHypotheses(options.goals, config);\n\tconst report = createCycleReport(rootDir, cycleId, options.goals, hypotheses, config);\n\tif (!report.cycle_capacity.pass) {\n\t\tthrow new Error(\n\t\t\t`Cycle ${cycleId} exceeds configured capacity. Reduce goals or scope before planning.`,\n\t\t);\n\t}\n\n\tconst interactions = buildHypothesisInteractions(hypotheses);\n\tif (!interactions.pass) {\n\t\tthrow new Error(`Hypothesis interactions are not safe: ${JSON.stringify(interactions.conflicts)}`);\n\t}\n\n\tconst baselineReport = createBaselineReport(rootDir, cycleId, config, report.cycle_scope);\n\n\twriteScaffoldFile(getIosmBaselineReportPath(cycleId, rootDir), baselineReport, force);\n\twriteScaffoldFile(getIosmHypothesesPath(cycleId, rootDir), hypotheses, force);\n\twriteScaffoldFile(getIosmCycleReportPath(cycleId, rootDir), report, force);\n\n\tfor (const phase of IOSM_PHASES) {\n\t\twriteScaffoldFile(getIosmPhaseReportPath(cycleId, phase, rootDir), createPhaseReport(phase), force);\n\t}\n\n\treturn {\n\t\tcycleId,\n\t\tcycleDir,\n\t\treportPath: getIosmCycleReportPath(cycleId, rootDir),\n\t\tbaselineReportPath: getIosmBaselineReportPath(cycleId, rootDir),\n\t\thypothesesPath: getIosmHypothesesPath(cycleId, rootDir),\n\t};\n}\n\nexport function listIosmCycles(cwd: string = process.cwd()): IosmCycleListItem[] {\n\tconst rootDir = resolveIosmRootDir(cwd);\n\tconst { config } = loadIosmConfig(rootDir);\n\tconst cyclesDir = getIosmCyclesDir(rootDir);\n\tif (!existsSync(cyclesDir)) {\n\t\treturn [];\n\t}\n\n\treturn readdirSync(cyclesDir)\n\t\t.filter((entry) => entry !== \".gitkeep\")\n\t\t.sort((left, right) => right.localeCompare(left))\n\t\t.map((cycleId) => {\n\t\t\tconst reportPath = getIosmCycleReportPath(cycleId, rootDir);\n\t\t\tif (!existsSync(reportPath)) {\n\t\t\t\treturn {\n\t\t\t\t\tcycleId,\n\t\t\t\t\tpath: getIosmCycleDir(cycleId, rootDir),\n\t\t\t\t\tstatus: \"unknown\",\n\t\t\t\t\tgoals: [],\n\t\t\t\t\tdecision: \"unknown\",\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst report = hydrateCycleReport(rootDir, cycleId, config);\n\t\t\treturn {\n\t\t\t\tcycleId,\n\t\t\t\tpath: getIosmCycleDir(cycleId, rootDir),\n\t\t\t\tstatus: report.status,\n\t\t\t\tgoals: report.goals,\n\t\t\t\tdecision: report.decision,\n\t\t\t};\n\t\t});\n}\n\n/**\n * Async variant of listIosmCycles that hydrates all cycle reports in parallel.\n * Significantly faster than the synchronous version when many cycles exist.\n */\nexport async function listIosmCyclesAsync(cwd: string = process.cwd()): Promise<IosmCycleListItem[]> {\n\tconst rootDir = resolveIosmRootDir(cwd);\n\tconst { config } = loadIosmConfig(rootDir);\n\tconst cyclesDir = getIosmCyclesDir(rootDir);\n\tif (!existsSync(cyclesDir)) {\n\t\treturn [];\n\t}\n\n\tconst cycleIds = readdirSync(cyclesDir)\n\t\t.filter((entry) => entry !== \".gitkeep\")\n\t\t.sort((left, right) => right.localeCompare(left));\n\n\treturn Promise.all(\n\t\tcycleIds.map(async (cycleId): Promise<IosmCycleListItem> => {\n\t\t\tconst reportPath = getIosmCycleReportPath(cycleId, rootDir);\n\t\t\tif (!existsSync(reportPath)) {\n\t\t\t\treturn {\n\t\t\t\t\tcycleId,\n\t\t\t\t\tpath: getIosmCycleDir(cycleId, rootDir),\n\t\t\t\t\tstatus: \"unknown\",\n\t\t\t\t\tgoals: [],\n\t\t\t\t\tdecision: \"unknown\",\n\t\t\t\t};\n\t\t\t}\n\t\t\t// hydrateCycleReport is sync CPU-bound but I/O is already in the OS cache\n\t\t\t// after the readdirSync above; Promise.all still de-serialises JS execution\n\t\t\tconst report = hydrateCycleReport(rootDir, cycleId, config);\n\t\t\treturn {\n\t\t\t\tcycleId,\n\t\t\t\tpath: getIosmCycleDir(cycleId, rootDir),\n\t\t\t\tstatus: report.status,\n\t\t\t\tgoals: report.goals,\n\t\t\t\tdecision: report.decision,\n\t\t\t};\n\t\t}),\n\t);\n}\n\nexport function readIosmCycleReport(cwd: string = process.cwd(), cycleId?: string): IosmCycleReport {\n\tconst { rootDir, config } = loadIosmConfig(cwd);\n\tconst resolvedCycleId = resolveCycleId(rootDir, cycleId);\n\treturn hydrateCycleReport(rootDir, resolvedCycleId, config);\n}\n\nexport function inspectIosmCycle(cwd: string = process.cwd(), cycleId?: string): IosmCycleStatus {\n\tconst { rootDir } = loadIosmConfig(cwd);\n\tconst resolvedCycleId = resolveCycleId(rootDir, cycleId);\n\tconst report = readIosmCycleReport(rootDir, resolvedCycleId);\n\tconst warnings: string[] = [];\n\tconst blockingIssues: string[] = [];\n\n\tif (!existsSync(getIosmBaselineReportPath(resolvedCycleId, rootDir))) {\n\t\tblockingIssues.push(\"Baseline Report is missing.\");\n\t}\n\n\tif (!existsSync(getIosmHypothesesPath(resolvedCycleId, rootDir))) {\n\t\tblockingIssues.push(\"Hypothesis Card Set is missing.\");\n\t}\n\n\tfor (const phase of IOSM_PHASES) {\n\t\tif (!existsSync(getIosmPhaseReportPath(resolvedCycleId, phase, rootDir))) {\n\t\t\tblockingIssues.push(`Phase report is missing for ${phase}.`);\n\t\t}\n\t}\n\n\tif (countScopeItems(report.cycle_scope) === 0) {\n\t\tblockingIssues.push(\"Cycle Scope is empty.\");\n\t}\n\n\tif (!report.cycle_capacity.pass) {\n\t\tblockingIssues.push(\"Cycle exceeds configured capacity.\");\n\t}\n\n\tif (!report.hypothesis_interactions.pass) {\n\t\tblockingIssues.push(\"Hypothesis interactions are not resolved.\");\n\t}\n\n\tif (report.guardrails.pass === false) {\n\t\tblockingIssues.push(\"Guardrails are violated.\");\n\t}\n\n\tif (hasBlockingFailure(report)) {\n\t\tblockingIssues.push(\"One or more quality gates failed without waiver.\");\n\t}\n\n\tconst learningClosed = report.learning_artifacts.length > 0;\n\tif (!learningClosed) {\n\t\twarnings.push(\"Learning closure is still empty.\");\n\t}\n\n\tconst historyRecorded = readMetricsHistoryEntries(rootDir).some((entry) => entry.cycle_id === report.cycle_id);\n\tif (report.status === \"completed\" && !historyRecorded) {\n\t\twarnings.push(\"Metrics history does not contain this completed cycle.\");\n\t}\n\n\tif (report.incomplete) {\n\t\twarnings.push(\"Report is incomplete: metrics, confidences, tiers, or observation window are missing.\");\n\t}\n\n\treturn {\n\t\tcycleId: resolvedCycleId,\n\t\trootDir,\n\t\treportPath: getIosmCycleReportPath(resolvedCycleId, rootDir),\n\t\tstatus: report.status,\n\t\tdecision: report.decision,\n\t\treportComplete: !report.incomplete && blockingIssues.length === 0,\n\t\tlearningClosed,\n\t\thistoryRecorded,\n\t\tcapacityPass: report.cycle_capacity.pass,\n\t\tguardrailsPass: report.guardrails.pass,\n\t\tblockingIssues,\n\t\twarnings,\n\t};\n}\n\nexport function recordIosmCycleHistory(\n\tcwd: string = process.cwd(),\n\tcycleId?: string,\n): IosmCycleHistoryRecordResult {\n\tconst { rootDir } = loadIosmConfig(cwd);\n\tconst report = readIosmCycleReport(rootDir, cycleId);\n\tconst entry = toHistoryEntry(report);\n\tif (!entry) {\n\t\tthrow new Error(\n\t\t\t`Cycle ${report.cycle_id} is incomplete. Metrics, confidences, tiers, IOSM-Index, and decision confidence must be present before recording history.`,\n\t\t);\n\t}\n\n\tconst existingEntries = readMetricsHistoryEntries(rootDir);\n\tconst replaced = existingEntries.some((existingEntry) => existingEntry.cycle_id === entry.cycle_id);\n\tconst nextEntries = [...existingEntries.filter((existingEntry) => existingEntry.cycle_id !== entry.cycle_id), entry].sort(\n\t\t(left, right) => left.cycle_id.localeCompare(right.cycle_id),\n\t);\n\twriteMetricsHistoryEntries(rootDir, nextEntries);\n\n\treturn {\n\t\tcycleId: entry.cycle_id,\n\t\thistoryPath: getIosmMetricsHistoryPath(rootDir),\n\t\treplaced,\n\t};\n}\n"]}
@@ -0,0 +1,31 @@
1
+ import type { IosmMetric, IosmMetricRecord } from "./types.js";
2
+ export interface IosmPriorityChecklistItem {
3
+ metric: IosmMetric;
4
+ value: number | null;
5
+ title: string;
6
+ action: string;
7
+ }
8
+ export interface IosmGuideDocumentInput {
9
+ rootDir: string;
10
+ cycleId?: string;
11
+ assessmentSource: "heuristic" | "verified";
12
+ metrics: IosmMetricRecord<number | null>;
13
+ iosmIndex?: number | null;
14
+ decisionConfidence?: number | null;
15
+ goals?: string[];
16
+ filesAnalyzed?: number;
17
+ sourceFileCount?: number;
18
+ testFileCount?: number;
19
+ docFileCount?: number;
20
+ tracePath?: string;
21
+ historyPath?: string;
22
+ }
23
+ export interface IosmGuideWriteResult {
24
+ path: string;
25
+ existed: boolean;
26
+ written: boolean;
27
+ }
28
+ export declare function buildIosmPriorityChecklist(metrics: IosmMetricRecord<number | null>, limit?: number): IosmPriorityChecklistItem[];
29
+ export declare function buildIosmGuideDocument(input: IosmGuideDocumentInput): string;
30
+ export declare function writeIosmGuideDocument(input: IosmGuideDocumentInput, overwrite: boolean): IosmGuideWriteResult;
31
+ //# sourceMappingURL=guide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide.d.ts","sourceRoot":"","sources":["../../src/iosm/guide.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAyC/D,MAAM,WAAW,yBAAyB;IACzC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,WAAW,GAAG,UAAU,CAAC;IAC3C,OAAO,EAAE,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,EACxC,KAAK,GAAE,MAAU,GACf,yBAAyB,EAAE,CAS7B;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAmF5E;AAED,wBAAgB,sBAAsB,CACrC,KAAK,EAAE,sBAAsB,EAC7B,SAAS,EAAE,OAAO,GAChB,oBAAoB,CAQtB"}
@@ -0,0 +1,101 @@
1
+ import { existsSync, writeFileSync } from "node:fs";
2
+ import { IOSM_METRICS } from "./metrics.js";
3
+ import { getIosmGuidePath } from "./paths.js";
4
+ const METRIC_TITLES = {
5
+ semantic: "Semantic",
6
+ logic: "Logic",
7
+ performance: "Performance",
8
+ simplicity: "Simplicity",
9
+ modularity: "Modularity",
10
+ flow: "Flow",
11
+ };
12
+ const METRIC_ACTIONS = {
13
+ semantic: "Clarify glossary/domain language and improve docs for public APIs.",
14
+ logic: "Add or fix automated tests for critical paths and invariants.",
15
+ performance: "Add runtime measurements/benchmarks and enforce SLO budgets.",
16
+ simplicity: "Reduce complexity in large files/functions and simplify API surface.",
17
+ modularity: "Split boundaries and reduce coupling between modules.",
18
+ flow: "Establish VCS + CI/CD workflow and a repeatable release cadence.",
19
+ };
20
+ function formatMetricValue(value) {
21
+ return value === undefined || value === null ? "n/a" : value.toFixed(3);
22
+ }
23
+ function metricStatus(value) {
24
+ if (value === null) {
25
+ return "unknown";
26
+ }
27
+ if (value < 0.55) {
28
+ return "critical";
29
+ }
30
+ if (value < 0.75) {
31
+ return "watch";
32
+ }
33
+ return "stable";
34
+ }
35
+ function metricSortScore(value) {
36
+ return value === null ? -1 : value;
37
+ }
38
+ export function buildIosmPriorityChecklist(metrics, limit = 3) {
39
+ return IOSM_METRICS.map((metric) => ({
40
+ metric,
41
+ value: metrics[metric],
42
+ title: METRIC_TITLES[metric],
43
+ action: METRIC_ACTIONS[metric],
44
+ }))
45
+ .sort((left, right) => metricSortScore(left.value) - metricSortScore(right.value))
46
+ .slice(0, Math.max(1, Math.min(limit, IOSM_METRICS.length)));
47
+ }
48
+ export function buildIosmGuideDocument(input) {
49
+ const nowIso = new Date().toISOString();
50
+ const goals = input.goals ?? [];
51
+ // Build sorted metrics table (worst-first)
52
+ const sortedMetrics = IOSM_METRICS.slice().sort((a, b) => metricSortScore(input.metrics[a]) - metricSortScore(input.metrics[b]));
53
+ // Priority actions: top 3 worst metrics
54
+ const priorities = buildIosmPriorityChecklist(input.metrics, 3);
55
+ const lines = [
56
+ "# IOSM.md",
57
+ "",
58
+ "This file provides IOSM operational context to the agent for this project.",
59
+ `Updated: ${nowIso}`,
60
+ "",
61
+ "## Project Status",
62
+ `- Root: ${input.rootDir}`,
63
+ `- Active cycle: ${input.cycleId ?? "none"}`,
64
+ `- IOSM-Index: ${formatMetricValue(input.iosmIndex)} (Confidence: ${formatMetricValue(input.decisionConfidence)})`,
65
+ `- Assessment: ${input.assessmentSource} · Files analyzed: ${input.filesAnalyzed ?? "n/a"}`,
66
+ "",
67
+ "## Metric Scores",
68
+ "| Metric | Score | Status | Priority Action |",
69
+ "|--------|-------|--------|-----------------|",
70
+ ];
71
+ for (const metric of sortedMetrics) {
72
+ lines.push(`| ${METRIC_TITLES[metric]} | ${formatMetricValue(input.metrics[metric])} | ${metricStatus(input.metrics[metric])} | ${METRIC_ACTIONS[metric]} |`);
73
+ }
74
+ lines.push("", "## Priority Actions (this cycle)");
75
+ for (const [index, item] of priorities.entries()) {
76
+ lines.push(`${index + 1}. **${item.title} (${formatMetricValue(item.value)} — ${metricStatus(item.value)})**: ${item.action}`);
77
+ }
78
+ if (goals.length > 0) {
79
+ lines.push("", "## Active Goals");
80
+ for (const goal of goals) {
81
+ lines.push(`- ${goal}`);
82
+ }
83
+ }
84
+ lines.push("", "## IOSM Workspace", `- Config: \`iosm.yaml\``, `- Metrics history: \`.iosm/metrics-history.jsonl\``);
85
+ if (input.cycleId) {
86
+ lines.push(`- Current cycle: \`.iosm/cycles/${input.cycleId}/\``, ` - Baseline: \`baseline-report.json\``, ` - Hypotheses: \`hypotheses.json\``, ` - Phase reports: \`phase-reports/improve.json\` etc.`);
87
+ }
88
+ lines.push(`- Invariants: \`.iosm/invariants.yaml\``, `- Contracts: \`.iosm/contracts.yaml\``, `- Decision log: \`.iosm/decision-log.md\``, `- Pattern library: \`.iosm/pattern-library.md\``);
89
+ lines.push("", "## Agent Contract", "- At the start of each engineering turn: re-read this file and the active cycle report.", "- After each meaningful change: update metric evidence, hypotheses outcome, and phase report.", "- Gate progression requires evidence, not just code changes.", "- Phases run in order: Improve → Optimize → Shrink → Modularize.", "- Quality gates: gate_I (improve), gate_O (optimize), gate_S (shrink), gate_M (modularize).");
90
+ return `${lines.join("\n")}\n`;
91
+ }
92
+ export function writeIosmGuideDocument(input, overwrite) {
93
+ const filePath = getIosmGuidePath(input.rootDir);
94
+ const existed = existsSync(filePath);
95
+ if (existed && !overwrite) {
96
+ return { path: filePath, existed, written: false };
97
+ }
98
+ writeFileSync(filePath, buildIosmGuideDocument(input), "utf8");
99
+ return { path: filePath, existed, written: true };
100
+ }
101
+ //# sourceMappingURL=guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide.js","sourceRoot":"","sources":["../../src/iosm/guide.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, writeFileSync } from \"node:fs\";\nimport { IOSM_METRICS } from \"./metrics.js\";\nimport { getIosmGuidePath } from \"./paths.js\";\nimport type { IosmMetric, IosmMetricRecord } from \"./types.js\";\n\nconst METRIC_TITLES: Record<IosmMetric, string> = {\n\tsemantic: \"Semantic\",\n\tlogic: \"Logic\",\n\tperformance: \"Performance\",\n\tsimplicity: \"Simplicity\",\n\tmodularity: \"Modularity\",\n\tflow: \"Flow\",\n};\n\nconst METRIC_ACTIONS: Record<IosmMetric, string> = {\n\tsemantic: \"Clarify glossary/domain language and improve docs for public APIs.\",\n\tlogic: \"Add or fix automated tests for critical paths and invariants.\",\n\tperformance: \"Add runtime measurements/benchmarks and enforce SLO budgets.\",\n\tsimplicity: \"Reduce complexity in large files/functions and simplify API surface.\",\n\tmodularity: \"Split boundaries and reduce coupling between modules.\",\n\tflow: \"Establish VCS + CI/CD workflow and a repeatable release cadence.\",\n};\n\nfunction formatMetricValue(value: number | null | undefined): string {\n\treturn value === undefined || value === null ? \"n/a\" : value.toFixed(3);\n}\n\nfunction metricStatus(value: number | null): string {\n\tif (value === null) {\n\t\treturn \"unknown\";\n\t}\n\tif (value < 0.55) {\n\t\treturn \"critical\";\n\t}\n\tif (value < 0.75) {\n\t\treturn \"watch\";\n\t}\n\treturn \"stable\";\n}\n\nfunction metricSortScore(value: number | null): number {\n\treturn value === null ? -1 : value;\n}\n\nexport interface IosmPriorityChecklistItem {\n\tmetric: IosmMetric;\n\tvalue: number | null;\n\ttitle: string;\n\taction: string;\n}\n\nexport interface IosmGuideDocumentInput {\n\trootDir: string;\n\tcycleId?: string;\n\tassessmentSource: \"heuristic\" | \"verified\";\n\tmetrics: IosmMetricRecord<number | null>;\n\tiosmIndex?: number | null;\n\tdecisionConfidence?: number | null;\n\tgoals?: string[];\n\tfilesAnalyzed?: number;\n\tsourceFileCount?: number;\n\ttestFileCount?: number;\n\tdocFileCount?: number;\n\ttracePath?: string;\n\thistoryPath?: string;\n}\n\nexport interface IosmGuideWriteResult {\n\tpath: string;\n\texisted: boolean;\n\twritten: boolean;\n}\n\nexport function buildIosmPriorityChecklist(\n\tmetrics: IosmMetricRecord<number | null>,\n\tlimit: number = 3,\n): IosmPriorityChecklistItem[] {\n\treturn IOSM_METRICS.map((metric) => ({\n\t\tmetric,\n\t\tvalue: metrics[metric],\n\t\ttitle: METRIC_TITLES[metric],\n\t\taction: METRIC_ACTIONS[metric],\n\t}))\n\t\t.sort((left, right) => metricSortScore(left.value) - metricSortScore(right.value))\n\t\t.slice(0, Math.max(1, Math.min(limit, IOSM_METRICS.length)));\n}\n\nexport function buildIosmGuideDocument(input: IosmGuideDocumentInput): string {\n\tconst nowIso = new Date().toISOString();\n\tconst goals = input.goals ?? [];\n\n\t// Build sorted metrics table (worst-first)\n\tconst sortedMetrics = IOSM_METRICS.slice().sort(\n\t\t(a, b) => metricSortScore(input.metrics[a]) - metricSortScore(input.metrics[b]),\n\t);\n\n\t// Priority actions: top 3 worst metrics\n\tconst priorities = buildIosmPriorityChecklist(input.metrics, 3);\n\n\tconst lines: string[] = [\n\t\t\"# IOSM.md\",\n\t\t\"\",\n\t\t\"This file provides IOSM operational context to the agent for this project.\",\n\t\t`Updated: ${nowIso}`,\n\t\t\"\",\n\t\t\"## Project Status\",\n\t\t`- Root: ${input.rootDir}`,\n\t\t`- Active cycle: ${input.cycleId ?? \"none\"}`,\n\t\t`- IOSM-Index: ${formatMetricValue(input.iosmIndex)} (Confidence: ${formatMetricValue(input.decisionConfidence)})`,\n\t\t`- Assessment: ${input.assessmentSource} · Files analyzed: ${input.filesAnalyzed ?? \"n/a\"}`,\n\t\t\"\",\n\t\t\"## Metric Scores\",\n\t\t\"| Metric | Score | Status | Priority Action |\",\n\t\t\"|--------|-------|--------|-----------------|\",\n\t];\n\n\tfor (const metric of sortedMetrics) {\n\t\tlines.push(\n\t\t\t`| ${METRIC_TITLES[metric]} | ${formatMetricValue(input.metrics[metric])} | ${metricStatus(input.metrics[metric])} | ${METRIC_ACTIONS[metric]} |`,\n\t\t);\n\t}\n\n\tlines.push(\"\", \"## Priority Actions (this cycle)\");\n\tfor (const [index, item] of priorities.entries()) {\n\t\tlines.push(\n\t\t\t`${index + 1}. **${item.title} (${formatMetricValue(item.value)} — ${metricStatus(item.value)})**: ${item.action}`,\n\t\t);\n\t}\n\n\tif (goals.length > 0) {\n\t\tlines.push(\"\", \"## Active Goals\");\n\t\tfor (const goal of goals) {\n\t\t\tlines.push(`- ${goal}`);\n\t\t}\n\t}\n\n\tlines.push(\n\t\t\"\",\n\t\t\"## IOSM Workspace\",\n\t\t`- Config: \\`iosm.yaml\\``,\n\t\t`- Metrics history: \\`.iosm/metrics-history.jsonl\\``,\n\t);\n\n\tif (input.cycleId) {\n\t\tlines.push(\n\t\t\t`- Current cycle: \\`.iosm/cycles/${input.cycleId}/\\``,\n\t\t\t` - Baseline: \\`baseline-report.json\\``,\n\t\t\t` - Hypotheses: \\`hypotheses.json\\``,\n\t\t\t` - Phase reports: \\`phase-reports/improve.json\\` etc.`,\n\t\t);\n\t}\n\n\tlines.push(\n\t\t`- Invariants: \\`.iosm/invariants.yaml\\``,\n\t\t`- Contracts: \\`.iosm/contracts.yaml\\``,\n\t\t`- Decision log: \\`.iosm/decision-log.md\\``,\n\t\t`- Pattern library: \\`.iosm/pattern-library.md\\``,\n\t);\n\n\tlines.push(\n\t\t\"\",\n\t\t\"## Agent Contract\",\n\t\t\"- At the start of each engineering turn: re-read this file and the active cycle report.\",\n\t\t\"- After each meaningful change: update metric evidence, hypotheses outcome, and phase report.\",\n\t\t\"- Gate progression requires evidence, not just code changes.\",\n\t\t\"- Phases run in order: Improve → Optimize → Shrink → Modularize.\",\n\t\t\"- Quality gates: gate_I (improve), gate_O (optimize), gate_S (shrink), gate_M (modularize).\",\n\t);\n\n\treturn `${lines.join(\"\\n\")}\\n`;\n}\n\nexport function writeIosmGuideDocument(\n\tinput: IosmGuideDocumentInput,\n\toverwrite: boolean,\n): IosmGuideWriteResult {\n\tconst filePath = getIosmGuidePath(input.rootDir);\n\tconst existed = existsSync(filePath);\n\tif (existed && !overwrite) {\n\t\treturn { path: filePath, existed, written: false };\n\t}\n\twriteFileSync(filePath, buildIosmGuideDocument(input), \"utf8\");\n\treturn { path: filePath, existed, written: true };\n}\n"]}
@@ -0,0 +1,12 @@
1
+ export { findIosmRootDir, loadIosmConfig, resolveIosmRootDir, type IosmAutomationConfig, type IosmConfig, type IosmConfigModel, type IosmCycleCapacityConfig, type IosmCyclePolicyConfig, type IosmEvidenceConfig, type IosmGuardrailsConfig, type IosmIndexConfig, type IosmLearningConfig, type IosmMetadataConfig, type IosmMetricTargetsConfig, type IosmPlanningConfig, type IosmQualityGatesConfig, type IosmReportingConfig, type IosmStabilizationConfig, type IosmWaiversConfig, } from "./config.js";
2
+ export { assessDeclineCoverage, buildCycleBudget, calculateDecisionConfidence, calculateIosmIndex, calculateIosmMetricsFromRawMeasurements, calculateMetricDeltas, clamp01, createMetricRecord, hasCompleteNumericMetricRecord, hasCompleteTierMetricRecord, IOSM_METRICS, mergeMetricValues, normalizeHigherIsBetter, normalizeLowerIsBetter, validateGuardrails, } from "./metrics.js";
3
+ export { getIosmBaselineReportPath, getIosmBaselinesDir, getIosmConfigPath, getIosmContractCatalogPath, getIosmCycleDir, getIosmCycleReportPath, getIosmCyclesDir, getIosmDecisionLogPath, getIosmGuidePath, getIosmHypothesesPath, getIosmInvariantCatalogPath, getIosmMetricsHistoryPath, getIosmPatternLibraryPath, getIosmPhaseReportPath, getIosmPhaseReportsDir, getIosmWaiverRegisterPath, getIosmWorkspaceDir, } from "./paths.js";
4
+ export { inspectIosmCycle, listIosmCycles, listIosmCyclesAsync, planIosmCycle, recordIosmCycleHistory, readIosmCycleReport, type IosmCycleListItem, type IosmCycleHistoryRecordResult, type IosmCycleStatus, type PlannedIosmCycle, type PlanIosmCycleOptions, } from "./cycle.js";
5
+ export { initIosmWorkspace, type IosmInitOptions, type IosmInitResult } from "./init.js";
6
+ export { buildIosmAgentVerificationPrompt, buildIosmGuideAuthoringPrompt, createMetricSnapshot, extractAssistantText, formatMetricSnapshot, normalizeIosmGuideMarkdown, summarizeMetricDelta, type IosmMetricSnapshot, } from "./agent-verification.js";
7
+ export { buildIosmAutomationPrompt, evaluateIosmAutomationProgress, hasReachedIosmTarget, resolveIosmAutomationSettings, type IosmAutomationProgress, type IosmAutomationOverrides, type IosmAutomationPromptInput, type IosmAutomationSettings, } from "./automation.js";
8
+ export { buildIosmPriorityChecklist, writeIosmGuideDocument, type IosmGuideDocumentInput, type IosmPriorityChecklistItem, type IosmGuideWriteResult, } from "./guide.js";
9
+ export { buildIosmContextBlock, findIosmGuidePath, loadIosmContext, loadIosmContextFromPath } from "./context-loader.js";
10
+ export { buildIosmRuntimeDirective, isLikelyIosmOperationalPrompt, normalizeIosmGoalFromPrompt, prepareIosmRuntimeContext, type IosmRuntimeDirectiveInput, } from "./runtime-context.js";
11
+ export type { IosmApprovalStep, IosmAutomationActor, IosmBaselineReport, IosmCycleCapacityReport, IosmCycleReport, IosmCycleScope, IosmDecision, IosmEvidenceTier, IosmGateResult, IosmGuardrailViolation, IosmHypothesisCard, IosmHypothesisOutcome, IosmMetric, IosmMetricRecord, IosmMetricsHistoryEntry, IosmPhase, IosmPhasePointer, IosmPhaseReport, } from "./types.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/iosm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC3B,kBAAkB,EAClB,uCAAuC,EACvC,qBAAqB,EACrB,OAAO,EACP,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,mBAAmB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EACN,gCAAgC,EAChC,6BAA6B,EAC7B,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,KAAK,kBAAkB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,yBAAyB,EACzB,8BAA8B,EAC9B,oBAAoB,EACpB,6BAA6B,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,0BAA0B,EAC1B,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACzH,OAAO,EACN,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,EACzB,KAAK,yBAAyB,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACX,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,SAAS,EACT,gBAAgB,EAChB,eAAe,GACf,MAAM,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { findIosmRootDir, loadIosmConfig, resolveIosmRootDir, } from "./config.js";
2
+ export { assessDeclineCoverage, buildCycleBudget, calculateDecisionConfidence, calculateIosmIndex, calculateIosmMetricsFromRawMeasurements, calculateMetricDeltas, clamp01, createMetricRecord, hasCompleteNumericMetricRecord, hasCompleteTierMetricRecord, IOSM_METRICS, mergeMetricValues, normalizeHigherIsBetter, normalizeLowerIsBetter, validateGuardrails, } from "./metrics.js";
3
+ export { getIosmBaselineReportPath, getIosmBaselinesDir, getIosmConfigPath, getIosmContractCatalogPath, getIosmCycleDir, getIosmCycleReportPath, getIosmCyclesDir, getIosmDecisionLogPath, getIosmGuidePath, getIosmHypothesesPath, getIosmInvariantCatalogPath, getIosmMetricsHistoryPath, getIosmPatternLibraryPath, getIosmPhaseReportPath, getIosmPhaseReportsDir, getIosmWaiverRegisterPath, getIosmWorkspaceDir, } from "./paths.js";
4
+ export { inspectIosmCycle, listIosmCycles, listIosmCyclesAsync, planIosmCycle, recordIosmCycleHistory, readIosmCycleReport, } from "./cycle.js";
5
+ export { initIosmWorkspace } from "./init.js";
6
+ export { buildIosmAgentVerificationPrompt, buildIosmGuideAuthoringPrompt, createMetricSnapshot, extractAssistantText, formatMetricSnapshot, normalizeIosmGuideMarkdown, summarizeMetricDelta, } from "./agent-verification.js";
7
+ export { buildIosmAutomationPrompt, evaluateIosmAutomationProgress, hasReachedIosmTarget, resolveIosmAutomationSettings, } from "./automation.js";
8
+ export { buildIosmPriorityChecklist, writeIosmGuideDocument, } from "./guide.js";
9
+ export { buildIosmContextBlock, findIosmGuidePath, loadIosmContext, loadIosmContextFromPath } from "./context-loader.js";
10
+ export { buildIosmRuntimeDirective, isLikelyIosmOperationalPrompt, normalizeIosmGoalFromPrompt, prepareIosmRuntimeContext, } from "./runtime-context.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/iosm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EACf,cAAc,EACd,kBAAkB,GAiBlB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC3B,kBAAkB,EAClB,uCAAuC,EACvC,qBAAqB,EACrB,OAAO,EACP,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,mBAAmB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,mBAAmB,GAMnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAA6C,MAAM,WAAW,CAAC;AACzF,OAAO,EACN,gCAAgC,EAChC,6BAA6B,EAC7B,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,GAEpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,yBAAyB,EACzB,8BAA8B,EAC9B,oBAAoB,EACpB,6BAA6B,GAK7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,0BAA0B,EAC1B,sBAAsB,GAItB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACzH,OAAO,EACN,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,GAEzB,MAAM,sBAAsB,CAAC","sourcesContent":["export {\n\tfindIosmRootDir,\n\tloadIosmConfig,\n\tresolveIosmRootDir,\n\ttype IosmAutomationConfig,\n\ttype IosmConfig,\n\ttype IosmConfigModel,\n\ttype IosmCycleCapacityConfig,\n\ttype IosmCyclePolicyConfig,\n\ttype IosmEvidenceConfig,\n\ttype IosmGuardrailsConfig,\n\ttype IosmIndexConfig,\n\ttype IosmLearningConfig,\n\ttype IosmMetadataConfig,\n\ttype IosmMetricTargetsConfig,\n\ttype IosmPlanningConfig,\n\ttype IosmQualityGatesConfig,\n\ttype IosmReportingConfig,\n\ttype IosmStabilizationConfig,\n\ttype IosmWaiversConfig,\n} from \"./config.js\";\nexport {\n\tassessDeclineCoverage,\n\tbuildCycleBudget,\n\tcalculateDecisionConfidence,\n\tcalculateIosmIndex,\n\tcalculateIosmMetricsFromRawMeasurements,\n\tcalculateMetricDeltas,\n\tclamp01,\n\tcreateMetricRecord,\n\thasCompleteNumericMetricRecord,\n\thasCompleteTierMetricRecord,\n\tIOSM_METRICS,\n\tmergeMetricValues,\n\tnormalizeHigherIsBetter,\n\tnormalizeLowerIsBetter,\n\tvalidateGuardrails,\n} from \"./metrics.js\";\nexport {\n\tgetIosmBaselineReportPath,\n\tgetIosmBaselinesDir,\n\tgetIosmConfigPath,\n\tgetIosmContractCatalogPath,\n\tgetIosmCycleDir,\n\tgetIosmCycleReportPath,\n\tgetIosmCyclesDir,\n\tgetIosmDecisionLogPath,\n\tgetIosmGuidePath,\n\tgetIosmHypothesesPath,\n\tgetIosmInvariantCatalogPath,\n\tgetIosmMetricsHistoryPath,\n\tgetIosmPatternLibraryPath,\n\tgetIosmPhaseReportPath,\n\tgetIosmPhaseReportsDir,\n\tgetIosmWaiverRegisterPath,\n\tgetIosmWorkspaceDir,\n} from \"./paths.js\";\nexport {\n\tinspectIosmCycle,\n\tlistIosmCycles,\n\tlistIosmCyclesAsync,\n\tplanIosmCycle,\n\trecordIosmCycleHistory,\n\treadIosmCycleReport,\n\ttype IosmCycleListItem,\n\ttype IosmCycleHistoryRecordResult,\n\ttype IosmCycleStatus,\n\ttype PlannedIosmCycle,\n\ttype PlanIosmCycleOptions,\n} from \"./cycle.js\";\nexport { initIosmWorkspace, type IosmInitOptions, type IosmInitResult } from \"./init.js\";\nexport {\n\tbuildIosmAgentVerificationPrompt,\n\tbuildIosmGuideAuthoringPrompt,\n\tcreateMetricSnapshot,\n\textractAssistantText,\n\tformatMetricSnapshot,\n\tnormalizeIosmGuideMarkdown,\n\tsummarizeMetricDelta,\n\ttype IosmMetricSnapshot,\n} from \"./agent-verification.js\";\nexport {\n\tbuildIosmAutomationPrompt,\n\tevaluateIosmAutomationProgress,\n\thasReachedIosmTarget,\n\tresolveIosmAutomationSettings,\n\ttype IosmAutomationProgress,\n\ttype IosmAutomationOverrides,\n\ttype IosmAutomationPromptInput,\n\ttype IosmAutomationSettings,\n} from \"./automation.js\";\nexport {\n\tbuildIosmPriorityChecklist,\n\twriteIosmGuideDocument,\n\ttype IosmGuideDocumentInput,\n\ttype IosmPriorityChecklistItem,\n\ttype IosmGuideWriteResult,\n} from \"./guide.js\";\nexport { buildIosmContextBlock, findIosmGuidePath, loadIosmContext, loadIosmContextFromPath } from \"./context-loader.js\";\nexport {\n\tbuildIosmRuntimeDirective,\n\tisLikelyIosmOperationalPrompt,\n\tnormalizeIosmGoalFromPrompt,\n\tprepareIosmRuntimeContext,\n\ttype IosmRuntimeDirectiveInput,\n} from \"./runtime-context.js\";\nexport type {\n\tIosmApprovalStep,\n\tIosmAutomationActor,\n\tIosmBaselineReport,\n\tIosmCycleCapacityReport,\n\tIosmCycleReport,\n\tIosmCycleScope,\n\tIosmDecision,\n\tIosmEvidenceTier,\n\tIosmGateResult,\n\tIosmGuardrailViolation,\n\tIosmHypothesisCard,\n\tIosmHypothesisOutcome,\n\tIosmMetric,\n\tIosmMetricRecord,\n\tIosmMetricsHistoryEntry,\n\tIosmPhase,\n\tIosmPhasePointer,\n\tIosmPhaseReport,\n} from \"./types.js\";\n"]}
@@ -0,0 +1,58 @@
1
+ import type { IosmCycleScope, IosmEvidenceTier, IosmMetricRecord } from "./types.js";
2
+ interface ProjectFileSample {
3
+ path: string;
4
+ lines: number;
5
+ bytes: number;
6
+ extension: string;
7
+ basename: string;
8
+ }
9
+ interface LanguageStat {
10
+ language: string;
11
+ files: number;
12
+ lines: number;
13
+ }
14
+ interface ContractSignal {
15
+ kind: string;
16
+ path: string;
17
+ description: string;
18
+ }
19
+ interface InitialCycleSummary {
20
+ cycleId: string;
21
+ cycleDir: string;
22
+ reportPath: string;
23
+ baselineReportPath: string;
24
+ hypothesesPath: string;
25
+ reusedExistingCycle: boolean;
26
+ }
27
+ export interface IosmInitOptions {
28
+ cwd?: string;
29
+ force?: boolean;
30
+ }
31
+ export interface IosmInitAnalysis {
32
+ generated_at: string;
33
+ files_analyzed: number;
34
+ source_file_count: number;
35
+ test_file_count: number;
36
+ doc_file_count: number;
37
+ top_languages: LanguageStat[];
38
+ cycle_scope: IosmCycleScope;
39
+ detected_contracts: ContractSignal[];
40
+ source_systems: string[];
41
+ goals: string[];
42
+ raw_measurements: Record<string, unknown>;
43
+ metrics: IosmMetricRecord<number | null>;
44
+ metric_confidences: IosmMetricRecord<number>;
45
+ metric_tiers: IosmMetricRecord<IosmEvidenceTier>;
46
+ }
47
+ export interface IosmInitResult {
48
+ rootDir: string;
49
+ created: string[];
50
+ overwritten: string[];
51
+ skipped: string[];
52
+ analysis: IosmInitAnalysis;
53
+ cycle?: InitialCycleSummary;
54
+ }
55
+ export declare function collectProjectFilesAsync(rootDir: string): Promise<ProjectFileSample[]>;
56
+ export declare function initIosmWorkspace(options?: IosmInitOptions): Promise<IosmInitResult>;
57
+ export {};
58
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/iosm/init.ts"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAGX,cAAc,EACd,gBAAgB,EAEhB,gBAAgB,EAEhB,MAAM,YAAY,CAAC;AAiHpB,UAAU,iBAAiB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAED,UAAU,cAAc;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACpB;AAoBD,UAAU,mBAAmB;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,WAAW,EAAE,cAAc,CAAC;IAC5B,kBAAkB,EAAE,cAAc,EAAE,CAAC;IACrC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,EAAE,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,kBAAkB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC7C,YAAY,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC5B;AAsLD,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAyF5F;AAu5BD,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAiH9F"}