open-multi-agent-kit 0.78.8 → 0.79.1

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 (2267) hide show
  1. package/CHANGELOG.md +4252 -397
  2. package/README.md +541 -267
  3. package/dist/bun/cli.d.ts +3 -0
  4. package/dist/bun/cli.d.ts.map +1 -0
  5. package/dist/bun/cli.js +10 -0
  6. package/dist/bun/cli.js.map +1 -0
  7. package/dist/bun/register-bedrock.d.ts +2 -0
  8. package/dist/bun/register-bedrock.d.ts.map +1 -0
  9. package/dist/bun/register-bedrock.js +4 -0
  10. package/dist/bun/register-bedrock.js.map +1 -0
  11. package/dist/bun/restore-sandbox-env.d.ts +13 -0
  12. package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
  13. package/dist/bun/restore-sandbox-env.js +32 -0
  14. package/dist/bun/restore-sandbox-env.js.map +1 -0
  15. package/dist/cli/args.d.ts +56 -0
  16. package/dist/cli/args.d.ts.map +1 -0
  17. package/dist/cli/args.js +392 -0
  18. package/dist/cli/args.js.map +1 -0
  19. package/dist/cli/config-selector.d.ts +14 -0
  20. package/dist/cli/config-selector.d.ts.map +1 -0
  21. package/dist/cli/config-selector.js +31 -0
  22. package/dist/cli/config-selector.js.map +1 -0
  23. package/dist/cli/file-processor.d.ts +15 -0
  24. package/dist/cli/file-processor.d.ts.map +1 -0
  25. package/dist/cli/file-processor.js +82 -0
  26. package/dist/cli/file-processor.js.map +1 -0
  27. package/dist/cli/initial-message.d.ts +18 -0
  28. package/dist/cli/initial-message.d.ts.map +1 -0
  29. package/dist/cli/initial-message.js +22 -0
  30. package/dist/cli/initial-message.js.map +1 -0
  31. package/dist/cli/list-models.d.ts +9 -0
  32. package/dist/cli/list-models.d.ts.map +1 -0
  33. package/dist/cli/list-models.js +98 -0
  34. package/dist/cli/list-models.js.map +1 -0
  35. package/dist/cli/session-picker.d.ts +9 -0
  36. package/dist/cli/session-picker.d.ts.map +1 -0
  37. package/dist/cli/session-picker.js +35 -0
  38. package/dist/cli/session-picker.js.map +1 -0
  39. package/dist/cli.d.ts +1 -0
  40. package/dist/cli.d.ts.map +1 -0
  41. package/dist/cli.js +17 -16
  42. package/dist/cli.js.map +1 -0
  43. package/dist/config.d.ts +132 -0
  44. package/dist/config.d.ts.map +1 -0
  45. package/dist/config.js +529 -0
  46. package/dist/config.js.map +1 -0
  47. package/dist/core/adaptive-runtime.d.ts +150 -0
  48. package/dist/core/adaptive-runtime.d.ts.map +1 -0
  49. package/dist/core/adaptive-runtime.js +378 -0
  50. package/dist/core/adaptive-runtime.js.map +1 -0
  51. package/dist/core/agent-session-runtime.d.ts +117 -0
  52. package/dist/core/agent-session-runtime.d.ts.map +1 -0
  53. package/dist/core/agent-session-runtime.js +300 -0
  54. package/dist/core/agent-session-runtime.js.map +1 -0
  55. package/dist/core/agent-session-services.d.ts +87 -0
  56. package/dist/core/agent-session-services.d.ts.map +1 -0
  57. package/dist/core/agent-session-services.js +119 -0
  58. package/dist/core/agent-session-services.js.map +1 -0
  59. package/dist/core/agent-session.d.ts +604 -0
  60. package/dist/core/agent-session.d.ts.map +1 -0
  61. package/dist/core/agent-session.js +2535 -0
  62. package/dist/core/agent-session.js.map +1 -0
  63. package/dist/core/auth-guidance.d.ts +5 -0
  64. package/dist/core/auth-guidance.d.ts.map +1 -0
  65. package/dist/core/auth-guidance.js +21 -0
  66. package/dist/core/auth-guidance.js.map +1 -0
  67. package/dist/core/auth-storage.d.ts +141 -0
  68. package/dist/core/auth-storage.d.ts.map +1 -0
  69. package/dist/core/auth-storage.js +445 -0
  70. package/dist/core/auth-storage.js.map +1 -0
  71. package/dist/core/bash-executor.d.ts +32 -0
  72. package/dist/core/bash-executor.d.ts.map +1 -0
  73. package/dist/core/bash-executor.js +111 -0
  74. package/dist/core/bash-executor.js.map +1 -0
  75. package/dist/core/compaction/branch-summarization.d.ts +90 -0
  76. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  77. package/dist/core/compaction/branch-summarization.js +249 -0
  78. package/dist/core/compaction/branch-summarization.js.map +1 -0
  79. package/dist/core/compaction/compaction.d.ts +132 -0
  80. package/dist/core/compaction/compaction.d.ts.map +1 -0
  81. package/dist/core/compaction/compaction.js +635 -0
  82. package/dist/core/compaction/compaction.js.map +1 -0
  83. package/dist/core/compaction/index.d.ts +7 -0
  84. package/dist/core/compaction/index.d.ts.map +1 -0
  85. package/dist/core/compaction/index.js +7 -0
  86. package/dist/core/compaction/index.js.map +1 -0
  87. package/dist/core/compaction/utils.d.ts +38 -0
  88. package/dist/core/compaction/utils.d.ts.map +1 -0
  89. package/dist/core/compaction/utils.js +153 -0
  90. package/dist/core/compaction/utils.js.map +1 -0
  91. package/dist/core/defaults.d.ts +3 -0
  92. package/dist/core/defaults.d.ts.map +1 -0
  93. package/dist/core/defaults.js +2 -0
  94. package/dist/core/defaults.js.map +1 -0
  95. package/dist/core/diagnostics.d.ts +15 -0
  96. package/dist/core/diagnostics.d.ts.map +1 -0
  97. package/dist/core/diagnostics.js +2 -0
  98. package/dist/core/diagnostics.js.map +1 -0
  99. package/dist/core/event-bus.d.ts +9 -0
  100. package/dist/core/event-bus.d.ts.map +1 -0
  101. package/dist/core/event-bus.js +25 -0
  102. package/dist/core/event-bus.js.map +1 -0
  103. package/dist/core/exec.d.ts +29 -0
  104. package/dist/core/exec.d.ts.map +1 -0
  105. package/dist/core/exec.js +75 -0
  106. package/dist/core/exec.js.map +1 -0
  107. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  108. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  109. package/dist/core/export-html/ansi-to-html.js +249 -0
  110. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  111. package/dist/core/export-html/index.d.ts +37 -0
  112. package/dist/core/export-html/index.d.ts.map +1 -0
  113. package/dist/core/export-html/index.js +226 -0
  114. package/dist/core/export-html/index.js.map +1 -0
  115. package/dist/core/export-html/template.css +1066 -0
  116. package/dist/core/export-html/template.html +55 -0
  117. package/dist/core/export-html/template.js +1864 -0
  118. package/dist/core/export-html/tool-renderer.d.ts +34 -0
  119. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  120. package/dist/core/export-html/tool-renderer.js +108 -0
  121. package/dist/core/export-html/tool-renderer.js.map +1 -0
  122. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  123. package/dist/core/export-html/vendor/marked.min.js +6 -0
  124. package/dist/core/extensions/index.d.ts +12 -0
  125. package/dist/core/extensions/index.d.ts.map +1 -0
  126. package/dist/core/extensions/index.js +9 -0
  127. package/dist/core/extensions/index.js.map +1 -0
  128. package/dist/core/extensions/loader.d.ts +24 -0
  129. package/dist/core/extensions/loader.d.ts.map +1 -0
  130. package/dist/core/extensions/loader.js +494 -0
  131. package/dist/core/extensions/loader.js.map +1 -0
  132. package/dist/core/extensions/runner.d.ts +161 -0
  133. package/dist/core/extensions/runner.d.ts.map +1 -0
  134. package/dist/core/extensions/runner.js +842 -0
  135. package/dist/core/extensions/runner.js.map +1 -0
  136. package/dist/core/extensions/types.d.ts +1181 -0
  137. package/dist/core/extensions/types.d.ts.map +1 -0
  138. package/dist/core/extensions/types.js +45 -0
  139. package/dist/core/extensions/types.js.map +1 -0
  140. package/dist/core/extensions/wrapper.d.ts +20 -0
  141. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  142. package/dist/core/extensions/wrapper.js +22 -0
  143. package/dist/core/extensions/wrapper.js.map +1 -0
  144. package/dist/core/footer-data-provider.d.ts +54 -0
  145. package/dist/core/footer-data-provider.d.ts.map +1 -0
  146. package/dist/core/footer-data-provider.js +338 -0
  147. package/dist/core/footer-data-provider.js.map +1 -0
  148. package/dist/core/http-dispatcher.d.ts +21 -0
  149. package/dist/core/http-dispatcher.d.ts.map +1 -0
  150. package/dist/core/http-dispatcher.js +48 -0
  151. package/dist/core/http-dispatcher.js.map +1 -0
  152. package/dist/core/index.d.ts +12 -0
  153. package/dist/core/index.d.ts.map +1 -0
  154. package/dist/core/index.js +12 -0
  155. package/dist/core/index.js.map +1 -0
  156. package/dist/core/keybindings.d.ts +353 -0
  157. package/dist/core/keybindings.d.ts.map +1 -0
  158. package/dist/core/keybindings.js +295 -0
  159. package/dist/core/keybindings.js.map +1 -0
  160. package/dist/core/messages.d.ts +77 -0
  161. package/dist/core/messages.d.ts.map +1 -0
  162. package/dist/core/messages.js +123 -0
  163. package/dist/core/messages.js.map +1 -0
  164. package/dist/core/model-registry.d.ts +150 -0
  165. package/dist/core/model-registry.d.ts.map +1 -0
  166. package/dist/core/model-registry.js +789 -0
  167. package/dist/core/model-registry.js.map +1 -0
  168. package/dist/core/model-resolver.d.ts +110 -0
  169. package/dist/core/model-resolver.d.ts.map +1 -0
  170. package/dist/core/model-resolver.js +495 -0
  171. package/dist/core/model-resolver.js.map +1 -0
  172. package/dist/core/omk-control.d.ts +62 -0
  173. package/dist/core/omk-control.d.ts.map +1 -0
  174. package/dist/core/omk-control.js +190 -0
  175. package/dist/core/omk-control.js.map +1 -0
  176. package/dist/core/omk-subagent.d.ts +17 -0
  177. package/dist/core/omk-subagent.d.ts.map +1 -0
  178. package/dist/core/omk-subagent.js +704 -0
  179. package/dist/core/omk-subagent.js.map +1 -0
  180. package/dist/core/output-guard.d.ts +7 -0
  181. package/dist/core/output-guard.d.ts.map +1 -0
  182. package/dist/core/output-guard.js +89 -0
  183. package/dist/core/output-guard.js.map +1 -0
  184. package/dist/core/package-manager.d.ts +206 -0
  185. package/dist/core/package-manager.d.ts.map +1 -0
  186. package/dist/core/package-manager.js +2056 -0
  187. package/dist/core/package-manager.js.map +1 -0
  188. package/dist/core/prompt-templates.d.ts +52 -0
  189. package/dist/core/prompt-templates.d.ts.map +1 -0
  190. package/dist/core/prompt-templates.js +238 -0
  191. package/dist/core/prompt-templates.js.map +1 -0
  192. package/dist/core/provider-attribution.d.ts +4 -0
  193. package/dist/core/provider-attribution.d.ts.map +1 -0
  194. package/dist/core/provider-attribution.js +78 -0
  195. package/dist/core/provider-attribution.js.map +1 -0
  196. package/dist/core/provider-display-names.d.ts +2 -0
  197. package/dist/core/provider-display-names.d.ts.map +1 -0
  198. package/dist/core/provider-display-names.js +35 -0
  199. package/dist/core/provider-display-names.js.map +1 -0
  200. package/dist/core/resolve-config-value.d.ts +31 -0
  201. package/dist/core/resolve-config-value.d.ts.map +1 -0
  202. package/dist/core/resolve-config-value.js +249 -0
  203. package/dist/core/resolve-config-value.js.map +1 -0
  204. package/dist/core/resource-loader.d.ts +194 -0
  205. package/dist/core/resource-loader.d.ts.map +1 -0
  206. package/dist/core/resource-loader.js +740 -0
  207. package/dist/core/resource-loader.js.map +1 -0
  208. package/dist/core/runtime-defaults.d.ts +14 -0
  209. package/dist/core/runtime-defaults.d.ts.map +1 -0
  210. package/dist/core/runtime-defaults.js +15 -0
  211. package/dist/core/runtime-defaults.js.map +1 -0
  212. package/dist/core/sdk.d.ts +109 -0
  213. package/dist/core/sdk.d.ts.map +1 -0
  214. package/dist/core/sdk.js +270 -0
  215. package/dist/core/sdk.js.map +1 -0
  216. package/dist/core/session-cwd.d.ts +19 -0
  217. package/dist/core/session-cwd.d.ts.map +1 -0
  218. package/dist/core/session-cwd.js +38 -0
  219. package/dist/core/session-cwd.js.map +1 -0
  220. package/dist/core/session-manager.d.ts +332 -0
  221. package/dist/core/session-manager.d.ts.map +1 -0
  222. package/dist/core/session-manager.js +1218 -0
  223. package/dist/core/session-manager.js.map +1 -0
  224. package/dist/core/settings-manager.d.ts +273 -0
  225. package/dist/core/settings-manager.d.ts.map +1 -0
  226. package/dist/core/settings-manager.js +839 -0
  227. package/dist/core/settings-manager.js.map +1 -0
  228. package/dist/core/skills.d.ts +60 -0
  229. package/dist/core/skills.d.ts.map +1 -0
  230. package/dist/core/skills.js +387 -0
  231. package/dist/core/skills.js.map +1 -0
  232. package/dist/core/slash-commands.d.ts +26 -0
  233. package/dist/core/slash-commands.d.ts.map +1 -0
  234. package/dist/core/slash-commands.js +98 -0
  235. package/dist/core/slash-commands.js.map +1 -0
  236. package/dist/core/source-info.d.ts +18 -0
  237. package/dist/core/source-info.d.ts.map +1 -0
  238. package/dist/core/source-info.js +19 -0
  239. package/dist/core/source-info.js.map +1 -0
  240. package/dist/core/system-prompt.d.ts +28 -0
  241. package/dist/core/system-prompt.d.ts.map +1 -0
  242. package/dist/core/system-prompt.js +120 -0
  243. package/dist/core/system-prompt.js.map +1 -0
  244. package/dist/core/telemetry.d.ts +3 -0
  245. package/dist/core/telemetry.d.ts.map +1 -0
  246. package/dist/core/telemetry.js +10 -0
  247. package/dist/core/telemetry.js.map +1 -0
  248. package/dist/core/timings.d.ts +4 -0
  249. package/dist/core/timings.d.ts.map +1 -0
  250. package/dist/core/timings.js +32 -0
  251. package/dist/core/timings.js.map +1 -0
  252. package/dist/core/tools/bash.d.ts +68 -0
  253. package/dist/core/tools/bash.d.ts.map +1 -0
  254. package/dist/core/tools/bash.js +337 -0
  255. package/dist/core/tools/bash.js.map +1 -0
  256. package/dist/core/tools/edit-diff.d.ts +87 -0
  257. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  258. package/dist/core/tools/edit-diff.js +345 -0
  259. package/dist/core/tools/edit-diff.js.map +1 -0
  260. package/dist/core/tools/edit.d.ts +51 -0
  261. package/dist/core/tools/edit.d.ts.map +1 -0
  262. package/dist/core/tools/edit.js +284 -0
  263. package/dist/core/tools/edit.js.map +1 -0
  264. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  265. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  266. package/dist/core/tools/file-mutation-queue.js +52 -0
  267. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  268. package/dist/core/tools/find.d.ts +35 -0
  269. package/dist/core/tools/find.d.ts.map +1 -0
  270. package/dist/core/tools/find.js +297 -0
  271. package/dist/core/tools/find.js.map +1 -0
  272. package/dist/core/tools/grep.d.ts +37 -0
  273. package/dist/core/tools/grep.d.ts.map +1 -0
  274. package/dist/core/tools/grep.js +304 -0
  275. package/dist/core/tools/grep.js.map +1 -0
  276. package/dist/core/tools/index.d.ts +40 -0
  277. package/dist/core/tools/index.d.ts.map +1 -0
  278. package/dist/core/tools/index.js +112 -0
  279. package/dist/core/tools/index.js.map +1 -0
  280. package/dist/core/tools/ls.d.ts +37 -0
  281. package/dist/core/tools/ls.d.ts.map +1 -0
  282. package/dist/core/tools/ls.js +167 -0
  283. package/dist/core/tools/ls.js.map +1 -0
  284. package/dist/core/tools/output-accumulator.d.ts +52 -0
  285. package/dist/core/tools/output-accumulator.d.ts.map +1 -0
  286. package/dist/core/tools/output-accumulator.js +184 -0
  287. package/dist/core/tools/output-accumulator.js.map +1 -0
  288. package/dist/core/tools/path-utils.d.ts +10 -0
  289. package/dist/core/tools/path-utils.d.ts.map +1 -0
  290. package/dist/core/tools/path-utils.js +99 -0
  291. package/dist/core/tools/path-utils.js.map +1 -0
  292. package/dist/core/tools/read.d.ts +35 -0
  293. package/dist/core/tools/read.d.ts.map +1 -0
  294. package/dist/core/tools/read.js +289 -0
  295. package/dist/core/tools/read.js.map +1 -0
  296. package/dist/core/tools/render-utils.d.ts +24 -0
  297. package/dist/core/tools/render-utils.d.ts.map +1 -0
  298. package/dist/core/tools/render-utils.js +65 -0
  299. package/dist/core/tools/render-utils.js.map +1 -0
  300. package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
  301. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  302. package/dist/core/tools/tool-definition-wrapper.js +34 -0
  303. package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
  304. package/dist/core/tools/truncate.d.ts +70 -0
  305. package/dist/core/tools/truncate.d.ts.map +1 -0
  306. package/dist/core/tools/truncate.js +215 -0
  307. package/dist/core/tools/truncate.js.map +1 -0
  308. package/dist/core/tools/write.d.ts +26 -0
  309. package/dist/core/tools/write.d.ts.map +1 -0
  310. package/dist/core/tools/write.js +197 -0
  311. package/dist/core/tools/write.js.map +1 -0
  312. package/dist/index.d.ts +32 -0
  313. package/dist/index.d.ts.map +1 -0
  314. package/dist/index.js +45 -0
  315. package/dist/index.js.map +1 -0
  316. package/dist/main.d.ts +12 -0
  317. package/dist/main.d.ts.map +1 -0
  318. package/dist/main.js +673 -0
  319. package/dist/main.js.map +1 -0
  320. package/dist/migrations.d.ts +35 -0
  321. package/dist/migrations.d.ts.map +1 -0
  322. package/dist/migrations.js +401 -0
  323. package/dist/migrations.js.map +1 -0
  324. package/dist/modes/index.d.ts +9 -0
  325. package/dist/modes/index.d.ts.map +1 -0
  326. package/dist/modes/index.js +8 -0
  327. package/dist/modes/index.js.map +1 -0
  328. package/dist/modes/interactive/assets/clankolas.png +0 -0
  329. package/dist/modes/interactive/cockpit-scroll.d.ts +54 -0
  330. package/dist/modes/interactive/cockpit-scroll.d.ts.map +1 -0
  331. package/dist/modes/interactive/cockpit-scroll.js +133 -0
  332. package/dist/modes/interactive/cockpit-scroll.js.map +1 -0
  333. package/dist/modes/interactive/components/armin.d.ts +34 -0
  334. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  335. package/dist/modes/interactive/components/armin.js +333 -0
  336. package/dist/modes/interactive/components/armin.js.map +1 -0
  337. package/dist/modes/interactive/components/assistant-message.d.ts +20 -0
  338. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  339. package/dist/modes/interactive/components/assistant-message.js +121 -0
  340. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  341. package/dist/modes/interactive/components/bash-execution.d.ts +34 -0
  342. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  343. package/dist/modes/interactive/components/bash-execution.js +175 -0
  344. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  345. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  346. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  347. package/dist/modes/interactive/components/bordered-loader.js +54 -0
  348. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  349. package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  350. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  351. package/dist/modes/interactive/components/branch-summary-message.js +44 -0
  352. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  353. package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  354. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  355. package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
  356. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  357. package/dist/modes/interactive/components/config-selector.d.ts +71 -0
  358. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  359. package/dist/modes/interactive/components/config-selector.js +506 -0
  360. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  361. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  362. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  363. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  364. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  365. package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  366. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  367. package/dist/modes/interactive/components/custom-editor.js +70 -0
  368. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  369. package/dist/modes/interactive/components/custom-message.d.ts +20 -0
  370. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  371. package/dist/modes/interactive/components/custom-message.js +79 -0
  372. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  373. package/dist/modes/interactive/components/diff.d.ts +12 -0
  374. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  375. package/dist/modes/interactive/components/diff.js +133 -0
  376. package/dist/modes/interactive/components/diff.js.map +1 -0
  377. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  378. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  379. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  380. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  381. package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  382. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  383. package/dist/modes/interactive/components/earendil-announcement.js +42 -0
  384. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
  385. package/dist/modes/interactive/components/extension-editor.d.ts +20 -0
  386. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  387. package/dist/modes/interactive/components/extension-editor.js +119 -0
  388. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  389. package/dist/modes/interactive/components/extension-input.d.ts +23 -0
  390. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  391. package/dist/modes/interactive/components/extension-input.js +61 -0
  392. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  393. package/dist/modes/interactive/components/extension-selector.d.ts +26 -0
  394. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  395. package/dist/modes/interactive/components/extension-selector.js +83 -0
  396. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  397. package/dist/modes/interactive/components/footer.d.ts +35 -0
  398. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  399. package/dist/modes/interactive/components/footer.js +223 -0
  400. package/dist/modes/interactive/components/footer.js.map +1 -0
  401. package/dist/modes/interactive/components/index.d.ts +36 -0
  402. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  403. package/dist/modes/interactive/components/index.js +37 -0
  404. package/dist/modes/interactive/components/index.js.map +1 -0
  405. package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  406. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  407. package/dist/modes/interactive/components/keybinding-hints.js +36 -0
  408. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  409. package/dist/modes/interactive/components/login-dialog.d.ts +51 -0
  410. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  411. package/dist/modes/interactive/components/login-dialog.js +174 -0
  412. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  413. package/dist/modes/interactive/components/model-selector.d.ts +69 -0
  414. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  415. package/dist/modes/interactive/components/model-selector.js +411 -0
  416. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  417. package/dist/modes/interactive/components/oauth-selector.d.ts +31 -0
  418. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  419. package/dist/modes/interactive/components/oauth-selector.js +165 -0
  420. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  421. package/dist/modes/interactive/components/omk-brand-surface.d.ts +58 -0
  422. package/dist/modes/interactive/components/omk-brand-surface.d.ts.map +1 -0
  423. package/dist/modes/interactive/components/omk-brand-surface.js +330 -0
  424. package/dist/modes/interactive/components/omk-brand-surface.js.map +1 -0
  425. package/dist/modes/interactive/components/omk-brand.d.ts +10 -0
  426. package/dist/modes/interactive/components/omk-brand.d.ts.map +1 -0
  427. package/dist/modes/interactive/components/omk-brand.js +12 -0
  428. package/dist/modes/interactive/components/omk-brand.js.map +1 -0
  429. package/dist/modes/interactive/components/omk-control-dashboard.d.ts +36 -0
  430. package/dist/modes/interactive/components/omk-control-dashboard.d.ts.map +1 -0
  431. package/dist/modes/interactive/components/omk-control-dashboard.js +348 -0
  432. package/dist/modes/interactive/components/omk-control-dashboard.js.map +1 -0
  433. package/dist/modes/interactive/components/omk-control-layout.d.ts +34 -0
  434. package/dist/modes/interactive/components/omk-control-layout.d.ts.map +1 -0
  435. package/dist/modes/interactive/components/omk-control-layout.js +85 -0
  436. package/dist/modes/interactive/components/omk-control-layout.js.map +1 -0
  437. package/dist/modes/interactive/components/omk-history-panel.d.ts +27 -0
  438. package/dist/modes/interactive/components/omk-history-panel.d.ts.map +1 -0
  439. package/dist/modes/interactive/components/omk-history-panel.js +162 -0
  440. package/dist/modes/interactive/components/omk-history-panel.js.map +1 -0
  441. package/dist/modes/interactive/components/omk-neon-hud.d.ts +19 -0
  442. package/dist/modes/interactive/components/omk-neon-hud.d.ts.map +1 -0
  443. package/dist/modes/interactive/components/omk-neon-hud.js +75 -0
  444. package/dist/modes/interactive/components/omk-neon-hud.js.map +1 -0
  445. package/dist/modes/interactive/components/omk-tabbed-panel.d.ts +30 -0
  446. package/dist/modes/interactive/components/omk-tabbed-panel.d.ts.map +1 -0
  447. package/dist/modes/interactive/components/omk-tabbed-panel.js +99 -0
  448. package/dist/modes/interactive/components/omk-tabbed-panel.js.map +1 -0
  449. package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
  450. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  451. package/dist/modes/interactive/components/scoped-models-selector.js +290 -0
  452. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  453. package/dist/modes/interactive/components/scrollable-transcript.d.ts +20 -0
  454. package/dist/modes/interactive/components/scrollable-transcript.d.ts.map +1 -0
  455. package/dist/modes/interactive/components/scrollable-transcript.js +25 -0
  456. package/dist/modes/interactive/components/scrollable-transcript.js.map +1 -0
  457. package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  458. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  459. package/dist/modes/interactive/components/session-selector-search.js +155 -0
  460. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  461. package/dist/modes/interactive/components/session-selector.d.ts +96 -0
  462. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  463. package/dist/modes/interactive/components/session-selector.js +861 -0
  464. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  465. package/dist/modes/interactive/components/settings-selector.d.ts +69 -0
  466. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  467. package/dist/modes/interactive/components/settings-selector.js +391 -0
  468. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  469. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  470. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  471. package/dist/modes/interactive/components/show-images-selector.js +39 -0
  472. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  473. package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  474. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  475. package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
  476. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  477. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  478. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  479. package/dist/modes/interactive/components/theme-selector.js +50 -0
  480. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  481. package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  482. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  483. package/dist/modes/interactive/components/thinking-selector.js +52 -0
  484. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  485. package/dist/modes/interactive/components/tool-execution.d.ts +63 -0
  486. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  487. package/dist/modes/interactive/components/tool-execution.js +317 -0
  488. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  489. package/dist/modes/interactive/components/tree-selector.d.ts +89 -0
  490. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  491. package/dist/modes/interactive/components/tree-selector.js +1093 -0
  492. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  493. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  494. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  495. package/dist/modes/interactive/components/user-message-selector.js +114 -0
  496. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  497. package/dist/modes/interactive/components/user-message.d.ts +10 -0
  498. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  499. package/dist/modes/interactive/components/user-message.js +29 -0
  500. package/dist/modes/interactive/components/user-message.js.map +1 -0
  501. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  502. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  503. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  504. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  505. package/dist/modes/interactive/interactive-mode.d.ts +422 -0
  506. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  507. package/dist/modes/interactive/interactive-mode.js +5388 -0
  508. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  509. package/dist/modes/interactive/theme/dark.json +87 -0
  510. package/dist/modes/interactive/theme/light.json +86 -0
  511. package/dist/modes/interactive/theme/omk-control.json +92 -0
  512. package/dist/modes/interactive/theme/omk-rust.json +94 -0
  513. package/dist/modes/interactive/theme/theme-schema.json +340 -0
  514. package/dist/modes/interactive/theme/theme.d.ts +102 -0
  515. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  516. package/dist/modes/interactive/theme/theme.js +1093 -0
  517. package/dist/modes/interactive/theme/theme.js.map +1 -0
  518. package/dist/modes/print-mode.d.ts +28 -0
  519. package/dist/modes/print-mode.d.ts.map +1 -0
  520. package/dist/modes/print-mode.js +132 -0
  521. package/dist/modes/print-mode.js.map +1 -0
  522. package/dist/modes/rpc/jsonl.d.ts +17 -0
  523. package/dist/modes/rpc/jsonl.d.ts.map +1 -0
  524. package/dist/modes/rpc/jsonl.js +49 -0
  525. package/dist/modes/rpc/jsonl.js.map +1 -0
  526. package/dist/modes/rpc/rpc-client.d.ts +227 -0
  527. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  528. package/dist/modes/rpc/rpc-client.js +467 -0
  529. package/dist/modes/rpc/rpc-client.js.map +1 -0
  530. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  531. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  532. package/dist/modes/rpc/rpc-mode.js +616 -0
  533. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  534. package/dist/modes/rpc/rpc-types.d.ts +420 -0
  535. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  536. package/dist/modes/rpc/rpc-types.js +8 -0
  537. package/dist/modes/rpc/rpc-types.js.map +1 -0
  538. package/dist/omk-env.d.ts +2 -0
  539. package/dist/omk-env.d.ts.map +1 -0
  540. package/dist/omk-env.js +3 -0
  541. package/dist/omk-env.js.map +1 -0
  542. package/dist/omk.d.ts +4 -0
  543. package/dist/omk.d.ts.map +1 -0
  544. package/dist/omk.js +4 -0
  545. package/dist/omk.js.map +1 -0
  546. package/dist/package-manager-cli.d.ts +4 -0
  547. package/dist/package-manager-cli.d.ts.map +1 -0
  548. package/dist/package-manager-cli.js +528 -0
  549. package/dist/package-manager-cli.js.map +1 -0
  550. package/dist/package.json +97 -0
  551. package/dist/utils/ansi.d.ts +2 -0
  552. package/dist/utils/ansi.d.ts.map +1 -0
  553. package/dist/utils/ansi.js +52 -0
  554. package/dist/utils/ansi.js.map +1 -0
  555. package/dist/utils/changelog.d.ts +21 -0
  556. package/dist/utils/changelog.d.ts.map +1 -0
  557. package/dist/utils/changelog.js +87 -0
  558. package/dist/utils/changelog.js.map +1 -0
  559. package/dist/utils/child-process.d.ts +15 -0
  560. package/dist/utils/child-process.d.ts.map +1 -0
  561. package/dist/utils/child-process.js +88 -0
  562. package/dist/utils/child-process.js.map +1 -0
  563. package/dist/utils/clipboard-image.d.ts +11 -0
  564. package/dist/utils/clipboard-image.d.ts.map +1 -0
  565. package/dist/utils/clipboard-image.js +249 -0
  566. package/dist/utils/clipboard-image.js.map +1 -0
  567. package/dist/utils/clipboard-native.d.ts +10 -0
  568. package/dist/utils/clipboard-native.d.ts.map +1 -0
  569. package/dist/utils/clipboard-native.js +20 -0
  570. package/dist/utils/clipboard-native.js.map +1 -0
  571. package/dist/utils/clipboard.d.ts +2 -0
  572. package/dist/utils/clipboard.d.ts.map +1 -0
  573. package/dist/utils/clipboard.js +117 -0
  574. package/dist/utils/clipboard.js.map +1 -0
  575. package/dist/utils/deprecation.d.ts +4 -0
  576. package/dist/utils/deprecation.d.ts.map +1 -0
  577. package/dist/utils/deprecation.js +13 -0
  578. package/dist/utils/deprecation.js.map +1 -0
  579. package/dist/utils/exif-orientation.d.ts +5 -0
  580. package/dist/utils/exif-orientation.d.ts.map +1 -0
  581. package/dist/utils/exif-orientation.js +158 -0
  582. package/dist/utils/exif-orientation.js.map +1 -0
  583. package/dist/utils/frontmatter.d.ts +8 -0
  584. package/dist/utils/frontmatter.d.ts.map +1 -0
  585. package/dist/utils/frontmatter.js +26 -0
  586. package/dist/utils/frontmatter.js.map +1 -0
  587. package/dist/utils/fs-watch.d.ts +5 -0
  588. package/dist/utils/fs-watch.d.ts.map +1 -0
  589. package/dist/utils/fs-watch.js +25 -0
  590. package/dist/utils/fs-watch.js.map +1 -0
  591. package/dist/utils/git.d.ts +26 -0
  592. package/dist/utils/git.d.ts.map +1 -0
  593. package/dist/utils/git.js +195 -0
  594. package/dist/utils/git.js.map +1 -0
  595. package/dist/utils/html.d.ts +7 -0
  596. package/dist/utils/html.d.ts.map +1 -0
  597. package/dist/utils/html.js +40 -0
  598. package/dist/utils/html.js.map +1 -0
  599. package/dist/utils/image-convert.d.ts +9 -0
  600. package/dist/utils/image-convert.d.ts.map +1 -0
  601. package/dist/utils/image-convert.js +39 -0
  602. package/dist/utils/image-convert.js.map +1 -0
  603. package/dist/utils/image-resize-core.d.ts +30 -0
  604. package/dist/utils/image-resize-core.d.ts.map +1 -0
  605. package/dist/utils/image-resize-core.js +124 -0
  606. package/dist/utils/image-resize-core.js.map +1 -0
  607. package/dist/utils/image-resize-worker.d.ts +2 -0
  608. package/dist/utils/image-resize-worker.d.ts.map +1 -0
  609. package/dist/utils/image-resize-worker.js +31 -0
  610. package/dist/utils/image-resize-worker.js.map +1 -0
  611. package/dist/utils/image-resize.d.ts +16 -0
  612. package/dist/utils/image-resize.d.ts.map +1 -0
  613. package/dist/utils/image-resize.js +97 -0
  614. package/dist/utils/image-resize.js.map +1 -0
  615. package/dist/utils/json.d.ts +3 -0
  616. package/dist/utils/json.d.ts.map +1 -0
  617. package/dist/utils/json.js +7 -0
  618. package/dist/utils/json.js.map +1 -0
  619. package/dist/utils/mime.d.ts +3 -0
  620. package/dist/utils/mime.d.ts.map +1 -0
  621. package/dist/utils/mime.js +69 -0
  622. package/dist/utils/mime.js.map +1 -0
  623. package/dist/utils/open-browser.d.ts +9 -0
  624. package/dist/utils/open-browser.d.ts.map +1 -0
  625. package/dist/utils/open-browser.js +22 -0
  626. package/dist/utils/open-browser.js.map +1 -0
  627. package/dist/utils/paths.d.ts +31 -0
  628. package/dist/utils/paths.d.ts.map +1 -0
  629. package/dist/utils/paths.js +92 -0
  630. package/dist/utils/paths.js.map +1 -0
  631. package/dist/utils/photon.d.ts +21 -0
  632. package/dist/utils/photon.d.ts.map +1 -0
  633. package/dist/utils/photon.js +121 -0
  634. package/dist/utils/photon.js.map +1 -0
  635. package/dist/utils/pi-user-agent.d.ts +2 -0
  636. package/dist/utils/pi-user-agent.d.ts.map +1 -0
  637. package/dist/utils/pi-user-agent.js +6 -0
  638. package/dist/utils/pi-user-agent.js.map +1 -0
  639. package/dist/utils/shell.d.ts +30 -0
  640. package/dist/utils/shell.d.ts.map +1 -0
  641. package/dist/utils/shell.js +195 -0
  642. package/dist/utils/shell.js.map +1 -0
  643. package/dist/utils/sleep.d.ts +5 -0
  644. package/dist/utils/sleep.d.ts.map +1 -0
  645. package/dist/utils/sleep.js +17 -0
  646. package/dist/utils/sleep.js.map +1 -0
  647. package/dist/utils/syntax-highlight.d.ts +12 -0
  648. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  649. package/dist/utils/syntax-highlight.js +118 -0
  650. package/dist/utils/syntax-highlight.js.map +1 -0
  651. package/dist/utils/tools-manager.d.ts +3 -0
  652. package/dist/utils/tools-manager.d.ts.map +1 -0
  653. package/dist/utils/tools-manager.js +325 -0
  654. package/dist/utils/tools-manager.js.map +1 -0
  655. package/dist/utils/version-check.d.ts +15 -0
  656. package/dist/utils/version-check.d.ts.map +1 -0
  657. package/dist/utils/version-check.js +85 -0
  658. package/dist/utils/version-check.js.map +1 -0
  659. package/dist/utils/windows-self-update.d.ts +3 -0
  660. package/dist/utils/windows-self-update.d.ts.map +1 -0
  661. package/dist/utils/windows-self-update.js +77 -0
  662. package/dist/utils/windows-self-update.js.map +1 -0
  663. package/docs/compaction.md +394 -0
  664. package/docs/containerization.md +111 -0
  665. package/docs/custom-provider.md +736 -0
  666. package/docs/development.md +71 -0
  667. package/docs/docs.json +152 -0
  668. package/docs/extensions.md +2627 -0
  669. package/docs/images/doom-extension.png +0 -0
  670. package/docs/images/exy.png +0 -0
  671. package/docs/images/interactive-mode.png +0 -0
  672. package/docs/images/tree-view.png +0 -0
  673. package/docs/index.md +81 -0
  674. package/docs/json.md +82 -0
  675. package/docs/keybindings.md +197 -0
  676. package/docs/models.md +493 -0
  677. package/docs/packages.md +226 -0
  678. package/docs/prompt-templates.md +88 -0
  679. package/docs/providers.md +256 -0
  680. package/docs/quickstart.md +165 -0
  681. package/docs/rpc.md +1408 -0
  682. package/docs/sdk.md +1137 -0
  683. package/docs/session-format.md +412 -0
  684. package/docs/sessions.md +145 -0
  685. package/docs/settings.md +281 -0
  686. package/docs/shell-aliases.md +13 -0
  687. package/docs/skills.md +231 -0
  688. package/docs/terminal-setup.md +114 -0
  689. package/docs/termux.md +127 -0
  690. package/docs/themes.md +297 -0
  691. package/docs/tmux.md +61 -0
  692. package/docs/tui.md +927 -0
  693. package/docs/usage.md +288 -0
  694. package/docs/windows.md +17 -0
  695. package/examples/README.md +25 -0
  696. package/examples/extensions/README.md +210 -0
  697. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  698. package/examples/extensions/bash-spawn-hook.ts +30 -0
  699. package/examples/extensions/bookmark.ts +50 -0
  700. package/examples/extensions/border-status-editor.ts +150 -0
  701. package/examples/extensions/built-in-tool-renderer.ts +249 -0
  702. package/examples/extensions/claude-rules.ts +86 -0
  703. package/examples/extensions/commands.ts +72 -0
  704. package/examples/extensions/confirm-destructive.ts +59 -0
  705. package/examples/extensions/custom-compaction.ts +127 -0
  706. package/examples/extensions/custom-footer.ts +64 -0
  707. package/examples/extensions/custom-header.ts +73 -0
  708. package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
  709. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  710. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  711. package/examples/extensions/custom-provider-gitlab-duo/index.ts +400 -0
  712. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  713. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  714. package/examples/extensions/dirty-repo-guard.ts +56 -0
  715. package/examples/extensions/doom-overlay/README.md +46 -0
  716. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  717. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  718. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  719. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  720. package/examples/extensions/doom-overlay/doom-component.ts +132 -0
  721. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  722. package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  723. package/examples/extensions/doom-overlay/index.ts +74 -0
  724. package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  725. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  726. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  727. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  728. package/examples/extensions/dynamic-resources/index.ts +15 -0
  729. package/examples/extensions/dynamic-tools.ts +74 -0
  730. package/examples/extensions/event-bus.ts +43 -0
  731. package/examples/extensions/file-trigger.ts +41 -0
  732. package/examples/extensions/git-checkpoint.ts +53 -0
  733. package/examples/extensions/git-merge-and-resolve.ts +115 -0
  734. package/examples/extensions/github-issue-autocomplete.ts +185 -0
  735. package/examples/extensions/gondolin/index.ts +531 -0
  736. package/examples/extensions/gondolin/package-lock.json +185 -0
  737. package/examples/extensions/gondolin/package.json +19 -0
  738. package/examples/extensions/handoff.ts +191 -0
  739. package/examples/extensions/hello.ts +26 -0
  740. package/examples/extensions/hidden-thinking-label.ts +53 -0
  741. package/examples/extensions/inline-bash.ts +94 -0
  742. package/examples/extensions/input-transform-streaming.ts +39 -0
  743. package/examples/extensions/input-transform.ts +43 -0
  744. package/examples/extensions/interactive-shell.ts +196 -0
  745. package/examples/extensions/mac-system-theme.ts +47 -0
  746. package/examples/extensions/message-renderer.ts +59 -0
  747. package/examples/extensions/minimal-mode.ts +426 -0
  748. package/examples/extensions/modal-editor.ts +85 -0
  749. package/examples/extensions/model-status.ts +31 -0
  750. package/examples/extensions/notify.ts +55 -0
  751. package/examples/extensions/overlay-qa-tests.ts +1450 -0
  752. package/examples/extensions/overlay-test.ts +153 -0
  753. package/examples/extensions/permission-gate.ts +34 -0
  754. package/examples/extensions/pirate.ts +47 -0
  755. package/examples/extensions/plan-mode/README.md +65 -0
  756. package/examples/extensions/plan-mode/index.ts +340 -0
  757. package/examples/extensions/plan-mode/utils.ts +168 -0
  758. package/examples/extensions/preset.ts +430 -0
  759. package/examples/extensions/prompt-customizer.ts +97 -0
  760. package/examples/extensions/protected-paths.ts +30 -0
  761. package/examples/extensions/provider-payload.ts +18 -0
  762. package/examples/extensions/qna.ts +122 -0
  763. package/examples/extensions/question.ts +264 -0
  764. package/examples/extensions/questionnaire.ts +427 -0
  765. package/examples/extensions/rainbow-editor.ts +88 -0
  766. package/examples/extensions/reload-runtime.ts +37 -0
  767. package/examples/extensions/rpc-demo.ts +118 -0
  768. package/examples/extensions/sandbox/index.ts +321 -0
  769. package/examples/extensions/sandbox/package-lock.json +92 -0
  770. package/examples/extensions/sandbox/package.json +19 -0
  771. package/examples/extensions/send-user-message.ts +97 -0
  772. package/examples/extensions/session-name.ts +27 -0
  773. package/examples/extensions/shutdown-command.ts +63 -0
  774. package/examples/extensions/snake.ts +343 -0
  775. package/examples/extensions/space-invaders.ts +560 -0
  776. package/examples/extensions/ssh.ts +220 -0
  777. package/examples/extensions/status-line.ts +32 -0
  778. package/examples/extensions/structured-output.ts +65 -0
  779. package/examples/extensions/subagent/README.md +175 -0
  780. package/examples/extensions/subagent/agents/planner.md +37 -0
  781. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  782. package/examples/extensions/subagent/agents/scout.md +50 -0
  783. package/examples/extensions/subagent/agents/worker.md +24 -0
  784. package/examples/extensions/subagent/agents.ts +126 -0
  785. package/examples/extensions/subagent/index.ts +1009 -0
  786. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  787. package/examples/extensions/subagent/prompts/implement.md +10 -0
  788. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  789. package/examples/extensions/summarize.ts +206 -0
  790. package/examples/extensions/system-prompt-header.ts +17 -0
  791. package/examples/extensions/tic-tac-toe.ts +1008 -0
  792. package/examples/extensions/timed-confirm.ts +70 -0
  793. package/examples/extensions/titlebar-spinner.ts +58 -0
  794. package/examples/extensions/todo.ts +297 -0
  795. package/examples/extensions/tool-override.ts +144 -0
  796. package/examples/extensions/tools.ts +146 -0
  797. package/examples/extensions/trigger-compact.ts +50 -0
  798. package/examples/extensions/truncated-tool.ts +195 -0
  799. package/examples/extensions/widget-placement.ts +9 -0
  800. package/examples/extensions/with-deps/index.ts +32 -0
  801. package/examples/extensions/with-deps/package-lock.json +31 -0
  802. package/examples/extensions/with-deps/package.json +22 -0
  803. package/examples/extensions/working-indicator.ts +123 -0
  804. package/examples/extensions/working-message-test.ts +25 -0
  805. package/examples/rpc-extension-ui.ts +632 -0
  806. package/examples/sdk/01-minimal.ts +26 -0
  807. package/examples/sdk/02-custom-model.ts +53 -0
  808. package/examples/sdk/03-custom-prompt.ts +75 -0
  809. package/examples/sdk/04-skills.ts +55 -0
  810. package/examples/sdk/05-tools.ts +48 -0
  811. package/examples/sdk/06-extensions.ts +99 -0
  812. package/examples/sdk/07-context-files.ts +47 -0
  813. package/examples/sdk/08-prompt-templates.ts +51 -0
  814. package/examples/sdk/09-api-keys-and-oauth.ts +52 -0
  815. package/examples/sdk/10-settings.ts +53 -0
  816. package/examples/sdk/11-sessions.ts +52 -0
  817. package/examples/sdk/12-full-control.ts +77 -0
  818. package/examples/sdk/13-session-runtime.ts +67 -0
  819. package/examples/sdk/README.md +144 -0
  820. package/npm-shrinkwrap.json +512 -0
  821. package/package.json +97 -191
  822. package/AGENTS.md +0 -550
  823. package/CLAUDE.md +0 -8
  824. package/DESIGN.md +0 -334
  825. package/GEMINI.md +0 -8
  826. package/LICENSE +0 -21
  827. package/MATURITY.md +0 -81
  828. package/ROADMAP.md +0 -138
  829. package/SECURITY.md +0 -83
  830. package/WORKER_MANIFEST.md +0 -35
  831. package/dist/adapters/commandcode/commandcode-cli-adapter.d.ts +0 -10
  832. package/dist/adapters/commandcode/commandcode-cli-adapter.js +0 -57
  833. package/dist/adapters/kimi/ascii-art.d.ts +0 -1
  834. package/dist/adapters/kimi/ascii-art.js +0 -23
  835. package/dist/adapters/kimi/banner.d.ts +0 -53
  836. package/dist/adapters/kimi/banner.js +0 -284
  837. package/dist/adapters/kimi/bug-filter.d.ts +0 -15
  838. package/dist/adapters/kimi/bug-filter.js +0 -150
  839. package/dist/adapters/kimi/capability.d.ts +0 -25
  840. package/dist/adapters/kimi/capability.js +0 -68
  841. package/dist/adapters/kimi/continue-prompt-guard.d.ts +0 -20
  842. package/dist/adapters/kimi/continue-prompt-guard.js +0 -70
  843. package/dist/adapters/kimi/isolated-home.d.ts +0 -21
  844. package/dist/adapters/kimi/isolated-home.js +0 -270
  845. package/dist/adapters/kimi/runner.d.ts +0 -71
  846. package/dist/adapters/kimi/runner.js +0 -1084
  847. package/dist/adapters/kimi/simple-art.d.ts +0 -1
  848. package/dist/adapters/kimi/simple-art.js +0 -1
  849. package/dist/adapters/kimi/statusline.d.ts +0 -26
  850. package/dist/adapters/kimi/statusline.js +0 -142
  851. package/dist/adapters/kimi/usage.d.ts +0 -52
  852. package/dist/adapters/kimi/usage.js +0 -481
  853. package/dist/adapters/kimi/wire-client.d.ts +0 -142
  854. package/dist/adapters/kimi/wire-client.js +0 -725
  855. package/dist/adapters/kimi/wire-protocol-types.d.ts +0 -549
  856. package/dist/adapters/kimi/wire-protocol-types.js +0 -59
  857. package/dist/adapters/opencode/opencode-cli-adapter.d.ts +0 -9
  858. package/dist/adapters/opencode/opencode-cli-adapter.js +0 -43
  859. package/dist/awareness/classifiers/browser-console-classifier.d.ts +0 -3
  860. package/dist/awareness/classifiers/browser-console-classifier.js +0 -47
  861. package/dist/awareness/classifiers/evidence-gap-classifier.d.ts +0 -3
  862. package/dist/awareness/classifiers/evidence-gap-classifier.js +0 -31
  863. package/dist/awareness/classifiers/stalled-run-classifier.d.ts +0 -2
  864. package/dist/awareness/classifiers/stalled-run-classifier.js +0 -24
  865. package/dist/awareness/notice-store.d.ts +0 -6
  866. package/dist/awareness/notice-store.js +0 -91
  867. package/dist/awareness/notice.d.ts +0 -17
  868. package/dist/awareness/notice.js +0 -1
  869. package/dist/awareness/noticer-engine.d.ts +0 -42
  870. package/dist/awareness/noticer-engine.js +0 -63
  871. package/dist/awareness/router.d.ts +0 -6
  872. package/dist/awareness/router.js +0 -46
  873. package/dist/benchmark/contracts.d.ts +0 -116
  874. package/dist/benchmark/contracts.js +0 -6
  875. package/dist/benchmark/fixtures.d.ts +0 -11
  876. package/dist/benchmark/fixtures.js +0 -124
  877. package/dist/benchmark/harness.d.ts +0 -13
  878. package/dist/benchmark/harness.js +0 -191
  879. package/dist/benchmark/shadow-mode.d.ts +0 -17
  880. package/dist/benchmark/shadow-mode.js +0 -95
  881. package/dist/brand/matrix-rain.d.ts +0 -15
  882. package/dist/brand/matrix-rain.js +0 -132
  883. package/dist/brand/night-city.theme.json +0 -80
  884. package/dist/brand/omk-matrix-art.d.ts +0 -1
  885. package/dist/brand/omk-matrix-art.js +0 -10
  886. package/dist/brand/omk-simple-art.d.ts +0 -7
  887. package/dist/brand/omk-simple-art.js +0 -13
  888. package/dist/brand/palette.d.ts +0 -90
  889. package/dist/brand/palette.js +0 -129
  890. package/dist/brand/rust-forge.theme.json +0 -216
  891. package/dist/brand/theme-compiled.d.ts +0 -61
  892. package/dist/brand/theme-compiled.js +0 -241
  893. package/dist/brand/theme.d.ts +0 -41
  894. package/dist/brand/theme.js +0 -275
  895. package/dist/browser/browser-feedback.d.ts +0 -10
  896. package/dist/browser/browser-feedback.js +0 -84
  897. package/dist/browser/browser-observer.d.ts +0 -21
  898. package/dist/browser/browser-observer.js +0 -159
  899. package/dist/browser/browser-session.d.ts +0 -26
  900. package/dist/browser/browser-session.js +0 -63
  901. package/dist/cli/command-registry.d.ts +0 -2
  902. package/dist/cli/command-registry.js +0 -20
  903. package/dist/cli/input/argv-parser.d.ts +0 -16
  904. package/dist/cli/input/argv-parser.js +0 -50
  905. package/dist/cli/input/command-envelope.d.ts +0 -16
  906. package/dist/cli/input/command-envelope.js +0 -64
  907. package/dist/cli/input/config-loader.d.ts +0 -16
  908. package/dist/cli/input/config-loader.js +0 -48
  909. package/dist/cli/input/index.d.ts +0 -8
  910. package/dist/cli/input/index.js +0 -8
  911. package/dist/cli/input/input-resolver.d.ts +0 -13
  912. package/dist/cli/input/input-resolver.js +0 -50
  913. package/dist/cli/input/validator.d.ts +0 -10
  914. package/dist/cli/input/validator.js +0 -37
  915. package/dist/cli/main.d.ts +0 -4
  916. package/dist/cli/main.js +0 -34
  917. package/dist/cli/output/error-renderer.d.ts +0 -10
  918. package/dist/cli/output/error-renderer.js +0 -68
  919. package/dist/cli/output/hash.d.ts +0 -1
  920. package/dist/cli/output/hash.js +0 -10
  921. package/dist/cli/output/index.d.ts +0 -9
  922. package/dist/cli/output/index.js +0 -9
  923. package/dist/cli/output/json-renderer.d.ts +0 -7
  924. package/dist/cli/output/json-renderer.js +0 -35
  925. package/dist/cli/output/markdown-renderer.d.ts +0 -5
  926. package/dist/cli/output/markdown-renderer.js +0 -86
  927. package/dist/cli/output/nlp-renderer.d.ts +0 -7
  928. package/dist/cli/output/nlp-renderer.js +0 -96
  929. package/dist/cli/output/output-router.d.ts +0 -5
  930. package/dist/cli/output/output-router.js +0 -33
  931. package/dist/cli/register-awareness-commands.d.ts +0 -2
  932. package/dist/cli/register-awareness-commands.js +0 -133
  933. package/dist/cli/register-basic-commands.d.ts +0 -2
  934. package/dist/cli/register-basic-commands.js +0 -488
  935. package/dist/cli/register-integration-commands.d.ts +0 -2
  936. package/dist/cli/register-integration-commands.js +0 -59
  937. package/dist/cli/register-mcp-dag-cron-screenshot-commands.d.ts +0 -2
  938. package/dist/cli/register-mcp-dag-cron-screenshot-commands.js +0 -275
  939. package/dist/cli/register-openai-codex-commands.d.ts +0 -2
  940. package/dist/cli/register-openai-codex-commands.js +0 -55
  941. package/dist/cli/register-provider-commands.d.ts +0 -2
  942. package/dist/cli/register-provider-commands.js +0 -244
  943. package/dist/cli/register-spec-agent-goal-commands.d.ts +0 -2
  944. package/dist/cli/register-spec-agent-goal-commands.js +0 -486
  945. package/dist/cli/register-tool-commands.d.ts +0 -2
  946. package/dist/cli/register-tool-commands.js +0 -202
  947. package/dist/cli/register-workflow-commands.d.ts +0 -2
  948. package/dist/cli/register-workflow-commands.js +0 -158
  949. package/dist/cli/registry/core.d.ts +0 -2
  950. package/dist/cli/registry/core.js +0 -27
  951. package/dist/cli/registry/session.d.ts +0 -2
  952. package/dist/cli/registry/session.js +0 -137
  953. package/dist/cli/registry/system.d.ts +0 -2
  954. package/dist/cli/registry/system.js +0 -95
  955. package/dist/cli/registry/tooling.d.ts +0 -2
  956. package/dist/cli/registry/tooling.js +0 -112
  957. package/dist/cli/registry/visual.d.ts +0 -2
  958. package/dist/cli/registry/visual.js +0 -91
  959. package/dist/cli/release-promotion-gate.d.ts +0 -21
  960. package/dist/cli/release-promotion-gate.js +0 -93
  961. package/dist/cli/root.d.ts +0 -11
  962. package/dist/cli/root.js +0 -119
  963. package/dist/cli/runtime/capability-selector.d.ts +0 -18
  964. package/dist/cli/runtime/capability-selector.js +0 -208
  965. package/dist/cli/runtime/cli-runtime.d.ts +0 -10
  966. package/dist/cli/runtime/cli-runtime.js +0 -35
  967. package/dist/cli/runtime/cli-writer.d.ts +0 -18
  968. package/dist/cli/runtime/cli-writer.js +0 -87
  969. package/dist/cli/runtime/command-bus.d.ts +0 -45
  970. package/dist/cli/runtime/command-bus.js +0 -132
  971. package/dist/cli/runtime/event-bus.d.ts +0 -12
  972. package/dist/cli/runtime/event-bus.js +0 -31
  973. package/dist/cli/runtime/generic-provider-adapter.d.ts +0 -24
  974. package/dist/cli/runtime/generic-provider-adapter.js +0 -38
  975. package/dist/cli/runtime/index.d.ts +0 -17
  976. package/dist/cli/runtime/index.js +0 -18
  977. package/dist/cli/runtime/intent-classifier.d.ts +0 -16
  978. package/dist/cli/runtime/intent-classifier.js +0 -113
  979. package/dist/cli/runtime/plan-controller.d.ts +0 -7
  980. package/dist/cli/runtime/plan-controller.js +0 -29
  981. package/dist/cli/runtime/provider-adapter-registry.d.ts +0 -32
  982. package/dist/cli/runtime/provider-adapter-registry.js +0 -60
  983. package/dist/cli/runtime/provider-event-normalizer.d.ts +0 -19
  984. package/dist/cli/runtime/provider-event-normalizer.js +0 -150
  985. package/dist/cli/runtime/run-controller.d.ts +0 -7
  986. package/dist/cli/runtime/run-controller.js +0 -30
  987. package/dist/cli/runtime/runtime-sidecar.d.ts +0 -17
  988. package/dist/cli/runtime/runtime-sidecar.js +0 -138
  989. package/dist/cli/runtime/task-controller.d.ts +0 -7
  990. package/dist/cli/runtime/task-controller.js +0 -29
  991. package/dist/cli/runtime/types.d.ts +0 -312
  992. package/dist/cli/runtime/types.js +0 -6
  993. package/dist/cli/theme/index.d.ts +0 -18
  994. package/dist/cli/theme/index.js +0 -11
  995. package/dist/cli/theme/oklab-quantize.d.ts +0 -29
  996. package/dist/cli/theme/oklab-quantize.js +0 -105
  997. package/dist/cli/theme/render-table.d.ts +0 -59
  998. package/dist/cli/theme/render-table.js +0 -112
  999. package/dist/cli/theme/status-frame.d.ts +0 -10
  1000. package/dist/cli/theme/status-frame.js +0 -22
  1001. package/dist/cli/theme/terminal-capability.d.ts +0 -23
  1002. package/dist/cli/theme/terminal-capability.js +0 -104
  1003. package/dist/cli/theme/theme-doc.d.ts +0 -22
  1004. package/dist/cli/theme/theme-doc.js +0 -97
  1005. package/dist/cli/theme/theme-registry.d.ts +0 -25
  1006. package/dist/cli/theme/theme-registry.js +0 -357
  1007. package/dist/cli/theme/theme-resolver.d.ts +0 -12
  1008. package/dist/cli/theme/theme-resolver.js +0 -38
  1009. package/dist/cli/theme/tier-explain.d.ts +0 -21
  1010. package/dist/cli/theme/tier-explain.js +0 -60
  1011. package/dist/cli/ui/event.d.ts +0 -65
  1012. package/dist/cli/ui/event.js +0 -1
  1013. package/dist/cli/ui/green-rain-renderer.d.ts +0 -17
  1014. package/dist/cli/ui/green-rain-renderer.js +0 -97
  1015. package/dist/cli/ui/neon-grid-renderer.d.ts +0 -17
  1016. package/dist/cli/ui/neon-grid-renderer.js +0 -100
  1017. package/dist/cli/ui/plain-renderer.d.ts +0 -37
  1018. package/dist/cli/ui/plain-renderer.js +0 -160
  1019. package/dist/cli/ui/renderer.d.ts +0 -7
  1020. package/dist/cli/ui/renderer.js +0 -1
  1021. package/dist/cli/ui/rich-renderer.d.ts +0 -32
  1022. package/dist/cli/ui/rich-renderer.js +0 -234
  1023. package/dist/cli/ui/route-blocked-panel.d.ts +0 -5
  1024. package/dist/cli/ui/route-blocked-panel.js +0 -67
  1025. package/dist/cli/ui/rust-forge-renderer.d.ts +0 -19
  1026. package/dist/cli/ui/rust-forge-renderer.js +0 -143
  1027. package/dist/cli/ui/system24-renderer.d.ts +0 -96
  1028. package/dist/cli/ui/system24-renderer.js +0 -531
  1029. package/dist/cli/v2/chat-repl.d.ts +0 -37
  1030. package/dist/cli/v2/chat-repl.js +0 -282
  1031. package/dist/cli/v2/cli-v2-skeleton.d.ts +0 -105
  1032. package/dist/cli/v2/cli-v2-skeleton.js +0 -462
  1033. package/dist/cli/v2/interactive-prompt.d.ts +0 -52
  1034. package/dist/cli/v2/interactive-prompt.js +0 -191
  1035. package/dist/cli/v2/persistent-memory.d.ts +0 -70
  1036. package/dist/cli/v2/persistent-memory.js +0 -229
  1037. package/dist/cli/v2/provider-commands.d.ts +0 -120
  1038. package/dist/cli/v2/provider-commands.js +0 -244
  1039. package/dist/cli/v2/release-commands.d.ts +0 -29
  1040. package/dist/cli/v2/release-commands.js +0 -95
  1041. package/dist/cli/v2/workflow-commands.d.ts +0 -72
  1042. package/dist/cli/v2/workflow-commands.js +0 -198
  1043. package/dist/cockpit/git-numstat.d.ts +0 -10
  1044. package/dist/cockpit/git-numstat.js +0 -97
  1045. package/dist/cockpit/lsp-status.d.ts +0 -5
  1046. package/dist/cockpit/lsp-status.js +0 -51
  1047. package/dist/cockpit/types.d.ts +0 -66
  1048. package/dist/cockpit/types.js +0 -4
  1049. package/dist/cockpit/views/rail-view.d.ts +0 -9
  1050. package/dist/cockpit/views/rail-view.js +0 -160
  1051. package/dist/commands/agent.d.ts +0 -6
  1052. package/dist/commands/agent.js +0 -263
  1053. package/dist/commands/appshot.d.ts +0 -15
  1054. package/dist/commands/appshot.js +0 -122
  1055. package/dist/commands/auth.d.ts +0 -43
  1056. package/dist/commands/auth.js +0 -167
  1057. package/dist/commands/browser.d.ts +0 -18
  1058. package/dist/commands/browser.js +0 -110
  1059. package/dist/commands/chat/chat-turn-dag.d.ts +0 -21
  1060. package/dist/commands/chat/chat-turn-dag.js +0 -72
  1061. package/dist/commands/chat/core.d.ts +0 -27
  1062. package/dist/commands/chat/core.js +0 -423
  1063. package/dist/commands/chat/index.d.ts +0 -5
  1064. package/dist/commands/chat/index.js +0 -5
  1065. package/dist/commands/chat/native-root-loop.d.ts +0 -57
  1066. package/dist/commands/chat/native-root-loop.js +0 -1114
  1067. package/dist/commands/chat/runtime.d.ts +0 -46
  1068. package/dist/commands/chat/runtime.js +0 -397
  1069. package/dist/commands/chat/slash/commands/control.d.ts +0 -2
  1070. package/dist/commands/chat/slash/commands/control.js +0 -196
  1071. package/dist/commands/chat/slash/commands/diagnostics.d.ts +0 -2
  1072. package/dist/commands/chat/slash/commands/diagnostics.js +0 -64
  1073. package/dist/commands/chat/slash/commands/harness.d.ts +0 -2
  1074. package/dist/commands/chat/slash/commands/harness.js +0 -21
  1075. package/dist/commands/chat/slash/commands/index.d.ts +0 -2
  1076. package/dist/commands/chat/slash/commands/index.js +0 -18
  1077. package/dist/commands/chat/slash/commands/routing.d.ts +0 -2
  1078. package/dist/commands/chat/slash/commands/routing.js +0 -355
  1079. package/dist/commands/chat/slash/commands/session.d.ts +0 -2
  1080. package/dist/commands/chat/slash/commands/session.js +0 -104
  1081. package/dist/commands/chat/slash/commands/tool-plane.d.ts +0 -2
  1082. package/dist/commands/chat/slash/commands/tool-plane.js +0 -64
  1083. package/dist/commands/chat/slash/commands/ui.d.ts +0 -2
  1084. package/dist/commands/chat/slash/commands/ui.js +0 -108
  1085. package/dist/commands/chat/slash/context.d.ts +0 -3
  1086. package/dist/commands/chat/slash/context.js +0 -9
  1087. package/dist/commands/chat/slash/format.d.ts +0 -3
  1088. package/dist/commands/chat/slash/format.js +0 -19
  1089. package/dist/commands/chat/slash/parser.d.ts +0 -15
  1090. package/dist/commands/chat/slash/parser.js +0 -97
  1091. package/dist/commands/chat/slash/registry.d.ts +0 -13
  1092. package/dist/commands/chat/slash/registry.js +0 -38
  1093. package/dist/commands/chat/slash/result.d.ts +0 -7
  1094. package/dist/commands/chat/slash/result.js +0 -35
  1095. package/dist/commands/chat/slash/types.d.ts +0 -32
  1096. package/dist/commands/chat/slash/types.js +0 -1
  1097. package/dist/commands/chat/startup.d.ts +0 -68
  1098. package/dist/commands/chat/startup.js +0 -150
  1099. package/dist/commands/chat/state.d.ts +0 -3
  1100. package/dist/commands/chat/state.js +0 -100
  1101. package/dist/commands/chat/utils.d.ts +0 -25
  1102. package/dist/commands/chat/utils.js +0 -216
  1103. package/dist/commands/chat.d.ts +0 -2
  1104. package/dist/commands/chat.js +0 -2
  1105. package/dist/commands/cockpit/core.d.ts +0 -5
  1106. package/dist/commands/cockpit/core.js +0 -91
  1107. package/dist/commands/cockpit/render.d.ts +0 -5
  1108. package/dist/commands/cockpit/render.js +0 -969
  1109. package/dist/commands/cockpit/scroll.d.ts +0 -39
  1110. package/dist/commands/cockpit/scroll.js +0 -87
  1111. package/dist/commands/cockpit/telemetry.d.ts +0 -30
  1112. package/dist/commands/cockpit/telemetry.js +0 -361
  1113. package/dist/commands/cockpit/update-loop.d.ts +0 -54
  1114. package/dist/commands/cockpit/update-loop.js +0 -285
  1115. package/dist/commands/cockpit/utils.d.ts +0 -233
  1116. package/dist/commands/cockpit/utils.js +0 -388
  1117. package/dist/commands/cockpit.d.ts +0 -8
  1118. package/dist/commands/cockpit.js +0 -7
  1119. package/dist/commands/codex.d.ts +0 -70
  1120. package/dist/commands/codex.js +0 -597
  1121. package/dist/commands/consent.d.ts +0 -24
  1122. package/dist/commands/consent.js +0 -255
  1123. package/dist/commands/cron.d.ts +0 -16
  1124. package/dist/commands/cron.js +0 -187
  1125. package/dist/commands/dag-from-spec.d.ts +0 -31
  1126. package/dist/commands/dag-from-spec.js +0 -344
  1127. package/dist/commands/dag.d.ts +0 -10
  1128. package/dist/commands/dag.js +0 -467
  1129. package/dist/commands/design.d.ts +0 -73
  1130. package/dist/commands/design.js +0 -1253
  1131. package/dist/commands/diff-runs.d.ts +0 -3
  1132. package/dist/commands/diff-runs.js +0 -36
  1133. package/dist/commands/do.d.ts +0 -29
  1134. package/dist/commands/do.js +0 -196
  1135. package/dist/commands/doctor/checks.d.ts +0 -19
  1136. package/dist/commands/doctor/checks.js +0 -861
  1137. package/dist/commands/doctor/core.d.ts +0 -2
  1138. package/dist/commands/doctor/core.js +0 -53
  1139. package/dist/commands/doctor/fix-plan.d.ts +0 -69
  1140. package/dist/commands/doctor/fix-plan.js +0 -78
  1141. package/dist/commands/doctor/fix.d.ts +0 -5
  1142. package/dist/commands/doctor/fix.js +0 -1002
  1143. package/dist/commands/doctor/report.d.ts +0 -7
  1144. package/dist/commands/doctor/report.js +0 -140
  1145. package/dist/commands/doctor/utils.d.ts +0 -52
  1146. package/dist/commands/doctor/utils.js +0 -124
  1147. package/dist/commands/doctor.d.ts +0 -2
  1148. package/dist/commands/doctor.js +0 -1
  1149. package/dist/commands/goal-interview.d.ts +0 -18
  1150. package/dist/commands/goal-interview.js +0 -396
  1151. package/dist/commands/goal.d.ts +0 -46
  1152. package/dist/commands/goal.js +0 -492
  1153. package/dist/commands/google.d.ts +0 -1
  1154. package/dist/commands/google.js +0 -27
  1155. package/dist/commands/graph.d.ts +0 -71
  1156. package/dist/commands/graph.js +0 -208
  1157. package/dist/commands/hud.d.ts +0 -57
  1158. package/dist/commands/hud.js +0 -1031
  1159. package/dist/commands/image.d.ts +0 -16
  1160. package/dist/commands/image.js +0 -102
  1161. package/dist/commands/init/config.d.ts +0 -8
  1162. package/dist/commands/init/config.js +0 -97
  1163. package/dist/commands/init/constants.d.ts +0 -7
  1164. package/dist/commands/init/constants.js +0 -49
  1165. package/dist/commands/init/content.d.ts +0 -12
  1166. package/dist/commands/init/content.js +0 -1775
  1167. package/dist/commands/init/core.d.ts +0 -2
  1168. package/dist/commands/init/core.js +0 -298
  1169. package/dist/commands/init/interactive.d.ts +0 -9
  1170. package/dist/commands/init/interactive.js +0 -170
  1171. package/dist/commands/init/scaffold.d.ts +0 -17
  1172. package/dist/commands/init/scaffold.js +0 -146
  1173. package/dist/commands/init/types.d.ts +0 -35
  1174. package/dist/commands/init/types.js +0 -1
  1175. package/dist/commands/init/utils.d.ts +0 -13
  1176. package/dist/commands/init/utils.js +0 -107
  1177. package/dist/commands/init.d.ts +0 -32
  1178. package/dist/commands/init.js +0 -2581
  1179. package/dist/commands/inspect.d.ts +0 -9
  1180. package/dist/commands/inspect.js +0 -12
  1181. package/dist/commands/lsp.d.ts +0 -8
  1182. package/dist/commands/lsp.js +0 -60
  1183. package/dist/commands/mcp/config.d.ts +0 -32
  1184. package/dist/commands/mcp/config.js +0 -264
  1185. package/dist/commands/mcp/doctor-fix.d.ts +0 -12
  1186. package/dist/commands/mcp/doctor-fix.js +0 -261
  1187. package/dist/commands/mcp/doctor.d.ts +0 -55
  1188. package/dist/commands/mcp/doctor.js +0 -401
  1189. package/dist/commands/mcp/list.d.ts +0 -1
  1190. package/dist/commands/mcp/list.js +0 -56
  1191. package/dist/commands/mcp/shared.d.ts +0 -47
  1192. package/dist/commands/mcp/shared.js +0 -192
  1193. package/dist/commands/mcp/test.d.ts +0 -5
  1194. package/dist/commands/mcp/test.js +0 -457
  1195. package/dist/commands/mcp.d.ts +0 -8
  1196. package/dist/commands/mcp.js +0 -5
  1197. package/dist/commands/menu.d.ts +0 -4
  1198. package/dist/commands/menu.js +0 -213
  1199. package/dist/commands/merge.d.ts +0 -9
  1200. package/dist/commands/merge.js +0 -363
  1201. package/dist/commands/mode.d.ts +0 -3
  1202. package/dist/commands/mode.js +0 -60
  1203. package/dist/commands/model.d.ts +0 -15
  1204. package/dist/commands/model.js +0 -215
  1205. package/dist/commands/notice.d.ts +0 -7
  1206. package/dist/commands/notice.js +0 -76
  1207. package/dist/commands/open-design-agent.d.ts +0 -46
  1208. package/dist/commands/open-design-agent.js +0 -569
  1209. package/dist/commands/orchestrate.d.ts +0 -18
  1210. package/dist/commands/orchestrate.js +0 -284
  1211. package/dist/commands/parallel/core.d.ts +0 -34
  1212. package/dist/commands/parallel/core.js +0 -296
  1213. package/dist/commands/parallel/index.d.ts +0 -5
  1214. package/dist/commands/parallel/index.js +0 -5
  1215. package/dist/commands/parallel/interactive.d.ts +0 -27
  1216. package/dist/commands/parallel/interactive.js +0 -172
  1217. package/dist/commands/parallel/orchestrator.d.ts +0 -40
  1218. package/dist/commands/parallel/orchestrator.js +0 -564
  1219. package/dist/commands/parallel/utils.d.ts +0 -12
  1220. package/dist/commands/parallel/utils.js +0 -114
  1221. package/dist/commands/parallel/worker.d.ts +0 -43
  1222. package/dist/commands/parallel/worker.js +0 -276
  1223. package/dist/commands/parallel.d.ts +0 -4
  1224. package/dist/commands/parallel.js +0 -3
  1225. package/dist/commands/plan.d.ts +0 -6
  1226. package/dist/commands/plan.js +0 -113
  1227. package/dist/commands/project-index.d.ts +0 -18
  1228. package/dist/commands/project-index.js +0 -312
  1229. package/dist/commands/provider.d.ts +0 -65
  1230. package/dist/commands/provider.js +0 -621
  1231. package/dist/commands/rail.d.ts +0 -6
  1232. package/dist/commands/rail.js +0 -7
  1233. package/dist/commands/replay.d.ts +0 -7
  1234. package/dist/commands/replay.js +0 -10
  1235. package/dist/commands/research.d.ts +0 -5
  1236. package/dist/commands/research.js +0 -48
  1237. package/dist/commands/run.d.ts +0 -15
  1238. package/dist/commands/run.js +0 -312
  1239. package/dist/commands/runs.d.ts +0 -36
  1240. package/dist/commands/runs.js +0 -504
  1241. package/dist/commands/screenshot.d.ts +0 -10
  1242. package/dist/commands/screenshot.js +0 -72
  1243. package/dist/commands/skill.d.ts +0 -28
  1244. package/dist/commands/skill.js +0 -382
  1245. package/dist/commands/snip.d.ts +0 -8
  1246. package/dist/commands/snip.js +0 -77
  1247. package/dist/commands/spec.d.ts +0 -17
  1248. package/dist/commands/spec.js +0 -262
  1249. package/dist/commands/specify.d.ts +0 -18
  1250. package/dist/commands/specify.js +0 -111
  1251. package/dist/commands/star.d.ts +0 -3
  1252. package/dist/commands/star.js +0 -35
  1253. package/dist/commands/summary.d.ts +0 -5
  1254. package/dist/commands/summary.js +0 -445
  1255. package/dist/commands/sync.d.ts +0 -6
  1256. package/dist/commands/sync.js +0 -129
  1257. package/dist/commands/team.d.ts +0 -8
  1258. package/dist/commands/team.js +0 -302
  1259. package/dist/commands/verify.d.ts +0 -4
  1260. package/dist/commands/verify.js +0 -320
  1261. package/dist/commands/version.d.ts +0 -6
  1262. package/dist/commands/version.js +0 -83
  1263. package/dist/commands/web-bridge.d.ts +0 -12
  1264. package/dist/commands/web-bridge.js +0 -75
  1265. package/dist/commands/why.d.ts +0 -14
  1266. package/dist/commands/why.js +0 -46
  1267. package/dist/commands/workflow.d.ts +0 -13
  1268. package/dist/commands/workflow.js +0 -385
  1269. package/dist/contracts/dag.d.ts +0 -134
  1270. package/dist/contracts/dag.js +0 -4
  1271. package/dist/contracts/decision.d.ts +0 -23
  1272. package/dist/contracts/decision.js +0 -1
  1273. package/dist/contracts/envelope.d.ts +0 -29
  1274. package/dist/contracts/envelope.js +0 -1
  1275. package/dist/contracts/errors.d.ts +0 -13
  1276. package/dist/contracts/errors.js +0 -15
  1277. package/dist/contracts/evidence.d.ts +0 -23
  1278. package/dist/contracts/evidence.js +0 -1
  1279. package/dist/contracts/goal.d.ts +0 -169
  1280. package/dist/contracts/goal.js +0 -4
  1281. package/dist/contracts/hud.d.ts +0 -17
  1282. package/dist/contracts/hud.js +0 -4
  1283. package/dist/contracts/index.d.ts +0 -8
  1284. package/dist/contracts/index.js +0 -8
  1285. package/dist/contracts/interview.d.ts +0 -106
  1286. package/dist/contracts/interview.js +0 -9
  1287. package/dist/contracts/orchestration.d.ts +0 -215
  1288. package/dist/contracts/orchestration.js +0 -4
  1289. package/dist/contracts/proof.d.ts +0 -32
  1290. package/dist/contracts/proof.js +0 -1
  1291. package/dist/contracts/provider-health.d.ts +0 -79
  1292. package/dist/contracts/provider-health.js +0 -57
  1293. package/dist/contracts/provider.d.ts +0 -35
  1294. package/dist/contracts/provider.js +0 -1
  1295. package/dist/contracts/replay.d.ts +0 -95
  1296. package/dist/contracts/replay.js +0 -7
  1297. package/dist/contracts/run.d.ts +0 -34
  1298. package/dist/contracts/run.js +0 -1
  1299. package/dist/contracts/safety.d.ts +0 -10
  1300. package/dist/contracts/safety.js +0 -4
  1301. package/dist/contracts/version.d.ts +0 -21
  1302. package/dist/contracts/version.js +0 -1
  1303. package/dist/contracts/web-bridge.d.ts +0 -95
  1304. package/dist/contracts/web-bridge.js +0 -168
  1305. package/dist/contracts/worker-context.d.ts +0 -70
  1306. package/dist/contracts/worker-context.js +0 -1
  1307. package/dist/evidence/attempt-record.d.ts +0 -78
  1308. package/dist/evidence/attempt-record.js +0 -16
  1309. package/dist/evidence/context-snapshot.d.ts +0 -20
  1310. package/dist/evidence/context-snapshot.js +0 -81
  1311. package/dist/evidence/decision-trace.d.ts +0 -14
  1312. package/dist/evidence/decision-trace.js +0 -54
  1313. package/dist/evidence/diagnosis.d.ts +0 -15
  1314. package/dist/evidence/diagnosis.js +0 -279
  1315. package/dist/evidence/evidence-recorder.d.ts +0 -19
  1316. package/dist/evidence/evidence-recorder.js +0 -55
  1317. package/dist/evidence/evidence-trust-score.d.ts +0 -101
  1318. package/dist/evidence/evidence-trust-score.js +0 -408
  1319. package/dist/evidence/index.d.ts +0 -21
  1320. package/dist/evidence/index.js +0 -10
  1321. package/dist/evidence/proof-trust-cli.d.ts +0 -8
  1322. package/dist/evidence/proof-trust-cli.js +0 -27
  1323. package/dist/evidence/proof-trust.d.ts +0 -14
  1324. package/dist/evidence/proof-trust.js +0 -381
  1325. package/dist/evidence/regression-proof-matrix.d.ts +0 -42
  1326. package/dist/evidence/regression-proof-matrix.js +0 -72
  1327. package/dist/evidence/run-trace.d.ts +0 -103
  1328. package/dist/evidence/run-trace.js +0 -191
  1329. package/dist/goal/compiler.d.ts +0 -5
  1330. package/dist/goal/compiler.js +0 -350
  1331. package/dist/goal/control-loop.d.ts +0 -124
  1332. package/dist/goal/control-loop.js +0 -1123
  1333. package/dist/goal/ensemble-memory.d.ts +0 -26
  1334. package/dist/goal/ensemble-memory.js +0 -55
  1335. package/dist/goal/eval-criteria.d.ts +0 -3
  1336. package/dist/goal/eval-criteria.js +0 -72
  1337. package/dist/goal/evidence.d.ts +0 -20
  1338. package/dist/goal/evidence.js +0 -321
  1339. package/dist/goal/goal-daemon.d.ts +0 -40
  1340. package/dist/goal/goal-daemon.js +0 -318
  1341. package/dist/goal/intake.d.ts +0 -48
  1342. package/dist/goal/intake.js +0 -561
  1343. package/dist/goal/intent-analyzer.d.ts +0 -9
  1344. package/dist/goal/intent-analyzer.js +0 -322
  1345. package/dist/goal/intent-frame.d.ts +0 -65
  1346. package/dist/goal/intent-frame.js +0 -596
  1347. package/dist/goal/interview-assimilation.d.ts +0 -13
  1348. package/dist/goal/interview-assimilation.js +0 -383
  1349. package/dist/goal/interview-question-bank.d.ts +0 -11
  1350. package/dist/goal/interview-question-bank.js +0 -225
  1351. package/dist/goal/interview-scoring.d.ts +0 -31
  1352. package/dist/goal/interview-scoring.js +0 -187
  1353. package/dist/goal/interview-session.d.ts +0 -25
  1354. package/dist/goal/interview-session.js +0 -116
  1355. package/dist/goal/persistence.d.ts +0 -11
  1356. package/dist/goal/persistence.js +0 -134
  1357. package/dist/goal/prompt-digest.d.ts +0 -13
  1358. package/dist/goal/prompt-digest.js +0 -111
  1359. package/dist/goal/scoring.d.ts +0 -2
  1360. package/dist/goal/scoring.js +0 -69
  1361. package/dist/goal/wake-policy.d.ts +0 -26
  1362. package/dist/goal/wake-policy.js +0 -58
  1363. package/dist/harness/create-harness-task-runner.d.ts +0 -43
  1364. package/dist/harness/create-harness-task-runner.js +0 -56
  1365. package/dist/harness/execute-harness-run.d.ts +0 -34
  1366. package/dist/harness/execute-harness-run.js +0 -109
  1367. package/dist/hooks/events.d.ts +0 -71
  1368. package/dist/hooks/events.js +0 -1
  1369. package/dist/hooks/hook-bus.d.ts +0 -13
  1370. package/dist/hooks/hook-bus.js +0 -59
  1371. package/dist/hooks/hook-registry.d.ts +0 -6
  1372. package/dist/hooks/hook-registry.js +0 -64
  1373. package/dist/hooks/index.d.ts +0 -3
  1374. package/dist/hooks/index.js +0 -2
  1375. package/dist/hud/index.d.ts +0 -9
  1376. package/dist/hud/index.js +0 -11
  1377. package/dist/hud/live-renderer.d.ts +0 -17
  1378. package/dist/hud/live-renderer.js +0 -52
  1379. package/dist/hud/render.d.ts +0 -64
  1380. package/dist/hud/render.js +0 -960
  1381. package/dist/hud/types.d.ts +0 -58
  1382. package/dist/hud/types.js +0 -7
  1383. package/dist/input/input-artifacts.d.ts +0 -10
  1384. package/dist/input/input-artifacts.js +0 -19
  1385. package/dist/input/input-envelope.d.ts +0 -86
  1386. package/dist/input/input-envelope.js +0 -87
  1387. package/dist/integrations/servarr/adapter.d.ts +0 -29
  1388. package/dist/integrations/servarr/adapter.js +0 -156
  1389. package/dist/integrations/servarr/commands.d.ts +0 -15
  1390. package/dist/integrations/servarr/commands.js +0 -119
  1391. package/dist/integrations/servarr/schema.d.ts +0 -34
  1392. package/dist/integrations/servarr/schema.js +0 -149
  1393. package/dist/kimi/ascii-art.d.ts +0 -1
  1394. package/dist/kimi/ascii-art.js +0 -23
  1395. package/dist/kimi/banner.d.ts +0 -53
  1396. package/dist/kimi/banner.js +0 -284
  1397. package/dist/kimi/bug-filter.d.ts +0 -15
  1398. package/dist/kimi/bug-filter.js +0 -150
  1399. package/dist/kimi/capability.d.ts +0 -25
  1400. package/dist/kimi/capability.js +0 -68
  1401. package/dist/kimi/isolated-home.d.ts +0 -21
  1402. package/dist/kimi/isolated-home.js +0 -270
  1403. package/dist/kimi/runner.d.ts +0 -74
  1404. package/dist/kimi/runner.js +0 -1052
  1405. package/dist/kimi/simple-art.d.ts +0 -1
  1406. package/dist/kimi/simple-art.js +0 -1
  1407. package/dist/kimi/statusline.d.ts +0 -26
  1408. package/dist/kimi/statusline.js +0 -142
  1409. package/dist/kimi/usage.d.ts +0 -52
  1410. package/dist/kimi/usage.js +0 -481
  1411. package/dist/kimi/wire-client.d.ts +0 -95
  1412. package/dist/kimi/wire-client.js +0 -338
  1413. package/dist/lsp/default-config.d.ts +0 -16
  1414. package/dist/lsp/default-config.js +0 -26
  1415. package/dist/mcp/acp-server.d.ts +0 -2
  1416. package/dist/mcp/acp-server.js +0 -357
  1417. package/dist/mcp/autoconnect.d.ts +0 -60
  1418. package/dist/mcp/autoconnect.js +0 -192
  1419. package/dist/mcp/client.d.ts +0 -112
  1420. package/dist/mcp/client.js +0 -276
  1421. package/dist/mcp/config-permissions.d.ts +0 -23
  1422. package/dist/mcp/config-permissions.js +0 -66
  1423. package/dist/mcp/consent-flow.d.ts +0 -152
  1424. package/dist/mcp/consent-flow.js +0 -329
  1425. package/dist/mcp/filesystem-readonly-server.d.ts +0 -2
  1426. package/dist/mcp/filesystem-readonly-server.js +0 -320
  1427. package/dist/mcp/governance.d.ts +0 -292
  1428. package/dist/mcp/governance.js +0 -602
  1429. package/dist/mcp/host.d.ts +0 -154
  1430. package/dist/mcp/host.js +0 -792
  1431. package/dist/mcp/omk-project-server.d.ts +0 -2
  1432. package/dist/mcp/omk-project-server.js +0 -1632
  1433. package/dist/mcp/omk-web-bridge-server.d.ts +0 -14
  1434. package/dist/mcp/omk-web-bridge-server.js +0 -154
  1435. package/dist/mcp/permission-resolver.d.ts +0 -67
  1436. package/dist/mcp/permission-resolver.js +0 -124
  1437. package/dist/mcp/quality-gate.d.ts +0 -36
  1438. package/dist/mcp/quality-gate.js +0 -247
  1439. package/dist/mcp/quarantine.d.ts +0 -11
  1440. package/dist/mcp/quarantine.js +0 -79
  1441. package/dist/mcp/secret-scanner.d.ts +0 -195
  1442. package/dist/mcp/secret-scanner.js +0 -742
  1443. package/dist/mcp/server-catalog.d.ts +0 -36
  1444. package/dist/mcp/server-catalog.js +0 -168
  1445. package/dist/mcp/shared-secret-registry.d.ts +0 -61
  1446. package/dist/mcp/shared-secret-registry.js +0 -171
  1447. package/dist/mcp/transports/stdio.d.ts +0 -22
  1448. package/dist/mcp/transports/stdio.js +0 -165
  1449. package/dist/mcp/transports/streamable-http.d.ts +0 -31
  1450. package/dist/mcp/transports/streamable-http.js +0 -289
  1451. package/dist/mcp/transports/transport.d.ts +0 -20
  1452. package/dist/mcp/transports/transport.js +0 -3
  1453. package/dist/memory/embedding.d.ts +0 -11
  1454. package/dist/memory/embedding.js +0 -24
  1455. package/dist/memory/graph-delta-log.d.ts +0 -137
  1456. package/dist/memory/graph-delta-log.js +0 -650
  1457. package/dist/memory/graph-viewer.d.ts +0 -72
  1458. package/dist/memory/graph-viewer.js +0 -383
  1459. package/dist/memory/kuzu-memory-store.d.ts +0 -37
  1460. package/dist/memory/kuzu-memory-store.js +0 -453
  1461. package/dist/memory/local-graph-memory-store.d.ts +0 -189
  1462. package/dist/memory/local-graph-memory-store.js +0 -1305
  1463. package/dist/memory/memory-config.d.ts +0 -51
  1464. package/dist/memory/memory-config.js +0 -187
  1465. package/dist/memory/memory-store.d.ts +0 -66
  1466. package/dist/memory/memory-store.js +0 -228
  1467. package/dist/memory/ontology-model.d.ts +0 -175
  1468. package/dist/memory/ontology-model.js +0 -131
  1469. package/dist/openai/image-client.d.ts +0 -103
  1470. package/dist/openai/image-client.js +0 -380
  1471. package/dist/orchestration/adaptorch-topology.d.ts +0 -59
  1472. package/dist/orchestration/adaptorch-topology.js +0 -194
  1473. package/dist/orchestration/agent-worker.d.ts +0 -72
  1474. package/dist/orchestration/agent-worker.js +0 -278
  1475. package/dist/orchestration/capability-agents.d.ts +0 -14
  1476. package/dist/orchestration/capability-agents.js +0 -180
  1477. package/dist/orchestration/capability-routing.d.ts +0 -65
  1478. package/dist/orchestration/capability-routing.js +0 -121
  1479. package/dist/orchestration/compiled-dag-executor.d.ts +0 -56
  1480. package/dist/orchestration/compiled-dag-executor.js +0 -88
  1481. package/dist/orchestration/completion-artifacts.d.ts +0 -37
  1482. package/dist/orchestration/completion-artifacts.js +0 -84
  1483. package/dist/orchestration/completion-sentinel.d.ts +0 -37
  1484. package/dist/orchestration/completion-sentinel.js +0 -66
  1485. package/dist/orchestration/contracts/index.d.ts +0 -45
  1486. package/dist/orchestration/contracts/index.js +0 -6
  1487. package/dist/orchestration/dag-artifacts.d.ts +0 -11
  1488. package/dist/orchestration/dag-artifacts.js +0 -42
  1489. package/dist/orchestration/dag-compiler-presets.d.ts +0 -20
  1490. package/dist/orchestration/dag-compiler-presets.js +0 -476
  1491. package/dist/orchestration/dag-compiler-types.d.ts +0 -43
  1492. package/dist/orchestration/dag-compiler-types.js +0 -1
  1493. package/dist/orchestration/dag-compiler.d.ts +0 -3
  1494. package/dist/orchestration/dag-compiler.js +0 -135
  1495. package/dist/orchestration/dag.d.ts +0 -158
  1496. package/dist/orchestration/dag.js +0 -310
  1497. package/dist/orchestration/diagnostics.d.ts +0 -27
  1498. package/dist/orchestration/diagnostics.js +0 -262
  1499. package/dist/orchestration/enhanced-modes.d.ts +0 -116
  1500. package/dist/orchestration/enhanced-modes.js +0 -231
  1501. package/dist/orchestration/enhanced-parallel-orchestrator.d.ts +0 -127
  1502. package/dist/orchestration/enhanced-parallel-orchestrator.js +0 -734
  1503. package/dist/orchestration/ensemble-decision.d.ts +0 -40
  1504. package/dist/orchestration/ensemble-decision.js +0 -297
  1505. package/dist/orchestration/ensemble.d.ts +0 -22
  1506. package/dist/orchestration/ensemble.js +0 -558
  1507. package/dist/orchestration/eta.d.ts +0 -10
  1508. package/dist/orchestration/eta.js +0 -75
  1509. package/dist/orchestration/evidence-check.d.ts +0 -36
  1510. package/dist/orchestration/evidence-check.js +0 -257
  1511. package/dist/orchestration/evidence-gate.d.ts +0 -34
  1512. package/dist/orchestration/evidence-gate.js +0 -501
  1513. package/dist/orchestration/execution-planner.d.ts +0 -40
  1514. package/dist/orchestration/execution-planner.js +0 -252
  1515. package/dist/orchestration/executor.d.ts +0 -11
  1516. package/dist/orchestration/executor.js +0 -979
  1517. package/dist/orchestration/interactive-orchestrator.d.ts +0 -134
  1518. package/dist/orchestration/interactive-orchestrator.js +0 -450
  1519. package/dist/orchestration/log-streamer.d.ts +0 -104
  1520. package/dist/orchestration/log-streamer.js +0 -293
  1521. package/dist/orchestration/loop-artifacts.d.ts +0 -14
  1522. package/dist/orchestration/loop-artifacts.js +0 -20
  1523. package/dist/orchestration/loop-controller.d.ts +0 -14
  1524. package/dist/orchestration/loop-controller.js +0 -311
  1525. package/dist/orchestration/loop-guard.d.ts +0 -28
  1526. package/dist/orchestration/loop-guard.js +0 -104
  1527. package/dist/orchestration/loop-state.d.ts +0 -86
  1528. package/dist/orchestration/loop-state.js +0 -1
  1529. package/dist/orchestration/merge-arbiter.d.ts +0 -91
  1530. package/dist/orchestration/merge-arbiter.js +0 -376
  1531. package/dist/orchestration/node-monitor.d.ts +0 -18
  1532. package/dist/orchestration/node-monitor.js +0 -98
  1533. package/dist/orchestration/orchestrate-prompt.d.ts +0 -43
  1534. package/dist/orchestration/orchestrate-prompt.js +0 -533
  1535. package/dist/orchestration/orchestration-state.d.ts +0 -3
  1536. package/dist/orchestration/orchestration-state.js +0 -2
  1537. package/dist/orchestration/parallel-orchestrator.d.ts +0 -165
  1538. package/dist/orchestration/parallel-orchestrator.js +0 -607
  1539. package/dist/orchestration/parallel-ui.d.ts +0 -51
  1540. package/dist/orchestration/parallel-ui.js +0 -470
  1541. package/dist/orchestration/repair-policy.d.ts +0 -20
  1542. package/dist/orchestration/repair-policy.js +0 -221
  1543. package/dist/orchestration/routing/inventory.d.ts +0 -9
  1544. package/dist/orchestration/routing/inventory.js +0 -273
  1545. package/dist/orchestration/routing/mcp-config.d.ts +0 -17
  1546. package/dist/orchestration/routing/mcp-config.js +0 -154
  1547. package/dist/orchestration/routing/types.d.ts +0 -38
  1548. package/dist/orchestration/routing/types.js +0 -4
  1549. package/dist/orchestration/routing.d.ts +0 -35
  1550. package/dist/orchestration/routing.js +0 -986
  1551. package/dist/orchestration/run-state.d.ts +0 -36
  1552. package/dist/orchestration/run-state.js +0 -176
  1553. package/dist/orchestration/scheduler.d.ts +0 -9
  1554. package/dist/orchestration/scheduler.js +0 -85
  1555. package/dist/orchestration/skill-assigner.d.ts +0 -22
  1556. package/dist/orchestration/skill-assigner.js +0 -345
  1557. package/dist/orchestration/state-machine/index.d.ts +0 -3
  1558. package/dist/orchestration/state-machine/index.js +0 -3
  1559. package/dist/orchestration/state-machine/node-state-machine.d.ts +0 -24
  1560. package/dist/orchestration/state-machine/node-state-machine.js +0 -35
  1561. package/dist/orchestration/state-machine/run-state-machine.d.ts +0 -38
  1562. package/dist/orchestration/state-machine/run-state-machine.js +0 -161
  1563. package/dist/orchestration/state-machine/run-state-manager.d.ts +0 -108
  1564. package/dist/orchestration/state-machine/run-state-manager.js +0 -314
  1565. package/dist/orchestration/state-persister.d.ts +0 -7
  1566. package/dist/orchestration/state-persister.js +0 -84
  1567. package/dist/orchestration/task-graph.d.ts +0 -29
  1568. package/dist/orchestration/task-graph.js +0 -261
  1569. package/dist/orchestration/verification-only.d.ts +0 -28
  1570. package/dist/orchestration/verification-only.js +0 -94
  1571. package/dist/providers/anthropic-messages-runner.d.ts +0 -17
  1572. package/dist/providers/anthropic-messages-runner.js +0 -197
  1573. package/dist/providers/attempt-recorder.d.ts +0 -10
  1574. package/dist/providers/attempt-recorder.js +0 -38
  1575. package/dist/providers/codex-cli-runner.d.ts +0 -11
  1576. package/dist/providers/codex-cli-runner.js +0 -129
  1577. package/dist/providers/context-preflight.d.ts +0 -47
  1578. package/dist/providers/context-preflight.js +0 -134
  1579. package/dist/providers/deepseek/deepseek-balance.d.ts +0 -29
  1580. package/dist/providers/deepseek/deepseek-balance.js +0 -80
  1581. package/dist/providers/deepseek/deepseek-client.d.ts +0 -53
  1582. package/dist/providers/deepseek/deepseek-client.js +0 -164
  1583. package/dist/providers/deepseek/deepseek-config.d.ts +0 -89
  1584. package/dist/providers/deepseek/deepseek-config.js +0 -272
  1585. package/dist/providers/deepseek/deepseek-errors.d.ts +0 -5
  1586. package/dist/providers/deepseek/deepseek-errors.js +0 -48
  1587. package/dist/providers/deepseek/deepseek-provider.d.ts +0 -10
  1588. package/dist/providers/deepseek/deepseek-provider.js +0 -162
  1589. package/dist/providers/deepseek/deepseek-super-config.d.ts +0 -31
  1590. package/dist/providers/deepseek/deepseek-super-config.js +0 -136
  1591. package/dist/providers/deepseek-provider.d.ts +0 -8
  1592. package/dist/providers/deepseek-provider.js +0 -78
  1593. package/dist/providers/health.d.ts +0 -16
  1594. package/dist/providers/health.js +0 -101
  1595. package/dist/providers/index.d.ts +0 -23
  1596. package/dist/providers/index.js +0 -23
  1597. package/dist/providers/kimi-provider-failure.d.ts +0 -8
  1598. package/dist/providers/kimi-provider-failure.js +0 -56
  1599. package/dist/providers/kimi-provider.d.ts +0 -7
  1600. package/dist/providers/kimi-provider.js +0 -27
  1601. package/dist/providers/model-registry.d.ts +0 -103
  1602. package/dist/providers/model-registry.js +0 -605
  1603. package/dist/providers/model-table.d.ts +0 -24
  1604. package/dist/providers/model-table.js +0 -140
  1605. package/dist/providers/model-tabs.d.ts +0 -33
  1606. package/dist/providers/model-tabs.js +0 -98
  1607. package/dist/providers/openai-compatible-runner.d.ts +0 -17
  1608. package/dist/providers/openai-compatible-runner.js +0 -180
  1609. package/dist/providers/provider-health.d.ts +0 -46
  1610. package/dist/providers/provider-health.js +0 -200
  1611. package/dist/providers/provider-router.d.ts +0 -8
  1612. package/dist/providers/provider-router.js +0 -174
  1613. package/dist/providers/provider-runtime.d.ts +0 -17
  1614. package/dist/providers/provider-runtime.js +0 -262
  1615. package/dist/providers/provider-stats.d.ts +0 -56
  1616. package/dist/providers/provider-stats.js +0 -303
  1617. package/dist/providers/provider-task-runner.d.ts +0 -23
  1618. package/dist/providers/provider-task-runner.js +0 -1202
  1619. package/dist/providers/provider.d.ts +0 -76
  1620. package/dist/providers/provider.js +0 -9
  1621. package/dist/providers/router.d.ts +0 -14
  1622. package/dist/providers/router.js +0 -563
  1623. package/dist/providers/runner/deepseek-helpers.d.ts +0 -38
  1624. package/dist/providers/runner/deepseek-helpers.js +0 -150
  1625. package/dist/providers/runner/env.d.ts +0 -12
  1626. package/dist/providers/runner/env.js +0 -98
  1627. package/dist/providers/runner/execution.d.ts +0 -26
  1628. package/dist/providers/runner/execution.js +0 -42
  1629. package/dist/providers/runner/helpers.d.ts +0 -9
  1630. package/dist/providers/runner/helpers.js +0 -38
  1631. package/dist/providers/runner/results.d.ts +0 -26
  1632. package/dist/providers/runner/results.js +0 -104
  1633. package/dist/providers/thinking-levels.d.ts +0 -7
  1634. package/dist/providers/thinking-levels.js +0 -70
  1635. package/dist/providers/types.d.ts +0 -143
  1636. package/dist/providers/types.js +0 -60
  1637. package/dist/replay/differ.d.ts +0 -5
  1638. package/dist/replay/differ.js +0 -314
  1639. package/dist/replay/index.d.ts +0 -6
  1640. package/dist/replay/index.js +0 -4
  1641. package/dist/replay/inspector.d.ts +0 -14
  1642. package/dist/replay/inspector.js +0 -264
  1643. package/dist/replay/manifest-builder.d.ts +0 -11
  1644. package/dist/replay/manifest-builder.js +0 -184
  1645. package/dist/replay/replay-engine.d.ts +0 -18
  1646. package/dist/replay/replay-engine.js +0 -265
  1647. package/dist/runtime/adapter.d.ts +0 -77
  1648. package/dist/runtime/adapter.js +0 -28
  1649. package/dist/runtime/advanced-control-loop.d.ts +0 -60
  1650. package/dist/runtime/advanced-control-loop.js +0 -136
  1651. package/dist/runtime/agent-runtime.d.ts +0 -133
  1652. package/dist/runtime/agent-runtime.js +0 -18
  1653. package/dist/runtime/blast-radius.d.ts +0 -10
  1654. package/dist/runtime/blast-radius.js +0 -14
  1655. package/dist/runtime/cache-stable-session.d.ts +0 -55
  1656. package/dist/runtime/cache-stable-session.js +0 -108
  1657. package/dist/runtime/capability-injection.d.ts +0 -39
  1658. package/dist/runtime/capability-injection.js +0 -93
  1659. package/dist/runtime/chat-advisory-runtime.d.ts +0 -2
  1660. package/dist/runtime/chat-advisory-runtime.js +0 -71
  1661. package/dist/runtime/child-env.d.ts +0 -31
  1662. package/dist/runtime/child-env.js +0 -131
  1663. package/dist/runtime/codex-cli-runtime.d.ts +0 -10
  1664. package/dist/runtime/codex-cli-runtime.js +0 -78
  1665. package/dist/runtime/codex-runtime.d.ts +0 -35
  1666. package/dist/runtime/codex-runtime.js +0 -264
  1667. package/dist/runtime/command-bus.d.ts +0 -13
  1668. package/dist/runtime/command-bus.js +0 -57
  1669. package/dist/runtime/context-broker-converter.d.ts +0 -9
  1670. package/dist/runtime/context-broker-converter.js +0 -96
  1671. package/dist/runtime/context-broker.d.ts +0 -34
  1672. package/dist/runtime/context-broker.js +0 -321
  1673. package/dist/runtime/context-budget-optimizer.d.ts +0 -73
  1674. package/dist/runtime/context-budget-optimizer.js +0 -300
  1675. package/dist/runtime/context-capsule.d.ts +0 -81
  1676. package/dist/runtime/context-capsule.js +0 -46
  1677. package/dist/runtime/contracts/command-envelope.d.ts +0 -99
  1678. package/dist/runtime/contracts/command-envelope.js +0 -5
  1679. package/dist/runtime/contracts/evidence.d.ts +0 -87
  1680. package/dist/runtime/contracts/evidence.js +0 -7
  1681. package/dist/runtime/contracts/reasoning-trace.d.ts +0 -120
  1682. package/dist/runtime/contracts/reasoning-trace.js +0 -10
  1683. package/dist/runtime/contracts/router-v2.d.ts +0 -44
  1684. package/dist/runtime/contracts/router-v2.js +0 -4
  1685. package/dist/runtime/contracts/shared.d.ts +0 -34
  1686. package/dist/runtime/contracts/shared.js +0 -12
  1687. package/dist/runtime/contracts/weakness-remediation.d.ts +0 -83
  1688. package/dist/runtime/contracts/weakness-remediation.js +0 -44
  1689. package/dist/runtime/core-verified-preset.d.ts +0 -37
  1690. package/dist/runtime/core-verified-preset.js +0 -205
  1691. package/dist/runtime/debloat-nlp.d.ts +0 -140
  1692. package/dist/runtime/debloat-nlp.js +0 -398
  1693. package/dist/runtime/deepseek-runtime.d.ts +0 -28
  1694. package/dist/runtime/deepseek-runtime.js +0 -270
  1695. package/dist/runtime/external-cli-adapter.d.ts +0 -29
  1696. package/dist/runtime/external-cli-adapter.js +0 -283
  1697. package/dist/runtime/headroom-policy.d.ts +0 -37
  1698. package/dist/runtime/headroom-policy.js +0 -122
  1699. package/dist/runtime/index.d.ts +0 -8
  1700. package/dist/runtime/index.js +0 -8
  1701. package/dist/runtime/kimi-api-runtime.d.ts +0 -52
  1702. package/dist/runtime/kimi-api-runtime.js +0 -425
  1703. package/dist/runtime/kimi-print-runtime.d.ts +0 -10
  1704. package/dist/runtime/kimi-print-runtime.js +0 -87
  1705. package/dist/runtime/kimi-wire-protocol-runtime.d.ts +0 -44
  1706. package/dist/runtime/kimi-wire-protocol-runtime.js +0 -436
  1707. package/dist/runtime/kimi-wire-runtime.d.ts +0 -17
  1708. package/dist/runtime/kimi-wire-runtime.js +0 -112
  1709. package/dist/runtime/legacy-bridge.d.ts +0 -14
  1710. package/dist/runtime/legacy-bridge.js +0 -27
  1711. package/dist/runtime/local-llm-runtime.d.ts +0 -29
  1712. package/dist/runtime/local-llm-runtime.js +0 -231
  1713. package/dist/runtime/mimo-api-runtime.d.ts +0 -13
  1714. package/dist/runtime/mimo-api-runtime.js +0 -24
  1715. package/dist/runtime/nlg-renderer.d.ts +0 -38
  1716. package/dist/runtime/nlg-renderer.js +0 -132
  1717. package/dist/runtime/ouroboros-policy.d.ts +0 -57
  1718. package/dist/runtime/ouroboros-policy.js +0 -134
  1719. package/dist/runtime/output-router.d.ts +0 -20
  1720. package/dist/runtime/output-router.js +0 -171
  1721. package/dist/runtime/process-session.d.ts +0 -27
  1722. package/dist/runtime/process-session.js +0 -35
  1723. package/dist/runtime/prompt-envelope.d.ts +0 -28
  1724. package/dist/runtime/prompt-envelope.js +0 -78
  1725. package/dist/runtime/proof-bundle-trust.d.ts +0 -74
  1726. package/dist/runtime/proof-bundle-trust.js +0 -100
  1727. package/dist/runtime/provider-event-normalizer.d.ts +0 -117
  1728. package/dist/runtime/provider-event-normalizer.js +0 -454
  1729. package/dist/runtime/provider-maturity-gate.d.ts +0 -43
  1730. package/dist/runtime/provider-maturity-gate.js +0 -127
  1731. package/dist/runtime/provider-tool-contracts.d.ts +0 -24
  1732. package/dist/runtime/provider-tool-contracts.js +0 -56
  1733. package/dist/runtime/public-surface.d.ts +0 -93
  1734. package/dist/runtime/public-surface.js +0 -146
  1735. package/dist/runtime/reasoning-trace.d.ts +0 -46
  1736. package/dist/runtime/reasoning-trace.js +0 -289
  1737. package/dist/runtime/renderers.d.ts +0 -33
  1738. package/dist/runtime/renderers.js +0 -221
  1739. package/dist/runtime/router-v2-scoring.d.ts +0 -16
  1740. package/dist/runtime/router-v2-scoring.js +0 -156
  1741. package/dist/runtime/runtime-backed-task-runner.d.ts +0 -20
  1742. package/dist/runtime/runtime-backed-task-runner.js +0 -174
  1743. package/dist/runtime/runtime-bootstrap.d.ts +0 -21
  1744. package/dist/runtime/runtime-bootstrap.js +0 -208
  1745. package/dist/runtime/runtime-registry.d.ts +0 -23
  1746. package/dist/runtime/runtime-registry.js +0 -95
  1747. package/dist/runtime/runtime-router.d.ts +0 -56
  1748. package/dist/runtime/runtime-router.js +0 -652
  1749. package/dist/runtime/sandbox-profile.d.ts +0 -54
  1750. package/dist/runtime/sandbox-profile.js +0 -136
  1751. package/dist/runtime/slash-commands.d.ts +0 -46
  1752. package/dist/runtime/slash-commands.js +0 -619
  1753. package/dist/runtime/stable-json.d.ts +0 -9
  1754. package/dist/runtime/stable-json.js +0 -45
  1755. package/dist/runtime/tool-call-repair.d.ts +0 -35
  1756. package/dist/runtime/tool-call-repair.js +0 -181
  1757. package/dist/runtime/tool-dispatch-contracts.d.ts +0 -100
  1758. package/dist/runtime/tool-dispatch-contracts.js +0 -160
  1759. package/dist/runtime/tool-plane.d.ts +0 -31
  1760. package/dist/runtime/tool-plane.js +0 -112
  1761. package/dist/runtime/tool-proxy.d.ts +0 -20
  1762. package/dist/runtime/tool-proxy.js +0 -109
  1763. package/dist/runtime/tool-registry-contract.d.ts +0 -40
  1764. package/dist/runtime/tool-registry-contract.js +0 -52
  1765. package/dist/runtime/ui-components.d.ts +0 -64
  1766. package/dist/runtime/ui-components.js +0 -232
  1767. package/dist/runtime/weakness-remediation-index.d.ts +0 -27
  1768. package/dist/runtime/weakness-remediation-index.js +0 -37
  1769. package/dist/runtime/weights-config.d.ts +0 -90
  1770. package/dist/runtime/weights-config.js +0 -249
  1771. package/dist/runtime/worker-manifest.d.ts +0 -34
  1772. package/dist/runtime/worker-manifest.js +0 -204
  1773. package/dist/safety/approval-policy.d.ts +0 -4
  1774. package/dist/safety/approval-policy.js +0 -33
  1775. package/dist/safety/enforcement-engine.d.ts +0 -89
  1776. package/dist/safety/enforcement-engine.js +0 -279
  1777. package/dist/safety/guard-hooks.d.ts +0 -3
  1778. package/dist/safety/guard-hooks.js +0 -64
  1779. package/dist/safety/tool-authority-gate.d.ts +0 -102
  1780. package/dist/safety/tool-authority-gate.js +0 -200
  1781. package/dist/schema/decision.schema.d.ts +0 -57
  1782. package/dist/schema/decision.schema.js +0 -32
  1783. package/dist/schema/envelope.schema.d.ts +0 -216
  1784. package/dist/schema/envelope.schema.js +0 -38
  1785. package/dist/schema/error.schema.d.ts +0 -51
  1786. package/dist/schema/error.schema.js +0 -12
  1787. package/dist/schema/evidence.schema.d.ts +0 -58
  1788. package/dist/schema/evidence.schema.js +0 -31
  1789. package/dist/schema/index.d.ts +0 -8
  1790. package/dist/schema/index.js +0 -8
  1791. package/dist/schema/proof-bundle.schema.d.ts +0 -150
  1792. package/dist/schema/proof-bundle.schema.js +0 -41
  1793. package/dist/schema/provider.schema.d.ts +0 -138
  1794. package/dist/schema/provider.schema.js +0 -35
  1795. package/dist/schema/run-manifest.schema.d.ts +0 -168
  1796. package/dist/schema/run-manifest.schema.js +0 -35
  1797. package/dist/schema/version.schema.d.ts +0 -64
  1798. package/dist/schema/version.schema.js +0 -21
  1799. package/dist/theme/ansi.d.ts +0 -15
  1800. package/dist/theme/ansi.js +0 -48
  1801. package/dist/theme/colors.d.ts +0 -87
  1802. package/dist/theme/colors.js +0 -105
  1803. package/dist/theme/extended-palette.d.ts +0 -85
  1804. package/dist/theme/extended-palette.js +0 -108
  1805. package/dist/theme/hud-theme.d.ts +0 -6
  1806. package/dist/theme/hud-theme.js +0 -41
  1807. package/dist/theme/index.d.ts +0 -12
  1808. package/dist/theme/index.js +0 -20
  1809. package/dist/theme/layout.d.ts +0 -24
  1810. package/dist/theme/layout.js +0 -160
  1811. package/dist/theme/metrics.d.ts +0 -23
  1812. package/dist/theme/metrics.js +0 -93
  1813. package/dist/theme/parallel.d.ts +0 -68
  1814. package/dist/theme/parallel.js +0 -355
  1815. package/dist/theme/working-indicator.d.ts +0 -38
  1816. package/dist/theme/working-indicator.js +0 -149
  1817. package/dist/tui/model.d.ts +0 -28
  1818. package/dist/tui/model.js +0 -1
  1819. package/dist/tui/terminal-frame-renderer.d.ts +0 -19
  1820. package/dist/tui/terminal-frame-renderer.js +0 -60
  1821. package/dist/tui/views/capabilities-view.d.ts +0 -3
  1822. package/dist/tui/views/capabilities-view.js +0 -13
  1823. package/dist/tui/views/common.d.ts +0 -11
  1824. package/dist/tui/views/common.js +0 -35
  1825. package/dist/tui/views/dag-view.d.ts +0 -3
  1826. package/dist/tui/views/dag-view.js +0 -12
  1827. package/dist/tui/views/evidence-view.d.ts +0 -3
  1828. package/dist/tui/views/evidence-view.js +0 -18
  1829. package/dist/tui/views/index.d.ts +0 -4
  1830. package/dist/tui/views/index.js +0 -3
  1831. package/dist/ui/omk-sigil.d.ts +0 -13
  1832. package/dist/ui/omk-sigil.js +0 -268
  1833. package/dist/ui/omk-working-sweep.d.ts +0 -61
  1834. package/dist/ui/omk-working-sweep.js +0 -406
  1835. package/dist/util/agent-schema.d.ts +0 -24
  1836. package/dist/util/agent-schema.js +0 -293
  1837. package/dist/util/appshot-store.d.ts +0 -68
  1838. package/dist/util/appshot-store.js +0 -506
  1839. package/dist/util/chat-agent-mode.d.ts +0 -184
  1840. package/dist/util/chat-agent-mode.js +0 -938
  1841. package/dist/util/chat-cockpit.d.ts +0 -54
  1842. package/dist/util/chat-cockpit.js +0 -350
  1843. package/dist/util/chat-startup.d.ts +0 -35
  1844. package/dist/util/chat-startup.js +0 -330
  1845. package/dist/util/chat-state.d.ts +0 -27
  1846. package/dist/util/chat-state.js +0 -105
  1847. package/dist/util/checkpoint.d.ts +0 -21
  1848. package/dist/util/checkpoint.js +0 -238
  1849. package/dist/util/cli-contract.d.ts +0 -46
  1850. package/dist/util/cli-contract.js +0 -72
  1851. package/dist/util/clipboard-image.d.ts +0 -49
  1852. package/dist/util/clipboard-image.js +0 -263
  1853. package/dist/util/cron-engine.d.ts +0 -24
  1854. package/dist/util/cron-engine.js +0 -227
  1855. package/dist/util/events-logger.d.ts +0 -30
  1856. package/dist/util/events-logger.js +0 -135
  1857. package/dist/util/execution-selection.d.ts +0 -13
  1858. package/dist/util/execution-selection.js +0 -82
  1859. package/dist/util/first-run-star.d.ts +0 -58
  1860. package/dist/util/first-run-star.js +0 -264
  1861. package/dist/util/fs/core.d.ts +0 -5
  1862. package/dist/util/fs/core.js +0 -35
  1863. package/dist/util/fs/internal.d.ts +0 -14
  1864. package/dist/util/fs/internal.js +0 -169
  1865. package/dist/util/fs/kimi-sync.d.ts +0 -41
  1866. package/dist/util/fs/kimi-sync.js +0 -495
  1867. package/dist/util/fs/logo.d.ts +0 -2
  1868. package/dist/util/fs/logo.js +0 -78
  1869. package/dist/util/fs/manifest.d.ts +0 -6
  1870. package/dist/util/fs/manifest.js +0 -40
  1871. package/dist/util/fs/mcp-diagnose.d.ts +0 -15
  1872. package/dist/util/fs/mcp-diagnose.js +0 -204
  1873. package/dist/util/fs/mcp-runtime-config.d.ts +0 -23
  1874. package/dist/util/fs/mcp-runtime-config.js +0 -412
  1875. package/dist/util/fs/paths.d.ts +0 -13
  1876. package/dist/util/fs/paths.js +0 -82
  1877. package/dist/util/fs/preflight.d.ts +0 -27
  1878. package/dist/util/fs/preflight.js +0 -271
  1879. package/dist/util/fs.d.ts +0 -8
  1880. package/dist/util/fs.js +0 -8
  1881. package/dist/util/git.d.ts +0 -11
  1882. package/dist/util/git.js +0 -39
  1883. package/dist/util/help-text.d.ts +0 -1
  1884. package/dist/util/help-text.js +0 -60
  1885. package/dist/util/i18n.d.ts +0 -10
  1886. package/dist/util/i18n.js +0 -848
  1887. package/dist/util/json-envelope.d.ts +0 -15
  1888. package/dist/util/json-envelope.js +0 -28
  1889. package/dist/util/mcp-preflight.d.ts +0 -26
  1890. package/dist/util/mcp-preflight.js +0 -29
  1891. package/dist/util/mode-preset.d.ts +0 -29
  1892. package/dist/util/mode-preset.js +0 -222
  1893. package/dist/util/mode-selector.d.ts +0 -6
  1894. package/dist/util/mode-selector.js +0 -74
  1895. package/dist/util/output-buffer.d.ts +0 -12
  1896. package/dist/util/output-buffer.js +0 -59
  1897. package/dist/util/process-tree.d.ts +0 -18
  1898. package/dist/util/process-tree.js +0 -102
  1899. package/dist/util/project-root.d.ts +0 -27
  1900. package/dist/util/project-root.js +0 -382
  1901. package/dist/util/provider-usage.d.ts +0 -2
  1902. package/dist/util/provider-usage.js +0 -1
  1903. package/dist/util/reasoning-nlp.d.ts +0 -84
  1904. package/dist/util/reasoning-nlp.js +0 -325
  1905. package/dist/util/resource-profile.d.ts +0 -32
  1906. package/dist/util/resource-profile.js +0 -219
  1907. package/dist/util/run-store.d.ts +0 -38
  1908. package/dist/util/run-store.js +0 -151
  1909. package/dist/util/run-view-model.d.ts +0 -111
  1910. package/dist/util/run-view-model.js +0 -333
  1911. package/dist/util/runtime-profile.d.ts +0 -34
  1912. package/dist/util/runtime-profile.js +0 -149
  1913. package/dist/util/runtime-scope.d.ts +0 -2
  1914. package/dist/util/runtime-scope.js +0 -19
  1915. package/dist/util/scoped-agent-file.d.ts +0 -47
  1916. package/dist/util/scoped-agent-file.js +0 -121
  1917. package/dist/util/screenshot-store.d.ts +0 -35
  1918. package/dist/util/screenshot-store.js +0 -310
  1919. package/dist/util/secret-mask.d.ts +0 -5
  1920. package/dist/util/secret-mask.js +0 -41
  1921. package/dist/util/session.d.ts +0 -19
  1922. package/dist/util/session.js +0 -80
  1923. package/dist/util/shell.d.ts +0 -30
  1924. package/dist/util/shell.js +0 -350
  1925. package/dist/util/snippet.d.ts +0 -17
  1926. package/dist/util/snippet.js +0 -110
  1927. package/dist/util/sync-manifest.d.ts +0 -13
  1928. package/dist/util/sync-manifest.js +0 -22
  1929. package/dist/util/terminal-input.d.ts +0 -45
  1930. package/dist/util/terminal-input.js +0 -67
  1931. package/dist/util/terminal-layout.d.ts +0 -18
  1932. package/dist/util/terminal-layout.js +0 -112
  1933. package/dist/util/terminal-owner.d.ts +0 -19
  1934. package/dist/util/terminal-owner.js +0 -64
  1935. package/dist/util/theme.d.ts +0 -9
  1936. package/dist/util/theme.js +0 -9
  1937. package/dist/util/timeout-config.d.ts +0 -18
  1938. package/dist/util/timeout-config.js +0 -101
  1939. package/dist/util/todo-sync.d.ts +0 -58
  1940. package/dist/util/todo-sync.js +0 -473
  1941. package/dist/util/update-check.d.ts +0 -94
  1942. package/dist/util/update-check.js +0 -355
  1943. package/dist/util/usage-view-model.d.ts +0 -22
  1944. package/dist/util/usage-view-model.js +0 -57
  1945. package/dist/util/user-visible-output.d.ts +0 -19
  1946. package/dist/util/user-visible-output.js +0 -48
  1947. package/dist/util/version.d.ts +0 -4
  1948. package/dist/util/version.js +0 -52
  1949. package/dist/util/worktree.d.ts +0 -10
  1950. package/dist/util/worktree.js +0 -165
  1951. package/dist/ux/explain-loop-decision.d.ts +0 -4
  1952. package/dist/ux/explain-loop-decision.js +0 -55
  1953. package/dist/ux/intent-router.d.ts +0 -15
  1954. package/dist/ux/intent-router.js +0 -64
  1955. package/dist/ux/natural-entrypoint.d.ts +0 -21
  1956. package/dist/ux/natural-entrypoint.js +0 -122
  1957. package/dist/version.d.ts +0 -11
  1958. package/dist/version.js +0 -18
  1959. package/dist/web-bridge/host.d.ts +0 -8
  1960. package/dist/web-bridge/host.js +0 -109
  1961. package/dist/web-bridge/native-host.d.ts +0 -6
  1962. package/dist/web-bridge/native-host.js +0 -40
  1963. package/dist/web-bridge/status.d.ts +0 -84
  1964. package/dist/web-bridge/status.js +0 -201
  1965. package/docs/2026-05-01-16gb-lite-mode.md +0 -37
  1966. package/docs/2026-05-01-critical-issues-and-improvements.md +0 -361
  1967. package/docs/2026-05-01-dag-ensemble-runtime.md +0 -74
  1968. package/docs/2026-05-02-p1-p2-hardening-handoff.md +0 -139
  1969. package/docs/2026-05-05-adjustable-timeouts-and-cron-jobs.md +0 -252
  1970. package/docs/2026-05-08-omk-hardening-plan.md +0 -62
  1971. package/docs/2026-05-14/critical-issues.md +0 -20
  1972. package/docs/2026-05-14/improvements.md +0 -14
  1973. package/docs/2026-05-14/init-checklist.md +0 -25
  1974. package/docs/2026-05-14/plan.md +0 -20
  1975. package/docs/2026-05-15/critical-issues.md +0 -20
  1976. package/docs/2026-05-15/improvements.md +0 -14
  1977. package/docs/2026-05-15/init-checklist.md +0 -25
  1978. package/docs/2026-05-15/plan.md +0 -20
  1979. package/docs/2026-05-16/critical-issues.md +0 -20
  1980. package/docs/2026-05-16/improvements.md +0 -14
  1981. package/docs/2026-05-16/init-checklist.md +0 -25
  1982. package/docs/2026-05-16/plan.md +0 -20
  1983. package/docs/2026-05-17/critical-issues.md +0 -20
  1984. package/docs/2026-05-17/improvements.md +0 -14
  1985. package/docs/2026-05-17/init-checklist.md +0 -25
  1986. package/docs/2026-05-17/plan.md +0 -20
  1987. package/docs/2026-05-18/improvements.md +0 -14
  1988. package/docs/2026-05-18/init-checklist.md +0 -25
  1989. package/docs/2026-05-18/plan.md +0 -20
  1990. package/docs/2026-05-18-critical-issues-and-improvements.md +0 -441
  1991. package/docs/2026-05-18-project-direction.md +0 -223
  1992. package/docs/2026-05-19/critical-issues.md +0 -20
  1993. package/docs/2026-05-19/improvements.md +0 -14
  1994. package/docs/2026-05-19/init-checklist.md +0 -25
  1995. package/docs/2026-05-19/plan.md +0 -20
  1996. package/docs/2026-05-20/critical-issues.md +0 -20
  1997. package/docs/2026-05-20/improvements.md +0 -14
  1998. package/docs/2026-05-20/init-checklist.md +0 -25
  1999. package/docs/2026-05-20/plan.md +0 -20
  2000. package/docs/2026-05-21/critical-issues.md +0 -20
  2001. package/docs/2026-05-21/improvements.md +0 -14
  2002. package/docs/2026-05-21/init-checklist.md +0 -25
  2003. package/docs/2026-05-21/plan.md +0 -20
  2004. package/docs/2026-05-22/critical-issues.md +0 -20
  2005. package/docs/2026-05-22/improvements.md +0 -14
  2006. package/docs/2026-05-22/init-checklist.md +0 -25
  2007. package/docs/2026-05-22/plan.md +0 -20
  2008. package/docs/2026-05-23/critical-issues.md +0 -20
  2009. package/docs/2026-05-23/improvements.md +0 -14
  2010. package/docs/2026-05-23/init-checklist.md +0 -25
  2011. package/docs/2026-05-23/plan.md +0 -20
  2012. package/docs/2026-05-24/critical-issues.md +0 -30
  2013. package/docs/2026-05-24/improvements.md +0 -23
  2014. package/docs/2026-05-24/init-checklist.md +0 -25
  2015. package/docs/2026-05-24/plan.md +0 -22
  2016. package/docs/2026-05-25/critical-issues.md +0 -20
  2017. package/docs/2026-05-25/improvements.md +0 -14
  2018. package/docs/2026-05-25/init-checklist.md +0 -25
  2019. package/docs/2026-05-25/plan.md +0 -20
  2020. package/docs/2026-05-26/critical-issues.md +0 -20
  2021. package/docs/2026-05-26/improvements.md +0 -14
  2022. package/docs/2026-05-26/init-checklist.md +0 -25
  2023. package/docs/2026-05-26/plan.md +0 -20
  2024. package/docs/2026-05-27/critical-issues.md +0 -20
  2025. package/docs/2026-05-27/improvements.md +0 -14
  2026. package/docs/2026-05-27/init-checklist.md +0 -25
  2027. package/docs/2026-05-27/plan.md +0 -20
  2028. package/docs/2026-05-28/critical-issues.md +0 -20
  2029. package/docs/2026-05-28/improvements.md +0 -14
  2030. package/docs/2026-05-28/init-checklist.md +0 -25
  2031. package/docs/2026-05-28/plan.md +0 -20
  2032. package/docs/2026-05-29/critical-issues.md +0 -20
  2033. package/docs/2026-05-29/improvements.md +0 -14
  2034. package/docs/2026-05-29/init-checklist.md +0 -25
  2035. package/docs/2026-05-29/plan.md +0 -20
  2036. package/docs/2026-05-30/critical-issues.md +0 -20
  2037. package/docs/2026-05-30/improvements.md +0 -14
  2038. package/docs/2026-05-30/init-checklist.md +0 -25
  2039. package/docs/2026-05-30/plan.md +0 -20
  2040. package/docs/2026-05-31/critical-issues.md +0 -20
  2041. package/docs/2026-05-31/improvements.md +0 -14
  2042. package/docs/2026-05-31/init-checklist.md +0 -25
  2043. package/docs/2026-05-31/plan.md +0 -20
  2044. package/docs/2026-06-01/critical-issues.md +0 -20
  2045. package/docs/2026-06-01/improvements.md +0 -14
  2046. package/docs/2026-06-01/init-checklist.md +0 -25
  2047. package/docs/2026-06-01/plan.md +0 -20
  2048. package/docs/2026-06-02/critical-issues.md +0 -20
  2049. package/docs/2026-06-02/improvements.md +0 -14
  2050. package/docs/2026-06-02/init-checklist.md +0 -25
  2051. package/docs/2026-06-02/plan.md +0 -20
  2052. package/docs/2026-06-03/critical-issues.md +0 -20
  2053. package/docs/2026-06-03/improvements.md +0 -14
  2054. package/docs/2026-06-03/init-checklist.md +0 -25
  2055. package/docs/2026-06-03/plan.md +0 -20
  2056. package/docs/2026-06-04/critical-issues.md +0 -20
  2057. package/docs/2026-06-04/improvements.md +0 -14
  2058. package/docs/2026-06-04/init-checklist.md +0 -25
  2059. package/docs/2026-06-04/plan.md +0 -20
  2060. package/docs/2026-06-05/critical-issues.md +0 -20
  2061. package/docs/2026-06-05/improvements.md +0 -14
  2062. package/docs/2026-06-05/init-checklist.md +0 -25
  2063. package/docs/2026-06-05/plan.md +0 -20
  2064. package/docs/2026-06-06/critical-issues.md +0 -20
  2065. package/docs/2026-06-06/improvements.md +0 -14
  2066. package/docs/2026-06-06/init-checklist.md +0 -25
  2067. package/docs/2026-06-06/plan.md +0 -20
  2068. package/docs/2026-06-07/critical-issues.md +0 -20
  2069. package/docs/2026-06-07/improvements.md +0 -14
  2070. package/docs/2026-06-07/init-checklist.md +0 -25
  2071. package/docs/2026-06-07/plan.md +0 -20
  2072. package/docs/2026-06-08/critical-issues.md +0 -20
  2073. package/docs/2026-06-08/improvements.md +0 -14
  2074. package/docs/2026-06-08/init-checklist.md +0 -25
  2075. package/docs/2026-06-08/plan.md +0 -20
  2076. package/docs/2026-06-09/critical-issues.md +0 -20
  2077. package/docs/2026-06-09/improvements.md +0 -14
  2078. package/docs/2026-06-09/init-checklist.md +0 -25
  2079. package/docs/2026-06-09/plan.md +0 -20
  2080. package/docs/2026-06-10/critical-issues.md +0 -20
  2081. package/docs/2026-06-10/improvements.md +0 -14
  2082. package/docs/2026-06-10/init-checklist.md +0 -25
  2083. package/docs/2026-06-10/plan.md +0 -20
  2084. package/docs/2026-06-11/critical-issues.md +0 -20
  2085. package/docs/2026-06-11/improvements.md +0 -14
  2086. package/docs/2026-06-11/init-checklist.md +0 -25
  2087. package/docs/2026-06-11/plan.md +0 -20
  2088. package/docs/ARCHITECTURE_ANALYSIS_CODEGRAPH.md +0 -223
  2089. package/docs/GSTACK_MIGRATION.md +0 -169
  2090. package/docs/OMK_CLI_V2_RUNTIME_ARCHITECTURE.md +0 -2058
  2091. package/docs/adr/0001-no-native-rust-lane.md +0 -52
  2092. package/docs/benchmark-design.md +0 -122
  2093. package/docs/cli-v2-migration.md +0 -87
  2094. package/docs/codex-oauth-setup.md +0 -62
  2095. package/docs/decisions/2026-06-10-git-history-bloat.md +0 -61
  2096. package/docs/decisions/ADR-theme-dark-only-assets.md +0 -43
  2097. package/docs/demo/verified-run/README.md +0 -32
  2098. package/docs/demo/verified-run/artifacts/README.md +0 -18
  2099. package/docs/demo/verified-run/capture-plan.md +0 -51
  2100. package/docs/demo/verified-run/generated-diff.md +0 -27
  2101. package/docs/demo/verified-run/raw-prompt.md +0 -21
  2102. package/docs/demo/verified-run/video-shot-list.md +0 -14
  2103. package/docs/design-md.md +0 -35
  2104. package/docs/getting-started.md +0 -65
  2105. package/docs/github-organic-promotion.md +0 -127
  2106. package/docs/headroom-omk-final-summary.md +0 -188
  2107. package/docs/headroom-omk-integration.md +0 -394
  2108. package/docs/headroom-omk-setup-guide.md +0 -422
  2109. package/docs/headroom-omk-usage-examples.md +0 -371
  2110. package/docs/hud-and-parallel-ux.md +0 -155
  2111. package/docs/integrations/ouroboros.md +0 -96
  2112. package/docs/kimi-oauth-usage-status.md +0 -33
  2113. package/docs/kimi-okabe-dmail.md +0 -44
  2114. package/docs/local-graph-memory.md +0 -102
  2115. package/docs/lsp.md +0 -48
  2116. package/docs/mcp-ontology-proposal.md +0 -12
  2117. package/docs/native-root-runtime-algorithms.md +0 -703
  2118. package/docs/native-root-runtime-hardening.md +0 -131
  2119. package/docs/neo4j-memory.md +0 -5
  2120. package/docs/openai-platform-image-keys.md +0 -23
  2121. package/docs/phase1-final-report.md +0 -154
  2122. package/docs/provider-maturity.md +0 -44
  2123. package/docs/runtime-architecture.md +0 -89
  2124. package/docs/versioning.md +0 -49
  2125. package/llms.txt +0 -38
  2126. package/readmeasset/.npmignore +0 -22
  2127. package/readmeasset/ASSET_INDEX.md +0 -39
  2128. package/readmeasset/ASSET_PROVENANCE.md +0 -110
  2129. package/readmeasset/omk-control-surfaces.svg +0 -55
  2130. package/readmeasset/omk-core-loop.svg +0 -26
  2131. package/readmeasset/omk-evidence-gate-card.png +0 -0
  2132. package/readmeasset/omk-github-banner.webp +0 -0
  2133. package/readmeasset/omk-github-header.webp +0 -0
  2134. package/readmeasset/omk-install-card.png +0 -0
  2135. package/readmeasset/omk-logo-512.png +0 -0
  2136. package/readmeasset/omk-logo-mark.svg +0 -8
  2137. package/readmeasset/omk-provider-router-card.png +0 -0
  2138. package/readmeasset/omk-release-assertions.svg +0 -51
  2139. package/readmeasset/omk-runtime-flow-0.78.0.webp +0 -0
  2140. package/readmeasset/omk-social-preview.png +0 -0
  2141. package/readmeasset/omk-tui-0.78.0.webp +0 -0
  2142. package/readmeasset/omk_tui.png +0 -0
  2143. package/templates/.kimi/AGENTS.md +0 -93
  2144. package/templates/.omk/agents/okabe.yaml +0 -30
  2145. package/templates/.omk/agents/roles/aggregator.yaml +0 -13
  2146. package/templates/.omk/agents/roles/architect.yaml +0 -13
  2147. package/templates/.omk/agents/roles/coder.yaml +0 -9
  2148. package/templates/.omk/agents/roles/explorer.yaml +0 -13
  2149. package/templates/.omk/agents/roles/integrator.yaml +0 -13
  2150. package/templates/.omk/agents/roles/interviewer.yaml +0 -13
  2151. package/templates/.omk/agents/roles/ontology.yaml +0 -18
  2152. package/templates/.omk/agents/roles/planner.yaml +0 -13
  2153. package/templates/.omk/agents/roles/qa.yaml +0 -12
  2154. package/templates/.omk/agents/roles/researcher.yaml +0 -13
  2155. package/templates/.omk/agents/roles/reviewer.yaml +0 -13
  2156. package/templates/.omk/agents/roles/router.yaml +0 -13
  2157. package/templates/.omk/agents/roles/security.yaml +0 -12
  2158. package/templates/.omk/agents/roles/tester.yaml +0 -12
  2159. package/templates/.omk/agents/roles/vision-debugger.yaml +0 -12
  2160. package/templates/.omk/agents/root.yaml +0 -62
  2161. package/templates/.omk/lsp.json +0 -27
  2162. package/templates/.omk/prompts/root.md +0 -74
  2163. package/templates/AGENTS.md +0 -510
  2164. package/templates/skills/agents/agentmemory/SKILL.md +0 -40
  2165. package/templates/skills/agents/andrej-karpathy-skills/SKILL.md +0 -41
  2166. package/templates/skills/agents/claude-for-legal/SKILL.md +0 -63
  2167. package/templates/skills/agents/claude-for-legal/references/workflow-catalog.md +0 -38
  2168. package/templates/skills/agents/matt-pocock-skills/SKILL.md +0 -40
  2169. package/templates/skills/agents/multica/SKILL.md +0 -40
  2170. package/templates/skills/agents/omk-agent-reach-websearch/SKILL.md +0 -55
  2171. package/templates/skills/agents/omk-backend-api-review/SKILL.md +0 -30
  2172. package/templates/skills/agents/omk-code-review/SKILL.md +0 -40
  2173. package/templates/skills/agents/omk-context-broker/SKILL.md +0 -57
  2174. package/templates/skills/agents/omk-control-loop-debugger/SKILL.md +0 -49
  2175. package/templates/skills/agents/omk-design-system/SKILL.md +0 -22
  2176. package/templates/skills/agents/omk-docs-release/SKILL.md +0 -42
  2177. package/templates/skills/agents/omk-evidence-contract/SKILL.md +0 -52
  2178. package/templates/skills/agents/omk-frontend-implementation/SKILL.md +0 -13
  2179. package/templates/skills/agents/omk-frontend-ui-review/SKILL.md +0 -29
  2180. package/templates/skills/agents/omk-git-commit-pr/SKILL.md +0 -45
  2181. package/templates/skills/agents/omk-industrial-control-loop/SKILL.md +0 -33
  2182. package/templates/skills/agents/omk-plan-first/SKILL.md +0 -39
  2183. package/templates/skills/agents/omk-project-rules/SKILL.md +0 -46
  2184. package/templates/skills/agents/omk-python-typing/SKILL.md +0 -33
  2185. package/templates/skills/agents/omk-quality-gate/SKILL.md +0 -54
  2186. package/templates/skills/agents/omk-repo-explorer/SKILL.md +0 -33
  2187. package/templates/skills/agents/omk-research-verify/SKILL.md +0 -30
  2188. package/templates/skills/agents/omk-secret-guard/SKILL.md +0 -23
  2189. package/templates/skills/agents/omk-security-review/SKILL.md +0 -49
  2190. package/templates/skills/agents/omk-test-debug-loop/SKILL.md +0 -43
  2191. package/templates/skills/agents/omk-troubleshooting/SKILL.md +0 -14
  2192. package/templates/skills/agents/omk-typescript-strict/SKILL.md +0 -38
  2193. package/templates/skills/agents/omk-worktree-team/SKILL.md +0 -44
  2194. package/templates/skills/agents/react-doctor/SKILL.md +0 -46
  2195. package/templates/skills/kimi/agentmemory/SKILL.md +0 -40
  2196. package/templates/skills/kimi/andrej-karpathy-skills/SKILL.md +0 -41
  2197. package/templates/skills/kimi/awesome-design-md/SKILL.md +0 -54
  2198. package/templates/skills/kimi/claude-for-legal/SKILL.md +0 -63
  2199. package/templates/skills/kimi/claude-for-legal/references/workflow-catalog.md +0 -38
  2200. package/templates/skills/kimi/deepseek-api/SKILL.md +0 -27
  2201. package/templates/skills/kimi/deepseek-disable/SKILL.md +0 -20
  2202. package/templates/skills/kimi/deepseek-enable/SKILL.md +0 -20
  2203. package/templates/skills/kimi/deepseekset/SKILL.md +0 -27
  2204. package/templates/skills/kimi/graph-view/SKILL.md +0 -29
  2205. package/templates/skills/kimi/matt-pocock-skills/SKILL.md +0 -40
  2206. package/templates/skills/kimi/multica/SKILL.md +0 -40
  2207. package/templates/skills/kimi/omk-agent-reach-websearch/SKILL.md +0 -55
  2208. package/templates/skills/kimi/omk-backend-api-review/SKILL.md +0 -30
  2209. package/templates/skills/kimi/omk-code-review/SKILL.md +0 -34
  2210. package/templates/skills/kimi/omk-context-broker/SKILL.md +0 -57
  2211. package/templates/skills/kimi/omk-control-loop-debugger/SKILL.md +0 -49
  2212. package/templates/skills/kimi/omk-design-md/SKILL.md +0 -55
  2213. package/templates/skills/kimi/omk-design-system/SKILL.md +0 -22
  2214. package/templates/skills/kimi/omk-docs-release/SKILL.md +0 -42
  2215. package/templates/skills/kimi/omk-evidence-contract/SKILL.md +0 -52
  2216. package/templates/skills/kimi/omk-flow-bugfix/SKILL.md +0 -20
  2217. package/templates/skills/kimi/omk-flow-design-to-code/SKILL.md +0 -23
  2218. package/templates/skills/kimi/omk-flow-feature-dev/SKILL.md +0 -24
  2219. package/templates/skills/kimi/omk-flow-pr-review/SKILL.md +0 -17
  2220. package/templates/skills/kimi/omk-flow-refactor/SKILL.md +0 -21
  2221. package/templates/skills/kimi/omk-flow-release/SKILL.md +0 -20
  2222. package/templates/skills/kimi/omk-flow-team-run/SKILL.md +0 -24
  2223. package/templates/skills/kimi/omk-frontend-implementation/SKILL.md +0 -13
  2224. package/templates/skills/kimi/omk-frontend-ui-review/SKILL.md +0 -29
  2225. package/templates/skills/kimi/omk-git-commit-pr/SKILL.md +0 -45
  2226. package/templates/skills/kimi/omk-global-rules/SKILL.md +0 -31
  2227. package/templates/skills/kimi/omk-industrial-control-loop/SKILL.md +0 -33
  2228. package/templates/skills/kimi/omk-kimi-runtime/SKILL.md +0 -46
  2229. package/templates/skills/kimi/omk-multimodal-ui-review/SKILL.md +0 -26
  2230. package/templates/skills/kimi/omk-plan-first/SKILL.md +0 -39
  2231. package/templates/skills/kimi/omk-project-rules/SKILL.md +0 -21
  2232. package/templates/skills/kimi/omk-python-typing/SKILL.md +0 -33
  2233. package/templates/skills/kimi/omk-quality-gate/SKILL.md +0 -36
  2234. package/templates/skills/kimi/omk-repo-explorer/SKILL.md +0 -33
  2235. package/templates/skills/kimi/omk-research-verify/SKILL.md +0 -30
  2236. package/templates/skills/kimi/omk-secret-guard/SKILL.md +0 -23
  2237. package/templates/skills/kimi/omk-security-review/SKILL.md +0 -49
  2238. package/templates/skills/kimi/omk-task-router/SKILL.md +0 -27
  2239. package/templates/skills/kimi/omk-test-debug-loop/SKILL.md +0 -43
  2240. package/templates/skills/kimi/omk-typescript-strict/SKILL.md +0 -38
  2241. package/templates/skills/kimi/omk-worktree-team/SKILL.md +0 -44
  2242. package/templates/skills/kimi/open-design/SKILL.md +0 -56
  2243. package/templates/skills/kimi/provider/SKILL.md +0 -47
  2244. package/templates/skills/kimi/react-doctor/SKILL.md +0 -46
  2245. package/templates/skills/kimi/speckit-analyze/SKILL.md +0 -255
  2246. package/templates/skills/kimi/speckit-checklist/SKILL.md +0 -367
  2247. package/templates/skills/kimi/speckit-clarify/SKILL.md +0 -249
  2248. package/templates/skills/kimi/speckit-constitution/SKILL.md +0 -152
  2249. package/templates/skills/kimi/speckit-implement/SKILL.md +0 -204
  2250. package/templates/skills/kimi/speckit-plan/SKILL.md +0 -147
  2251. package/templates/skills/kimi/speckit-specify/SKILL.md +0 -325
  2252. package/templates/skills/kimi/speckit-tasks/SKILL.md +0 -197
  2253. package/templates/skills/kimi/speckit-taskstoissues/SKILL.md +0 -101
  2254. package/templates/skills/kimi/think/SKILL.md +0 -41
  2255. package/templates/spec-kit-omk-preset/commands/plan.md +0 -21
  2256. package/templates/spec-kit-omk-preset/commands/tasks.md +0 -21
  2257. package/templates/spec-kit-omk-preset/preset.yml +0 -12
  2258. package/templates/spec-kit-omk-preset/templates/plan-template.md +0 -75
  2259. package/templates/spec-kit-omk-preset/templates/spec-template.md +0 -80
  2260. package/templates/spec-kit-omk-preset/templates/tasks-template.md +0 -160
  2261. package/templates/web-bridge/chrome-extension/README.md +0 -18
  2262. package/templates/web-bridge/chrome-extension/background.js +0 -57
  2263. package/templates/web-bridge/chrome-extension/content-script.js +0 -46
  2264. package/templates/web-bridge/chrome-extension/manifest.json +0 -16
  2265. package/templates/web-bridge/chrome-extension/popup.html +0 -21
  2266. package/templates/web-bridge/chrome-extension/popup.js +0 -9
  2267. /package/{readmeasset → dist/modes/interactive/assets}/omk-control.webp +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-diff.d.ts","sourceRoot":"","sources":["../../../src/core/tools/edit-diff.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM/D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqB3D;AAED,MAAM,WAAW,gBAAgB;IAChC,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,4FAA4F;IAC5F,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,cAAc,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,IAAI;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AASD,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAsChF;AAED,uFAAuF;AACvF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAEvE;AA8CD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC5C,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE,IAAI,EAAE,EACb,IAAI,EAAE,MAAM,GACV,kBAAkB,CA+DpB;AAED,yCAAyC;AACzC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,SAAI,GAAG,MAAM,CAKnH;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,SAAI,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAuHxD;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,IAAI,EAAE,EACb,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,cAAc,GAAG,aAAa,CAAC,CAyBzC;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,cAAc,GAAG,aAAa,CAAC,CAEzC","sourcesContent":["/**\n * Shared diff computation utilities for the edit tool.\n * Used by both edit.ts (for execution) and tool-execution.ts (for preview rendering).\n */\n\nimport * as Diff from \"diff\";\nimport { constants } from \"fs\";\nimport { access, readFile } from \"fs/promises\";\nimport { resolveToCwd } from \"./path-utils.ts\";\n\nexport function detectLineEnding(content: string): \"\\r\\n\" | \"\\n\" {\n\tconst crlfIdx = content.indexOf(\"\\r\\n\");\n\tconst lfIdx = content.indexOf(\"\\n\");\n\tif (lfIdx === -1) return \"\\n\";\n\tif (crlfIdx === -1) return \"\\n\";\n\treturn crlfIdx < lfIdx ? \"\\r\\n\" : \"\\n\";\n}\n\nexport function normalizeToLF(text: string): string {\n\treturn text.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n}\n\nexport function restoreLineEndings(text: string, ending: \"\\r\\n\" | \"\\n\"): string {\n\treturn ending === \"\\r\\n\" ? text.replace(/\\n/g, \"\\r\\n\") : text;\n}\n\n/**\n * Normalize text for fuzzy matching. Applies progressive transformations:\n * - Strip trailing whitespace from each line\n * - Normalize smart quotes to ASCII equivalents\n * - Normalize Unicode dashes/hyphens to ASCII hyphen\n * - Normalize special Unicode spaces to regular space\n */\nexport function normalizeForFuzzyMatch(text: string): string {\n\treturn (\n\t\ttext\n\t\t\t.normalize(\"NFKC\")\n\t\t\t// Strip trailing whitespace per line\n\t\t\t.split(\"\\n\")\n\t\t\t.map((line) => line.trimEnd())\n\t\t\t.join(\"\\n\")\n\t\t\t// Smart single quotes → '\n\t\t\t.replace(/[\\u2018\\u2019\\u201A\\u201B]/g, \"'\")\n\t\t\t// Smart double quotes → \"\n\t\t\t.replace(/[\\u201C\\u201D\\u201E\\u201F]/g, '\"')\n\t\t\t// Various dashes/hyphens → -\n\t\t\t// U+2010 hyphen, U+2011 non-breaking hyphen, U+2012 figure dash,\n\t\t\t// U+2013 en-dash, U+2014 em-dash, U+2015 horizontal bar, U+2212 minus\n\t\t\t.replace(/[\\u2010\\u2011\\u2012\\u2013\\u2014\\u2015\\u2212]/g, \"-\")\n\t\t\t// Special spaces → regular space\n\t\t\t// U+00A0 NBSP, U+2002-U+200A various spaces, U+202F narrow NBSP,\n\t\t\t// U+205F medium math space, U+3000 ideographic space\n\t\t\t.replace(/[\\u00A0\\u2002-\\u200A\\u202F\\u205F\\u3000]/g, \" \")\n\t);\n}\n\nexport interface FuzzyMatchResult {\n\t/** Whether a match was found */\n\tfound: boolean;\n\t/** The index where the match starts (in the content that should be used for replacement) */\n\tindex: number;\n\t/** Length of the matched text */\n\tmatchLength: number;\n\t/** Whether fuzzy matching was used (false = exact match) */\n\tusedFuzzyMatch: boolean;\n\t/**\n\t * The content to use for replacement operations.\n\t * When exact match: original content. When fuzzy match: normalized content.\n\t */\n\tcontentForReplacement: string;\n}\n\nexport interface Edit {\n\toldText: string;\n\tnewText: string;\n}\n\ninterface MatchedEdit {\n\teditIndex: number;\n\tmatchIndex: number;\n\tmatchLength: number;\n\tnewText: string;\n}\n\nexport interface AppliedEditsResult {\n\tbaseContent: string;\n\tnewContent: string;\n}\n\n/**\n * Find oldText in content, trying exact match first, then fuzzy match.\n * When fuzzy matching is used, the returned contentForReplacement is the\n * fuzzy-normalized version of the content (trailing whitespace stripped,\n * Unicode quotes/dashes normalized to ASCII).\n */\nexport function fuzzyFindText(content: string, oldText: string): FuzzyMatchResult {\n\t// Try exact match first\n\tconst exactIndex = content.indexOf(oldText);\n\tif (exactIndex !== -1) {\n\t\treturn {\n\t\t\tfound: true,\n\t\t\tindex: exactIndex,\n\t\t\tmatchLength: oldText.length,\n\t\t\tusedFuzzyMatch: false,\n\t\t\tcontentForReplacement: content,\n\t\t};\n\t}\n\n\t// Try fuzzy match - work entirely in normalized space\n\tconst fuzzyContent = normalizeForFuzzyMatch(content);\n\tconst fuzzyOldText = normalizeForFuzzyMatch(oldText);\n\tconst fuzzyIndex = fuzzyContent.indexOf(fuzzyOldText);\n\n\tif (fuzzyIndex === -1) {\n\t\treturn {\n\t\t\tfound: false,\n\t\t\tindex: -1,\n\t\t\tmatchLength: 0,\n\t\t\tusedFuzzyMatch: false,\n\t\t\tcontentForReplacement: content,\n\t\t};\n\t}\n\n\t// When fuzzy matching, we work in the normalized space for replacement.\n\t// This means the output will have normalized whitespace/quotes/dashes,\n\t// which is acceptable since we're fixing minor formatting differences anyway.\n\treturn {\n\t\tfound: true,\n\t\tindex: fuzzyIndex,\n\t\tmatchLength: fuzzyOldText.length,\n\t\tusedFuzzyMatch: true,\n\t\tcontentForReplacement: fuzzyContent,\n\t};\n}\n\n/** Strip UTF-8 BOM if present, return both the BOM (if any) and the text without it */\nexport function stripBom(content: string): { bom: string; text: string } {\n\treturn content.startsWith(\"\\uFEFF\") ? { bom: \"\\uFEFF\", text: content.slice(1) } : { bom: \"\", text: content };\n}\n\nfunction countOccurrences(content: string, oldText: string): number {\n\tconst fuzzyContent = normalizeForFuzzyMatch(content);\n\tconst fuzzyOldText = normalizeForFuzzyMatch(oldText);\n\treturn fuzzyContent.split(fuzzyOldText).length - 1;\n}\n\nfunction getNotFoundError(path: string, editIndex: number, totalEdits: number): Error {\n\tif (totalEdits === 1) {\n\t\treturn new Error(\n\t\t\t`Could not find the exact text in ${path}. The old text must match exactly including all whitespace and newlines.`,\n\t\t);\n\t}\n\treturn new Error(\n\t\t`Could not find edits[${editIndex}] in ${path}. The oldText must match exactly including all whitespace and newlines.`,\n\t);\n}\n\nfunction getDuplicateError(path: string, editIndex: number, totalEdits: number, occurrences: number): Error {\n\tif (totalEdits === 1) {\n\t\treturn new Error(\n\t\t\t`Found ${occurrences} occurrences of the text in ${path}. The text must be unique. Please provide more context to make it unique.`,\n\t\t);\n\t}\n\treturn new Error(\n\t\t`Found ${occurrences} occurrences of edits[${editIndex}] in ${path}. Each oldText must be unique. Please provide more context to make it unique.`,\n\t);\n}\n\nfunction getEmptyOldTextError(path: string, editIndex: number, totalEdits: number): Error {\n\tif (totalEdits === 1) {\n\t\treturn new Error(`oldText must not be empty in ${path}.`);\n\t}\n\treturn new Error(`edits[${editIndex}].oldText must not be empty in ${path}.`);\n}\n\nfunction getNoChangeError(path: string, totalEdits: number): Error {\n\tif (totalEdits === 1) {\n\t\treturn new Error(\n\t\t\t`No changes made to ${path}. The replacement produced identical content. This might indicate an issue with special characters or the text not existing as expected.`,\n\t\t);\n\t}\n\treturn new Error(`No changes made to ${path}. The replacements produced identical content.`);\n}\n\n/**\n * Apply one or more exact-text replacements to LF-normalized content.\n *\n * All edits are matched against the same original content. Replacements are\n * then applied in reverse order so offsets remain stable. If any edit needs\n * fuzzy matching, the operation runs in fuzzy-normalized content space to\n * preserve current single-edit behavior.\n */\nexport function applyEditsToNormalizedContent(\n\tnormalizedContent: string,\n\tedits: Edit[],\n\tpath: string,\n): AppliedEditsResult {\n\tconst normalizedEdits = edits.map((edit) => ({\n\t\toldText: normalizeToLF(edit.oldText),\n\t\tnewText: normalizeToLF(edit.newText),\n\t}));\n\n\tfor (let i = 0; i < normalizedEdits.length; i++) {\n\t\tif (normalizedEdits[i].oldText.length === 0) {\n\t\t\tthrow getEmptyOldTextError(path, i, normalizedEdits.length);\n\t\t}\n\t}\n\n\tconst initialMatches = normalizedEdits.map((edit) => fuzzyFindText(normalizedContent, edit.oldText));\n\tconst baseContent = initialMatches.some((match) => match.usedFuzzyMatch)\n\t\t? normalizeForFuzzyMatch(normalizedContent)\n\t\t: normalizedContent;\n\n\tconst matchedEdits: MatchedEdit[] = [];\n\tfor (let i = 0; i < normalizedEdits.length; i++) {\n\t\tconst edit = normalizedEdits[i];\n\t\tconst matchResult = fuzzyFindText(baseContent, edit.oldText);\n\t\tif (!matchResult.found) {\n\t\t\tthrow getNotFoundError(path, i, normalizedEdits.length);\n\t\t}\n\n\t\tconst occurrences = countOccurrences(baseContent, edit.oldText);\n\t\tif (occurrences > 1) {\n\t\t\tthrow getDuplicateError(path, i, normalizedEdits.length, occurrences);\n\t\t}\n\n\t\tmatchedEdits.push({\n\t\t\teditIndex: i,\n\t\t\tmatchIndex: matchResult.index,\n\t\t\tmatchLength: matchResult.matchLength,\n\t\t\tnewText: edit.newText,\n\t\t});\n\t}\n\n\tmatchedEdits.sort((a, b) => a.matchIndex - b.matchIndex);\n\tfor (let i = 1; i < matchedEdits.length; i++) {\n\t\tconst previous = matchedEdits[i - 1];\n\t\tconst current = matchedEdits[i];\n\t\tif (previous.matchIndex + previous.matchLength > current.matchIndex) {\n\t\t\tthrow new Error(\n\t\t\t\t`edits[${previous.editIndex}] and edits[${current.editIndex}] overlap in ${path}. Merge them into one edit or target disjoint regions.`,\n\t\t\t);\n\t\t}\n\t}\n\n\tlet newContent = baseContent;\n\tfor (let i = matchedEdits.length - 1; i >= 0; i--) {\n\t\tconst edit = matchedEdits[i];\n\t\tnewContent =\n\t\t\tnewContent.substring(0, edit.matchIndex) +\n\t\t\tedit.newText +\n\t\t\tnewContent.substring(edit.matchIndex + edit.matchLength);\n\t}\n\n\tif (baseContent === newContent) {\n\t\tthrow getNoChangeError(path, normalizedEdits.length);\n\t}\n\n\treturn { baseContent, newContent };\n}\n\n/** Generate a standard unified patch. */\nexport function generateUnifiedPatch(path: string, oldContent: string, newContent: string, contextLines = 4): string {\n\treturn Diff.createTwoFilesPatch(path, path, oldContent, newContent, undefined, undefined, {\n\t\tcontext: contextLines,\n\t\theaderOptions: Diff.FILE_HEADERS_ONLY,\n\t});\n}\n\n/**\n * Generate a display-oriented diff string with line numbers and context.\n * Returns both the diff string and the first changed line number (in the new file).\n */\nexport function generateDiffString(\n\toldContent: string,\n\tnewContent: string,\n\tcontextLines = 4,\n): { diff: string; firstChangedLine: number | undefined } {\n\tconst parts = Diff.diffLines(oldContent, newContent);\n\tconst output: string[] = [];\n\n\tconst oldLines = oldContent.split(\"\\n\");\n\tconst newLines = newContent.split(\"\\n\");\n\tconst maxLineNum = Math.max(oldLines.length, newLines.length);\n\tconst lineNumWidth = String(maxLineNum).length;\n\n\tlet oldLineNum = 1;\n\tlet newLineNum = 1;\n\tlet lastWasChange = false;\n\tlet firstChangedLine: number | undefined;\n\n\tfor (let i = 0; i < parts.length; i++) {\n\t\tconst part = parts[i];\n\t\tconst raw = part.value.split(\"\\n\");\n\t\tif (raw[raw.length - 1] === \"\") {\n\t\t\traw.pop();\n\t\t}\n\n\t\tif (part.added || part.removed) {\n\t\t\t// Capture the first changed line (in the new file)\n\t\t\tif (firstChangedLine === undefined) {\n\t\t\t\tfirstChangedLine = newLineNum;\n\t\t\t}\n\n\t\t\t// Show the change\n\t\t\tfor (const line of raw) {\n\t\t\t\tif (part.added) {\n\t\t\t\t\tconst lineNum = String(newLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\toutput.push(`+${lineNum} ${line}`);\n\t\t\t\t\tnewLineNum++;\n\t\t\t\t} else {\n\t\t\t\t\t// removed\n\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\toutput.push(`-${lineNum} ${line}`);\n\t\t\t\t\toldLineNum++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlastWasChange = true;\n\t\t} else {\n\t\t\t// Context lines - only show a few before/after changes\n\t\t\tconst nextPartIsChange = i < parts.length - 1 && (parts[i + 1].added || parts[i + 1].removed);\n\t\t\tconst hasLeadingChange = lastWasChange;\n\t\t\tconst hasTrailingChange = nextPartIsChange;\n\n\t\t\tif (hasLeadingChange && hasTrailingChange) {\n\t\t\t\tif (raw.length <= contextLines * 2) {\n\t\t\t\t\tfor (const line of raw) {\n\t\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\t\toldLineNum++;\n\t\t\t\t\t\tnewLineNum++;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst leadingLines = raw.slice(0, contextLines);\n\t\t\t\t\tconst trailingLines = raw.slice(raw.length - contextLines);\n\t\t\t\t\tconst skippedLines = raw.length - leadingLines.length - trailingLines.length;\n\n\t\t\t\t\tfor (const line of leadingLines) {\n\t\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\t\toldLineNum++;\n\t\t\t\t\t\tnewLineNum++;\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(` ${\"\".padStart(lineNumWidth, \" \")} ...`);\n\t\t\t\t\toldLineNum += skippedLines;\n\t\t\t\t\tnewLineNum += skippedLines;\n\n\t\t\t\t\tfor (const line of trailingLines) {\n\t\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\t\toldLineNum++;\n\t\t\t\t\t\tnewLineNum++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (hasLeadingChange) {\n\t\t\t\tconst shownLines = raw.slice(0, contextLines);\n\t\t\t\tconst skippedLines = raw.length - shownLines.length;\n\n\t\t\t\tfor (const line of shownLines) {\n\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\toldLineNum++;\n\t\t\t\t\tnewLineNum++;\n\t\t\t\t}\n\n\t\t\t\tif (skippedLines > 0) {\n\t\t\t\t\toutput.push(` ${\"\".padStart(lineNumWidth, \" \")} ...`);\n\t\t\t\t\toldLineNum += skippedLines;\n\t\t\t\t\tnewLineNum += skippedLines;\n\t\t\t\t}\n\t\t\t} else if (hasTrailingChange) {\n\t\t\t\tconst skippedLines = Math.max(0, raw.length - contextLines);\n\t\t\t\tif (skippedLines > 0) {\n\t\t\t\t\toutput.push(` ${\"\".padStart(lineNumWidth, \" \")} ...`);\n\t\t\t\t\toldLineNum += skippedLines;\n\t\t\t\t\tnewLineNum += skippedLines;\n\t\t\t\t}\n\n\t\t\t\tfor (const line of raw.slice(skippedLines)) {\n\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\toldLineNum++;\n\t\t\t\t\tnewLineNum++;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Skip these context lines entirely\n\t\t\t\toldLineNum += raw.length;\n\t\t\t\tnewLineNum += raw.length;\n\t\t\t}\n\n\t\t\tlastWasChange = false;\n\t\t}\n\t}\n\n\treturn { diff: output.join(\"\\n\"), firstChangedLine };\n}\n\nexport interface EditDiffResult {\n\tdiff: string;\n\tfirstChangedLine: number | undefined;\n}\n\nexport interface EditDiffError {\n\terror: string;\n}\n\n/**\n * Compute the diff for one or more edit operations without applying them.\n * Used for preview rendering in the TUI before the tool executes.\n */\nexport async function computeEditsDiff(\n\tpath: string,\n\tedits: Edit[],\n\tcwd: string,\n): Promise<EditDiffResult | EditDiffError> {\n\tconst absolutePath = resolveToCwd(path, cwd);\n\n\ttry {\n\t\t// Check if file exists and is readable\n\t\ttry {\n\t\t\tawait access(absolutePath, constants.R_OK);\n\t\t} catch (error: unknown) {\n\t\t\tconst errorMessage = error instanceof Error && \"code\" in error ? `Error code: ${error.code}` : String(error);\n\t\t\treturn { error: `Could not edit file: ${path}. ${errorMessage}.` };\n\t\t}\n\n\t\t// Read the file\n\t\tconst rawContent = await readFile(absolutePath, \"utf-8\");\n\n\t\t// Strip BOM before matching (LLM won't include invisible BOM in oldText)\n\t\tconst { text: content } = stripBom(rawContent);\n\t\tconst normalizedContent = normalizeToLF(content);\n\t\tconst { baseContent, newContent } = applyEditsToNormalizedContent(normalizedContent, edits, path);\n\n\t\t// Generate the diff\n\t\treturn generateDiffString(baseContent, newContent);\n\t} catch (err) {\n\t\treturn { error: err instanceof Error ? err.message : String(err) };\n\t}\n}\n\n/**\n * Compute the diff for a single edit operation without applying it.\n * Kept as a convenience wrapper for single-edit callers.\n */\nexport async function computeEditDiff(\n\tpath: string,\n\toldText: string,\n\tnewText: string,\n\tcwd: string,\n): Promise<EditDiffResult | EditDiffError> {\n\treturn computeEditsDiff(path, [{ oldText, newText }], cwd);\n}\n"]}
@@ -0,0 +1,345 @@
1
+ /**
2
+ * Shared diff computation utilities for the edit tool.
3
+ * Used by both edit.ts (for execution) and tool-execution.ts (for preview rendering).
4
+ */
5
+ import * as Diff from "diff";
6
+ import { constants } from "fs";
7
+ import { access, readFile } from "fs/promises";
8
+ import { resolveToCwd } from "./path-utils.js";
9
+ export function detectLineEnding(content) {
10
+ const crlfIdx = content.indexOf("\r\n");
11
+ const lfIdx = content.indexOf("\n");
12
+ if (lfIdx === -1)
13
+ return "\n";
14
+ if (crlfIdx === -1)
15
+ return "\n";
16
+ return crlfIdx < lfIdx ? "\r\n" : "\n";
17
+ }
18
+ export function normalizeToLF(text) {
19
+ return text.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
20
+ }
21
+ export function restoreLineEndings(text, ending) {
22
+ return ending === "\r\n" ? text.replace(/\n/g, "\r\n") : text;
23
+ }
24
+ /**
25
+ * Normalize text for fuzzy matching. Applies progressive transformations:
26
+ * - Strip trailing whitespace from each line
27
+ * - Normalize smart quotes to ASCII equivalents
28
+ * - Normalize Unicode dashes/hyphens to ASCII hyphen
29
+ * - Normalize special Unicode spaces to regular space
30
+ */
31
+ export function normalizeForFuzzyMatch(text) {
32
+ return (text
33
+ .normalize("NFKC")
34
+ // Strip trailing whitespace per line
35
+ .split("\n")
36
+ .map((line) => line.trimEnd())
37
+ .join("\n")
38
+ // Smart single quotes → '
39
+ .replace(/[\u2018\u2019\u201A\u201B]/g, "'")
40
+ // Smart double quotes → "
41
+ .replace(/[\u201C\u201D\u201E\u201F]/g, '"')
42
+ // Various dashes/hyphens → -
43
+ // U+2010 hyphen, U+2011 non-breaking hyphen, U+2012 figure dash,
44
+ // U+2013 en-dash, U+2014 em-dash, U+2015 horizontal bar, U+2212 minus
45
+ .replace(/[\u2010\u2011\u2012\u2013\u2014\u2015\u2212]/g, "-")
46
+ // Special spaces → regular space
47
+ // U+00A0 NBSP, U+2002-U+200A various spaces, U+202F narrow NBSP,
48
+ // U+205F medium math space, U+3000 ideographic space
49
+ .replace(/[\u00A0\u2002-\u200A\u202F\u205F\u3000]/g, " "));
50
+ }
51
+ /**
52
+ * Find oldText in content, trying exact match first, then fuzzy match.
53
+ * When fuzzy matching is used, the returned contentForReplacement is the
54
+ * fuzzy-normalized version of the content (trailing whitespace stripped,
55
+ * Unicode quotes/dashes normalized to ASCII).
56
+ */
57
+ export function fuzzyFindText(content, oldText) {
58
+ // Try exact match first
59
+ const exactIndex = content.indexOf(oldText);
60
+ if (exactIndex !== -1) {
61
+ return {
62
+ found: true,
63
+ index: exactIndex,
64
+ matchLength: oldText.length,
65
+ usedFuzzyMatch: false,
66
+ contentForReplacement: content,
67
+ };
68
+ }
69
+ // Try fuzzy match - work entirely in normalized space
70
+ const fuzzyContent = normalizeForFuzzyMatch(content);
71
+ const fuzzyOldText = normalizeForFuzzyMatch(oldText);
72
+ const fuzzyIndex = fuzzyContent.indexOf(fuzzyOldText);
73
+ if (fuzzyIndex === -1) {
74
+ return {
75
+ found: false,
76
+ index: -1,
77
+ matchLength: 0,
78
+ usedFuzzyMatch: false,
79
+ contentForReplacement: content,
80
+ };
81
+ }
82
+ // When fuzzy matching, we work in the normalized space for replacement.
83
+ // This means the output will have normalized whitespace/quotes/dashes,
84
+ // which is acceptable since we're fixing minor formatting differences anyway.
85
+ return {
86
+ found: true,
87
+ index: fuzzyIndex,
88
+ matchLength: fuzzyOldText.length,
89
+ usedFuzzyMatch: true,
90
+ contentForReplacement: fuzzyContent,
91
+ };
92
+ }
93
+ /** Strip UTF-8 BOM if present, return both the BOM (if any) and the text without it */
94
+ export function stripBom(content) {
95
+ return content.startsWith("\uFEFF") ? { bom: "\uFEFF", text: content.slice(1) } : { bom: "", text: content };
96
+ }
97
+ function countOccurrences(content, oldText) {
98
+ const fuzzyContent = normalizeForFuzzyMatch(content);
99
+ const fuzzyOldText = normalizeForFuzzyMatch(oldText);
100
+ return fuzzyContent.split(fuzzyOldText).length - 1;
101
+ }
102
+ function getNotFoundError(path, editIndex, totalEdits) {
103
+ if (totalEdits === 1) {
104
+ return new Error(`Could not find the exact text in ${path}. The old text must match exactly including all whitespace and newlines.`);
105
+ }
106
+ return new Error(`Could not find edits[${editIndex}] in ${path}. The oldText must match exactly including all whitespace and newlines.`);
107
+ }
108
+ function getDuplicateError(path, editIndex, totalEdits, occurrences) {
109
+ if (totalEdits === 1) {
110
+ return new Error(`Found ${occurrences} occurrences of the text in ${path}. The text must be unique. Please provide more context to make it unique.`);
111
+ }
112
+ return new Error(`Found ${occurrences} occurrences of edits[${editIndex}] in ${path}. Each oldText must be unique. Please provide more context to make it unique.`);
113
+ }
114
+ function getEmptyOldTextError(path, editIndex, totalEdits) {
115
+ if (totalEdits === 1) {
116
+ return new Error(`oldText must not be empty in ${path}.`);
117
+ }
118
+ return new Error(`edits[${editIndex}].oldText must not be empty in ${path}.`);
119
+ }
120
+ function getNoChangeError(path, totalEdits) {
121
+ if (totalEdits === 1) {
122
+ return new Error(`No changes made to ${path}. The replacement produced identical content. This might indicate an issue with special characters or the text not existing as expected.`);
123
+ }
124
+ return new Error(`No changes made to ${path}. The replacements produced identical content.`);
125
+ }
126
+ /**
127
+ * Apply one or more exact-text replacements to LF-normalized content.
128
+ *
129
+ * All edits are matched against the same original content. Replacements are
130
+ * then applied in reverse order so offsets remain stable. If any edit needs
131
+ * fuzzy matching, the operation runs in fuzzy-normalized content space to
132
+ * preserve current single-edit behavior.
133
+ */
134
+ export function applyEditsToNormalizedContent(normalizedContent, edits, path) {
135
+ const normalizedEdits = edits.map((edit) => ({
136
+ oldText: normalizeToLF(edit.oldText),
137
+ newText: normalizeToLF(edit.newText),
138
+ }));
139
+ for (let i = 0; i < normalizedEdits.length; i++) {
140
+ if (normalizedEdits[i].oldText.length === 0) {
141
+ throw getEmptyOldTextError(path, i, normalizedEdits.length);
142
+ }
143
+ }
144
+ const initialMatches = normalizedEdits.map((edit) => fuzzyFindText(normalizedContent, edit.oldText));
145
+ const baseContent = initialMatches.some((match) => match.usedFuzzyMatch)
146
+ ? normalizeForFuzzyMatch(normalizedContent)
147
+ : normalizedContent;
148
+ const matchedEdits = [];
149
+ for (let i = 0; i < normalizedEdits.length; i++) {
150
+ const edit = normalizedEdits[i];
151
+ const matchResult = fuzzyFindText(baseContent, edit.oldText);
152
+ if (!matchResult.found) {
153
+ throw getNotFoundError(path, i, normalizedEdits.length);
154
+ }
155
+ const occurrences = countOccurrences(baseContent, edit.oldText);
156
+ if (occurrences > 1) {
157
+ throw getDuplicateError(path, i, normalizedEdits.length, occurrences);
158
+ }
159
+ matchedEdits.push({
160
+ editIndex: i,
161
+ matchIndex: matchResult.index,
162
+ matchLength: matchResult.matchLength,
163
+ newText: edit.newText,
164
+ });
165
+ }
166
+ matchedEdits.sort((a, b) => a.matchIndex - b.matchIndex);
167
+ for (let i = 1; i < matchedEdits.length; i++) {
168
+ const previous = matchedEdits[i - 1];
169
+ const current = matchedEdits[i];
170
+ if (previous.matchIndex + previous.matchLength > current.matchIndex) {
171
+ throw new Error(`edits[${previous.editIndex}] and edits[${current.editIndex}] overlap in ${path}. Merge them into one edit or target disjoint regions.`);
172
+ }
173
+ }
174
+ let newContent = baseContent;
175
+ for (let i = matchedEdits.length - 1; i >= 0; i--) {
176
+ const edit = matchedEdits[i];
177
+ newContent =
178
+ newContent.substring(0, edit.matchIndex) +
179
+ edit.newText +
180
+ newContent.substring(edit.matchIndex + edit.matchLength);
181
+ }
182
+ if (baseContent === newContent) {
183
+ throw getNoChangeError(path, normalizedEdits.length);
184
+ }
185
+ return { baseContent, newContent };
186
+ }
187
+ /** Generate a standard unified patch. */
188
+ export function generateUnifiedPatch(path, oldContent, newContent, contextLines = 4) {
189
+ return Diff.createTwoFilesPatch(path, path, oldContent, newContent, undefined, undefined, {
190
+ context: contextLines,
191
+ headerOptions: Diff.FILE_HEADERS_ONLY,
192
+ });
193
+ }
194
+ /**
195
+ * Generate a display-oriented diff string with line numbers and context.
196
+ * Returns both the diff string and the first changed line number (in the new file).
197
+ */
198
+ export function generateDiffString(oldContent, newContent, contextLines = 4) {
199
+ const parts = Diff.diffLines(oldContent, newContent);
200
+ const output = [];
201
+ const oldLines = oldContent.split("\n");
202
+ const newLines = newContent.split("\n");
203
+ const maxLineNum = Math.max(oldLines.length, newLines.length);
204
+ const lineNumWidth = String(maxLineNum).length;
205
+ let oldLineNum = 1;
206
+ let newLineNum = 1;
207
+ let lastWasChange = false;
208
+ let firstChangedLine;
209
+ for (let i = 0; i < parts.length; i++) {
210
+ const part = parts[i];
211
+ const raw = part.value.split("\n");
212
+ if (raw[raw.length - 1] === "") {
213
+ raw.pop();
214
+ }
215
+ if (part.added || part.removed) {
216
+ // Capture the first changed line (in the new file)
217
+ if (firstChangedLine === undefined) {
218
+ firstChangedLine = newLineNum;
219
+ }
220
+ // Show the change
221
+ for (const line of raw) {
222
+ if (part.added) {
223
+ const lineNum = String(newLineNum).padStart(lineNumWidth, " ");
224
+ output.push(`+${lineNum} ${line}`);
225
+ newLineNum++;
226
+ }
227
+ else {
228
+ // removed
229
+ const lineNum = String(oldLineNum).padStart(lineNumWidth, " ");
230
+ output.push(`-${lineNum} ${line}`);
231
+ oldLineNum++;
232
+ }
233
+ }
234
+ lastWasChange = true;
235
+ }
236
+ else {
237
+ // Context lines - only show a few before/after changes
238
+ const nextPartIsChange = i < parts.length - 1 && (parts[i + 1].added || parts[i + 1].removed);
239
+ const hasLeadingChange = lastWasChange;
240
+ const hasTrailingChange = nextPartIsChange;
241
+ if (hasLeadingChange && hasTrailingChange) {
242
+ if (raw.length <= contextLines * 2) {
243
+ for (const line of raw) {
244
+ const lineNum = String(oldLineNum).padStart(lineNumWidth, " ");
245
+ output.push(` ${lineNum} ${line}`);
246
+ oldLineNum++;
247
+ newLineNum++;
248
+ }
249
+ }
250
+ else {
251
+ const leadingLines = raw.slice(0, contextLines);
252
+ const trailingLines = raw.slice(raw.length - contextLines);
253
+ const skippedLines = raw.length - leadingLines.length - trailingLines.length;
254
+ for (const line of leadingLines) {
255
+ const lineNum = String(oldLineNum).padStart(lineNumWidth, " ");
256
+ output.push(` ${lineNum} ${line}`);
257
+ oldLineNum++;
258
+ newLineNum++;
259
+ }
260
+ output.push(` ${"".padStart(lineNumWidth, " ")} ...`);
261
+ oldLineNum += skippedLines;
262
+ newLineNum += skippedLines;
263
+ for (const line of trailingLines) {
264
+ const lineNum = String(oldLineNum).padStart(lineNumWidth, " ");
265
+ output.push(` ${lineNum} ${line}`);
266
+ oldLineNum++;
267
+ newLineNum++;
268
+ }
269
+ }
270
+ }
271
+ else if (hasLeadingChange) {
272
+ const shownLines = raw.slice(0, contextLines);
273
+ const skippedLines = raw.length - shownLines.length;
274
+ for (const line of shownLines) {
275
+ const lineNum = String(oldLineNum).padStart(lineNumWidth, " ");
276
+ output.push(` ${lineNum} ${line}`);
277
+ oldLineNum++;
278
+ newLineNum++;
279
+ }
280
+ if (skippedLines > 0) {
281
+ output.push(` ${"".padStart(lineNumWidth, " ")} ...`);
282
+ oldLineNum += skippedLines;
283
+ newLineNum += skippedLines;
284
+ }
285
+ }
286
+ else if (hasTrailingChange) {
287
+ const skippedLines = Math.max(0, raw.length - contextLines);
288
+ if (skippedLines > 0) {
289
+ output.push(` ${"".padStart(lineNumWidth, " ")} ...`);
290
+ oldLineNum += skippedLines;
291
+ newLineNum += skippedLines;
292
+ }
293
+ for (const line of raw.slice(skippedLines)) {
294
+ const lineNum = String(oldLineNum).padStart(lineNumWidth, " ");
295
+ output.push(` ${lineNum} ${line}`);
296
+ oldLineNum++;
297
+ newLineNum++;
298
+ }
299
+ }
300
+ else {
301
+ // Skip these context lines entirely
302
+ oldLineNum += raw.length;
303
+ newLineNum += raw.length;
304
+ }
305
+ lastWasChange = false;
306
+ }
307
+ }
308
+ return { diff: output.join("\n"), firstChangedLine };
309
+ }
310
+ /**
311
+ * Compute the diff for one or more edit operations without applying them.
312
+ * Used for preview rendering in the TUI before the tool executes.
313
+ */
314
+ export async function computeEditsDiff(path, edits, cwd) {
315
+ const absolutePath = resolveToCwd(path, cwd);
316
+ try {
317
+ // Check if file exists and is readable
318
+ try {
319
+ await access(absolutePath, constants.R_OK);
320
+ }
321
+ catch (error) {
322
+ const errorMessage = error instanceof Error && "code" in error ? `Error code: ${error.code}` : String(error);
323
+ return { error: `Could not edit file: ${path}. ${errorMessage}.` };
324
+ }
325
+ // Read the file
326
+ const rawContent = await readFile(absolutePath, "utf-8");
327
+ // Strip BOM before matching (LLM won't include invisible BOM in oldText)
328
+ const { text: content } = stripBom(rawContent);
329
+ const normalizedContent = normalizeToLF(content);
330
+ const { baseContent, newContent } = applyEditsToNormalizedContent(normalizedContent, edits, path);
331
+ // Generate the diff
332
+ return generateDiffString(baseContent, newContent);
333
+ }
334
+ catch (err) {
335
+ return { error: err instanceof Error ? err.message : String(err) };
336
+ }
337
+ }
338
+ /**
339
+ * Compute the diff for a single edit operation without applying it.
340
+ * Kept as a convenience wrapper for single-edit callers.
341
+ */
342
+ export async function computeEditDiff(path, oldText, newText, cwd) {
343
+ return computeEditsDiff(path, [{ oldText, newText }], cwd);
344
+ }
345
+ //# sourceMappingURL=edit-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-diff.js","sourceRoot":"","sources":["../../../src/core/tools/edit-diff.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared diff computation utilities for the edit tool.\n * Used by both edit.ts (for execution) and tool-execution.ts (for preview rendering).\n */\n\nimport * as Diff from \"diff\";\nimport { constants } from \"fs\";\nimport { access, readFile } from \"fs/promises\";\nimport { resolveToCwd } from \"./path-utils.ts\";\n\nexport function detectLineEnding(content: string): \"\\r\\n\" | \"\\n\" {\n\tconst crlfIdx = content.indexOf(\"\\r\\n\");\n\tconst lfIdx = content.indexOf(\"\\n\");\n\tif (lfIdx === -1) return \"\\n\";\n\tif (crlfIdx === -1) return \"\\n\";\n\treturn crlfIdx < lfIdx ? \"\\r\\n\" : \"\\n\";\n}\n\nexport function normalizeToLF(text: string): string {\n\treturn text.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n}\n\nexport function restoreLineEndings(text: string, ending: \"\\r\\n\" | \"\\n\"): string {\n\treturn ending === \"\\r\\n\" ? text.replace(/\\n/g, \"\\r\\n\") : text;\n}\n\n/**\n * Normalize text for fuzzy matching. Applies progressive transformations:\n * - Strip trailing whitespace from each line\n * - Normalize smart quotes to ASCII equivalents\n * - Normalize Unicode dashes/hyphens to ASCII hyphen\n * - Normalize special Unicode spaces to regular space\n */\nexport function normalizeForFuzzyMatch(text: string): string {\n\treturn (\n\t\ttext\n\t\t\t.normalize(\"NFKC\")\n\t\t\t// Strip trailing whitespace per line\n\t\t\t.split(\"\\n\")\n\t\t\t.map((line) => line.trimEnd())\n\t\t\t.join(\"\\n\")\n\t\t\t// Smart single quotes → '\n\t\t\t.replace(/[\\u2018\\u2019\\u201A\\u201B]/g, \"'\")\n\t\t\t// Smart double quotes → \"\n\t\t\t.replace(/[\\u201C\\u201D\\u201E\\u201F]/g, '\"')\n\t\t\t// Various dashes/hyphens → -\n\t\t\t// U+2010 hyphen, U+2011 non-breaking hyphen, U+2012 figure dash,\n\t\t\t// U+2013 en-dash, U+2014 em-dash, U+2015 horizontal bar, U+2212 minus\n\t\t\t.replace(/[\\u2010\\u2011\\u2012\\u2013\\u2014\\u2015\\u2212]/g, \"-\")\n\t\t\t// Special spaces → regular space\n\t\t\t// U+00A0 NBSP, U+2002-U+200A various spaces, U+202F narrow NBSP,\n\t\t\t// U+205F medium math space, U+3000 ideographic space\n\t\t\t.replace(/[\\u00A0\\u2002-\\u200A\\u202F\\u205F\\u3000]/g, \" \")\n\t);\n}\n\nexport interface FuzzyMatchResult {\n\t/** Whether a match was found */\n\tfound: boolean;\n\t/** The index where the match starts (in the content that should be used for replacement) */\n\tindex: number;\n\t/** Length of the matched text */\n\tmatchLength: number;\n\t/** Whether fuzzy matching was used (false = exact match) */\n\tusedFuzzyMatch: boolean;\n\t/**\n\t * The content to use for replacement operations.\n\t * When exact match: original content. When fuzzy match: normalized content.\n\t */\n\tcontentForReplacement: string;\n}\n\nexport interface Edit {\n\toldText: string;\n\tnewText: string;\n}\n\ninterface MatchedEdit {\n\teditIndex: number;\n\tmatchIndex: number;\n\tmatchLength: number;\n\tnewText: string;\n}\n\nexport interface AppliedEditsResult {\n\tbaseContent: string;\n\tnewContent: string;\n}\n\n/**\n * Find oldText in content, trying exact match first, then fuzzy match.\n * When fuzzy matching is used, the returned contentForReplacement is the\n * fuzzy-normalized version of the content (trailing whitespace stripped,\n * Unicode quotes/dashes normalized to ASCII).\n */\nexport function fuzzyFindText(content: string, oldText: string): FuzzyMatchResult {\n\t// Try exact match first\n\tconst exactIndex = content.indexOf(oldText);\n\tif (exactIndex !== -1) {\n\t\treturn {\n\t\t\tfound: true,\n\t\t\tindex: exactIndex,\n\t\t\tmatchLength: oldText.length,\n\t\t\tusedFuzzyMatch: false,\n\t\t\tcontentForReplacement: content,\n\t\t};\n\t}\n\n\t// Try fuzzy match - work entirely in normalized space\n\tconst fuzzyContent = normalizeForFuzzyMatch(content);\n\tconst fuzzyOldText = normalizeForFuzzyMatch(oldText);\n\tconst fuzzyIndex = fuzzyContent.indexOf(fuzzyOldText);\n\n\tif (fuzzyIndex === -1) {\n\t\treturn {\n\t\t\tfound: false,\n\t\t\tindex: -1,\n\t\t\tmatchLength: 0,\n\t\t\tusedFuzzyMatch: false,\n\t\t\tcontentForReplacement: content,\n\t\t};\n\t}\n\n\t// When fuzzy matching, we work in the normalized space for replacement.\n\t// This means the output will have normalized whitespace/quotes/dashes,\n\t// which is acceptable since we're fixing minor formatting differences anyway.\n\treturn {\n\t\tfound: true,\n\t\tindex: fuzzyIndex,\n\t\tmatchLength: fuzzyOldText.length,\n\t\tusedFuzzyMatch: true,\n\t\tcontentForReplacement: fuzzyContent,\n\t};\n}\n\n/** Strip UTF-8 BOM if present, return both the BOM (if any) and the text without it */\nexport function stripBom(content: string): { bom: string; text: string } {\n\treturn content.startsWith(\"\\uFEFF\") ? { bom: \"\\uFEFF\", text: content.slice(1) } : { bom: \"\", text: content };\n}\n\nfunction countOccurrences(content: string, oldText: string): number {\n\tconst fuzzyContent = normalizeForFuzzyMatch(content);\n\tconst fuzzyOldText = normalizeForFuzzyMatch(oldText);\n\treturn fuzzyContent.split(fuzzyOldText).length - 1;\n}\n\nfunction getNotFoundError(path: string, editIndex: number, totalEdits: number): Error {\n\tif (totalEdits === 1) {\n\t\treturn new Error(\n\t\t\t`Could not find the exact text in ${path}. The old text must match exactly including all whitespace and newlines.`,\n\t\t);\n\t}\n\treturn new Error(\n\t\t`Could not find edits[${editIndex}] in ${path}. The oldText must match exactly including all whitespace and newlines.`,\n\t);\n}\n\nfunction getDuplicateError(path: string, editIndex: number, totalEdits: number, occurrences: number): Error {\n\tif (totalEdits === 1) {\n\t\treturn new Error(\n\t\t\t`Found ${occurrences} occurrences of the text in ${path}. The text must be unique. Please provide more context to make it unique.`,\n\t\t);\n\t}\n\treturn new Error(\n\t\t`Found ${occurrences} occurrences of edits[${editIndex}] in ${path}. Each oldText must be unique. Please provide more context to make it unique.`,\n\t);\n}\n\nfunction getEmptyOldTextError(path: string, editIndex: number, totalEdits: number): Error {\n\tif (totalEdits === 1) {\n\t\treturn new Error(`oldText must not be empty in ${path}.`);\n\t}\n\treturn new Error(`edits[${editIndex}].oldText must not be empty in ${path}.`);\n}\n\nfunction getNoChangeError(path: string, totalEdits: number): Error {\n\tif (totalEdits === 1) {\n\t\treturn new Error(\n\t\t\t`No changes made to ${path}. The replacement produced identical content. This might indicate an issue with special characters or the text not existing as expected.`,\n\t\t);\n\t}\n\treturn new Error(`No changes made to ${path}. The replacements produced identical content.`);\n}\n\n/**\n * Apply one or more exact-text replacements to LF-normalized content.\n *\n * All edits are matched against the same original content. Replacements are\n * then applied in reverse order so offsets remain stable. If any edit needs\n * fuzzy matching, the operation runs in fuzzy-normalized content space to\n * preserve current single-edit behavior.\n */\nexport function applyEditsToNormalizedContent(\n\tnormalizedContent: string,\n\tedits: Edit[],\n\tpath: string,\n): AppliedEditsResult {\n\tconst normalizedEdits = edits.map((edit) => ({\n\t\toldText: normalizeToLF(edit.oldText),\n\t\tnewText: normalizeToLF(edit.newText),\n\t}));\n\n\tfor (let i = 0; i < normalizedEdits.length; i++) {\n\t\tif (normalizedEdits[i].oldText.length === 0) {\n\t\t\tthrow getEmptyOldTextError(path, i, normalizedEdits.length);\n\t\t}\n\t}\n\n\tconst initialMatches = normalizedEdits.map((edit) => fuzzyFindText(normalizedContent, edit.oldText));\n\tconst baseContent = initialMatches.some((match) => match.usedFuzzyMatch)\n\t\t? normalizeForFuzzyMatch(normalizedContent)\n\t\t: normalizedContent;\n\n\tconst matchedEdits: MatchedEdit[] = [];\n\tfor (let i = 0; i < normalizedEdits.length; i++) {\n\t\tconst edit = normalizedEdits[i];\n\t\tconst matchResult = fuzzyFindText(baseContent, edit.oldText);\n\t\tif (!matchResult.found) {\n\t\t\tthrow getNotFoundError(path, i, normalizedEdits.length);\n\t\t}\n\n\t\tconst occurrences = countOccurrences(baseContent, edit.oldText);\n\t\tif (occurrences > 1) {\n\t\t\tthrow getDuplicateError(path, i, normalizedEdits.length, occurrences);\n\t\t}\n\n\t\tmatchedEdits.push({\n\t\t\teditIndex: i,\n\t\t\tmatchIndex: matchResult.index,\n\t\t\tmatchLength: matchResult.matchLength,\n\t\t\tnewText: edit.newText,\n\t\t});\n\t}\n\n\tmatchedEdits.sort((a, b) => a.matchIndex - b.matchIndex);\n\tfor (let i = 1; i < matchedEdits.length; i++) {\n\t\tconst previous = matchedEdits[i - 1];\n\t\tconst current = matchedEdits[i];\n\t\tif (previous.matchIndex + previous.matchLength > current.matchIndex) {\n\t\t\tthrow new Error(\n\t\t\t\t`edits[${previous.editIndex}] and edits[${current.editIndex}] overlap in ${path}. Merge them into one edit or target disjoint regions.`,\n\t\t\t);\n\t\t}\n\t}\n\n\tlet newContent = baseContent;\n\tfor (let i = matchedEdits.length - 1; i >= 0; i--) {\n\t\tconst edit = matchedEdits[i];\n\t\tnewContent =\n\t\t\tnewContent.substring(0, edit.matchIndex) +\n\t\t\tedit.newText +\n\t\t\tnewContent.substring(edit.matchIndex + edit.matchLength);\n\t}\n\n\tif (baseContent === newContent) {\n\t\tthrow getNoChangeError(path, normalizedEdits.length);\n\t}\n\n\treturn { baseContent, newContent };\n}\n\n/** Generate a standard unified patch. */\nexport function generateUnifiedPatch(path: string, oldContent: string, newContent: string, contextLines = 4): string {\n\treturn Diff.createTwoFilesPatch(path, path, oldContent, newContent, undefined, undefined, {\n\t\tcontext: contextLines,\n\t\theaderOptions: Diff.FILE_HEADERS_ONLY,\n\t});\n}\n\n/**\n * Generate a display-oriented diff string with line numbers and context.\n * Returns both the diff string and the first changed line number (in the new file).\n */\nexport function generateDiffString(\n\toldContent: string,\n\tnewContent: string,\n\tcontextLines = 4,\n): { diff: string; firstChangedLine: number | undefined } {\n\tconst parts = Diff.diffLines(oldContent, newContent);\n\tconst output: string[] = [];\n\n\tconst oldLines = oldContent.split(\"\\n\");\n\tconst newLines = newContent.split(\"\\n\");\n\tconst maxLineNum = Math.max(oldLines.length, newLines.length);\n\tconst lineNumWidth = String(maxLineNum).length;\n\n\tlet oldLineNum = 1;\n\tlet newLineNum = 1;\n\tlet lastWasChange = false;\n\tlet firstChangedLine: number | undefined;\n\n\tfor (let i = 0; i < parts.length; i++) {\n\t\tconst part = parts[i];\n\t\tconst raw = part.value.split(\"\\n\");\n\t\tif (raw[raw.length - 1] === \"\") {\n\t\t\traw.pop();\n\t\t}\n\n\t\tif (part.added || part.removed) {\n\t\t\t// Capture the first changed line (in the new file)\n\t\t\tif (firstChangedLine === undefined) {\n\t\t\t\tfirstChangedLine = newLineNum;\n\t\t\t}\n\n\t\t\t// Show the change\n\t\t\tfor (const line of raw) {\n\t\t\t\tif (part.added) {\n\t\t\t\t\tconst lineNum = String(newLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\toutput.push(`+${lineNum} ${line}`);\n\t\t\t\t\tnewLineNum++;\n\t\t\t\t} else {\n\t\t\t\t\t// removed\n\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\toutput.push(`-${lineNum} ${line}`);\n\t\t\t\t\toldLineNum++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlastWasChange = true;\n\t\t} else {\n\t\t\t// Context lines - only show a few before/after changes\n\t\t\tconst nextPartIsChange = i < parts.length - 1 && (parts[i + 1].added || parts[i + 1].removed);\n\t\t\tconst hasLeadingChange = lastWasChange;\n\t\t\tconst hasTrailingChange = nextPartIsChange;\n\n\t\t\tif (hasLeadingChange && hasTrailingChange) {\n\t\t\t\tif (raw.length <= contextLines * 2) {\n\t\t\t\t\tfor (const line of raw) {\n\t\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\t\toldLineNum++;\n\t\t\t\t\t\tnewLineNum++;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst leadingLines = raw.slice(0, contextLines);\n\t\t\t\t\tconst trailingLines = raw.slice(raw.length - contextLines);\n\t\t\t\t\tconst skippedLines = raw.length - leadingLines.length - trailingLines.length;\n\n\t\t\t\t\tfor (const line of leadingLines) {\n\t\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\t\toldLineNum++;\n\t\t\t\t\t\tnewLineNum++;\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(` ${\"\".padStart(lineNumWidth, \" \")} ...`);\n\t\t\t\t\toldLineNum += skippedLines;\n\t\t\t\t\tnewLineNum += skippedLines;\n\n\t\t\t\t\tfor (const line of trailingLines) {\n\t\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\t\toldLineNum++;\n\t\t\t\t\t\tnewLineNum++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (hasLeadingChange) {\n\t\t\t\tconst shownLines = raw.slice(0, contextLines);\n\t\t\t\tconst skippedLines = raw.length - shownLines.length;\n\n\t\t\t\tfor (const line of shownLines) {\n\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\toldLineNum++;\n\t\t\t\t\tnewLineNum++;\n\t\t\t\t}\n\n\t\t\t\tif (skippedLines > 0) {\n\t\t\t\t\toutput.push(` ${\"\".padStart(lineNumWidth, \" \")} ...`);\n\t\t\t\t\toldLineNum += skippedLines;\n\t\t\t\t\tnewLineNum += skippedLines;\n\t\t\t\t}\n\t\t\t} else if (hasTrailingChange) {\n\t\t\t\tconst skippedLines = Math.max(0, raw.length - contextLines);\n\t\t\t\tif (skippedLines > 0) {\n\t\t\t\t\toutput.push(` ${\"\".padStart(lineNumWidth, \" \")} ...`);\n\t\t\t\t\toldLineNum += skippedLines;\n\t\t\t\t\tnewLineNum += skippedLines;\n\t\t\t\t}\n\n\t\t\t\tfor (const line of raw.slice(skippedLines)) {\n\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\toldLineNum++;\n\t\t\t\t\tnewLineNum++;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Skip these context lines entirely\n\t\t\t\toldLineNum += raw.length;\n\t\t\t\tnewLineNum += raw.length;\n\t\t\t}\n\n\t\t\tlastWasChange = false;\n\t\t}\n\t}\n\n\treturn { diff: output.join(\"\\n\"), firstChangedLine };\n}\n\nexport interface EditDiffResult {\n\tdiff: string;\n\tfirstChangedLine: number | undefined;\n}\n\nexport interface EditDiffError {\n\terror: string;\n}\n\n/**\n * Compute the diff for one or more edit operations without applying them.\n * Used for preview rendering in the TUI before the tool executes.\n */\nexport async function computeEditsDiff(\n\tpath: string,\n\tedits: Edit[],\n\tcwd: string,\n): Promise<EditDiffResult | EditDiffError> {\n\tconst absolutePath = resolveToCwd(path, cwd);\n\n\ttry {\n\t\t// Check if file exists and is readable\n\t\ttry {\n\t\t\tawait access(absolutePath, constants.R_OK);\n\t\t} catch (error: unknown) {\n\t\t\tconst errorMessage = error instanceof Error && \"code\" in error ? `Error code: ${error.code}` : String(error);\n\t\t\treturn { error: `Could not edit file: ${path}. ${errorMessage}.` };\n\t\t}\n\n\t\t// Read the file\n\t\tconst rawContent = await readFile(absolutePath, \"utf-8\");\n\n\t\t// Strip BOM before matching (LLM won't include invisible BOM in oldText)\n\t\tconst { text: content } = stripBom(rawContent);\n\t\tconst normalizedContent = normalizeToLF(content);\n\t\tconst { baseContent, newContent } = applyEditsToNormalizedContent(normalizedContent, edits, path);\n\n\t\t// Generate the diff\n\t\treturn generateDiffString(baseContent, newContent);\n\t} catch (err) {\n\t\treturn { error: err instanceof Error ? err.message : String(err) };\n\t}\n}\n\n/**\n * Compute the diff for a single edit operation without applying it.\n * Kept as a convenience wrapper for single-edit callers.\n */\nexport async function computeEditDiff(\n\tpath: string,\n\toldText: string,\n\tnewText: string,\n\tcwd: string,\n): Promise<EditDiffResult | EditDiffError> {\n\treturn computeEditsDiff(path, [{ oldText, newText }], cwd);\n}\n"]}
@@ -0,0 +1,51 @@
1
+ import type { AgentTool } from "@earendil-works/omk-agent-core";
2
+ import { Box } from "@earendil-works/omk-tui";
3
+ import { type Static, Type } from "typebox";
4
+ import type { ToolDefinition } from "../extensions/types.ts";
5
+ import { type EditDiffError, type EditDiffResult } from "./edit-diff.ts";
6
+ type EditPreview = EditDiffResult | EditDiffError;
7
+ type EditRenderState = {
8
+ callComponent?: EditCallRenderComponent;
9
+ };
10
+ declare const editSchema: Type.TObject<{
11
+ path: Type.TString;
12
+ edits: Type.TArray<Type.TObject<{
13
+ oldText: Type.TString;
14
+ newText: Type.TString;
15
+ }>>;
16
+ }>;
17
+ export type EditToolInput = Static<typeof editSchema>;
18
+ export interface EditToolDetails {
19
+ /** Display-oriented diff of the changes made */
20
+ diff: string;
21
+ /** Standard unified patch of the changes made */
22
+ patch: string;
23
+ /** Line number of the first change in the new file (for editor navigation) */
24
+ firstChangedLine?: number;
25
+ }
26
+ /**
27
+ * Pluggable operations for the edit tool.
28
+ * Override these to delegate file editing to remote systems (for example SSH).
29
+ */
30
+ export interface EditOperations {
31
+ /** Read file contents as a Buffer */
32
+ readFile: (absolutePath: string) => Promise<Buffer>;
33
+ /** Write content to a file */
34
+ writeFile: (absolutePath: string, content: string) => Promise<void>;
35
+ /** Check if file is readable and writable (throw if not) */
36
+ access: (absolutePath: string) => Promise<void>;
37
+ }
38
+ export interface EditToolOptions {
39
+ /** Custom operations for file editing. Default: local filesystem */
40
+ operations?: EditOperations;
41
+ }
42
+ type EditCallRenderComponent = Box & {
43
+ preview?: EditPreview;
44
+ previewArgsKey?: string;
45
+ previewPending?: boolean;
46
+ settledError?: boolean;
47
+ };
48
+ export declare function createEditToolDefinition(cwd: string, options?: EditToolOptions): ToolDefinition<typeof editSchema, EditToolDetails | undefined, EditRenderState>;
49
+ export declare function createEditTool(cwd: string, options?: EditToolOptions): AgentTool<typeof editSchema>;
50
+ export {};
51
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../src/core/tools/edit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,GAAG,EAA2B,MAAM,yBAAyB,CAAC;AAGvE,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAKN,KAAK,aAAa,EAClB,KAAK,cAAc,EAMnB,MAAM,gBAAgB,CAAC;AAMxB,KAAK,WAAW,GAAG,cAAc,GAAG,aAAa,CAAC;AAElD,KAAK,eAAe,GAAG;IACtB,aAAa,CAAC,EAAE,uBAAuB,CAAC;CACxC,CAAC;AAaF,QAAA,MAAM,UAAU;;;;;;EASf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAMtD,MAAM,WAAW,eAAe;IAC/B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,qCAAqC;IACrC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,8BAA8B;IAC9B,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,4DAA4D;IAC5D,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAQD,MAAM,WAAW,eAAe;IAC/B,oEAAoE;IACpE,UAAU,CAAC,EAAE,cAAc,CAAC;CAC5B;AAgDD,KAAK,uBAAuB,GAAG,GAAG,GAAG;IACpC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AA8IF,wBAAgB,wBAAwB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,GACvB,cAAc,CAAC,OAAO,UAAU,EAAE,eAAe,GAAG,SAAS,EAAE,eAAe,CAAC,CA+IjF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC,OAAO,UAAU,CAAC,CAEnG","sourcesContent":["import type { AgentTool } from \"@earendil-works/omk-agent-core\";\nimport { Box, Container, Spacer, Text } from \"@earendil-works/omk-tui\";\nimport { constants } from \"fs\";\nimport { access as fsAccess, readFile as fsReadFile, writeFile as fsWriteFile } from \"fs/promises\";\nimport { type Static, Type } from \"typebox\";\nimport { renderDiff } from \"../../modes/interactive/components/diff.ts\";\nimport type { Theme } from \"../../modes/interactive/theme/theme.ts\";\nimport type { ToolDefinition } from \"../extensions/types.ts\";\nimport {\n\tapplyEditsToNormalizedContent,\n\tcomputeEditsDiff,\n\tdetectLineEnding,\n\ttype Edit,\n\ttype EditDiffError,\n\ttype EditDiffResult,\n\tgenerateDiffString,\n\tgenerateUnifiedPatch,\n\tnormalizeToLF,\n\trestoreLineEndings,\n\tstripBom,\n} from \"./edit-diff.ts\";\nimport { withFileMutationQueue } from \"./file-mutation-queue.ts\";\nimport { resolveToCwd } from \"./path-utils.ts\";\nimport { renderToolPath, str } from \"./render-utils.ts\";\nimport { wrapToolDefinition } from \"./tool-definition-wrapper.ts\";\n\ntype EditPreview = EditDiffResult | EditDiffError;\n\ntype EditRenderState = {\n\tcallComponent?: EditCallRenderComponent;\n};\n\nconst replaceEditSchema = Type.Object(\n\t{\n\t\toldText: Type.String({\n\t\t\tdescription:\n\t\t\t\t\"Exact text for one targeted replacement. It must be unique in the original file and must not overlap with any other edits[].oldText in the same call.\",\n\t\t}),\n\t\tnewText: Type.String({ description: \"Replacement text for this targeted edit.\" }),\n\t},\n\t{ additionalProperties: false },\n);\n\nconst editSchema = Type.Object(\n\t{\n\t\tpath: Type.String({ description: \"Path to the file to edit (relative or absolute)\" }),\n\t\tedits: Type.Array(replaceEditSchema, {\n\t\t\tdescription:\n\t\t\t\t\"One or more targeted replacements. Each edit is matched against the original file, not incrementally. Do not include overlapping or nested edits. If two changes touch the same block or nearby lines, merge them into one edit instead.\",\n\t\t}),\n\t},\n\t{ additionalProperties: false },\n);\n\nexport type EditToolInput = Static<typeof editSchema>;\ntype LegacyEditToolInput = EditToolInput & {\n\toldText?: unknown;\n\tnewText?: unknown;\n};\n\nexport interface EditToolDetails {\n\t/** Display-oriented diff of the changes made */\n\tdiff: string;\n\t/** Standard unified patch of the changes made */\n\tpatch: string;\n\t/** Line number of the first change in the new file (for editor navigation) */\n\tfirstChangedLine?: number;\n}\n\n/**\n * Pluggable operations for the edit tool.\n * Override these to delegate file editing to remote systems (for example SSH).\n */\nexport interface EditOperations {\n\t/** Read file contents as a Buffer */\n\treadFile: (absolutePath: string) => Promise<Buffer>;\n\t/** Write content to a file */\n\twriteFile: (absolutePath: string, content: string) => Promise<void>;\n\t/** Check if file is readable and writable (throw if not) */\n\taccess: (absolutePath: string) => Promise<void>;\n}\n\nconst defaultEditOperations: EditOperations = {\n\treadFile: (path) => fsReadFile(path),\n\twriteFile: (path, content) => fsWriteFile(path, content, \"utf-8\"),\n\taccess: (path) => fsAccess(path, constants.R_OK | constants.W_OK),\n};\n\nexport interface EditToolOptions {\n\t/** Custom operations for file editing. Default: local filesystem */\n\toperations?: EditOperations;\n}\n\nfunction prepareEditArguments(input: unknown): EditToolInput {\n\tif (!input || typeof input !== \"object\") {\n\t\treturn input as EditToolInput;\n\t}\n\n\tconst args = input as Record<string, unknown>;\n\n\t// Some models (Opus 4.6, GLM-5.1) send edits as a JSON string instead of an array\n\tif (typeof args.edits === \"string\") {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(args.edits);\n\t\t\tif (Array.isArray(parsed)) args.edits = parsed;\n\t\t} catch {}\n\t}\n\n\tconst legacy = args as LegacyEditToolInput;\n\tif (typeof legacy.oldText !== \"string\" || typeof legacy.newText !== \"string\") {\n\t\treturn args as EditToolInput;\n\t}\n\n\tconst edits = Array.isArray(legacy.edits) ? [...legacy.edits] : [];\n\tedits.push({ oldText: legacy.oldText, newText: legacy.newText });\n\tconst { oldText: _oldText, newText: _newText, ...rest } = legacy;\n\treturn { ...rest, edits } as EditToolInput;\n}\n\nfunction validateEditInput(input: EditToolInput): { path: string; edits: Edit[] } {\n\tif (!Array.isArray(input.edits) || input.edits.length === 0) {\n\t\tthrow new Error(\"Edit tool input is invalid. edits must contain at least one replacement.\");\n\t}\n\treturn { path: input.path, edits: input.edits };\n}\n\ntype RenderableEditArgs = {\n\tpath?: string;\n\tfile_path?: string;\n\tedits?: Edit[];\n\toldText?: string;\n\tnewText?: string;\n};\n\ntype EditToolResultLike = {\n\tcontent: Array<{ type: string; text?: string; data?: string; mimeType?: string }>;\n\tdetails?: EditToolDetails;\n};\n\ntype EditCallRenderComponent = Box & {\n\tpreview?: EditPreview;\n\tpreviewArgsKey?: string;\n\tpreviewPending?: boolean;\n\tsettledError?: boolean;\n};\n\nfunction createEditCallRenderComponent(): EditCallRenderComponent {\n\treturn Object.assign(new Box(1, 1, (text: string) => text), {\n\t\tpreview: undefined as EditPreview | undefined,\n\t\tpreviewArgsKey: undefined as string | undefined,\n\t\tpreviewPending: false,\n\t\tsettledError: false,\n\t});\n}\n\nfunction getEditCallRenderComponent(state: EditRenderState, lastComponent: unknown): EditCallRenderComponent {\n\tif (lastComponent instanceof Box) {\n\t\tconst component = lastComponent as EditCallRenderComponent;\n\t\tstate.callComponent = component;\n\t\treturn component;\n\t}\n\tif (state.callComponent) {\n\t\treturn state.callComponent;\n\t}\n\tconst component = createEditCallRenderComponent();\n\tstate.callComponent = component;\n\treturn component;\n}\n\nfunction getRenderablePreviewInput(args: RenderableEditArgs | undefined): { path: string; edits: Edit[] } | null {\n\tif (!args) {\n\t\treturn null;\n\t}\n\n\tconst path = typeof args.path === \"string\" ? args.path : typeof args.file_path === \"string\" ? args.file_path : null;\n\tif (!path) {\n\t\treturn null;\n\t}\n\n\tif (\n\t\tArray.isArray(args.edits) &&\n\t\targs.edits.length > 0 &&\n\t\targs.edits.every((edit) => typeof edit?.oldText === \"string\" && typeof edit?.newText === \"string\")\n\t) {\n\t\treturn { path, edits: args.edits };\n\t}\n\n\tif (typeof args.oldText === \"string\" && typeof args.newText === \"string\") {\n\t\treturn { path, edits: [{ oldText: args.oldText, newText: args.newText }] };\n\t}\n\n\treturn null;\n}\n\nfunction formatEditCall(args: RenderableEditArgs | undefined, theme: Theme, cwd: string): string {\n\tconst pathDisplay = renderToolPath(str(args?.file_path ?? args?.path), theme, cwd);\n\treturn `${theme.fg(\"toolTitle\", theme.bold(\"edit\"))} ${pathDisplay}`;\n}\n\nfunction formatEditResult(\n\targs: RenderableEditArgs | undefined,\n\tpreview: EditPreview | undefined,\n\tresult: EditToolResultLike,\n\ttheme: Theme,\n\tisError: boolean,\n): string | undefined {\n\tconst rawPath = str(args?.file_path ?? args?.path);\n\tconst previewDiff = preview && !(\"error\" in preview) ? preview.diff : undefined;\n\tconst previewError = preview && \"error\" in preview ? preview.error : undefined;\n\tif (isError) {\n\t\tconst errorText = result.content\n\t\t\t.filter((c) => c.type === \"text\")\n\t\t\t.map((c) => c.text || \"\")\n\t\t\t.join(\"\\n\");\n\t\tif (!errorText || errorText === previewError) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn theme.fg(\"error\", errorText);\n\t}\n\n\tconst resultDiff = result.details?.diff;\n\tif (resultDiff && resultDiff !== previewDiff) {\n\t\treturn renderDiff(resultDiff, { filePath: rawPath ?? undefined });\n\t}\n\n\treturn undefined;\n}\n\nfunction getEditHeaderBg(\n\tpreview: EditPreview | undefined,\n\tsettledError: boolean | undefined,\n\ttheme: Theme,\n): (text: string) => string {\n\tif (preview) {\n\t\tif (\"error\" in preview) {\n\t\t\treturn (text: string) => theme.bg(\"toolErrorBg\", text);\n\t\t}\n\t\treturn (text: string) => theme.bg(\"toolSuccessBg\", text);\n\t}\n\tif (settledError) {\n\t\treturn (text: string) => theme.bg(\"toolErrorBg\", text);\n\t}\n\treturn (text: string) => theme.bg(\"toolPendingBg\", text);\n}\n\nfunction buildEditCallComponent(\n\tcomponent: EditCallRenderComponent,\n\targs: RenderableEditArgs | undefined,\n\ttheme: Theme,\n\tcwd: string,\n): EditCallRenderComponent {\n\tcomponent.setBgFn(getEditHeaderBg(component.preview, component.settledError, theme));\n\tcomponent.clear();\n\tcomponent.addChild(new Text(formatEditCall(args, theme, cwd), 0, 0));\n\n\tif (!component.preview) {\n\t\treturn component;\n\t}\n\n\tconst body =\n\t\t\"error\" in component.preview ? theme.fg(\"error\", component.preview.error) : renderDiff(component.preview.diff);\n\tcomponent.addChild(new Spacer(1));\n\tcomponent.addChild(new Text(body, 0, 0));\n\treturn component;\n}\n\nfunction setEditPreview(\n\tcomponent: EditCallRenderComponent,\n\tpreview: EditPreview,\n\targsKey: string | undefined,\n): boolean {\n\tconst current = component.preview;\n\tconst changed =\n\t\tcurrent === undefined ||\n\t\t(\"error\" in current && \"error\" in preview\n\t\t\t? current.error !== preview.error\n\t\t\t: \"error\" in current !== \"error\" in preview) ||\n\t\t(!(\"error\" in current) &&\n\t\t\t!(\"error\" in preview) &&\n\t\t\t(current.diff !== preview.diff || current.firstChangedLine !== preview.firstChangedLine));\n\tcomponent.preview = preview;\n\tcomponent.previewArgsKey = argsKey;\n\tcomponent.previewPending = false;\n\treturn changed;\n}\n\nexport function createEditToolDefinition(\n\tcwd: string,\n\toptions?: EditToolOptions,\n): ToolDefinition<typeof editSchema, EditToolDetails | undefined, EditRenderState> {\n\tconst ops = options?.operations ?? defaultEditOperations;\n\treturn {\n\t\tname: \"edit\",\n\t\tlabel: \"edit\",\n\t\tdescription:\n\t\t\t\"Edit a single file using exact text replacement. Every edits[].oldText must match a unique, non-overlapping region of the original file. If two changes affect the same block or nearby lines, merge them into one edit instead of emitting overlapping edits. Do not include large unchanged regions just to connect distant changes.\",\n\t\tpromptSnippet:\n\t\t\t\"Make precise file edits with exact text replacement, including multiple disjoint edits in one call\",\n\t\tpromptGuidelines: [\n\t\t\t\"Use edit for precise changes (edits[].oldText must match exactly)\",\n\t\t\t\"When changing multiple separate locations in one file, use one edit call with multiple entries in edits[] instead of multiple edit calls\",\n\t\t\t\"Each edits[].oldText is matched against the original file, not after earlier edits are applied. Do not emit overlapping or nested edits. Merge nearby changes into one edit.\",\n\t\t\t\"Keep edits[].oldText as small as possible while still being unique in the file. Do not pad with large unchanged regions.\",\n\t\t],\n\t\tparameters: editSchema,\n\t\trenderShell: \"self\",\n\t\tprepareArguments: prepareEditArguments,\n\t\tasync execute(_toolCallId, input: EditToolInput, signal?: AbortSignal, _onUpdate?, _ctx?) {\n\t\t\tconst { path, edits } = validateEditInput(input);\n\t\t\tconst absolutePath = resolveToCwd(path, cwd);\n\n\t\t\treturn withFileMutationQueue(absolutePath, async () => {\n\t\t\t\t// Do not reject from an abort event listener here: that would release the\n\t\t\t\t// mutation queue while an in-flight filesystem operation may still finish.\n\t\t\t\t// Checking signal.aborted after each await observes the same aborts while\n\t\t\t\t// keeping the queue locked until the current operation has settled.\n\t\t\t\tconst throwIfAborted = (): void => {\n\t\t\t\t\tif (signal?.aborted) throw new Error(\"Operation aborted\");\n\t\t\t\t};\n\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Check if file exists.\n\t\t\t\ttry {\n\t\t\t\t\tawait ops.access(absolutePath);\n\t\t\t\t} catch (error: unknown) {\n\t\t\t\t\tthrowIfAborted();\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror instanceof Error && \"code\" in error ? `Error code: ${error.code}` : String(error);\n\t\t\t\t\tthrow new Error(`Could not edit file: ${path}. ${errorMessage}.`);\n\t\t\t\t}\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Read the file.\n\t\t\t\tconst buffer = await ops.readFile(absolutePath);\n\t\t\t\tconst rawContent = buffer.toString(\"utf-8\");\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Strip BOM before matching. The model will not include an invisible BOM in oldText.\n\t\t\t\tconst { bom, text: content } = stripBom(rawContent);\n\t\t\t\tconst originalEnding = detectLineEnding(content);\n\t\t\t\tconst normalizedContent = normalizeToLF(content);\n\t\t\t\tconst { baseContent, newContent } = applyEditsToNormalizedContent(normalizedContent, edits, path);\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\tconst finalContent = bom + restoreLineEndings(newContent, originalEnding);\n\t\t\t\tawait ops.writeFile(absolutePath, finalContent);\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\tconst diffResult = generateDiffString(baseContent, newContent);\n\t\t\t\tconst patch = generateUnifiedPatch(path, baseContent, newContent);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: `Successfully replaced ${edits.length} block(s) in ${path}.`,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tdetails: { diff: diffResult.diff, patch, firstChangedLine: diffResult.firstChangedLine },\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\t\trenderCall(args, theme, context) {\n\t\t\tconst component = getEditCallRenderComponent(context.state, context.lastComponent);\n\t\t\tconst previewInput = getRenderablePreviewInput(args as RenderableEditArgs | undefined);\n\t\t\tconst argsKey = previewInput\n\t\t\t\t? JSON.stringify({ path: previewInput.path, edits: previewInput.edits })\n\t\t\t\t: undefined;\n\n\t\t\tif (component.previewArgsKey !== argsKey) {\n\t\t\t\tcomponent.preview = undefined;\n\t\t\t\tcomponent.previewArgsKey = argsKey;\n\t\t\t\tcomponent.previewPending = false;\n\t\t\t\tcomponent.settledError = false;\n\t\t\t}\n\n\t\t\tif (context.argsComplete && previewInput && !component.preview && !component.previewPending) {\n\t\t\t\tcomponent.previewPending = true;\n\t\t\t\tconst requestKey = argsKey;\n\t\t\t\tvoid computeEditsDiff(previewInput.path, previewInput.edits, context.cwd).then((preview) => {\n\t\t\t\t\tif (component.previewArgsKey === requestKey) {\n\t\t\t\t\t\tsetEditPreview(component, preview, requestKey);\n\t\t\t\t\t\tcontext.invalidate();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn buildEditCallComponent(component, args, theme, context.cwd);\n\t\t},\n\t\trenderResult(result, _options, theme, context) {\n\t\t\tconst callComponent = context.state.callComponent;\n\t\t\tconst previewInput = getRenderablePreviewInput(context.args as RenderableEditArgs | undefined);\n\t\t\tconst argsKey = previewInput\n\t\t\t\t? JSON.stringify({ path: previewInput.path, edits: previewInput.edits })\n\t\t\t\t: undefined;\n\t\t\tconst typedResult = result as EditToolResultLike;\n\t\t\tconst resultDiff = !context.isError ? typedResult.details?.diff : undefined;\n\t\t\tlet changed = false;\n\t\t\tif (callComponent) {\n\t\t\t\tif (typeof resultDiff === \"string\") {\n\t\t\t\t\tchanged =\n\t\t\t\t\t\tsetEditPreview(\n\t\t\t\t\t\t\tcallComponent,\n\t\t\t\t\t\t\t{ diff: resultDiff, firstChangedLine: typedResult.details?.firstChangedLine },\n\t\t\t\t\t\t\targsKey,\n\t\t\t\t\t\t) || changed;\n\t\t\t\t}\n\t\t\t\tif (callComponent.settledError !== context.isError) {\n\t\t\t\t\tcallComponent.settledError = context.isError;\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tif (changed) {\n\t\t\t\t\tbuildEditCallComponent(\n\t\t\t\t\t\tcallComponent,\n\t\t\t\t\t\tcontext.args as RenderableEditArgs | undefined,\n\t\t\t\t\t\ttheme,\n\t\t\t\t\t\tcontext.cwd,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst output = formatEditResult(context.args, callComponent?.preview, typedResult, theme, context.isError);\n\t\t\tconst component = (context.lastComponent as Container | undefined) ?? new Container();\n\t\t\tcomponent.clear();\n\t\t\tif (!output) {\n\t\t\t\treturn component;\n\t\t\t}\n\t\t\tcomponent.addChild(new Spacer(1));\n\t\t\tcomponent.addChild(new Text(output, 1, 0));\n\t\t\treturn component;\n\t\t},\n\t};\n}\n\nexport function createEditTool(cwd: string, options?: EditToolOptions): AgentTool<typeof editSchema> {\n\treturn wrapToolDefinition(createEditToolDefinition(cwd, options));\n}\n"]}