open-multi-agent-kit 0.79.1 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2366) hide show
  1. package/AGENTS.md +679 -0
  2. package/CHANGELOG.md +424 -4225
  3. package/CLAUDE.md +110 -0
  4. package/DESIGN.md +358 -0
  5. package/GEMINI.md +8 -0
  6. package/LICENSE +21 -0
  7. package/MATURITY.md +76 -0
  8. package/README.md +101 -609
  9. package/ROADMAP.md +127 -0
  10. package/SECURITY.md +83 -0
  11. package/WORKER_MANIFEST.md +35 -0
  12. package/dist/adapters/commandcode/commandcode-cli-adapter.d.ts +10 -0
  13. package/dist/adapters/commandcode/commandcode-cli-adapter.js +57 -0
  14. package/dist/adapters/kimi/ascii-art.d.ts +1 -0
  15. package/dist/adapters/kimi/ascii-art.js +23 -0
  16. package/dist/adapters/kimi/banner.d.ts +53 -0
  17. package/dist/adapters/kimi/banner.js +284 -0
  18. package/dist/adapters/kimi/bug-filter.d.ts +15 -0
  19. package/dist/adapters/kimi/bug-filter.js +150 -0
  20. package/dist/adapters/kimi/capability.d.ts +25 -0
  21. package/dist/adapters/kimi/capability.js +68 -0
  22. package/dist/adapters/kimi/continue-prompt-guard.d.ts +20 -0
  23. package/dist/adapters/kimi/continue-prompt-guard.js +70 -0
  24. package/dist/adapters/kimi/isolated-home.d.ts +21 -0
  25. package/dist/adapters/kimi/isolated-home.js +270 -0
  26. package/dist/adapters/kimi/runner.d.ts +71 -0
  27. package/dist/adapters/kimi/runner.js +1084 -0
  28. package/dist/adapters/kimi/simple-art.d.ts +1 -0
  29. package/dist/adapters/kimi/simple-art.js +1 -0
  30. package/dist/adapters/kimi/statusline.d.ts +26 -0
  31. package/dist/adapters/kimi/statusline.js +142 -0
  32. package/dist/adapters/kimi/usage.d.ts +52 -0
  33. package/dist/adapters/kimi/usage.js +481 -0
  34. package/dist/adapters/kimi/wire-client.d.ts +142 -0
  35. package/dist/adapters/kimi/wire-client.js +725 -0
  36. package/dist/adapters/kimi/wire-protocol-types.d.ts +549 -0
  37. package/dist/adapters/kimi/wire-protocol-types.js +59 -0
  38. package/dist/adapters/opencode/opencode-cli-adapter.d.ts +9 -0
  39. package/dist/adapters/opencode/opencode-cli-adapter.js +43 -0
  40. package/dist/awareness/classifiers/browser-console-classifier.d.ts +3 -0
  41. package/dist/awareness/classifiers/browser-console-classifier.js +47 -0
  42. package/dist/awareness/classifiers/evidence-gap-classifier.d.ts +3 -0
  43. package/dist/awareness/classifiers/evidence-gap-classifier.js +31 -0
  44. package/dist/awareness/classifiers/stalled-run-classifier.d.ts +2 -0
  45. package/dist/awareness/classifiers/stalled-run-classifier.js +24 -0
  46. package/dist/awareness/notice-store.d.ts +6 -0
  47. package/dist/awareness/notice-store.js +91 -0
  48. package/dist/awareness/notice.d.ts +17 -0
  49. package/dist/awareness/notice.js +1 -0
  50. package/dist/awareness/noticer-engine.d.ts +42 -0
  51. package/dist/awareness/noticer-engine.js +63 -0
  52. package/dist/awareness/router.d.ts +6 -0
  53. package/dist/awareness/router.js +46 -0
  54. package/dist/benchmark/contracts.d.ts +116 -0
  55. package/dist/benchmark/contracts.js +6 -0
  56. package/dist/benchmark/fixtures.d.ts +11 -0
  57. package/dist/benchmark/fixtures.js +124 -0
  58. package/dist/benchmark/harness.d.ts +13 -0
  59. package/dist/benchmark/harness.js +191 -0
  60. package/dist/benchmark/shadow-mode.d.ts +17 -0
  61. package/dist/benchmark/shadow-mode.js +95 -0
  62. package/dist/brand/matrix-rain.d.ts +15 -0
  63. package/dist/brand/matrix-rain.js +132 -0
  64. package/dist/brand/night-city.theme.json +178 -0
  65. package/dist/brand/omk-matrix-art.d.ts +1 -0
  66. package/dist/brand/omk-matrix-art.js +10 -0
  67. package/dist/brand/omk-simple-art.d.ts +7 -0
  68. package/dist/brand/omk-simple-art.js +13 -0
  69. package/dist/brand/palette.d.ts +90 -0
  70. package/dist/brand/palette.js +129 -0
  71. package/dist/brand/rust-forge.theme.json +216 -0
  72. package/dist/brand/theme-compiled.d.ts +61 -0
  73. package/dist/brand/theme-compiled.js +241 -0
  74. package/dist/brand/theme.d.ts +41 -0
  75. package/dist/brand/theme.js +275 -0
  76. package/dist/browser/browser-feedback.d.ts +10 -0
  77. package/dist/browser/browser-feedback.js +84 -0
  78. package/dist/browser/browser-observer.d.ts +21 -0
  79. package/dist/browser/browser-observer.js +159 -0
  80. package/dist/browser/browser-session.d.ts +26 -0
  81. package/dist/browser/browser-session.js +63 -0
  82. package/dist/cli/command-registry.d.ts +2 -0
  83. package/dist/cli/command-registry.js +20 -0
  84. package/dist/cli/input/argv-parser.d.ts +16 -0
  85. package/dist/cli/input/argv-parser.js +50 -0
  86. package/dist/cli/input/command-envelope.d.ts +16 -0
  87. package/dist/cli/input/command-envelope.js +64 -0
  88. package/dist/cli/input/config-loader.d.ts +16 -0
  89. package/dist/cli/input/config-loader.js +48 -0
  90. package/dist/cli/input/index.d.ts +8 -0
  91. package/dist/cli/input/index.js +8 -0
  92. package/dist/cli/input/input-resolver.d.ts +13 -0
  93. package/dist/cli/input/input-resolver.js +50 -0
  94. package/dist/cli/input/validator.d.ts +10 -0
  95. package/dist/cli/input/validator.js +37 -0
  96. package/dist/cli/main.d.ts +4 -0
  97. package/dist/cli/main.js +34 -0
  98. package/dist/cli/output/error-renderer.d.ts +10 -0
  99. package/dist/cli/output/error-renderer.js +68 -0
  100. package/dist/cli/output/hash.d.ts +1 -0
  101. package/dist/cli/output/hash.js +10 -0
  102. package/dist/cli/output/index.d.ts +9 -0
  103. package/dist/cli/output/index.js +9 -0
  104. package/dist/cli/output/json-renderer.d.ts +7 -0
  105. package/dist/cli/output/json-renderer.js +35 -0
  106. package/dist/cli/output/markdown-renderer.d.ts +5 -0
  107. package/dist/cli/output/markdown-renderer.js +86 -0
  108. package/dist/cli/output/nlp-renderer.d.ts +7 -0
  109. package/dist/cli/output/nlp-renderer.js +96 -0
  110. package/dist/cli/output/output-router.d.ts +5 -0
  111. package/dist/cli/output/output-router.js +33 -0
  112. package/dist/cli/register-awareness-commands.d.ts +2 -0
  113. package/dist/cli/register-awareness-commands.js +133 -0
  114. package/dist/cli/register-basic-commands.d.ts +2 -0
  115. package/dist/cli/register-basic-commands.js +489 -0
  116. package/dist/cli/register-integration-commands.d.ts +2 -0
  117. package/dist/cli/register-integration-commands.js +59 -0
  118. package/dist/cli/register-mcp-dag-cron-screenshot-commands.d.ts +2 -0
  119. package/dist/cli/register-mcp-dag-cron-screenshot-commands.js +275 -0
  120. package/dist/cli/register-openai-codex-commands.d.ts +2 -0
  121. package/dist/cli/register-openai-codex-commands.js +55 -0
  122. package/dist/cli/register-provider-commands.d.ts +2 -0
  123. package/dist/cli/register-provider-commands.js +244 -0
  124. package/dist/cli/register-spec-agent-goal-commands.d.ts +2 -0
  125. package/dist/cli/register-spec-agent-goal-commands.js +486 -0
  126. package/dist/cli/register-tool-commands.d.ts +2 -0
  127. package/dist/cli/register-tool-commands.js +202 -0
  128. package/dist/cli/register-workflow-commands.d.ts +2 -0
  129. package/dist/cli/register-workflow-commands.js +158 -0
  130. package/dist/cli/registry/core.d.ts +2 -0
  131. package/dist/cli/registry/core.js +27 -0
  132. package/dist/cli/registry/session.d.ts +2 -0
  133. package/dist/cli/registry/session.js +137 -0
  134. package/dist/cli/registry/system.d.ts +2 -0
  135. package/dist/cli/registry/system.js +95 -0
  136. package/dist/cli/registry/tooling.d.ts +2 -0
  137. package/dist/cli/registry/tooling.js +112 -0
  138. package/dist/cli/registry/visual.d.ts +2 -0
  139. package/dist/cli/registry/visual.js +91 -0
  140. package/dist/cli/release-promotion-gate.d.ts +21 -0
  141. package/dist/cli/release-promotion-gate.js +93 -0
  142. package/dist/cli/root.d.ts +12 -0
  143. package/dist/cli/root.js +121 -0
  144. package/dist/cli/runtime/capability-selector.d.ts +18 -0
  145. package/dist/cli/runtime/capability-selector.js +208 -0
  146. package/dist/cli/runtime/cli-runtime.d.ts +10 -0
  147. package/dist/cli/runtime/cli-runtime.js +35 -0
  148. package/dist/cli/runtime/cli-writer.d.ts +18 -0
  149. package/dist/cli/runtime/cli-writer.js +87 -0
  150. package/dist/cli/runtime/command-bus.d.ts +45 -0
  151. package/dist/cli/runtime/command-bus.js +145 -0
  152. package/dist/cli/runtime/event-bus.d.ts +12 -0
  153. package/dist/cli/runtime/event-bus.js +31 -0
  154. package/dist/cli/runtime/generic-provider-adapter.d.ts +24 -0
  155. package/dist/cli/runtime/generic-provider-adapter.js +38 -0
  156. package/dist/cli/runtime/index.d.ts +17 -0
  157. package/dist/cli/runtime/index.js +18 -0
  158. package/dist/cli/runtime/intent-classifier.d.ts +16 -0
  159. package/dist/cli/runtime/intent-classifier.js +113 -0
  160. package/dist/cli/runtime/plan-controller.d.ts +7 -0
  161. package/dist/cli/runtime/plan-controller.js +29 -0
  162. package/dist/cli/runtime/provider-adapter-registry.d.ts +32 -0
  163. package/dist/cli/runtime/provider-adapter-registry.js +60 -0
  164. package/dist/cli/runtime/provider-event-normalizer.d.ts +19 -0
  165. package/dist/cli/runtime/provider-event-normalizer.js +150 -0
  166. package/dist/cli/runtime/run-controller.d.ts +7 -0
  167. package/dist/cli/runtime/run-controller.js +30 -0
  168. package/dist/cli/runtime/runtime-sidecar.d.ts +17 -0
  169. package/dist/cli/runtime/runtime-sidecar.js +138 -0
  170. package/dist/cli/runtime/task-controller.d.ts +7 -0
  171. package/dist/cli/runtime/task-controller.js +29 -0
  172. package/dist/cli/runtime/types.d.ts +312 -0
  173. package/dist/cli/runtime/types.js +6 -0
  174. package/dist/cli/theme/index.d.ts +18 -0
  175. package/dist/cli/theme/index.js +11 -0
  176. package/dist/cli/theme/oklab-quantize.d.ts +29 -0
  177. package/dist/cli/theme/oklab-quantize.js +105 -0
  178. package/dist/cli/theme/render-table.d.ts +59 -0
  179. package/dist/cli/theme/render-table.js +112 -0
  180. package/dist/cli/theme/status-frame.d.ts +10 -0
  181. package/dist/cli/theme/status-frame.js +22 -0
  182. package/dist/cli/theme/terminal-capability.d.ts +23 -0
  183. package/dist/cli/theme/terminal-capability.js +104 -0
  184. package/dist/cli/theme/theme-doc.d.ts +22 -0
  185. package/dist/cli/theme/theme-doc.js +97 -0
  186. package/dist/cli/theme/theme-registry.d.ts +25 -0
  187. package/dist/cli/theme/theme-registry.js +445 -0
  188. package/dist/cli/theme/theme-resolver.d.ts +12 -0
  189. package/dist/cli/theme/theme-resolver.js +38 -0
  190. package/dist/cli/theme/tier-explain.d.ts +21 -0
  191. package/dist/cli/theme/tier-explain.js +60 -0
  192. package/dist/cli/ui/event.d.ts +66 -0
  193. package/dist/cli/ui/event.js +1 -0
  194. package/dist/cli/ui/green-rain-renderer.d.ts +17 -0
  195. package/dist/cli/ui/green-rain-renderer.js +97 -0
  196. package/dist/cli/ui/neon-grid-renderer.d.ts +25 -0
  197. package/dist/cli/ui/neon-grid-renderer.js +170 -0
  198. package/dist/cli/ui/plain-renderer.d.ts +37 -0
  199. package/dist/cli/ui/plain-renderer.js +162 -0
  200. package/dist/cli/ui/renderer.d.ts +7 -0
  201. package/dist/cli/ui/renderer.js +1 -0
  202. package/dist/cli/ui/rich-renderer.d.ts +32 -0
  203. package/dist/cli/ui/rich-renderer.js +234 -0
  204. package/dist/cli/ui/route-blocked-panel.d.ts +5 -0
  205. package/dist/cli/ui/route-blocked-panel.js +67 -0
  206. package/dist/cli/ui/rust-forge-renderer.d.ts +19 -0
  207. package/dist/cli/ui/rust-forge-renderer.js +143 -0
  208. package/dist/cli/ui/system24-renderer.d.ts +96 -0
  209. package/dist/cli/ui/system24-renderer.js +533 -0
  210. package/dist/cli/v2/chat-repl.d.ts +38 -0
  211. package/dist/cli/v2/chat-repl.js +338 -0
  212. package/dist/cli/v2/cli-v2-skeleton.d.ts +105 -0
  213. package/dist/cli/v2/cli-v2-skeleton.js +465 -0
  214. package/dist/cli/v2/interactive-prompt.d.ts +52 -0
  215. package/dist/cli/v2/interactive-prompt.js +192 -0
  216. package/dist/cli/v2/persistent-memory.d.ts +70 -0
  217. package/dist/cli/v2/persistent-memory.js +229 -0
  218. package/dist/cli/v2/provider-commands.d.ts +120 -0
  219. package/dist/cli/v2/provider-commands.js +244 -0
  220. package/dist/cli/v2/release-commands.d.ts +29 -0
  221. package/dist/cli/v2/release-commands.js +95 -0
  222. package/dist/cli/v2/workflow-commands.d.ts +72 -0
  223. package/dist/cli/v2/workflow-commands.js +198 -0
  224. package/dist/cli.d.ts +0 -1
  225. package/dist/cli.js +16 -17
  226. package/dist/cockpit/git-numstat.d.ts +10 -0
  227. package/dist/cockpit/git-numstat.js +97 -0
  228. package/dist/cockpit/lsp-status.d.ts +5 -0
  229. package/dist/cockpit/lsp-status.js +51 -0
  230. package/dist/cockpit/types.d.ts +66 -0
  231. package/dist/cockpit/types.js +4 -0
  232. package/dist/cockpit/views/rail-view.d.ts +9 -0
  233. package/dist/cockpit/views/rail-view.js +160 -0
  234. package/dist/commands/agent.d.ts +6 -0
  235. package/dist/commands/agent.js +263 -0
  236. package/dist/commands/appshot.d.ts +15 -0
  237. package/dist/commands/appshot.js +122 -0
  238. package/dist/commands/auth.d.ts +43 -0
  239. package/dist/commands/auth.js +169 -0
  240. package/dist/commands/browser.d.ts +18 -0
  241. package/dist/commands/browser.js +110 -0
  242. package/dist/commands/chat/chat-turn-dag.d.ts +21 -0
  243. package/dist/commands/chat/chat-turn-dag.js +72 -0
  244. package/dist/commands/chat/core.d.ts +27 -0
  245. package/dist/commands/chat/core.js +423 -0
  246. package/dist/commands/chat/index.d.ts +5 -0
  247. package/dist/commands/chat/index.js +5 -0
  248. package/dist/commands/chat/native-root-loop.d.ts +82 -0
  249. package/dist/commands/chat/native-root-loop.js +1589 -0
  250. package/dist/commands/chat/runtime.d.ts +46 -0
  251. package/dist/commands/chat/runtime.js +406 -0
  252. package/dist/commands/chat/slash/commands/control.d.ts +2 -0
  253. package/dist/commands/chat/slash/commands/control.js +196 -0
  254. package/dist/commands/chat/slash/commands/diagnostics.d.ts +2 -0
  255. package/dist/commands/chat/slash/commands/diagnostics.js +64 -0
  256. package/dist/commands/chat/slash/commands/harness.d.ts +2 -0
  257. package/dist/commands/chat/slash/commands/harness.js +21 -0
  258. package/dist/commands/chat/slash/commands/index.d.ts +2 -0
  259. package/dist/commands/chat/slash/commands/index.js +18 -0
  260. package/dist/commands/chat/slash/commands/routing.d.ts +2 -0
  261. package/dist/commands/chat/slash/commands/routing.js +385 -0
  262. package/dist/commands/chat/slash/commands/session.d.ts +2 -0
  263. package/dist/commands/chat/slash/commands/session.js +104 -0
  264. package/dist/commands/chat/slash/commands/tool-plane.d.ts +2 -0
  265. package/dist/commands/chat/slash/commands/tool-plane.js +64 -0
  266. package/dist/commands/chat/slash/commands/ui.d.ts +2 -0
  267. package/dist/commands/chat/slash/commands/ui.js +108 -0
  268. package/dist/commands/chat/slash/context.d.ts +3 -0
  269. package/dist/commands/chat/slash/context.js +9 -0
  270. package/dist/commands/chat/slash/format.d.ts +3 -0
  271. package/dist/commands/chat/slash/format.js +19 -0
  272. package/dist/commands/chat/slash/parser.d.ts +15 -0
  273. package/dist/commands/chat/slash/parser.js +97 -0
  274. package/dist/commands/chat/slash/registry.d.ts +13 -0
  275. package/dist/commands/chat/slash/registry.js +38 -0
  276. package/dist/commands/chat/slash/result.d.ts +7 -0
  277. package/dist/commands/chat/slash/result.js +35 -0
  278. package/dist/commands/chat/slash/types.d.ts +32 -0
  279. package/dist/commands/chat/slash/types.js +1 -0
  280. package/dist/commands/chat/startup.d.ts +68 -0
  281. package/dist/commands/chat/startup.js +150 -0
  282. package/dist/commands/chat/state.d.ts +3 -0
  283. package/dist/commands/chat/state.js +100 -0
  284. package/dist/commands/chat/utils.d.ts +25 -0
  285. package/dist/commands/chat/utils.js +218 -0
  286. package/dist/commands/chat.d.ts +2 -0
  287. package/dist/commands/chat.js +2 -0
  288. package/dist/commands/cockpit/core.d.ts +5 -0
  289. package/dist/commands/cockpit/core.js +91 -0
  290. package/dist/commands/cockpit/render.d.ts +5 -0
  291. package/dist/commands/cockpit/render.js +970 -0
  292. package/dist/commands/cockpit/scroll.d.ts +39 -0
  293. package/dist/commands/cockpit/scroll.js +87 -0
  294. package/dist/commands/cockpit/telemetry.d.ts +30 -0
  295. package/dist/commands/cockpit/telemetry.js +361 -0
  296. package/dist/commands/cockpit/update-loop.d.ts +54 -0
  297. package/dist/commands/cockpit/update-loop.js +285 -0
  298. package/dist/commands/cockpit/utils.d.ts +233 -0
  299. package/dist/commands/cockpit/utils.js +388 -0
  300. package/dist/commands/cockpit.d.ts +8 -0
  301. package/dist/commands/cockpit.js +7 -0
  302. package/dist/commands/codex.d.ts +70 -0
  303. package/dist/commands/codex.js +597 -0
  304. package/dist/commands/consent.d.ts +24 -0
  305. package/dist/commands/consent.js +255 -0
  306. package/dist/commands/cron.d.ts +16 -0
  307. package/dist/commands/cron.js +187 -0
  308. package/dist/commands/dag-from-spec.d.ts +31 -0
  309. package/dist/commands/dag-from-spec.js +344 -0
  310. package/dist/commands/dag.d.ts +10 -0
  311. package/dist/commands/dag.js +512 -0
  312. package/dist/commands/design.d.ts +73 -0
  313. package/dist/commands/design.js +1253 -0
  314. package/dist/commands/diff-runs.d.ts +3 -0
  315. package/dist/commands/diff-runs.js +36 -0
  316. package/dist/commands/do.d.ts +29 -0
  317. package/dist/commands/do.js +196 -0
  318. package/dist/commands/doctor/checks.d.ts +19 -0
  319. package/dist/commands/doctor/checks.js +861 -0
  320. package/dist/commands/doctor/core.d.ts +2 -0
  321. package/dist/commands/doctor/core.js +53 -0
  322. package/dist/commands/doctor/fix-plan.d.ts +69 -0
  323. package/dist/commands/doctor/fix-plan.js +78 -0
  324. package/dist/commands/doctor/fix.d.ts +5 -0
  325. package/dist/commands/doctor/fix.js +1002 -0
  326. package/dist/commands/doctor/report.d.ts +7 -0
  327. package/dist/commands/doctor/report.js +140 -0
  328. package/dist/commands/doctor/utils.d.ts +52 -0
  329. package/dist/commands/doctor/utils.js +124 -0
  330. package/dist/commands/doctor.d.ts +2 -0
  331. package/dist/commands/doctor.js +1 -0
  332. package/dist/commands/goal-interview.d.ts +18 -0
  333. package/dist/commands/goal-interview.js +396 -0
  334. package/dist/commands/goal.d.ts +46 -0
  335. package/dist/commands/goal.js +492 -0
  336. package/dist/commands/google.d.ts +1 -0
  337. package/dist/commands/google.js +27 -0
  338. package/dist/commands/graph.d.ts +71 -0
  339. package/dist/commands/graph.js +208 -0
  340. package/dist/commands/hud.d.ts +57 -0
  341. package/dist/commands/hud.js +1031 -0
  342. package/dist/commands/image.d.ts +16 -0
  343. package/dist/commands/image.js +102 -0
  344. package/dist/commands/init/config.d.ts +8 -0
  345. package/dist/commands/init/config.js +97 -0
  346. package/dist/commands/init/constants.d.ts +7 -0
  347. package/dist/commands/init/constants.js +49 -0
  348. package/dist/commands/init/content.d.ts +12 -0
  349. package/dist/commands/init/content.js +1775 -0
  350. package/dist/commands/init/core.d.ts +2 -0
  351. package/dist/commands/init/core.js +298 -0
  352. package/dist/commands/init/interactive.d.ts +9 -0
  353. package/dist/commands/init/interactive.js +170 -0
  354. package/dist/commands/init/scaffold.d.ts +17 -0
  355. package/dist/commands/init/scaffold.js +146 -0
  356. package/dist/commands/init/types.d.ts +35 -0
  357. package/dist/commands/init/types.js +1 -0
  358. package/dist/commands/init/utils.d.ts +13 -0
  359. package/dist/commands/init/utils.js +107 -0
  360. package/dist/commands/init.d.ts +32 -0
  361. package/dist/commands/init.js +2581 -0
  362. package/dist/commands/inspect.d.ts +9 -0
  363. package/dist/commands/inspect.js +12 -0
  364. package/dist/commands/lsp.d.ts +8 -0
  365. package/dist/commands/lsp.js +60 -0
  366. package/dist/commands/mcp/config.d.ts +32 -0
  367. package/dist/commands/mcp/config.js +286 -0
  368. package/dist/commands/mcp/doctor-fix.d.ts +12 -0
  369. package/dist/commands/mcp/doctor-fix.js +261 -0
  370. package/dist/commands/mcp/doctor.d.ts +55 -0
  371. package/dist/commands/mcp/doctor.js +400 -0
  372. package/dist/commands/mcp/list.d.ts +1 -0
  373. package/dist/commands/mcp/list.js +57 -0
  374. package/dist/commands/mcp/shared.d.ts +50 -0
  375. package/dist/commands/mcp/shared.js +210 -0
  376. package/dist/commands/mcp/test.d.ts +5 -0
  377. package/dist/commands/mcp/test.js +458 -0
  378. package/dist/commands/mcp.d.ts +8 -0
  379. package/dist/commands/mcp.js +5 -0
  380. package/dist/commands/menu.d.ts +4 -0
  381. package/dist/commands/menu.js +213 -0
  382. package/dist/commands/merge.d.ts +9 -0
  383. package/dist/commands/merge.js +363 -0
  384. package/dist/commands/mode.d.ts +3 -0
  385. package/dist/commands/mode.js +60 -0
  386. package/dist/commands/model.d.ts +15 -0
  387. package/dist/commands/model.js +219 -0
  388. package/dist/commands/notice.d.ts +7 -0
  389. package/dist/commands/notice.js +76 -0
  390. package/dist/commands/open-design-agent.d.ts +46 -0
  391. package/dist/commands/open-design-agent.js +569 -0
  392. package/dist/commands/orchestrate.d.ts +18 -0
  393. package/dist/commands/orchestrate.js +284 -0
  394. package/dist/commands/parallel/core.d.ts +34 -0
  395. package/dist/commands/parallel/core.js +296 -0
  396. package/dist/commands/parallel/index.d.ts +5 -0
  397. package/dist/commands/parallel/index.js +5 -0
  398. package/dist/commands/parallel/interactive.d.ts +27 -0
  399. package/dist/commands/parallel/interactive.js +172 -0
  400. package/dist/commands/parallel/orchestrator.d.ts +40 -0
  401. package/dist/commands/parallel/orchestrator.js +564 -0
  402. package/dist/commands/parallel/utils.d.ts +12 -0
  403. package/dist/commands/parallel/utils.js +114 -0
  404. package/dist/commands/parallel/worker.d.ts +43 -0
  405. package/dist/commands/parallel/worker.js +276 -0
  406. package/dist/commands/parallel.d.ts +4 -0
  407. package/dist/commands/parallel.js +3 -0
  408. package/dist/commands/plan.d.ts +6 -0
  409. package/dist/commands/plan.js +113 -0
  410. package/dist/commands/project-index.d.ts +18 -0
  411. package/dist/commands/project-index.js +312 -0
  412. package/dist/commands/provider.d.ts +65 -0
  413. package/dist/commands/provider.js +625 -0
  414. package/dist/commands/rail.d.ts +6 -0
  415. package/dist/commands/rail.js +7 -0
  416. package/dist/commands/replay.d.ts +7 -0
  417. package/dist/commands/replay.js +10 -0
  418. package/dist/commands/research.d.ts +5 -0
  419. package/dist/commands/research.js +48 -0
  420. package/dist/commands/run.d.ts +15 -0
  421. package/dist/commands/run.js +312 -0
  422. package/dist/commands/runs.d.ts +36 -0
  423. package/dist/commands/runs.js +504 -0
  424. package/dist/commands/screenshot.d.ts +10 -0
  425. package/dist/commands/screenshot.js +72 -0
  426. package/dist/commands/skill.d.ts +28 -0
  427. package/dist/commands/skill.js +382 -0
  428. package/dist/commands/snip.d.ts +8 -0
  429. package/dist/commands/snip.js +77 -0
  430. package/dist/commands/spec.d.ts +17 -0
  431. package/dist/commands/spec.js +262 -0
  432. package/dist/commands/specify.d.ts +18 -0
  433. package/dist/commands/specify.js +111 -0
  434. package/dist/commands/star.d.ts +3 -0
  435. package/dist/commands/star.js +35 -0
  436. package/dist/commands/summary.d.ts +5 -0
  437. package/dist/commands/summary.js +445 -0
  438. package/dist/commands/sync.d.ts +6 -0
  439. package/dist/commands/sync.js +129 -0
  440. package/dist/commands/team.d.ts +8 -0
  441. package/dist/commands/team.js +302 -0
  442. package/dist/commands/verify.d.ts +4 -0
  443. package/dist/commands/verify.js +378 -0
  444. package/dist/commands/version.d.ts +7 -0
  445. package/dist/commands/version.js +101 -0
  446. package/dist/commands/web-bridge.d.ts +12 -0
  447. package/dist/commands/web-bridge.js +75 -0
  448. package/dist/commands/why.d.ts +14 -0
  449. package/dist/commands/why.js +46 -0
  450. package/dist/commands/workflow.d.ts +13 -0
  451. package/dist/commands/workflow.js +385 -0
  452. package/dist/contracts/command.d.ts +25 -0
  453. package/dist/contracts/command.js +1 -0
  454. package/dist/contracts/dag.d.ts +142 -0
  455. package/dist/contracts/dag.js +4 -0
  456. package/dist/contracts/decision.d.ts +23 -0
  457. package/dist/contracts/decision.js +1 -0
  458. package/dist/contracts/envelope.d.ts +29 -0
  459. package/dist/contracts/envelope.js +1 -0
  460. package/dist/contracts/errors.d.ts +13 -0
  461. package/dist/contracts/errors.js +15 -0
  462. package/dist/contracts/evidence-bundle.d.ts +52 -0
  463. package/dist/contracts/evidence-bundle.js +1 -0
  464. package/dist/contracts/evidence.d.ts +23 -0
  465. package/dist/contracts/evidence.js +1 -0
  466. package/dist/contracts/goal.d.ts +169 -0
  467. package/dist/contracts/goal.js +4 -0
  468. package/dist/contracts/hud.d.ts +17 -0
  469. package/dist/contracts/hud.js +4 -0
  470. package/dist/contracts/index.d.ts +10 -0
  471. package/dist/contracts/index.js +10 -0
  472. package/dist/contracts/interview.d.ts +106 -0
  473. package/dist/contracts/interview.js +9 -0
  474. package/dist/contracts/orchestration.d.ts +215 -0
  475. package/dist/contracts/orchestration.js +4 -0
  476. package/dist/contracts/proof.d.ts +32 -0
  477. package/dist/contracts/proof.js +1 -0
  478. package/dist/contracts/provider-health.d.ts +79 -0
  479. package/dist/contracts/provider-health.js +57 -0
  480. package/dist/contracts/provider.d.ts +35 -0
  481. package/dist/contracts/provider.js +1 -0
  482. package/dist/contracts/replay.d.ts +95 -0
  483. package/dist/contracts/replay.js +7 -0
  484. package/dist/contracts/run.d.ts +34 -0
  485. package/dist/contracts/run.js +1 -0
  486. package/dist/contracts/safety.d.ts +10 -0
  487. package/dist/contracts/safety.js +4 -0
  488. package/dist/contracts/version.d.ts +21 -0
  489. package/dist/contracts/version.js +1 -0
  490. package/dist/contracts/web-bridge.d.ts +95 -0
  491. package/dist/contracts/web-bridge.js +168 -0
  492. package/dist/contracts/worker-context.d.ts +70 -0
  493. package/dist/contracts/worker-context.js +1 -0
  494. package/dist/evidence/attempt-record.d.ts +78 -0
  495. package/dist/evidence/attempt-record.js +16 -0
  496. package/dist/evidence/bundle-validator.d.ts +7 -0
  497. package/dist/evidence/bundle-validator.js +103 -0
  498. package/dist/evidence/context-snapshot.d.ts +20 -0
  499. package/dist/evidence/context-snapshot.js +81 -0
  500. package/dist/evidence/decision-trace.d.ts +14 -0
  501. package/dist/evidence/decision-trace.js +54 -0
  502. package/dist/evidence/diagnosis.d.ts +15 -0
  503. package/dist/evidence/diagnosis.js +279 -0
  504. package/dist/evidence/evidence-recorder.d.ts +19 -0
  505. package/dist/evidence/evidence-recorder.js +55 -0
  506. package/dist/evidence/evidence-trust-score.d.ts +101 -0
  507. package/dist/evidence/evidence-trust-score.js +408 -0
  508. package/dist/evidence/graph-ontology-relation-gate.d.ts +10 -0
  509. package/dist/evidence/graph-ontology-relation-gate.js +46 -0
  510. package/dist/evidence/headroom-replay-verifier.d.ts +19 -0
  511. package/dist/evidence/headroom-replay-verifier.js +86 -0
  512. package/dist/evidence/index.d.ts +26 -0
  513. package/dist/evidence/index.js +12 -0
  514. package/dist/evidence/proof-trust-cli.d.ts +8 -0
  515. package/dist/evidence/proof-trust-cli.js +27 -0
  516. package/dist/evidence/proof-trust.d.ts +14 -0
  517. package/dist/evidence/proof-trust.js +373 -0
  518. package/dist/evidence/regression-proof-matrix.d.ts +42 -0
  519. package/dist/evidence/regression-proof-matrix.js +72 -0
  520. package/dist/evidence/run-trace.d.ts +103 -0
  521. package/dist/evidence/run-trace.js +191 -0
  522. package/dist/evidence/trust-calibration.d.ts +25 -0
  523. package/dist/evidence/trust-calibration.js +151 -0
  524. package/dist/goal/compiler.d.ts +5 -0
  525. package/dist/goal/compiler.js +350 -0
  526. package/dist/goal/control-loop.d.ts +124 -0
  527. package/dist/goal/control-loop.js +1123 -0
  528. package/dist/goal/ensemble-memory.d.ts +26 -0
  529. package/dist/goal/ensemble-memory.js +55 -0
  530. package/dist/goal/eval-criteria.d.ts +3 -0
  531. package/dist/goal/eval-criteria.js +72 -0
  532. package/dist/goal/evidence.d.ts +20 -0
  533. package/dist/goal/evidence.js +321 -0
  534. package/dist/goal/goal-daemon.d.ts +40 -0
  535. package/dist/goal/goal-daemon.js +318 -0
  536. package/dist/goal/intake.d.ts +48 -0
  537. package/dist/goal/intake.js +561 -0
  538. package/dist/goal/intent-analyzer.d.ts +9 -0
  539. package/dist/goal/intent-analyzer.js +322 -0
  540. package/dist/goal/intent-frame.d.ts +65 -0
  541. package/dist/goal/intent-frame.js +596 -0
  542. package/dist/goal/interview-assimilation.d.ts +13 -0
  543. package/dist/goal/interview-assimilation.js +383 -0
  544. package/dist/goal/interview-question-bank.d.ts +11 -0
  545. package/dist/goal/interview-question-bank.js +225 -0
  546. package/dist/goal/interview-scoring.d.ts +31 -0
  547. package/dist/goal/interview-scoring.js +187 -0
  548. package/dist/goal/interview-session.d.ts +25 -0
  549. package/dist/goal/interview-session.js +116 -0
  550. package/dist/goal/persistence.d.ts +11 -0
  551. package/dist/goal/persistence.js +134 -0
  552. package/dist/goal/prompt-digest.d.ts +13 -0
  553. package/dist/goal/prompt-digest.js +111 -0
  554. package/dist/goal/scoring.d.ts +2 -0
  555. package/dist/goal/scoring.js +69 -0
  556. package/dist/goal/wake-policy.d.ts +26 -0
  557. package/dist/goal/wake-policy.js +58 -0
  558. package/dist/harness/create-harness-task-runner.d.ts +43 -0
  559. package/dist/harness/create-harness-task-runner.js +56 -0
  560. package/dist/harness/execute-harness-run.d.ts +34 -0
  561. package/dist/harness/execute-harness-run.js +109 -0
  562. package/dist/hooks/events.d.ts +71 -0
  563. package/dist/hooks/events.js +1 -0
  564. package/dist/hooks/hook-bus.d.ts +13 -0
  565. package/dist/hooks/hook-bus.js +59 -0
  566. package/dist/hooks/hook-registry.d.ts +6 -0
  567. package/dist/hooks/hook-registry.js +64 -0
  568. package/dist/hooks/index.d.ts +3 -0
  569. package/dist/hooks/index.js +2 -0
  570. package/dist/hud/index.d.ts +9 -0
  571. package/dist/hud/index.js +11 -0
  572. package/dist/hud/live-renderer.d.ts +17 -0
  573. package/dist/hud/live-renderer.js +52 -0
  574. package/dist/hud/render.d.ts +64 -0
  575. package/dist/hud/render.js +960 -0
  576. package/dist/hud/types.d.ts +58 -0
  577. package/dist/hud/types.js +7 -0
  578. package/dist/input/input-artifacts.d.ts +10 -0
  579. package/dist/input/input-artifacts.js +19 -0
  580. package/dist/input/input-envelope.d.ts +86 -0
  581. package/dist/input/input-envelope.js +87 -0
  582. package/dist/integrations/servarr/adapter.d.ts +29 -0
  583. package/dist/integrations/servarr/adapter.js +156 -0
  584. package/dist/integrations/servarr/commands.d.ts +15 -0
  585. package/dist/integrations/servarr/commands.js +119 -0
  586. package/dist/integrations/servarr/schema.d.ts +34 -0
  587. package/dist/integrations/servarr/schema.js +149 -0
  588. package/dist/kimi/ascii-art.d.ts +1 -0
  589. package/dist/kimi/ascii-art.js +23 -0
  590. package/dist/kimi/banner.d.ts +53 -0
  591. package/dist/kimi/banner.js +284 -0
  592. package/dist/kimi/bug-filter.d.ts +15 -0
  593. package/dist/kimi/bug-filter.js +150 -0
  594. package/dist/kimi/capability.d.ts +25 -0
  595. package/dist/kimi/capability.js +68 -0
  596. package/dist/kimi/isolated-home.d.ts +21 -0
  597. package/dist/kimi/isolated-home.js +270 -0
  598. package/dist/kimi/runner.d.ts +74 -0
  599. package/dist/kimi/runner.js +1052 -0
  600. package/dist/kimi/simple-art.d.ts +1 -0
  601. package/dist/kimi/simple-art.js +1 -0
  602. package/dist/kimi/statusline.d.ts +26 -0
  603. package/dist/kimi/statusline.js +142 -0
  604. package/dist/kimi/usage.d.ts +52 -0
  605. package/dist/kimi/usage.js +481 -0
  606. package/dist/kimi/wire-client.d.ts +95 -0
  607. package/dist/kimi/wire-client.js +338 -0
  608. package/dist/lsp/default-config.d.ts +16 -0
  609. package/dist/lsp/default-config.js +26 -0
  610. package/dist/mcp/acp-server.d.ts +2 -0
  611. package/dist/mcp/acp-server.js +357 -0
  612. package/dist/mcp/autoconnect.d.ts +60 -0
  613. package/dist/mcp/autoconnect.js +192 -0
  614. package/dist/mcp/client.d.ts +112 -0
  615. package/dist/mcp/client.js +276 -0
  616. package/dist/mcp/config-permissions.d.ts +23 -0
  617. package/dist/mcp/config-permissions.js +66 -0
  618. package/dist/mcp/consent-flow.d.ts +152 -0
  619. package/dist/mcp/consent-flow.js +329 -0
  620. package/dist/mcp/filesystem-readonly-server.d.ts +2 -0
  621. package/dist/mcp/filesystem-readonly-server.js +320 -0
  622. package/dist/mcp/governance.d.ts +292 -0
  623. package/dist/mcp/governance.js +602 -0
  624. package/dist/mcp/host.d.ts +154 -0
  625. package/dist/mcp/host.js +792 -0
  626. package/dist/mcp/omk-project-server.d.ts +2 -0
  627. package/dist/mcp/omk-project-server.js +1632 -0
  628. package/dist/mcp/omk-web-bridge-server.d.ts +14 -0
  629. package/dist/mcp/omk-web-bridge-server.js +154 -0
  630. package/dist/mcp/permission-resolver.d.ts +67 -0
  631. package/dist/mcp/permission-resolver.js +124 -0
  632. package/dist/mcp/quality-gate.d.ts +36 -0
  633. package/dist/mcp/quality-gate.js +247 -0
  634. package/dist/mcp/quarantine.d.ts +11 -0
  635. package/dist/mcp/quarantine.js +79 -0
  636. package/dist/mcp/secret-scanner.d.ts +195 -0
  637. package/dist/mcp/secret-scanner.js +742 -0
  638. package/dist/mcp/server-catalog.d.ts +36 -0
  639. package/dist/mcp/server-catalog.js +168 -0
  640. package/dist/mcp/shared-secret-registry.d.ts +61 -0
  641. package/dist/mcp/shared-secret-registry.js +171 -0
  642. package/dist/mcp/transports/stdio.d.ts +22 -0
  643. package/dist/mcp/transports/stdio.js +165 -0
  644. package/dist/mcp/transports/streamable-http.d.ts +31 -0
  645. package/dist/mcp/transports/streamable-http.js +289 -0
  646. package/dist/mcp/transports/transport.d.ts +20 -0
  647. package/dist/mcp/transports/transport.js +3 -0
  648. package/dist/memory/embedding.d.ts +11 -0
  649. package/dist/memory/embedding.js +24 -0
  650. package/dist/memory/graph-delta-log.d.ts +137 -0
  651. package/dist/memory/graph-delta-log.js +650 -0
  652. package/dist/memory/graph-viewer.d.ts +72 -0
  653. package/dist/memory/graph-viewer.js +383 -0
  654. package/dist/memory/kuzu-memory-store.d.ts +37 -0
  655. package/dist/memory/kuzu-memory-store.js +453 -0
  656. package/dist/memory/local-graph-memory-store.d.ts +264 -0
  657. package/dist/memory/local-graph-memory-store.js +1875 -0
  658. package/dist/memory/memory-config.d.ts +51 -0
  659. package/dist/memory/memory-config.js +187 -0
  660. package/dist/memory/memory-store.d.ts +66 -0
  661. package/dist/memory/memory-store.js +228 -0
  662. package/dist/memory/ontology-model.d.ts +175 -0
  663. package/dist/memory/ontology-model.js +131 -0
  664. package/dist/metrics/provenance-ratio.d.ts +16 -0
  665. package/dist/metrics/provenance-ratio.js +33 -0
  666. package/dist/openai/image-client.d.ts +103 -0
  667. package/dist/openai/image-client.js +380 -0
  668. package/dist/orchestration/adaptorch-topology.d.ts +59 -0
  669. package/dist/orchestration/adaptorch-topology.js +194 -0
  670. package/dist/orchestration/agent-worker.d.ts +72 -0
  671. package/dist/orchestration/agent-worker.js +278 -0
  672. package/dist/orchestration/capability-agents.d.ts +14 -0
  673. package/dist/orchestration/capability-agents.js +180 -0
  674. package/dist/orchestration/capability-routing.d.ts +65 -0
  675. package/dist/orchestration/capability-routing.js +121 -0
  676. package/dist/orchestration/compiled-dag-executor.d.ts +56 -0
  677. package/dist/orchestration/compiled-dag-executor.js +88 -0
  678. package/dist/orchestration/completion-artifacts.d.ts +37 -0
  679. package/dist/orchestration/completion-artifacts.js +84 -0
  680. package/dist/orchestration/completion-sentinel.d.ts +37 -0
  681. package/dist/orchestration/completion-sentinel.js +66 -0
  682. package/dist/orchestration/contracts/index.d.ts +45 -0
  683. package/dist/orchestration/contracts/index.js +6 -0
  684. package/dist/orchestration/dag-artifacts.d.ts +11 -0
  685. package/dist/orchestration/dag-artifacts.js +42 -0
  686. package/dist/orchestration/dag-compiler-presets.d.ts +20 -0
  687. package/dist/orchestration/dag-compiler-presets.js +476 -0
  688. package/dist/orchestration/dag-compiler-types.d.ts +43 -0
  689. package/dist/orchestration/dag-compiler-types.js +1 -0
  690. package/dist/orchestration/dag-compiler.d.ts +3 -0
  691. package/dist/orchestration/dag-compiler.js +135 -0
  692. package/dist/orchestration/dag.d.ts +196 -0
  693. package/dist/orchestration/dag.js +310 -0
  694. package/dist/orchestration/diagnostics.d.ts +27 -0
  695. package/dist/orchestration/diagnostics.js +262 -0
  696. package/dist/orchestration/enhanced-modes.d.ts +116 -0
  697. package/dist/orchestration/enhanced-modes.js +231 -0
  698. package/dist/orchestration/enhanced-parallel-orchestrator.d.ts +127 -0
  699. package/dist/orchestration/enhanced-parallel-orchestrator.js +734 -0
  700. package/dist/orchestration/ensemble-decision.d.ts +42 -0
  701. package/dist/orchestration/ensemble-decision.js +301 -0
  702. package/dist/orchestration/ensemble.d.ts +22 -0
  703. package/dist/orchestration/ensemble.js +558 -0
  704. package/dist/orchestration/eta.d.ts +10 -0
  705. package/dist/orchestration/eta.js +75 -0
  706. package/dist/orchestration/evidence-check.d.ts +36 -0
  707. package/dist/orchestration/evidence-check.js +257 -0
  708. package/dist/orchestration/evidence-gate.d.ts +34 -0
  709. package/dist/orchestration/evidence-gate.js +513 -0
  710. package/dist/orchestration/execution-planner.d.ts +40 -0
  711. package/dist/orchestration/execution-planner.js +252 -0
  712. package/dist/orchestration/executor.d.ts +11 -0
  713. package/dist/orchestration/executor.js +1072 -0
  714. package/dist/orchestration/hedge-persona-weights.d.ts +25 -0
  715. package/dist/orchestration/hedge-persona-weights.js +43 -0
  716. package/dist/orchestration/interactive-orchestrator.d.ts +134 -0
  717. package/dist/orchestration/interactive-orchestrator.js +450 -0
  718. package/dist/orchestration/log-streamer.d.ts +104 -0
  719. package/dist/orchestration/log-streamer.js +293 -0
  720. package/dist/orchestration/loop-artifacts.d.ts +14 -0
  721. package/dist/orchestration/loop-artifacts.js +20 -0
  722. package/dist/orchestration/loop-controller-headroom.d.ts +6 -0
  723. package/dist/orchestration/loop-controller-headroom.js +33 -0
  724. package/dist/orchestration/loop-controller.d.ts +14 -0
  725. package/dist/orchestration/loop-controller.js +311 -0
  726. package/dist/orchestration/loop-guard.d.ts +28 -0
  727. package/dist/orchestration/loop-guard.js +104 -0
  728. package/dist/orchestration/loop-state.d.ts +86 -0
  729. package/dist/orchestration/loop-state.js +1 -0
  730. package/dist/orchestration/merge-arbiter.d.ts +91 -0
  731. package/dist/orchestration/merge-arbiter.js +376 -0
  732. package/dist/orchestration/node-monitor.d.ts +18 -0
  733. package/dist/orchestration/node-monitor.js +98 -0
  734. package/dist/orchestration/orchestrate-prompt.d.ts +43 -0
  735. package/dist/orchestration/orchestrate-prompt.js +533 -0
  736. package/dist/orchestration/orchestration-state.d.ts +3 -0
  737. package/dist/orchestration/orchestration-state.js +2 -0
  738. package/dist/orchestration/parallel-orchestrator.d.ts +165 -0
  739. package/dist/orchestration/parallel-orchestrator.js +607 -0
  740. package/dist/orchestration/parallel-ui.d.ts +52 -0
  741. package/dist/orchestration/parallel-ui.js +479 -0
  742. package/dist/orchestration/repair-policy.d.ts +20 -0
  743. package/dist/orchestration/repair-policy.js +221 -0
  744. package/dist/orchestration/route-calibration.d.ts +27 -0
  745. package/dist/orchestration/route-calibration.js +123 -0
  746. package/dist/orchestration/routing/inventory.d.ts +9 -0
  747. package/dist/orchestration/routing/inventory.js +273 -0
  748. package/dist/orchestration/routing/mcp-config.d.ts +17 -0
  749. package/dist/orchestration/routing/mcp-config.js +158 -0
  750. package/dist/orchestration/routing/types.d.ts +59 -0
  751. package/dist/orchestration/routing/types.js +4 -0
  752. package/dist/orchestration/routing.d.ts +45 -0
  753. package/dist/orchestration/routing.js +1072 -0
  754. package/dist/orchestration/run-state.d.ts +36 -0
  755. package/dist/orchestration/run-state.js +176 -0
  756. package/dist/orchestration/scheduler.d.ts +11 -0
  757. package/dist/orchestration/scheduler.js +88 -0
  758. package/dist/orchestration/skill-assigner.d.ts +22 -0
  759. package/dist/orchestration/skill-assigner.js +345 -0
  760. package/dist/orchestration/state-machine/index.d.ts +3 -0
  761. package/dist/orchestration/state-machine/index.js +3 -0
  762. package/dist/orchestration/state-machine/node-state-machine.d.ts +24 -0
  763. package/dist/orchestration/state-machine/node-state-machine.js +35 -0
  764. package/dist/orchestration/state-machine/run-state-machine.d.ts +38 -0
  765. package/dist/orchestration/state-machine/run-state-machine.js +161 -0
  766. package/dist/orchestration/state-machine/run-state-manager.d.ts +108 -0
  767. package/dist/orchestration/state-machine/run-state-manager.js +314 -0
  768. package/dist/orchestration/state-persister.d.ts +7 -0
  769. package/dist/orchestration/state-persister.js +84 -0
  770. package/dist/orchestration/task-graph.d.ts +46 -0
  771. package/dist/orchestration/task-graph.js +299 -0
  772. package/dist/orchestration/verification-only.d.ts +28 -0
  773. package/dist/orchestration/verification-only.js +94 -0
  774. package/dist/providers/anthropic-messages-runner.d.ts +17 -0
  775. package/dist/providers/anthropic-messages-runner.js +197 -0
  776. package/dist/providers/attempt-recorder.d.ts +10 -0
  777. package/dist/providers/attempt-recorder.js +38 -0
  778. package/dist/providers/codex-cli-runner.d.ts +11 -0
  779. package/dist/providers/codex-cli-runner.js +144 -0
  780. package/dist/providers/context-preflight.d.ts +47 -0
  781. package/dist/providers/context-preflight.js +134 -0
  782. package/dist/providers/deepseek/deepseek-balance.d.ts +29 -0
  783. package/dist/providers/deepseek/deepseek-balance.js +80 -0
  784. package/dist/providers/deepseek/deepseek-client.d.ts +53 -0
  785. package/dist/providers/deepseek/deepseek-client.js +164 -0
  786. package/dist/providers/deepseek/deepseek-config.d.ts +89 -0
  787. package/dist/providers/deepseek/deepseek-config.js +272 -0
  788. package/dist/providers/deepseek/deepseek-errors.d.ts +5 -0
  789. package/dist/providers/deepseek/deepseek-errors.js +48 -0
  790. package/dist/providers/deepseek/deepseek-provider.d.ts +10 -0
  791. package/dist/providers/deepseek/deepseek-provider.js +162 -0
  792. package/dist/providers/deepseek/deepseek-super-config.d.ts +31 -0
  793. package/dist/providers/deepseek/deepseek-super-config.js +136 -0
  794. package/dist/providers/deepseek-provider.d.ts +8 -0
  795. package/dist/providers/deepseek-provider.js +78 -0
  796. package/dist/providers/health.d.ts +16 -0
  797. package/dist/providers/health.js +101 -0
  798. package/dist/providers/index.d.ts +23 -0
  799. package/dist/providers/index.js +23 -0
  800. package/dist/providers/kimi-provider-failure.d.ts +8 -0
  801. package/dist/providers/kimi-provider-failure.js +56 -0
  802. package/dist/providers/kimi-provider.d.ts +7 -0
  803. package/dist/providers/kimi-provider.js +27 -0
  804. package/dist/providers/model-registry.d.ts +104 -0
  805. package/dist/providers/model-registry.js +677 -0
  806. package/dist/providers/model-table.d.ts +24 -0
  807. package/dist/providers/model-table.js +140 -0
  808. package/dist/providers/model-tabs.d.ts +33 -0
  809. package/dist/providers/model-tabs.js +98 -0
  810. package/dist/providers/openai-compatible-runner.d.ts +17 -0
  811. package/dist/providers/openai-compatible-runner.js +180 -0
  812. package/dist/providers/provider-health.d.ts +46 -0
  813. package/dist/providers/provider-health.js +200 -0
  814. package/dist/providers/provider-router.d.ts +8 -0
  815. package/dist/providers/provider-router.js +174 -0
  816. package/dist/providers/provider-runtime.d.ts +17 -0
  817. package/dist/providers/provider-runtime.js +270 -0
  818. package/dist/providers/provider-stats.d.ts +56 -0
  819. package/dist/providers/provider-stats.js +303 -0
  820. package/dist/providers/provider-task-runner.d.ts +23 -0
  821. package/dist/providers/provider-task-runner.js +1202 -0
  822. package/dist/providers/provider.d.ts +76 -0
  823. package/dist/providers/provider.js +9 -0
  824. package/dist/providers/router.d.ts +14 -0
  825. package/dist/providers/router.js +563 -0
  826. package/dist/providers/runner/deepseek-helpers.d.ts +38 -0
  827. package/dist/providers/runner/deepseek-helpers.js +150 -0
  828. package/dist/providers/runner/env.d.ts +12 -0
  829. package/dist/providers/runner/env.js +98 -0
  830. package/dist/providers/runner/execution.d.ts +26 -0
  831. package/dist/providers/runner/execution.js +42 -0
  832. package/dist/providers/runner/helpers.d.ts +9 -0
  833. package/dist/providers/runner/helpers.js +38 -0
  834. package/dist/providers/runner/results.d.ts +26 -0
  835. package/dist/providers/runner/results.js +104 -0
  836. package/dist/providers/thinking-levels.d.ts +7 -0
  837. package/dist/providers/thinking-levels.js +72 -0
  838. package/dist/providers/types.d.ts +143 -0
  839. package/dist/providers/types.js +60 -0
  840. package/dist/replay/differ.d.ts +5 -0
  841. package/dist/replay/differ.js +314 -0
  842. package/dist/replay/index.d.ts +6 -0
  843. package/dist/replay/index.js +4 -0
  844. package/dist/replay/inspector.d.ts +14 -0
  845. package/dist/replay/inspector.js +264 -0
  846. package/dist/replay/manifest-builder.d.ts +11 -0
  847. package/dist/replay/manifest-builder.js +184 -0
  848. package/dist/replay/replay-engine.d.ts +18 -0
  849. package/dist/replay/replay-engine.js +265 -0
  850. package/dist/runtime/adapter.d.ts +77 -0
  851. package/dist/runtime/adapter.js +28 -0
  852. package/dist/runtime/advanced-control-loop.d.ts +60 -0
  853. package/dist/runtime/advanced-control-loop.js +136 -0
  854. package/dist/runtime/agent-runtime.d.ts +162 -0
  855. package/dist/runtime/agent-runtime.js +31 -0
  856. package/dist/runtime/authority-matrix.d.ts +23 -0
  857. package/dist/runtime/authority-matrix.js +159 -0
  858. package/dist/runtime/blast-radius.d.ts +10 -0
  859. package/dist/runtime/blast-radius.js +14 -0
  860. package/dist/runtime/cache-stable-session.d.ts +55 -0
  861. package/dist/runtime/cache-stable-session.js +108 -0
  862. package/dist/runtime/capability-injection.d.ts +39 -0
  863. package/dist/runtime/capability-injection.js +93 -0
  864. package/dist/runtime/chat-advisory-runtime.d.ts +2 -0
  865. package/dist/runtime/chat-advisory-runtime.js +74 -0
  866. package/dist/runtime/child-env.d.ts +31 -0
  867. package/dist/runtime/child-env.js +131 -0
  868. package/dist/runtime/codex-cli-runtime.d.ts +10 -0
  869. package/dist/runtime/codex-cli-runtime.js +80 -0
  870. package/dist/runtime/codex-runtime.d.ts +38 -0
  871. package/dist/runtime/codex-runtime.js +286 -0
  872. package/dist/runtime/command-bus.d.ts +13 -0
  873. package/dist/runtime/command-bus.js +57 -0
  874. package/dist/runtime/context-broker-converter.d.ts +9 -0
  875. package/dist/runtime/context-broker-converter.js +126 -0
  876. package/dist/runtime/context-broker.d.ts +34 -0
  877. package/dist/runtime/context-broker.js +339 -0
  878. package/dist/runtime/context-budget-optimizer.d.ts +73 -0
  879. package/dist/runtime/context-budget-optimizer.js +300 -0
  880. package/dist/runtime/context-capsule.d.ts +81 -0
  881. package/dist/runtime/context-capsule.js +46 -0
  882. package/dist/runtime/contracts/command-envelope.d.ts +99 -0
  883. package/dist/runtime/contracts/command-envelope.js +5 -0
  884. package/dist/runtime/contracts/evidence.d.ts +139 -0
  885. package/dist/runtime/contracts/evidence.js +134 -0
  886. package/dist/runtime/contracts/reasoning-trace.d.ts +120 -0
  887. package/dist/runtime/contracts/reasoning-trace.js +10 -0
  888. package/dist/runtime/contracts/router-v2.d.ts +44 -0
  889. package/dist/runtime/contracts/router-v2.js +4 -0
  890. package/dist/runtime/contracts/shared.d.ts +61 -0
  891. package/dist/runtime/contracts/shared.js +12 -0
  892. package/dist/runtime/contracts/weakness-remediation.d.ts +83 -0
  893. package/dist/runtime/contracts/weakness-remediation.js +44 -0
  894. package/dist/runtime/core-verified-preset.d.ts +37 -0
  895. package/dist/runtime/core-verified-preset.js +205 -0
  896. package/dist/runtime/data-retention-gate.d.ts +42 -0
  897. package/dist/runtime/data-retention-gate.js +123 -0
  898. package/dist/runtime/debloat-nlp.d.ts +140 -0
  899. package/dist/runtime/debloat-nlp.js +398 -0
  900. package/dist/runtime/deepseek-runtime.d.ts +32 -0
  901. package/dist/runtime/deepseek-runtime.js +276 -0
  902. package/dist/runtime/external-cli-adapter.d.ts +29 -0
  903. package/dist/runtime/external-cli-adapter.js +296 -0
  904. package/dist/runtime/freedomd-evidence-envelope.d.ts +57 -0
  905. package/dist/runtime/freedomd-evidence-envelope.js +110 -0
  906. package/dist/runtime/freedomd-exception.d.ts +32 -0
  907. package/dist/runtime/freedomd-exception.js +95 -0
  908. package/dist/runtime/freedomd-incidents.d.ts +23 -0
  909. package/dist/runtime/freedomd-incidents.js +103 -0
  910. package/dist/runtime/freedomd-policy.d.ts +35 -0
  911. package/dist/runtime/freedomd-policy.js +114 -0
  912. package/dist/runtime/freedomd-router.d.ts +66 -0
  913. package/dist/runtime/freedomd-router.js +433 -0
  914. package/dist/runtime/glm-api-runtime.d.ts +4 -0
  915. package/dist/runtime/glm-api-runtime.js +15 -0
  916. package/dist/runtime/headroom-aware-loop-decision.d.ts +21 -0
  917. package/dist/runtime/headroom-aware-loop-decision.js +67 -0
  918. package/dist/runtime/headroom-loop-risk.d.ts +19 -0
  919. package/dist/runtime/headroom-loop-risk.js +43 -0
  920. package/dist/runtime/headroom-policy.d.ts +50 -0
  921. package/dist/runtime/headroom-policy.js +184 -0
  922. package/dist/runtime/index.d.ts +9 -0
  923. package/dist/runtime/index.js +9 -0
  924. package/dist/runtime/kimi-api-runtime.d.ts +60 -0
  925. package/dist/runtime/kimi-api-runtime.js +455 -0
  926. package/dist/runtime/kimi-print-runtime.d.ts +10 -0
  927. package/dist/runtime/kimi-print-runtime.js +108 -0
  928. package/dist/runtime/kimi-wire-protocol-runtime.d.ts +44 -0
  929. package/dist/runtime/kimi-wire-protocol-runtime.js +452 -0
  930. package/dist/runtime/kimi-wire-runtime.d.ts +17 -0
  931. package/dist/runtime/kimi-wire-runtime.js +112 -0
  932. package/dist/runtime/legacy-bridge.d.ts +14 -0
  933. package/dist/runtime/legacy-bridge.js +27 -0
  934. package/dist/runtime/local-llm-runtime.d.ts +33 -0
  935. package/dist/runtime/local-llm-runtime.js +222 -0
  936. package/dist/runtime/mimo-api-runtime.d.ts +13 -0
  937. package/dist/runtime/mimo-api-runtime.js +24 -0
  938. package/dist/runtime/nlg-renderer.d.ts +38 -0
  939. package/dist/runtime/nlg-renderer.js +132 -0
  940. package/dist/runtime/ouroboros-policy.d.ts +57 -0
  941. package/dist/runtime/ouroboros-policy.js +134 -0
  942. package/dist/runtime/output-router.d.ts +20 -0
  943. package/dist/runtime/output-router.js +171 -0
  944. package/dist/runtime/private-stderr.d.ts +13 -0
  945. package/dist/runtime/private-stderr.js +69 -0
  946. package/dist/runtime/process-session.d.ts +27 -0
  947. package/dist/runtime/process-session.js +35 -0
  948. package/dist/runtime/prompt-envelope.d.ts +28 -0
  949. package/dist/runtime/prompt-envelope.js +78 -0
  950. package/dist/runtime/proof-bundle-trust.d.ts +74 -0
  951. package/dist/runtime/proof-bundle-trust.js +100 -0
  952. package/dist/runtime/provider-event-normalizer.d.ts +117 -0
  953. package/dist/runtime/provider-event-normalizer.js +454 -0
  954. package/dist/runtime/provider-maturity-gate.d.ts +43 -0
  955. package/dist/runtime/provider-maturity-gate.js +127 -0
  956. package/dist/runtime/provider-sovereignty.d.ts +81 -0
  957. package/dist/runtime/provider-sovereignty.js +285 -0
  958. package/dist/runtime/provider-tool-contracts.d.ts +24 -0
  959. package/dist/runtime/provider-tool-contracts.js +56 -0
  960. package/dist/runtime/public-surface.d.ts +93 -0
  961. package/dist/runtime/public-surface.js +146 -0
  962. package/dist/runtime/reasoning-trace.d.ts +46 -0
  963. package/dist/runtime/reasoning-trace.js +289 -0
  964. package/dist/runtime/recovery-artifact-store.d.ts +39 -0
  965. package/dist/runtime/recovery-artifact-store.js +111 -0
  966. package/dist/runtime/renderers.d.ts +33 -0
  967. package/dist/runtime/renderers.js +221 -0
  968. package/dist/runtime/router-v2-scoring.d.ts +16 -0
  969. package/dist/runtime/router-v2-scoring.js +156 -0
  970. package/dist/runtime/runtime-backed-task-runner.d.ts +21 -0
  971. package/dist/runtime/runtime-backed-task-runner.js +456 -0
  972. package/dist/runtime/runtime-bootstrap.d.ts +33 -0
  973. package/dist/runtime/runtime-bootstrap.js +277 -0
  974. package/dist/runtime/runtime-failure-classifier.d.ts +15 -0
  975. package/dist/runtime/runtime-failure-classifier.js +107 -0
  976. package/dist/runtime/runtime-health-probes.d.ts +30 -0
  977. package/dist/runtime/runtime-health-probes.js +102 -0
  978. package/dist/runtime/runtime-registry.d.ts +23 -0
  979. package/dist/runtime/runtime-registry.js +95 -0
  980. package/dist/runtime/runtime-router.d.ts +60 -0
  981. package/dist/runtime/runtime-router.js +1174 -0
  982. package/dist/runtime/sandbox-profile.d.ts +54 -0
  983. package/dist/runtime/sandbox-profile.js +136 -0
  984. package/dist/runtime/slash-commands.d.ts +46 -0
  985. package/dist/runtime/slash-commands.js +652 -0
  986. package/dist/runtime/stable-json.d.ts +9 -0
  987. package/dist/runtime/stable-json.js +45 -0
  988. package/dist/runtime/structured-compaction.d.ts +107 -0
  989. package/dist/runtime/structured-compaction.js +414 -0
  990. package/dist/runtime/tool-call-repair.d.ts +35 -0
  991. package/dist/runtime/tool-call-repair.js +181 -0
  992. package/dist/runtime/tool-dispatch-contracts.d.ts +102 -0
  993. package/dist/runtime/tool-dispatch-contracts.js +171 -0
  994. package/dist/runtime/tool-plane.d.ts +31 -0
  995. package/dist/runtime/tool-plane.js +160 -0
  996. package/dist/runtime/tool-proxy.d.ts +20 -0
  997. package/dist/runtime/tool-proxy.js +109 -0
  998. package/dist/runtime/tool-registry-contract.d.ts +40 -0
  999. package/dist/runtime/tool-registry-contract.js +52 -0
  1000. package/dist/runtime/ui-components.d.ts +64 -0
  1001. package/dist/runtime/ui-components.js +232 -0
  1002. package/dist/runtime/weakness-remediation-index.d.ts +27 -0
  1003. package/dist/runtime/weakness-remediation-index.js +37 -0
  1004. package/dist/runtime/weights-config.d.ts +90 -0
  1005. package/dist/runtime/weights-config.js +249 -0
  1006. package/dist/runtime/worker-manifest.d.ts +34 -0
  1007. package/dist/runtime/worker-manifest.js +204 -0
  1008. package/dist/safety/approval-policy.d.ts +4 -0
  1009. package/dist/safety/approval-policy.js +33 -0
  1010. package/dist/safety/enforcement-engine.d.ts +89 -0
  1011. package/dist/safety/enforcement-engine.js +279 -0
  1012. package/dist/safety/guard-hooks.d.ts +3 -0
  1013. package/dist/safety/guard-hooks.js +64 -0
  1014. package/dist/safety/tool-authority-gate.d.ts +102 -0
  1015. package/dist/safety/tool-authority-gate.js +200 -0
  1016. package/dist/schema/command.schema.d.ts +121 -0
  1017. package/dist/schema/command.schema.js +25 -0
  1018. package/dist/schema/decision.schema.d.ts +57 -0
  1019. package/dist/schema/decision.schema.js +32 -0
  1020. package/dist/schema/envelope.schema.d.ts +216 -0
  1021. package/dist/schema/envelope.schema.js +38 -0
  1022. package/dist/schema/error.schema.d.ts +51 -0
  1023. package/dist/schema/error.schema.js +12 -0
  1024. package/dist/schema/evidence-bundle.schema.d.ts +196 -0
  1025. package/dist/schema/evidence-bundle.schema.js +38 -0
  1026. package/dist/schema/evidence.schema.d.ts +58 -0
  1027. package/dist/schema/evidence.schema.js +31 -0
  1028. package/dist/schema/index.d.ts +10 -0
  1029. package/dist/schema/index.js +10 -0
  1030. package/dist/schema/proof-bundle.schema.d.ts +150 -0
  1031. package/dist/schema/proof-bundle.schema.js +41 -0
  1032. package/dist/schema/provider.schema.d.ts +138 -0
  1033. package/dist/schema/provider.schema.js +35 -0
  1034. package/dist/schema/run-manifest.schema.d.ts +168 -0
  1035. package/dist/schema/run-manifest.schema.js +35 -0
  1036. package/dist/schema/version.schema.d.ts +64 -0
  1037. package/dist/schema/version.schema.js +21 -0
  1038. package/dist/theme/ansi.d.ts +15 -0
  1039. package/dist/theme/ansi.js +48 -0
  1040. package/dist/theme/colors.d.ts +87 -0
  1041. package/dist/theme/colors.js +105 -0
  1042. package/dist/theme/extended-palette.d.ts +85 -0
  1043. package/dist/theme/extended-palette.js +108 -0
  1044. package/dist/theme/external-theme-adapters.d.ts +27 -0
  1045. package/dist/theme/external-theme-adapters.js +52 -0
  1046. package/dist/theme/hud-theme.d.ts +6 -0
  1047. package/dist/theme/hud-theme.js +41 -0
  1048. package/dist/theme/index.d.ts +12 -0
  1049. package/dist/theme/index.js +20 -0
  1050. package/dist/theme/layout.d.ts +24 -0
  1051. package/dist/theme/layout.js +160 -0
  1052. package/dist/theme/library-effects.d.ts +12 -0
  1053. package/dist/theme/library-effects.js +47 -0
  1054. package/dist/theme/metrics.d.ts +23 -0
  1055. package/dist/theme/metrics.js +93 -0
  1056. package/dist/theme/parallel.d.ts +68 -0
  1057. package/dist/theme/parallel.js +356 -0
  1058. package/dist/theme/working-indicator.d.ts +38 -0
  1059. package/dist/theme/working-indicator.js +149 -0
  1060. package/dist/tui/model.d.ts +28 -0
  1061. package/dist/tui/model.js +1 -0
  1062. package/dist/tui/terminal-frame-renderer.d.ts +27 -0
  1063. package/dist/tui/terminal-frame-renderer.js +130 -0
  1064. package/dist/tui/views/capabilities-view.d.ts +3 -0
  1065. package/dist/tui/views/capabilities-view.js +13 -0
  1066. package/dist/tui/views/common.d.ts +11 -0
  1067. package/dist/tui/views/common.js +35 -0
  1068. package/dist/tui/views/dag-view.d.ts +3 -0
  1069. package/dist/tui/views/dag-view.js +12 -0
  1070. package/dist/tui/views/evidence-view.d.ts +3 -0
  1071. package/dist/tui/views/evidence-view.js +18 -0
  1072. package/dist/tui/views/index.d.ts +4 -0
  1073. package/dist/tui/views/index.js +3 -0
  1074. package/dist/ui/omk-sigil.d.ts +13 -0
  1075. package/dist/ui/omk-sigil.js +268 -0
  1076. package/dist/ui/omk-working-sweep.d.ts +61 -0
  1077. package/dist/ui/omk-working-sweep.js +406 -0
  1078. package/dist/util/agent-schema.d.ts +24 -0
  1079. package/dist/util/agent-schema.js +293 -0
  1080. package/dist/util/appshot-store.d.ts +68 -0
  1081. package/dist/util/appshot-store.js +506 -0
  1082. package/dist/util/chat-agent-mode.d.ts +184 -0
  1083. package/dist/util/chat-agent-mode.js +938 -0
  1084. package/dist/util/chat-cockpit.d.ts +56 -0
  1085. package/dist/util/chat-cockpit.js +389 -0
  1086. package/dist/util/chat-startup.d.ts +35 -0
  1087. package/dist/util/chat-startup.js +330 -0
  1088. package/dist/util/chat-state.d.ts +27 -0
  1089. package/dist/util/chat-state.js +105 -0
  1090. package/dist/util/checkpoint.d.ts +21 -0
  1091. package/dist/util/checkpoint.js +238 -0
  1092. package/dist/util/cli-contract.d.ts +46 -0
  1093. package/dist/util/cli-contract.js +72 -0
  1094. package/dist/util/clipboard-image.d.ts +49 -0
  1095. package/dist/util/clipboard-image.js +263 -0
  1096. package/dist/util/command-envelope.d.ts +19 -0
  1097. package/dist/util/command-envelope.js +31 -0
  1098. package/dist/util/cron-engine.d.ts +24 -0
  1099. package/dist/util/cron-engine.js +227 -0
  1100. package/dist/util/events-logger.d.ts +30 -0
  1101. package/dist/util/events-logger.js +142 -0
  1102. package/dist/util/execution-selection.d.ts +13 -0
  1103. package/dist/util/execution-selection.js +82 -0
  1104. package/dist/util/first-run-star.d.ts +58 -0
  1105. package/dist/util/first-run-star.js +264 -0
  1106. package/dist/util/fs/core.d.ts +5 -0
  1107. package/dist/util/fs/core.js +35 -0
  1108. package/dist/util/fs/internal.d.ts +14 -0
  1109. package/dist/util/fs/internal.js +169 -0
  1110. package/dist/util/fs/kimi-sync.d.ts +41 -0
  1111. package/dist/util/fs/kimi-sync.js +495 -0
  1112. package/dist/util/fs/logo.d.ts +2 -0
  1113. package/dist/util/fs/logo.js +78 -0
  1114. package/dist/util/fs/manifest.d.ts +6 -0
  1115. package/dist/util/fs/manifest.js +40 -0
  1116. package/dist/util/fs/mcp-diagnose.d.ts +15 -0
  1117. package/dist/util/fs/mcp-diagnose.js +205 -0
  1118. package/dist/util/fs/mcp-runtime-config.d.ts +23 -0
  1119. package/dist/util/fs/mcp-runtime-config.js +424 -0
  1120. package/dist/util/fs/paths.d.ts +13 -0
  1121. package/dist/util/fs/paths.js +82 -0
  1122. package/dist/util/fs/preflight.d.ts +27 -0
  1123. package/dist/util/fs/preflight.js +271 -0
  1124. package/dist/util/fs.d.ts +8 -0
  1125. package/dist/util/fs.js +8 -0
  1126. package/dist/util/git.d.ts +11 -0
  1127. package/dist/util/git.js +39 -0
  1128. package/dist/util/hash.d.ts +2 -0
  1129. package/dist/util/hash.js +13 -0
  1130. package/dist/util/help-text.d.ts +1 -0
  1131. package/dist/util/help-text.js +60 -0
  1132. package/dist/util/i18n.d.ts +10 -0
  1133. package/dist/util/i18n.js +848 -0
  1134. package/dist/util/json-envelope.d.ts +15 -0
  1135. package/dist/util/json-envelope.js +28 -0
  1136. package/dist/util/mcp-preflight.d.ts +26 -0
  1137. package/dist/util/mcp-preflight.js +29 -0
  1138. package/dist/util/mode-preset.d.ts +29 -0
  1139. package/dist/util/mode-preset.js +222 -0
  1140. package/dist/util/mode-selector.d.ts +6 -0
  1141. package/dist/util/mode-selector.js +74 -0
  1142. package/dist/util/output-buffer.d.ts +12 -0
  1143. package/dist/util/output-buffer.js +59 -0
  1144. package/dist/util/process-tree.d.ts +18 -0
  1145. package/dist/util/process-tree.js +102 -0
  1146. package/dist/util/project-root.d.ts +27 -0
  1147. package/dist/util/project-root.js +382 -0
  1148. package/dist/util/provider-usage.d.ts +2 -0
  1149. package/dist/util/provider-usage.js +1 -0
  1150. package/dist/util/reasoning-nlp.d.ts +84 -0
  1151. package/dist/util/reasoning-nlp.js +325 -0
  1152. package/dist/util/resource-profile.d.ts +32 -0
  1153. package/dist/util/resource-profile.js +219 -0
  1154. package/dist/util/run-store.d.ts +38 -0
  1155. package/dist/util/run-store.js +151 -0
  1156. package/dist/util/run-view-model.d.ts +111 -0
  1157. package/dist/util/run-view-model.js +333 -0
  1158. package/dist/util/runtime-profile.d.ts +34 -0
  1159. package/dist/util/runtime-profile.js +149 -0
  1160. package/dist/util/runtime-scope.d.ts +2 -0
  1161. package/dist/util/runtime-scope.js +19 -0
  1162. package/dist/util/scoped-agent-file.d.ts +47 -0
  1163. package/dist/util/scoped-agent-file.js +121 -0
  1164. package/dist/util/screenshot-store.d.ts +42 -0
  1165. package/dist/util/screenshot-store.js +340 -0
  1166. package/dist/util/secret-mask.d.ts +5 -0
  1167. package/dist/util/secret-mask.js +41 -0
  1168. package/dist/util/session.d.ts +19 -0
  1169. package/dist/util/session.js +81 -0
  1170. package/dist/util/shell.d.ts +30 -0
  1171. package/dist/util/shell.js +350 -0
  1172. package/dist/util/snippet.d.ts +17 -0
  1173. package/dist/util/snippet.js +110 -0
  1174. package/dist/util/sync-manifest.d.ts +13 -0
  1175. package/dist/util/sync-manifest.js +22 -0
  1176. package/dist/util/terminal-input.d.ts +45 -0
  1177. package/dist/util/terminal-input.js +67 -0
  1178. package/dist/util/terminal-kit-bridge.d.ts +24 -0
  1179. package/dist/util/terminal-kit-bridge.js +60 -0
  1180. package/dist/util/terminal-layout.d.ts +18 -0
  1181. package/dist/util/terminal-layout.js +112 -0
  1182. package/dist/util/terminal-owner.d.ts +20 -0
  1183. package/dist/util/terminal-owner.js +95 -0
  1184. package/dist/util/theme.d.ts +9 -0
  1185. package/dist/util/theme.js +9 -0
  1186. package/dist/util/timeout-config.d.ts +18 -0
  1187. package/dist/util/timeout-config.js +101 -0
  1188. package/dist/util/todo-sync.d.ts +58 -0
  1189. package/dist/util/todo-sync.js +473 -0
  1190. package/dist/util/update-check.d.ts +94 -0
  1191. package/dist/util/update-check.js +355 -0
  1192. package/dist/util/usage-view-model.d.ts +22 -0
  1193. package/dist/util/usage-view-model.js +57 -0
  1194. package/dist/util/user-visible-output.d.ts +19 -0
  1195. package/dist/util/user-visible-output.js +48 -0
  1196. package/dist/util/version.d.ts +4 -0
  1197. package/dist/util/version.js +52 -0
  1198. package/dist/util/worktree.d.ts +10 -0
  1199. package/dist/util/worktree.js +165 -0
  1200. package/dist/ux/explain-loop-decision.d.ts +4 -0
  1201. package/dist/ux/explain-loop-decision.js +55 -0
  1202. package/dist/ux/intent-router.d.ts +15 -0
  1203. package/dist/ux/intent-router.js +64 -0
  1204. package/dist/ux/natural-entrypoint.d.ts +21 -0
  1205. package/dist/ux/natural-entrypoint.js +122 -0
  1206. package/dist/version.d.ts +13 -0
  1207. package/dist/version.js +22 -0
  1208. package/dist/web-bridge/host.d.ts +8 -0
  1209. package/dist/web-bridge/host.js +109 -0
  1210. package/dist/web-bridge/native-host.d.ts +6 -0
  1211. package/dist/web-bridge/native-host.js +40 -0
  1212. package/dist/web-bridge/status.d.ts +84 -0
  1213. package/dist/web-bridge/status.js +201 -0
  1214. package/docs/2026-05-01-16gb-lite-mode.md +37 -0
  1215. package/docs/2026-05-01-critical-issues-and-improvements.md +361 -0
  1216. package/docs/2026-05-01-dag-ensemble-runtime.md +74 -0
  1217. package/docs/2026-05-02-p1-p2-hardening-handoff.md +139 -0
  1218. package/docs/2026-05-05-adjustable-timeouts-and-cron-jobs.md +252 -0
  1219. package/docs/2026-05-08-omk-hardening-plan.md +62 -0
  1220. package/docs/2026-05-14/critical-issues.md +20 -0
  1221. package/docs/2026-05-14/improvements.md +14 -0
  1222. package/docs/2026-05-14/init-checklist.md +25 -0
  1223. package/docs/2026-05-14/plan.md +20 -0
  1224. package/docs/2026-05-15/critical-issues.md +20 -0
  1225. package/docs/2026-05-15/improvements.md +14 -0
  1226. package/docs/2026-05-15/init-checklist.md +25 -0
  1227. package/docs/2026-05-15/plan.md +20 -0
  1228. package/docs/2026-05-16/critical-issues.md +20 -0
  1229. package/docs/2026-05-16/improvements.md +14 -0
  1230. package/docs/2026-05-16/init-checklist.md +25 -0
  1231. package/docs/2026-05-16/plan.md +20 -0
  1232. package/docs/2026-05-17/critical-issues.md +20 -0
  1233. package/docs/2026-05-17/improvements.md +14 -0
  1234. package/docs/2026-05-17/init-checklist.md +25 -0
  1235. package/docs/2026-05-17/plan.md +20 -0
  1236. package/docs/2026-05-18/improvements.md +14 -0
  1237. package/docs/2026-05-18/init-checklist.md +25 -0
  1238. package/docs/2026-05-18/plan.md +20 -0
  1239. package/docs/2026-05-18-critical-issues-and-improvements.md +441 -0
  1240. package/docs/2026-05-18-project-direction.md +223 -0
  1241. package/docs/2026-05-19/critical-issues.md +20 -0
  1242. package/docs/2026-05-19/improvements.md +14 -0
  1243. package/docs/2026-05-19/init-checklist.md +25 -0
  1244. package/docs/2026-05-19/plan.md +20 -0
  1245. package/docs/2026-05-20/critical-issues.md +20 -0
  1246. package/docs/2026-05-20/improvements.md +14 -0
  1247. package/docs/2026-05-20/init-checklist.md +25 -0
  1248. package/docs/2026-05-20/plan.md +20 -0
  1249. package/docs/2026-05-21/critical-issues.md +20 -0
  1250. package/docs/2026-05-21/improvements.md +14 -0
  1251. package/docs/2026-05-21/init-checklist.md +25 -0
  1252. package/docs/2026-05-21/plan.md +20 -0
  1253. package/docs/2026-05-22/critical-issues.md +20 -0
  1254. package/docs/2026-05-22/improvements.md +14 -0
  1255. package/docs/2026-05-22/init-checklist.md +25 -0
  1256. package/docs/2026-05-22/plan.md +20 -0
  1257. package/docs/2026-05-23/critical-issues.md +20 -0
  1258. package/docs/2026-05-23/improvements.md +14 -0
  1259. package/docs/2026-05-23/init-checklist.md +25 -0
  1260. package/docs/2026-05-23/plan.md +20 -0
  1261. package/docs/2026-05-24/critical-issues.md +30 -0
  1262. package/docs/2026-05-24/improvements.md +23 -0
  1263. package/docs/2026-05-24/init-checklist.md +25 -0
  1264. package/docs/2026-05-24/plan.md +22 -0
  1265. package/docs/2026-05-25/critical-issues.md +20 -0
  1266. package/docs/2026-05-25/improvements.md +14 -0
  1267. package/docs/2026-05-25/init-checklist.md +25 -0
  1268. package/docs/2026-05-25/plan.md +20 -0
  1269. package/docs/2026-05-26/critical-issues.md +20 -0
  1270. package/docs/2026-05-26/improvements.md +14 -0
  1271. package/docs/2026-05-26/init-checklist.md +25 -0
  1272. package/docs/2026-05-26/plan.md +20 -0
  1273. package/docs/2026-05-27/critical-issues.md +20 -0
  1274. package/docs/2026-05-27/improvements.md +14 -0
  1275. package/docs/2026-05-27/init-checklist.md +25 -0
  1276. package/docs/2026-05-27/plan.md +20 -0
  1277. package/docs/2026-05-28/critical-issues.md +20 -0
  1278. package/docs/2026-05-28/improvements.md +14 -0
  1279. package/docs/2026-05-28/init-checklist.md +25 -0
  1280. package/docs/2026-05-28/plan.md +20 -0
  1281. package/docs/2026-05-29/critical-issues.md +20 -0
  1282. package/docs/2026-05-29/improvements.md +14 -0
  1283. package/docs/2026-05-29/init-checklist.md +25 -0
  1284. package/docs/2026-05-29/plan.md +20 -0
  1285. package/docs/2026-05-30/critical-issues.md +20 -0
  1286. package/docs/2026-05-30/improvements.md +14 -0
  1287. package/docs/2026-05-30/init-checklist.md +25 -0
  1288. package/docs/2026-05-30/plan.md +20 -0
  1289. package/docs/2026-05-31/critical-issues.md +20 -0
  1290. package/docs/2026-05-31/improvements.md +14 -0
  1291. package/docs/2026-05-31/init-checklist.md +25 -0
  1292. package/docs/2026-05-31/plan.md +20 -0
  1293. package/docs/2026-06-01/critical-issues.md +20 -0
  1294. package/docs/2026-06-01/improvements.md +14 -0
  1295. package/docs/2026-06-01/init-checklist.md +25 -0
  1296. package/docs/2026-06-01/plan.md +20 -0
  1297. package/docs/2026-06-02/critical-issues.md +20 -0
  1298. package/docs/2026-06-02/improvements.md +14 -0
  1299. package/docs/2026-06-02/init-checklist.md +25 -0
  1300. package/docs/2026-06-02/plan.md +20 -0
  1301. package/docs/2026-06-03/critical-issues.md +20 -0
  1302. package/docs/2026-06-03/improvements.md +14 -0
  1303. package/docs/2026-06-03/init-checklist.md +25 -0
  1304. package/docs/2026-06-03/plan.md +20 -0
  1305. package/docs/2026-06-04/critical-issues.md +20 -0
  1306. package/docs/2026-06-04/improvements.md +14 -0
  1307. package/docs/2026-06-04/init-checklist.md +25 -0
  1308. package/docs/2026-06-04/plan.md +20 -0
  1309. package/docs/2026-06-05/critical-issues.md +20 -0
  1310. package/docs/2026-06-05/improvements.md +14 -0
  1311. package/docs/2026-06-05/init-checklist.md +25 -0
  1312. package/docs/2026-06-05/plan.md +20 -0
  1313. package/docs/2026-06-06/critical-issues.md +20 -0
  1314. package/docs/2026-06-06/improvements.md +14 -0
  1315. package/docs/2026-06-06/init-checklist.md +25 -0
  1316. package/docs/2026-06-06/plan.md +20 -0
  1317. package/docs/2026-06-07/critical-issues.md +20 -0
  1318. package/docs/2026-06-07/improvements.md +14 -0
  1319. package/docs/2026-06-07/init-checklist.md +25 -0
  1320. package/docs/2026-06-07/plan.md +20 -0
  1321. package/docs/2026-06-08/critical-issues.md +20 -0
  1322. package/docs/2026-06-08/improvements.md +14 -0
  1323. package/docs/2026-06-08/init-checklist.md +25 -0
  1324. package/docs/2026-06-08/plan.md +20 -0
  1325. package/docs/2026-06-09/critical-issues.md +20 -0
  1326. package/docs/2026-06-09/improvements.md +14 -0
  1327. package/docs/2026-06-09/init-checklist.md +25 -0
  1328. package/docs/2026-06-09/plan.md +20 -0
  1329. package/docs/2026-06-10/critical-issues.md +20 -0
  1330. package/docs/2026-06-10/improvements.md +14 -0
  1331. package/docs/2026-06-10/init-checklist.md +25 -0
  1332. package/docs/2026-06-10/plan.md +20 -0
  1333. package/docs/2026-06-11/critical-issues.md +20 -0
  1334. package/docs/2026-06-11/improvements.md +14 -0
  1335. package/docs/2026-06-11/init-checklist.md +25 -0
  1336. package/docs/2026-06-11/plan.md +20 -0
  1337. package/docs/2026-06-14/critical-issues.md +19 -0
  1338. package/docs/2026-06-14/improvements.md +15 -0
  1339. package/docs/2026-06-14/init-checklist.md +25 -0
  1340. package/docs/2026-06-14/plan.md +20 -0
  1341. package/docs/2026-06-15/critical-issues.md +19 -0
  1342. package/docs/2026-06-15/improvements.md +15 -0
  1343. package/docs/2026-06-15/init-checklist.md +25 -0
  1344. package/docs/2026-06-15/plan.md +20 -0
  1345. package/docs/2026-06-16/critical-issues.md +19 -0
  1346. package/docs/2026-06-16/improvements.md +15 -0
  1347. package/docs/2026-06-16/init-checklist.md +25 -0
  1348. package/docs/2026-06-16/plan.md +20 -0
  1349. package/docs/ARCHITECTURE_ANALYSIS_CODEGRAPH.md +224 -0
  1350. package/docs/GSTACK_MIGRATION.md +169 -0
  1351. package/docs/OMK_CLI_V2_RUNTIME_ARCHITECTURE.md +2058 -0
  1352. package/docs/adr/0001-no-native-rust-lane.md +52 -0
  1353. package/docs/algorithm-hardening-playbook.md +219 -0
  1354. package/docs/benchmark-design.md +122 -0
  1355. package/docs/claims.md +85 -0
  1356. package/docs/cli-v2-migration.md +87 -0
  1357. package/docs/codex-oauth-setup.md +62 -0
  1358. package/docs/comparisons/omk-vs-claude-code.md +31 -0
  1359. package/docs/comparisons/omk-vs-codex.md +33 -0
  1360. package/docs/comparisons/omk-vs-mcp-agent.md +33 -0
  1361. package/docs/comparisons/omk-vs-opencode.md +32 -0
  1362. package/docs/decision-layer-calibration.md +20 -0
  1363. package/docs/decisions/2026-06-10-git-history-bloat.md +61 -0
  1364. package/docs/decisions/ADR-theme-dark-only-assets.md +43 -0
  1365. package/docs/demo/verified-run/README.md +32 -0
  1366. package/docs/demo/verified-run/artifacts/README.md +18 -0
  1367. package/docs/demo/verified-run/capture-plan.md +51 -0
  1368. package/docs/demo/verified-run/generated-diff.md +27 -0
  1369. package/docs/demo/verified-run/raw-prompt.md +21 -0
  1370. package/docs/demo/verified-run/video-shot-list.md +14 -0
  1371. package/docs/design-md.md +35 -0
  1372. package/docs/geo-eval-prompts.md +53 -0
  1373. package/docs/getting-started.md +37 -0
  1374. package/docs/github-organic-promotion.md +127 -0
  1375. package/docs/headroom-omk-final-summary.md +188 -0
  1376. package/docs/headroom-omk-integration.md +394 -0
  1377. package/docs/headroom-omk-setup-guide.md +422 -0
  1378. package/docs/headroom-omk-usage-examples.md +371 -0
  1379. package/docs/hud-and-parallel-ux.md +155 -0
  1380. package/docs/integrations/adaptorch.md +46 -0
  1381. package/docs/integrations/ouroboros.md +96 -0
  1382. package/docs/kimi-oauth-usage-status.md +33 -0
  1383. package/docs/kimi-okabe-dmail.md +44 -0
  1384. package/docs/local-graph-memory.md +102 -0
  1385. package/docs/lsp.md +48 -0
  1386. package/docs/mcp-ontology-proposal.md +12 -0
  1387. package/docs/native-root-runtime-algorithms.md +402 -0
  1388. package/docs/native-root-runtime-hardening.md +141 -0
  1389. package/docs/neo4j-memory.md +5 -0
  1390. package/docs/openai-platform-image-keys.md +23 -0
  1391. package/docs/phase1-final-report.md +154 -0
  1392. package/docs/post-0793-hardening-roadmap.md +123 -0
  1393. package/docs/provider-maturity.md +46 -0
  1394. package/docs/runtime-architecture.md +89 -0
  1395. package/docs/use-cases/evidence-gated-coding-agents.md +52 -0
  1396. package/docs/use-cases/no-kimi-mode.md +38 -0
  1397. package/docs/use-cases/provider-routing-for-ai-coding.md +36 -0
  1398. package/docs/use-cases/replayable-agent-runs.md +40 -0
  1399. package/docs/use-cases/scoped-mcp-for-coding-agents.md +34 -0
  1400. package/docs/versioning.md +55 -0
  1401. package/docs/what-is-omk.md +64 -0
  1402. package/llms.txt +48 -0
  1403. package/package.json +200 -97
  1404. package/readmeasset/.npmignore +27 -0
  1405. package/readmeasset/ASSET_INDEX.md +44 -0
  1406. package/readmeasset/ASSET_PROVENANCE.md +136 -0
  1407. package/readmeasset/omk-adaptorch-ouroboros-supermemory.svg +95 -0
  1408. package/readmeasset/omk-control-surfaces.svg +55 -0
  1409. package/readmeasset/omk-core-loop.svg +26 -0
  1410. package/readmeasset/omk-evidence-gate-card.png +0 -0
  1411. package/readmeasset/omk-freedomd-control-plane.svg +59 -0
  1412. package/readmeasset/omk-freedomd-control-plane.webp +0 -0
  1413. package/readmeasset/omk-github-banner.webp +0 -0
  1414. package/readmeasset/omk-github-header.webp +0 -0
  1415. package/readmeasset/omk-init-control-loop.svg +118 -0
  1416. package/readmeasset/omk-install-card.png +0 -0
  1417. package/readmeasset/omk-logo-512.png +0 -0
  1418. package/readmeasset/omk-logo-mark.svg +8 -0
  1419. package/readmeasset/omk-parallel-subagents.svg +97 -0
  1420. package/readmeasset/omk-provider-router-card.png +0 -0
  1421. package/readmeasset/omk-release-assertions.svg +51 -0
  1422. package/readmeasset/omk-runtime-flow-0.78.0.webp +0 -0
  1423. package/readmeasset/omk-social-preview.png +0 -0
  1424. package/readmeasset/omk-tui-0.78.0.webp +0 -0
  1425. package/readmeasset/omk_tui.png +0 -0
  1426. package/templates/.kimi/AGENTS.md +93 -0
  1427. package/templates/.omk/agents/okabe.yaml +30 -0
  1428. package/templates/.omk/agents/roles/aggregator.yaml +13 -0
  1429. package/templates/.omk/agents/roles/architect.yaml +13 -0
  1430. package/templates/.omk/agents/roles/coder.yaml +9 -0
  1431. package/templates/.omk/agents/roles/explorer.yaml +13 -0
  1432. package/templates/.omk/agents/roles/integrator.yaml +13 -0
  1433. package/templates/.omk/agents/roles/interviewer.yaml +13 -0
  1434. package/templates/.omk/agents/roles/ontology.yaml +18 -0
  1435. package/templates/.omk/agents/roles/planner.yaml +13 -0
  1436. package/templates/.omk/agents/roles/qa.yaml +12 -0
  1437. package/templates/.omk/agents/roles/researcher.yaml +13 -0
  1438. package/templates/.omk/agents/roles/reviewer.yaml +13 -0
  1439. package/templates/.omk/agents/roles/router.yaml +13 -0
  1440. package/templates/.omk/agents/roles/security.yaml +12 -0
  1441. package/templates/.omk/agents/roles/tester.yaml +12 -0
  1442. package/templates/.omk/agents/roles/vision-debugger.yaml +12 -0
  1443. package/templates/.omk/agents/root.yaml +62 -0
  1444. package/templates/.omk/lsp.json +27 -0
  1445. package/templates/.omk/prompts/root.md +74 -0
  1446. package/templates/AGENTS.md +510 -0
  1447. package/templates/skills/agents/agentmemory/SKILL.md +40 -0
  1448. package/templates/skills/agents/andrej-karpathy-skills/SKILL.md +41 -0
  1449. package/templates/skills/agents/claude-for-legal/SKILL.md +63 -0
  1450. package/templates/skills/agents/claude-for-legal/references/workflow-catalog.md +38 -0
  1451. package/templates/skills/agents/matt-pocock-skills/SKILL.md +40 -0
  1452. package/templates/skills/agents/multica/SKILL.md +40 -0
  1453. package/templates/skills/agents/omk-agent-reach-websearch/SKILL.md +55 -0
  1454. package/templates/skills/agents/omk-backend-api-review/SKILL.md +30 -0
  1455. package/templates/skills/agents/omk-code-review/SKILL.md +40 -0
  1456. package/templates/skills/agents/omk-context-broker/SKILL.md +57 -0
  1457. package/templates/skills/agents/omk-control-loop-debugger/SKILL.md +49 -0
  1458. package/templates/skills/agents/omk-design-system/SKILL.md +22 -0
  1459. package/templates/skills/agents/omk-docs-release/SKILL.md +42 -0
  1460. package/templates/skills/agents/omk-evidence-contract/SKILL.md +52 -0
  1461. package/templates/skills/agents/omk-frontend-implementation/SKILL.md +13 -0
  1462. package/templates/skills/agents/omk-frontend-ui-review/SKILL.md +29 -0
  1463. package/templates/skills/agents/omk-git-commit-pr/SKILL.md +45 -0
  1464. package/templates/skills/agents/omk-industrial-control-loop/SKILL.md +33 -0
  1465. package/templates/skills/agents/omk-plan-first/SKILL.md +39 -0
  1466. package/templates/skills/agents/omk-project-rules/SKILL.md +46 -0
  1467. package/templates/skills/agents/omk-python-typing/SKILL.md +33 -0
  1468. package/templates/skills/agents/omk-quality-gate/SKILL.md +54 -0
  1469. package/templates/skills/agents/omk-repo-explorer/SKILL.md +33 -0
  1470. package/templates/skills/agents/omk-research-verify/SKILL.md +30 -0
  1471. package/templates/skills/agents/omk-secret-guard/SKILL.md +23 -0
  1472. package/templates/skills/agents/omk-security-review/SKILL.md +49 -0
  1473. package/templates/skills/agents/omk-test-debug-loop/SKILL.md +43 -0
  1474. package/templates/skills/agents/omk-troubleshooting/SKILL.md +14 -0
  1475. package/templates/skills/agents/omk-typescript-strict/SKILL.md +38 -0
  1476. package/templates/skills/agents/omk-worktree-team/SKILL.md +44 -0
  1477. package/templates/skills/agents/react-doctor/SKILL.md +46 -0
  1478. package/templates/skills/kimi/agentmemory/SKILL.md +40 -0
  1479. package/templates/skills/kimi/andrej-karpathy-skills/SKILL.md +41 -0
  1480. package/templates/skills/kimi/awesome-design-md/SKILL.md +54 -0
  1481. package/templates/skills/kimi/claude-for-legal/SKILL.md +63 -0
  1482. package/templates/skills/kimi/claude-for-legal/references/workflow-catalog.md +38 -0
  1483. package/templates/skills/kimi/deepseek-api/SKILL.md +27 -0
  1484. package/templates/skills/kimi/deepseek-disable/SKILL.md +20 -0
  1485. package/templates/skills/kimi/deepseek-enable/SKILL.md +20 -0
  1486. package/templates/skills/kimi/deepseekset/SKILL.md +27 -0
  1487. package/templates/skills/kimi/graph-view/SKILL.md +29 -0
  1488. package/templates/skills/kimi/matt-pocock-skills/SKILL.md +40 -0
  1489. package/templates/skills/kimi/multica/SKILL.md +40 -0
  1490. package/templates/skills/kimi/omk-agent-reach-websearch/SKILL.md +55 -0
  1491. package/templates/skills/kimi/omk-backend-api-review/SKILL.md +30 -0
  1492. package/templates/skills/kimi/omk-code-review/SKILL.md +34 -0
  1493. package/templates/skills/kimi/omk-context-broker/SKILL.md +57 -0
  1494. package/templates/skills/kimi/omk-control-loop-debugger/SKILL.md +49 -0
  1495. package/templates/skills/kimi/omk-design-md/SKILL.md +55 -0
  1496. package/templates/skills/kimi/omk-design-system/SKILL.md +22 -0
  1497. package/templates/skills/kimi/omk-docs-release/SKILL.md +42 -0
  1498. package/templates/skills/kimi/omk-evidence-contract/SKILL.md +52 -0
  1499. package/templates/skills/kimi/omk-flow-bugfix/SKILL.md +20 -0
  1500. package/templates/skills/kimi/omk-flow-design-to-code/SKILL.md +23 -0
  1501. package/templates/skills/kimi/omk-flow-feature-dev/SKILL.md +24 -0
  1502. package/templates/skills/kimi/omk-flow-pr-review/SKILL.md +17 -0
  1503. package/templates/skills/kimi/omk-flow-refactor/SKILL.md +21 -0
  1504. package/templates/skills/kimi/omk-flow-release/SKILL.md +20 -0
  1505. package/templates/skills/kimi/omk-flow-team-run/SKILL.md +24 -0
  1506. package/templates/skills/kimi/omk-frontend-implementation/SKILL.md +13 -0
  1507. package/templates/skills/kimi/omk-frontend-ui-review/SKILL.md +29 -0
  1508. package/templates/skills/kimi/omk-git-commit-pr/SKILL.md +45 -0
  1509. package/templates/skills/kimi/omk-global-rules/SKILL.md +31 -0
  1510. package/templates/skills/kimi/omk-industrial-control-loop/SKILL.md +33 -0
  1511. package/templates/skills/kimi/omk-kimi-runtime/SKILL.md +46 -0
  1512. package/templates/skills/kimi/omk-multimodal-ui-review/SKILL.md +26 -0
  1513. package/templates/skills/kimi/omk-plan-first/SKILL.md +39 -0
  1514. package/templates/skills/kimi/omk-project-rules/SKILL.md +21 -0
  1515. package/templates/skills/kimi/omk-python-typing/SKILL.md +33 -0
  1516. package/templates/skills/kimi/omk-quality-gate/SKILL.md +36 -0
  1517. package/templates/skills/kimi/omk-repo-explorer/SKILL.md +33 -0
  1518. package/templates/skills/kimi/omk-research-verify/SKILL.md +30 -0
  1519. package/templates/skills/kimi/omk-secret-guard/SKILL.md +23 -0
  1520. package/templates/skills/kimi/omk-security-review/SKILL.md +49 -0
  1521. package/templates/skills/kimi/omk-task-router/SKILL.md +27 -0
  1522. package/templates/skills/kimi/omk-test-debug-loop/SKILL.md +43 -0
  1523. package/templates/skills/kimi/omk-typescript-strict/SKILL.md +38 -0
  1524. package/templates/skills/kimi/omk-worktree-team/SKILL.md +44 -0
  1525. package/templates/skills/kimi/open-design/SKILL.md +56 -0
  1526. package/templates/skills/kimi/provider/SKILL.md +47 -0
  1527. package/templates/skills/kimi/react-doctor/SKILL.md +46 -0
  1528. package/templates/skills/kimi/speckit-analyze/SKILL.md +255 -0
  1529. package/templates/skills/kimi/speckit-checklist/SKILL.md +367 -0
  1530. package/templates/skills/kimi/speckit-clarify/SKILL.md +249 -0
  1531. package/templates/skills/kimi/speckit-constitution/SKILL.md +152 -0
  1532. package/templates/skills/kimi/speckit-implement/SKILL.md +204 -0
  1533. package/templates/skills/kimi/speckit-plan/SKILL.md +147 -0
  1534. package/templates/skills/kimi/speckit-specify/SKILL.md +325 -0
  1535. package/templates/skills/kimi/speckit-tasks/SKILL.md +197 -0
  1536. package/templates/skills/kimi/speckit-taskstoissues/SKILL.md +101 -0
  1537. package/templates/skills/kimi/think/SKILL.md +41 -0
  1538. package/templates/spec-kit-omk-preset/commands/plan.md +21 -0
  1539. package/templates/spec-kit-omk-preset/commands/tasks.md +21 -0
  1540. package/templates/spec-kit-omk-preset/preset.yml +12 -0
  1541. package/templates/spec-kit-omk-preset/templates/plan-template.md +75 -0
  1542. package/templates/spec-kit-omk-preset/templates/spec-template.md +80 -0
  1543. package/templates/spec-kit-omk-preset/templates/tasks-template.md +160 -0
  1544. package/templates/web-bridge/chrome-extension/README.md +18 -0
  1545. package/templates/web-bridge/chrome-extension/background.js +57 -0
  1546. package/templates/web-bridge/chrome-extension/content-script.js +46 -0
  1547. package/templates/web-bridge/chrome-extension/manifest.json +16 -0
  1548. package/templates/web-bridge/chrome-extension/popup.html +21 -0
  1549. package/templates/web-bridge/chrome-extension/popup.js +9 -0
  1550. package/dist/bun/cli.d.ts +0 -3
  1551. package/dist/bun/cli.d.ts.map +0 -1
  1552. package/dist/bun/cli.js +0 -10
  1553. package/dist/bun/cli.js.map +0 -1
  1554. package/dist/bun/register-bedrock.d.ts +0 -2
  1555. package/dist/bun/register-bedrock.d.ts.map +0 -1
  1556. package/dist/bun/register-bedrock.js +0 -4
  1557. package/dist/bun/register-bedrock.js.map +0 -1
  1558. package/dist/bun/restore-sandbox-env.d.ts +0 -13
  1559. package/dist/bun/restore-sandbox-env.d.ts.map +0 -1
  1560. package/dist/bun/restore-sandbox-env.js +0 -32
  1561. package/dist/bun/restore-sandbox-env.js.map +0 -1
  1562. package/dist/cli/args.d.ts +0 -56
  1563. package/dist/cli/args.d.ts.map +0 -1
  1564. package/dist/cli/args.js +0 -392
  1565. package/dist/cli/args.js.map +0 -1
  1566. package/dist/cli/config-selector.d.ts +0 -14
  1567. package/dist/cli/config-selector.d.ts.map +0 -1
  1568. package/dist/cli/config-selector.js +0 -31
  1569. package/dist/cli/config-selector.js.map +0 -1
  1570. package/dist/cli/file-processor.d.ts +0 -15
  1571. package/dist/cli/file-processor.d.ts.map +0 -1
  1572. package/dist/cli/file-processor.js +0 -82
  1573. package/dist/cli/file-processor.js.map +0 -1
  1574. package/dist/cli/initial-message.d.ts +0 -18
  1575. package/dist/cli/initial-message.d.ts.map +0 -1
  1576. package/dist/cli/initial-message.js +0 -22
  1577. package/dist/cli/initial-message.js.map +0 -1
  1578. package/dist/cli/list-models.d.ts +0 -9
  1579. package/dist/cli/list-models.d.ts.map +0 -1
  1580. package/dist/cli/list-models.js +0 -98
  1581. package/dist/cli/list-models.js.map +0 -1
  1582. package/dist/cli/session-picker.d.ts +0 -9
  1583. package/dist/cli/session-picker.d.ts.map +0 -1
  1584. package/dist/cli/session-picker.js +0 -35
  1585. package/dist/cli/session-picker.js.map +0 -1
  1586. package/dist/cli.d.ts.map +0 -1
  1587. package/dist/cli.js.map +0 -1
  1588. package/dist/config.d.ts +0 -132
  1589. package/dist/config.d.ts.map +0 -1
  1590. package/dist/config.js +0 -529
  1591. package/dist/config.js.map +0 -1
  1592. package/dist/core/adaptive-runtime.d.ts +0 -150
  1593. package/dist/core/adaptive-runtime.d.ts.map +0 -1
  1594. package/dist/core/adaptive-runtime.js +0 -378
  1595. package/dist/core/adaptive-runtime.js.map +0 -1
  1596. package/dist/core/agent-session-runtime.d.ts +0 -117
  1597. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  1598. package/dist/core/agent-session-runtime.js +0 -300
  1599. package/dist/core/agent-session-runtime.js.map +0 -1
  1600. package/dist/core/agent-session-services.d.ts +0 -87
  1601. package/dist/core/agent-session-services.d.ts.map +0 -1
  1602. package/dist/core/agent-session-services.js +0 -119
  1603. package/dist/core/agent-session-services.js.map +0 -1
  1604. package/dist/core/agent-session.d.ts +0 -604
  1605. package/dist/core/agent-session.d.ts.map +0 -1
  1606. package/dist/core/agent-session.js +0 -2535
  1607. package/dist/core/agent-session.js.map +0 -1
  1608. package/dist/core/auth-guidance.d.ts +0 -5
  1609. package/dist/core/auth-guidance.d.ts.map +0 -1
  1610. package/dist/core/auth-guidance.js +0 -21
  1611. package/dist/core/auth-guidance.js.map +0 -1
  1612. package/dist/core/auth-storage.d.ts +0 -141
  1613. package/dist/core/auth-storage.d.ts.map +0 -1
  1614. package/dist/core/auth-storage.js +0 -445
  1615. package/dist/core/auth-storage.js.map +0 -1
  1616. package/dist/core/bash-executor.d.ts +0 -32
  1617. package/dist/core/bash-executor.d.ts.map +0 -1
  1618. package/dist/core/bash-executor.js +0 -111
  1619. package/dist/core/bash-executor.js.map +0 -1
  1620. package/dist/core/compaction/branch-summarization.d.ts +0 -90
  1621. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  1622. package/dist/core/compaction/branch-summarization.js +0 -249
  1623. package/dist/core/compaction/branch-summarization.js.map +0 -1
  1624. package/dist/core/compaction/compaction.d.ts +0 -132
  1625. package/dist/core/compaction/compaction.d.ts.map +0 -1
  1626. package/dist/core/compaction/compaction.js +0 -635
  1627. package/dist/core/compaction/compaction.js.map +0 -1
  1628. package/dist/core/compaction/index.d.ts +0 -7
  1629. package/dist/core/compaction/index.d.ts.map +0 -1
  1630. package/dist/core/compaction/index.js +0 -7
  1631. package/dist/core/compaction/index.js.map +0 -1
  1632. package/dist/core/compaction/utils.d.ts +0 -38
  1633. package/dist/core/compaction/utils.d.ts.map +0 -1
  1634. package/dist/core/compaction/utils.js +0 -153
  1635. package/dist/core/compaction/utils.js.map +0 -1
  1636. package/dist/core/defaults.d.ts +0 -3
  1637. package/dist/core/defaults.d.ts.map +0 -1
  1638. package/dist/core/defaults.js +0 -2
  1639. package/dist/core/defaults.js.map +0 -1
  1640. package/dist/core/diagnostics.d.ts +0 -15
  1641. package/dist/core/diagnostics.d.ts.map +0 -1
  1642. package/dist/core/diagnostics.js +0 -2
  1643. package/dist/core/diagnostics.js.map +0 -1
  1644. package/dist/core/event-bus.d.ts +0 -9
  1645. package/dist/core/event-bus.d.ts.map +0 -1
  1646. package/dist/core/event-bus.js +0 -25
  1647. package/dist/core/event-bus.js.map +0 -1
  1648. package/dist/core/exec.d.ts +0 -29
  1649. package/dist/core/exec.d.ts.map +0 -1
  1650. package/dist/core/exec.js +0 -75
  1651. package/dist/core/exec.js.map +0 -1
  1652. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  1653. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  1654. package/dist/core/export-html/ansi-to-html.js +0 -249
  1655. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  1656. package/dist/core/export-html/index.d.ts +0 -37
  1657. package/dist/core/export-html/index.d.ts.map +0 -1
  1658. package/dist/core/export-html/index.js +0 -226
  1659. package/dist/core/export-html/index.js.map +0 -1
  1660. package/dist/core/export-html/template.css +0 -1066
  1661. package/dist/core/export-html/template.html +0 -55
  1662. package/dist/core/export-html/template.js +0 -1864
  1663. package/dist/core/export-html/tool-renderer.d.ts +0 -34
  1664. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  1665. package/dist/core/export-html/tool-renderer.js +0 -108
  1666. package/dist/core/export-html/tool-renderer.js.map +0 -1
  1667. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  1668. package/dist/core/export-html/vendor/marked.min.js +0 -6
  1669. package/dist/core/extensions/index.d.ts +0 -12
  1670. package/dist/core/extensions/index.d.ts.map +0 -1
  1671. package/dist/core/extensions/index.js +0 -9
  1672. package/dist/core/extensions/index.js.map +0 -1
  1673. package/dist/core/extensions/loader.d.ts +0 -24
  1674. package/dist/core/extensions/loader.d.ts.map +0 -1
  1675. package/dist/core/extensions/loader.js +0 -494
  1676. package/dist/core/extensions/loader.js.map +0 -1
  1677. package/dist/core/extensions/runner.d.ts +0 -161
  1678. package/dist/core/extensions/runner.d.ts.map +0 -1
  1679. package/dist/core/extensions/runner.js +0 -842
  1680. package/dist/core/extensions/runner.js.map +0 -1
  1681. package/dist/core/extensions/types.d.ts +0 -1181
  1682. package/dist/core/extensions/types.d.ts.map +0 -1
  1683. package/dist/core/extensions/types.js +0 -45
  1684. package/dist/core/extensions/types.js.map +0 -1
  1685. package/dist/core/extensions/wrapper.d.ts +0 -20
  1686. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  1687. package/dist/core/extensions/wrapper.js +0 -22
  1688. package/dist/core/extensions/wrapper.js.map +0 -1
  1689. package/dist/core/footer-data-provider.d.ts +0 -54
  1690. package/dist/core/footer-data-provider.d.ts.map +0 -1
  1691. package/dist/core/footer-data-provider.js +0 -338
  1692. package/dist/core/footer-data-provider.js.map +0 -1
  1693. package/dist/core/http-dispatcher.d.ts +0 -21
  1694. package/dist/core/http-dispatcher.d.ts.map +0 -1
  1695. package/dist/core/http-dispatcher.js +0 -48
  1696. package/dist/core/http-dispatcher.js.map +0 -1
  1697. package/dist/core/index.d.ts +0 -12
  1698. package/dist/core/index.d.ts.map +0 -1
  1699. package/dist/core/index.js +0 -12
  1700. package/dist/core/index.js.map +0 -1
  1701. package/dist/core/keybindings.d.ts +0 -353
  1702. package/dist/core/keybindings.d.ts.map +0 -1
  1703. package/dist/core/keybindings.js +0 -295
  1704. package/dist/core/keybindings.js.map +0 -1
  1705. package/dist/core/messages.d.ts +0 -77
  1706. package/dist/core/messages.d.ts.map +0 -1
  1707. package/dist/core/messages.js +0 -123
  1708. package/dist/core/messages.js.map +0 -1
  1709. package/dist/core/model-registry.d.ts +0 -150
  1710. package/dist/core/model-registry.d.ts.map +0 -1
  1711. package/dist/core/model-registry.js +0 -789
  1712. package/dist/core/model-registry.js.map +0 -1
  1713. package/dist/core/model-resolver.d.ts +0 -110
  1714. package/dist/core/model-resolver.d.ts.map +0 -1
  1715. package/dist/core/model-resolver.js +0 -495
  1716. package/dist/core/model-resolver.js.map +0 -1
  1717. package/dist/core/omk-control.d.ts +0 -62
  1718. package/dist/core/omk-control.d.ts.map +0 -1
  1719. package/dist/core/omk-control.js +0 -190
  1720. package/dist/core/omk-control.js.map +0 -1
  1721. package/dist/core/omk-subagent.d.ts +0 -17
  1722. package/dist/core/omk-subagent.d.ts.map +0 -1
  1723. package/dist/core/omk-subagent.js +0 -704
  1724. package/dist/core/omk-subagent.js.map +0 -1
  1725. package/dist/core/output-guard.d.ts +0 -7
  1726. package/dist/core/output-guard.d.ts.map +0 -1
  1727. package/dist/core/output-guard.js +0 -89
  1728. package/dist/core/output-guard.js.map +0 -1
  1729. package/dist/core/package-manager.d.ts +0 -206
  1730. package/dist/core/package-manager.d.ts.map +0 -1
  1731. package/dist/core/package-manager.js +0 -2056
  1732. package/dist/core/package-manager.js.map +0 -1
  1733. package/dist/core/prompt-templates.d.ts +0 -52
  1734. package/dist/core/prompt-templates.d.ts.map +0 -1
  1735. package/dist/core/prompt-templates.js +0 -238
  1736. package/dist/core/prompt-templates.js.map +0 -1
  1737. package/dist/core/provider-attribution.d.ts +0 -4
  1738. package/dist/core/provider-attribution.d.ts.map +0 -1
  1739. package/dist/core/provider-attribution.js +0 -78
  1740. package/dist/core/provider-attribution.js.map +0 -1
  1741. package/dist/core/provider-display-names.d.ts +0 -2
  1742. package/dist/core/provider-display-names.d.ts.map +0 -1
  1743. package/dist/core/provider-display-names.js +0 -35
  1744. package/dist/core/provider-display-names.js.map +0 -1
  1745. package/dist/core/resolve-config-value.d.ts +0 -31
  1746. package/dist/core/resolve-config-value.d.ts.map +0 -1
  1747. package/dist/core/resolve-config-value.js +0 -249
  1748. package/dist/core/resolve-config-value.js.map +0 -1
  1749. package/dist/core/resource-loader.d.ts +0 -194
  1750. package/dist/core/resource-loader.d.ts.map +0 -1
  1751. package/dist/core/resource-loader.js +0 -740
  1752. package/dist/core/resource-loader.js.map +0 -1
  1753. package/dist/core/runtime-defaults.d.ts +0 -14
  1754. package/dist/core/runtime-defaults.d.ts.map +0 -1
  1755. package/dist/core/runtime-defaults.js +0 -15
  1756. package/dist/core/runtime-defaults.js.map +0 -1
  1757. package/dist/core/sdk.d.ts +0 -109
  1758. package/dist/core/sdk.d.ts.map +0 -1
  1759. package/dist/core/sdk.js +0 -270
  1760. package/dist/core/sdk.js.map +0 -1
  1761. package/dist/core/session-cwd.d.ts +0 -19
  1762. package/dist/core/session-cwd.d.ts.map +0 -1
  1763. package/dist/core/session-cwd.js +0 -38
  1764. package/dist/core/session-cwd.js.map +0 -1
  1765. package/dist/core/session-manager.d.ts +0 -332
  1766. package/dist/core/session-manager.d.ts.map +0 -1
  1767. package/dist/core/session-manager.js +0 -1218
  1768. package/dist/core/session-manager.js.map +0 -1
  1769. package/dist/core/settings-manager.d.ts +0 -273
  1770. package/dist/core/settings-manager.d.ts.map +0 -1
  1771. package/dist/core/settings-manager.js +0 -839
  1772. package/dist/core/settings-manager.js.map +0 -1
  1773. package/dist/core/skills.d.ts +0 -60
  1774. package/dist/core/skills.d.ts.map +0 -1
  1775. package/dist/core/skills.js +0 -387
  1776. package/dist/core/skills.js.map +0 -1
  1777. package/dist/core/slash-commands.d.ts +0 -26
  1778. package/dist/core/slash-commands.d.ts.map +0 -1
  1779. package/dist/core/slash-commands.js +0 -98
  1780. package/dist/core/slash-commands.js.map +0 -1
  1781. package/dist/core/source-info.d.ts +0 -18
  1782. package/dist/core/source-info.d.ts.map +0 -1
  1783. package/dist/core/source-info.js +0 -19
  1784. package/dist/core/source-info.js.map +0 -1
  1785. package/dist/core/system-prompt.d.ts +0 -28
  1786. package/dist/core/system-prompt.d.ts.map +0 -1
  1787. package/dist/core/system-prompt.js +0 -120
  1788. package/dist/core/system-prompt.js.map +0 -1
  1789. package/dist/core/telemetry.d.ts +0 -3
  1790. package/dist/core/telemetry.d.ts.map +0 -1
  1791. package/dist/core/telemetry.js +0 -10
  1792. package/dist/core/telemetry.js.map +0 -1
  1793. package/dist/core/timings.d.ts +0 -4
  1794. package/dist/core/timings.d.ts.map +0 -1
  1795. package/dist/core/timings.js +0 -32
  1796. package/dist/core/timings.js.map +0 -1
  1797. package/dist/core/tools/bash.d.ts +0 -68
  1798. package/dist/core/tools/bash.d.ts.map +0 -1
  1799. package/dist/core/tools/bash.js +0 -337
  1800. package/dist/core/tools/bash.js.map +0 -1
  1801. package/dist/core/tools/edit-diff.d.ts +0 -87
  1802. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  1803. package/dist/core/tools/edit-diff.js +0 -345
  1804. package/dist/core/tools/edit-diff.js.map +0 -1
  1805. package/dist/core/tools/edit.d.ts +0 -51
  1806. package/dist/core/tools/edit.d.ts.map +0 -1
  1807. package/dist/core/tools/edit.js +0 -284
  1808. package/dist/core/tools/edit.js.map +0 -1
  1809. package/dist/core/tools/file-mutation-queue.d.ts +0 -6
  1810. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  1811. package/dist/core/tools/file-mutation-queue.js +0 -52
  1812. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  1813. package/dist/core/tools/find.d.ts +0 -35
  1814. package/dist/core/tools/find.d.ts.map +0 -1
  1815. package/dist/core/tools/find.js +0 -297
  1816. package/dist/core/tools/find.js.map +0 -1
  1817. package/dist/core/tools/grep.d.ts +0 -37
  1818. package/dist/core/tools/grep.d.ts.map +0 -1
  1819. package/dist/core/tools/grep.js +0 -304
  1820. package/dist/core/tools/grep.js.map +0 -1
  1821. package/dist/core/tools/index.d.ts +0 -40
  1822. package/dist/core/tools/index.d.ts.map +0 -1
  1823. package/dist/core/tools/index.js +0 -112
  1824. package/dist/core/tools/index.js.map +0 -1
  1825. package/dist/core/tools/ls.d.ts +0 -37
  1826. package/dist/core/tools/ls.d.ts.map +0 -1
  1827. package/dist/core/tools/ls.js +0 -167
  1828. package/dist/core/tools/ls.js.map +0 -1
  1829. package/dist/core/tools/output-accumulator.d.ts +0 -52
  1830. package/dist/core/tools/output-accumulator.d.ts.map +0 -1
  1831. package/dist/core/tools/output-accumulator.js +0 -184
  1832. package/dist/core/tools/output-accumulator.js.map +0 -1
  1833. package/dist/core/tools/path-utils.d.ts +0 -10
  1834. package/dist/core/tools/path-utils.d.ts.map +0 -1
  1835. package/dist/core/tools/path-utils.js +0 -99
  1836. package/dist/core/tools/path-utils.js.map +0 -1
  1837. package/dist/core/tools/read.d.ts +0 -35
  1838. package/dist/core/tools/read.d.ts.map +0 -1
  1839. package/dist/core/tools/read.js +0 -289
  1840. package/dist/core/tools/read.js.map +0 -1
  1841. package/dist/core/tools/render-utils.d.ts +0 -24
  1842. package/dist/core/tools/render-utils.d.ts.map +0 -1
  1843. package/dist/core/tools/render-utils.js +0 -65
  1844. package/dist/core/tools/render-utils.js.map +0 -1
  1845. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  1846. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  1847. package/dist/core/tools/tool-definition-wrapper.js +0 -34
  1848. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  1849. package/dist/core/tools/truncate.d.ts +0 -70
  1850. package/dist/core/tools/truncate.d.ts.map +0 -1
  1851. package/dist/core/tools/truncate.js +0 -215
  1852. package/dist/core/tools/truncate.js.map +0 -1
  1853. package/dist/core/tools/write.d.ts +0 -26
  1854. package/dist/core/tools/write.d.ts.map +0 -1
  1855. package/dist/core/tools/write.js +0 -197
  1856. package/dist/core/tools/write.js.map +0 -1
  1857. package/dist/index.d.ts +0 -32
  1858. package/dist/index.d.ts.map +0 -1
  1859. package/dist/index.js +0 -45
  1860. package/dist/index.js.map +0 -1
  1861. package/dist/main.d.ts +0 -12
  1862. package/dist/main.d.ts.map +0 -1
  1863. package/dist/main.js +0 -673
  1864. package/dist/main.js.map +0 -1
  1865. package/dist/migrations.d.ts +0 -35
  1866. package/dist/migrations.d.ts.map +0 -1
  1867. package/dist/migrations.js +0 -401
  1868. package/dist/migrations.js.map +0 -1
  1869. package/dist/modes/index.d.ts +0 -9
  1870. package/dist/modes/index.d.ts.map +0 -1
  1871. package/dist/modes/index.js +0 -8
  1872. package/dist/modes/index.js.map +0 -1
  1873. package/dist/modes/interactive/assets/clankolas.png +0 -0
  1874. package/dist/modes/interactive/cockpit-scroll.d.ts +0 -54
  1875. package/dist/modes/interactive/cockpit-scroll.d.ts.map +0 -1
  1876. package/dist/modes/interactive/cockpit-scroll.js +0 -133
  1877. package/dist/modes/interactive/cockpit-scroll.js.map +0 -1
  1878. package/dist/modes/interactive/components/armin.d.ts +0 -34
  1879. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  1880. package/dist/modes/interactive/components/armin.js +0 -333
  1881. package/dist/modes/interactive/components/armin.js.map +0 -1
  1882. package/dist/modes/interactive/components/assistant-message.d.ts +0 -20
  1883. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  1884. package/dist/modes/interactive/components/assistant-message.js +0 -121
  1885. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  1886. package/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  1887. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  1888. package/dist/modes/interactive/components/bash-execution.js +0 -175
  1889. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  1890. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  1891. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  1892. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  1893. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  1894. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  1895. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  1896. package/dist/modes/interactive/components/branch-summary-message.js +0 -44
  1897. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  1898. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  1899. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  1900. package/dist/modes/interactive/components/compaction-summary-message.js +0 -45
  1901. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  1902. package/dist/modes/interactive/components/config-selector.d.ts +0 -71
  1903. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  1904. package/dist/modes/interactive/components/config-selector.js +0 -506
  1905. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  1906. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  1907. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  1908. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  1909. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  1910. package/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  1911. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  1912. package/dist/modes/interactive/components/custom-editor.js +0 -70
  1913. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  1914. package/dist/modes/interactive/components/custom-message.d.ts +0 -20
  1915. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  1916. package/dist/modes/interactive/components/custom-message.js +0 -79
  1917. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  1918. package/dist/modes/interactive/components/diff.d.ts +0 -12
  1919. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  1920. package/dist/modes/interactive/components/diff.js +0 -133
  1921. package/dist/modes/interactive/components/diff.js.map +0 -1
  1922. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  1923. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  1924. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  1925. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  1926. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  1927. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  1928. package/dist/modes/interactive/components/earendil-announcement.js +0 -42
  1929. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  1930. package/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  1931. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  1932. package/dist/modes/interactive/components/extension-editor.js +0 -119
  1933. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  1934. package/dist/modes/interactive/components/extension-input.d.ts +0 -23
  1935. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  1936. package/dist/modes/interactive/components/extension-input.js +0 -61
  1937. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  1938. package/dist/modes/interactive/components/extension-selector.d.ts +0 -26
  1939. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  1940. package/dist/modes/interactive/components/extension-selector.js +0 -83
  1941. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  1942. package/dist/modes/interactive/components/footer.d.ts +0 -35
  1943. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  1944. package/dist/modes/interactive/components/footer.js +0 -223
  1945. package/dist/modes/interactive/components/footer.js.map +0 -1
  1946. package/dist/modes/interactive/components/index.d.ts +0 -36
  1947. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  1948. package/dist/modes/interactive/components/index.js +0 -37
  1949. package/dist/modes/interactive/components/index.js.map +0 -1
  1950. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  1951. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  1952. package/dist/modes/interactive/components/keybinding-hints.js +0 -36
  1953. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  1954. package/dist/modes/interactive/components/login-dialog.d.ts +0 -51
  1955. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  1956. package/dist/modes/interactive/components/login-dialog.js +0 -174
  1957. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  1958. package/dist/modes/interactive/components/model-selector.d.ts +0 -69
  1959. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  1960. package/dist/modes/interactive/components/model-selector.js +0 -411
  1961. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  1962. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -31
  1963. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  1964. package/dist/modes/interactive/components/oauth-selector.js +0 -165
  1965. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  1966. package/dist/modes/interactive/components/omk-brand-surface.d.ts +0 -58
  1967. package/dist/modes/interactive/components/omk-brand-surface.d.ts.map +0 -1
  1968. package/dist/modes/interactive/components/omk-brand-surface.js +0 -330
  1969. package/dist/modes/interactive/components/omk-brand-surface.js.map +0 -1
  1970. package/dist/modes/interactive/components/omk-brand.d.ts +0 -10
  1971. package/dist/modes/interactive/components/omk-brand.d.ts.map +0 -1
  1972. package/dist/modes/interactive/components/omk-brand.js +0 -12
  1973. package/dist/modes/interactive/components/omk-brand.js.map +0 -1
  1974. package/dist/modes/interactive/components/omk-control-dashboard.d.ts +0 -36
  1975. package/dist/modes/interactive/components/omk-control-dashboard.d.ts.map +0 -1
  1976. package/dist/modes/interactive/components/omk-control-dashboard.js +0 -348
  1977. package/dist/modes/interactive/components/omk-control-dashboard.js.map +0 -1
  1978. package/dist/modes/interactive/components/omk-control-layout.d.ts +0 -34
  1979. package/dist/modes/interactive/components/omk-control-layout.d.ts.map +0 -1
  1980. package/dist/modes/interactive/components/omk-control-layout.js +0 -85
  1981. package/dist/modes/interactive/components/omk-control-layout.js.map +0 -1
  1982. package/dist/modes/interactive/components/omk-history-panel.d.ts +0 -27
  1983. package/dist/modes/interactive/components/omk-history-panel.d.ts.map +0 -1
  1984. package/dist/modes/interactive/components/omk-history-panel.js +0 -162
  1985. package/dist/modes/interactive/components/omk-history-panel.js.map +0 -1
  1986. package/dist/modes/interactive/components/omk-neon-hud.d.ts +0 -19
  1987. package/dist/modes/interactive/components/omk-neon-hud.d.ts.map +0 -1
  1988. package/dist/modes/interactive/components/omk-neon-hud.js +0 -75
  1989. package/dist/modes/interactive/components/omk-neon-hud.js.map +0 -1
  1990. package/dist/modes/interactive/components/omk-tabbed-panel.d.ts +0 -30
  1991. package/dist/modes/interactive/components/omk-tabbed-panel.d.ts.map +0 -1
  1992. package/dist/modes/interactive/components/omk-tabbed-panel.js +0 -99
  1993. package/dist/modes/interactive/components/omk-tabbed-panel.js.map +0 -1
  1994. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  1995. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  1996. package/dist/modes/interactive/components/scoped-models-selector.js +0 -290
  1997. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  1998. package/dist/modes/interactive/components/scrollable-transcript.d.ts +0 -20
  1999. package/dist/modes/interactive/components/scrollable-transcript.d.ts.map +0 -1
  2000. package/dist/modes/interactive/components/scrollable-transcript.js +0 -25
  2001. package/dist/modes/interactive/components/scrollable-transcript.js.map +0 -1
  2002. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  2003. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  2004. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  2005. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  2006. package/dist/modes/interactive/components/session-selector.d.ts +0 -96
  2007. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  2008. package/dist/modes/interactive/components/session-selector.js +0 -861
  2009. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  2010. package/dist/modes/interactive/components/settings-selector.d.ts +0 -69
  2011. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  2012. package/dist/modes/interactive/components/settings-selector.js +0 -391
  2013. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  2014. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  2015. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  2016. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  2017. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  2018. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  2019. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  2020. package/dist/modes/interactive/components/skill-invocation-message.js +0 -47
  2021. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  2022. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  2023. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  2024. package/dist/modes/interactive/components/theme-selector.js +0 -50
  2025. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  2026. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  2027. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  2028. package/dist/modes/interactive/components/thinking-selector.js +0 -52
  2029. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  2030. package/dist/modes/interactive/components/tool-execution.d.ts +0 -63
  2031. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  2032. package/dist/modes/interactive/components/tool-execution.js +0 -317
  2033. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  2034. package/dist/modes/interactive/components/tree-selector.d.ts +0 -89
  2035. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  2036. package/dist/modes/interactive/components/tree-selector.js +0 -1093
  2037. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  2038. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  2039. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  2040. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  2041. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  2042. package/dist/modes/interactive/components/user-message.d.ts +0 -10
  2043. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  2044. package/dist/modes/interactive/components/user-message.js +0 -29
  2045. package/dist/modes/interactive/components/user-message.js.map +0 -1
  2046. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  2047. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  2048. package/dist/modes/interactive/components/visual-truncate.js +0 -33
  2049. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  2050. package/dist/modes/interactive/interactive-mode.d.ts +0 -422
  2051. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  2052. package/dist/modes/interactive/interactive-mode.js +0 -5388
  2053. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  2054. package/dist/modes/interactive/theme/dark.json +0 -87
  2055. package/dist/modes/interactive/theme/light.json +0 -86
  2056. package/dist/modes/interactive/theme/omk-control.json +0 -92
  2057. package/dist/modes/interactive/theme/omk-rust.json +0 -94
  2058. package/dist/modes/interactive/theme/theme-schema.json +0 -340
  2059. package/dist/modes/interactive/theme/theme.d.ts +0 -102
  2060. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  2061. package/dist/modes/interactive/theme/theme.js +0 -1093
  2062. package/dist/modes/interactive/theme/theme.js.map +0 -1
  2063. package/dist/modes/print-mode.d.ts +0 -28
  2064. package/dist/modes/print-mode.d.ts.map +0 -1
  2065. package/dist/modes/print-mode.js +0 -132
  2066. package/dist/modes/print-mode.js.map +0 -1
  2067. package/dist/modes/rpc/jsonl.d.ts +0 -17
  2068. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  2069. package/dist/modes/rpc/jsonl.js +0 -49
  2070. package/dist/modes/rpc/jsonl.js.map +0 -1
  2071. package/dist/modes/rpc/rpc-client.d.ts +0 -227
  2072. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  2073. package/dist/modes/rpc/rpc-client.js +0 -467
  2074. package/dist/modes/rpc/rpc-client.js.map +0 -1
  2075. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  2076. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  2077. package/dist/modes/rpc/rpc-mode.js +0 -616
  2078. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  2079. package/dist/modes/rpc/rpc-types.d.ts +0 -420
  2080. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  2081. package/dist/modes/rpc/rpc-types.js +0 -8
  2082. package/dist/modes/rpc/rpc-types.js.map +0 -1
  2083. package/dist/omk-env.d.ts +0 -2
  2084. package/dist/omk-env.d.ts.map +0 -1
  2085. package/dist/omk-env.js +0 -3
  2086. package/dist/omk-env.js.map +0 -1
  2087. package/dist/omk.d.ts +0 -4
  2088. package/dist/omk.d.ts.map +0 -1
  2089. package/dist/omk.js +0 -4
  2090. package/dist/omk.js.map +0 -1
  2091. package/dist/package-manager-cli.d.ts +0 -4
  2092. package/dist/package-manager-cli.d.ts.map +0 -1
  2093. package/dist/package-manager-cli.js +0 -528
  2094. package/dist/package-manager-cli.js.map +0 -1
  2095. package/dist/package.json +0 -97
  2096. package/dist/utils/ansi.d.ts +0 -2
  2097. package/dist/utils/ansi.d.ts.map +0 -1
  2098. package/dist/utils/ansi.js +0 -52
  2099. package/dist/utils/ansi.js.map +0 -1
  2100. package/dist/utils/changelog.d.ts +0 -21
  2101. package/dist/utils/changelog.d.ts.map +0 -1
  2102. package/dist/utils/changelog.js +0 -87
  2103. package/dist/utils/changelog.js.map +0 -1
  2104. package/dist/utils/child-process.d.ts +0 -15
  2105. package/dist/utils/child-process.d.ts.map +0 -1
  2106. package/dist/utils/child-process.js +0 -88
  2107. package/dist/utils/child-process.js.map +0 -1
  2108. package/dist/utils/clipboard-image.d.ts +0 -11
  2109. package/dist/utils/clipboard-image.d.ts.map +0 -1
  2110. package/dist/utils/clipboard-image.js +0 -249
  2111. package/dist/utils/clipboard-image.js.map +0 -1
  2112. package/dist/utils/clipboard-native.d.ts +0 -10
  2113. package/dist/utils/clipboard-native.d.ts.map +0 -1
  2114. package/dist/utils/clipboard-native.js +0 -20
  2115. package/dist/utils/clipboard-native.js.map +0 -1
  2116. package/dist/utils/clipboard.d.ts +0 -2
  2117. package/dist/utils/clipboard.d.ts.map +0 -1
  2118. package/dist/utils/clipboard.js +0 -117
  2119. package/dist/utils/clipboard.js.map +0 -1
  2120. package/dist/utils/deprecation.d.ts +0 -4
  2121. package/dist/utils/deprecation.d.ts.map +0 -1
  2122. package/dist/utils/deprecation.js +0 -13
  2123. package/dist/utils/deprecation.js.map +0 -1
  2124. package/dist/utils/exif-orientation.d.ts +0 -5
  2125. package/dist/utils/exif-orientation.d.ts.map +0 -1
  2126. package/dist/utils/exif-orientation.js +0 -158
  2127. package/dist/utils/exif-orientation.js.map +0 -1
  2128. package/dist/utils/frontmatter.d.ts +0 -8
  2129. package/dist/utils/frontmatter.d.ts.map +0 -1
  2130. package/dist/utils/frontmatter.js +0 -26
  2131. package/dist/utils/frontmatter.js.map +0 -1
  2132. package/dist/utils/fs-watch.d.ts +0 -5
  2133. package/dist/utils/fs-watch.d.ts.map +0 -1
  2134. package/dist/utils/fs-watch.js +0 -25
  2135. package/dist/utils/fs-watch.js.map +0 -1
  2136. package/dist/utils/git.d.ts +0 -26
  2137. package/dist/utils/git.d.ts.map +0 -1
  2138. package/dist/utils/git.js +0 -195
  2139. package/dist/utils/git.js.map +0 -1
  2140. package/dist/utils/html.d.ts +0 -7
  2141. package/dist/utils/html.d.ts.map +0 -1
  2142. package/dist/utils/html.js +0 -40
  2143. package/dist/utils/html.js.map +0 -1
  2144. package/dist/utils/image-convert.d.ts +0 -9
  2145. package/dist/utils/image-convert.d.ts.map +0 -1
  2146. package/dist/utils/image-convert.js +0 -39
  2147. package/dist/utils/image-convert.js.map +0 -1
  2148. package/dist/utils/image-resize-core.d.ts +0 -30
  2149. package/dist/utils/image-resize-core.d.ts.map +0 -1
  2150. package/dist/utils/image-resize-core.js +0 -124
  2151. package/dist/utils/image-resize-core.js.map +0 -1
  2152. package/dist/utils/image-resize-worker.d.ts +0 -2
  2153. package/dist/utils/image-resize-worker.d.ts.map +0 -1
  2154. package/dist/utils/image-resize-worker.js +0 -31
  2155. package/dist/utils/image-resize-worker.js.map +0 -1
  2156. package/dist/utils/image-resize.d.ts +0 -16
  2157. package/dist/utils/image-resize.d.ts.map +0 -1
  2158. package/dist/utils/image-resize.js +0 -97
  2159. package/dist/utils/image-resize.js.map +0 -1
  2160. package/dist/utils/json.d.ts +0 -3
  2161. package/dist/utils/json.d.ts.map +0 -1
  2162. package/dist/utils/json.js +0 -7
  2163. package/dist/utils/json.js.map +0 -1
  2164. package/dist/utils/mime.d.ts +0 -3
  2165. package/dist/utils/mime.d.ts.map +0 -1
  2166. package/dist/utils/mime.js +0 -69
  2167. package/dist/utils/mime.js.map +0 -1
  2168. package/dist/utils/open-browser.d.ts +0 -9
  2169. package/dist/utils/open-browser.d.ts.map +0 -1
  2170. package/dist/utils/open-browser.js +0 -22
  2171. package/dist/utils/open-browser.js.map +0 -1
  2172. package/dist/utils/paths.d.ts +0 -31
  2173. package/dist/utils/paths.d.ts.map +0 -1
  2174. package/dist/utils/paths.js +0 -92
  2175. package/dist/utils/paths.js.map +0 -1
  2176. package/dist/utils/photon.d.ts +0 -21
  2177. package/dist/utils/photon.d.ts.map +0 -1
  2178. package/dist/utils/photon.js +0 -121
  2179. package/dist/utils/photon.js.map +0 -1
  2180. package/dist/utils/pi-user-agent.d.ts +0 -2
  2181. package/dist/utils/pi-user-agent.d.ts.map +0 -1
  2182. package/dist/utils/pi-user-agent.js +0 -6
  2183. package/dist/utils/pi-user-agent.js.map +0 -1
  2184. package/dist/utils/shell.d.ts +0 -30
  2185. package/dist/utils/shell.d.ts.map +0 -1
  2186. package/dist/utils/shell.js +0 -195
  2187. package/dist/utils/shell.js.map +0 -1
  2188. package/dist/utils/sleep.d.ts +0 -5
  2189. package/dist/utils/sleep.d.ts.map +0 -1
  2190. package/dist/utils/sleep.js +0 -17
  2191. package/dist/utils/sleep.js.map +0 -1
  2192. package/dist/utils/syntax-highlight.d.ts +0 -12
  2193. package/dist/utils/syntax-highlight.d.ts.map +0 -1
  2194. package/dist/utils/syntax-highlight.js +0 -118
  2195. package/dist/utils/syntax-highlight.js.map +0 -1
  2196. package/dist/utils/tools-manager.d.ts +0 -3
  2197. package/dist/utils/tools-manager.d.ts.map +0 -1
  2198. package/dist/utils/tools-manager.js +0 -325
  2199. package/dist/utils/tools-manager.js.map +0 -1
  2200. package/dist/utils/version-check.d.ts +0 -15
  2201. package/dist/utils/version-check.d.ts.map +0 -1
  2202. package/dist/utils/version-check.js +0 -85
  2203. package/dist/utils/version-check.js.map +0 -1
  2204. package/dist/utils/windows-self-update.d.ts +0 -3
  2205. package/dist/utils/windows-self-update.d.ts.map +0 -1
  2206. package/dist/utils/windows-self-update.js +0 -77
  2207. package/dist/utils/windows-self-update.js.map +0 -1
  2208. package/docs/compaction.md +0 -394
  2209. package/docs/containerization.md +0 -111
  2210. package/docs/custom-provider.md +0 -736
  2211. package/docs/development.md +0 -71
  2212. package/docs/docs.json +0 -152
  2213. package/docs/extensions.md +0 -2627
  2214. package/docs/images/doom-extension.png +0 -0
  2215. package/docs/images/exy.png +0 -0
  2216. package/docs/images/interactive-mode.png +0 -0
  2217. package/docs/images/tree-view.png +0 -0
  2218. package/docs/index.md +0 -81
  2219. package/docs/json.md +0 -82
  2220. package/docs/keybindings.md +0 -197
  2221. package/docs/models.md +0 -493
  2222. package/docs/packages.md +0 -226
  2223. package/docs/prompt-templates.md +0 -88
  2224. package/docs/providers.md +0 -256
  2225. package/docs/quickstart.md +0 -165
  2226. package/docs/rpc.md +0 -1408
  2227. package/docs/sdk.md +0 -1137
  2228. package/docs/session-format.md +0 -412
  2229. package/docs/sessions.md +0 -145
  2230. package/docs/settings.md +0 -281
  2231. package/docs/shell-aliases.md +0 -13
  2232. package/docs/skills.md +0 -231
  2233. package/docs/terminal-setup.md +0 -114
  2234. package/docs/termux.md +0 -127
  2235. package/docs/themes.md +0 -297
  2236. package/docs/tmux.md +0 -61
  2237. package/docs/tui.md +0 -927
  2238. package/docs/usage.md +0 -288
  2239. package/docs/windows.md +0 -17
  2240. package/examples/README.md +0 -25
  2241. package/examples/extensions/README.md +0 -210
  2242. package/examples/extensions/auto-commit-on-exit.ts +0 -49
  2243. package/examples/extensions/bash-spawn-hook.ts +0 -30
  2244. package/examples/extensions/bookmark.ts +0 -50
  2245. package/examples/extensions/border-status-editor.ts +0 -150
  2246. package/examples/extensions/built-in-tool-renderer.ts +0 -249
  2247. package/examples/extensions/claude-rules.ts +0 -86
  2248. package/examples/extensions/commands.ts +0 -72
  2249. package/examples/extensions/confirm-destructive.ts +0 -59
  2250. package/examples/extensions/custom-compaction.ts +0 -127
  2251. package/examples/extensions/custom-footer.ts +0 -64
  2252. package/examples/extensions/custom-header.ts +0 -73
  2253. package/examples/extensions/custom-provider-anthropic/index.ts +0 -604
  2254. package/examples/extensions/custom-provider-anthropic/package-lock.json +0 -24
  2255. package/examples/extensions/custom-provider-anthropic/package.json +0 -19
  2256. package/examples/extensions/custom-provider-gitlab-duo/index.ts +0 -400
  2257. package/examples/extensions/custom-provider-gitlab-duo/package.json +0 -16
  2258. package/examples/extensions/custom-provider-gitlab-duo/test.ts +0 -82
  2259. package/examples/extensions/dirty-repo-guard.ts +0 -56
  2260. package/examples/extensions/doom-overlay/README.md +0 -46
  2261. package/examples/extensions/doom-overlay/doom/build/doom.js +0 -21
  2262. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  2263. package/examples/extensions/doom-overlay/doom/build.sh +0 -152
  2264. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -72
  2265. package/examples/extensions/doom-overlay/doom-component.ts +0 -132
  2266. package/examples/extensions/doom-overlay/doom-engine.ts +0 -173
  2267. package/examples/extensions/doom-overlay/doom-keys.ts +0 -104
  2268. package/examples/extensions/doom-overlay/index.ts +0 -74
  2269. package/examples/extensions/doom-overlay/wad-finder.ts +0 -51
  2270. package/examples/extensions/dynamic-resources/SKILL.md +0 -8
  2271. package/examples/extensions/dynamic-resources/dynamic.json +0 -79
  2272. package/examples/extensions/dynamic-resources/dynamic.md +0 -5
  2273. package/examples/extensions/dynamic-resources/index.ts +0 -15
  2274. package/examples/extensions/dynamic-tools.ts +0 -74
  2275. package/examples/extensions/event-bus.ts +0 -43
  2276. package/examples/extensions/file-trigger.ts +0 -41
  2277. package/examples/extensions/git-checkpoint.ts +0 -53
  2278. package/examples/extensions/git-merge-and-resolve.ts +0 -115
  2279. package/examples/extensions/github-issue-autocomplete.ts +0 -185
  2280. package/examples/extensions/gondolin/index.ts +0 -531
  2281. package/examples/extensions/gondolin/package-lock.json +0 -185
  2282. package/examples/extensions/gondolin/package.json +0 -19
  2283. package/examples/extensions/handoff.ts +0 -191
  2284. package/examples/extensions/hello.ts +0 -26
  2285. package/examples/extensions/hidden-thinking-label.ts +0 -53
  2286. package/examples/extensions/inline-bash.ts +0 -94
  2287. package/examples/extensions/input-transform-streaming.ts +0 -39
  2288. package/examples/extensions/input-transform.ts +0 -43
  2289. package/examples/extensions/interactive-shell.ts +0 -196
  2290. package/examples/extensions/mac-system-theme.ts +0 -47
  2291. package/examples/extensions/message-renderer.ts +0 -59
  2292. package/examples/extensions/minimal-mode.ts +0 -426
  2293. package/examples/extensions/modal-editor.ts +0 -85
  2294. package/examples/extensions/model-status.ts +0 -31
  2295. package/examples/extensions/notify.ts +0 -55
  2296. package/examples/extensions/overlay-qa-tests.ts +0 -1450
  2297. package/examples/extensions/overlay-test.ts +0 -153
  2298. package/examples/extensions/permission-gate.ts +0 -34
  2299. package/examples/extensions/pirate.ts +0 -47
  2300. package/examples/extensions/plan-mode/README.md +0 -65
  2301. package/examples/extensions/plan-mode/index.ts +0 -340
  2302. package/examples/extensions/plan-mode/utils.ts +0 -168
  2303. package/examples/extensions/preset.ts +0 -430
  2304. package/examples/extensions/prompt-customizer.ts +0 -97
  2305. package/examples/extensions/protected-paths.ts +0 -30
  2306. package/examples/extensions/provider-payload.ts +0 -18
  2307. package/examples/extensions/qna.ts +0 -122
  2308. package/examples/extensions/question.ts +0 -264
  2309. package/examples/extensions/questionnaire.ts +0 -427
  2310. package/examples/extensions/rainbow-editor.ts +0 -88
  2311. package/examples/extensions/reload-runtime.ts +0 -37
  2312. package/examples/extensions/rpc-demo.ts +0 -118
  2313. package/examples/extensions/sandbox/index.ts +0 -321
  2314. package/examples/extensions/sandbox/package-lock.json +0 -92
  2315. package/examples/extensions/sandbox/package.json +0 -19
  2316. package/examples/extensions/send-user-message.ts +0 -97
  2317. package/examples/extensions/session-name.ts +0 -27
  2318. package/examples/extensions/shutdown-command.ts +0 -63
  2319. package/examples/extensions/snake.ts +0 -343
  2320. package/examples/extensions/space-invaders.ts +0 -560
  2321. package/examples/extensions/ssh.ts +0 -220
  2322. package/examples/extensions/status-line.ts +0 -32
  2323. package/examples/extensions/structured-output.ts +0 -65
  2324. package/examples/extensions/subagent/README.md +0 -175
  2325. package/examples/extensions/subagent/agents/planner.md +0 -37
  2326. package/examples/extensions/subagent/agents/reviewer.md +0 -35
  2327. package/examples/extensions/subagent/agents/scout.md +0 -50
  2328. package/examples/extensions/subagent/agents/worker.md +0 -24
  2329. package/examples/extensions/subagent/agents.ts +0 -126
  2330. package/examples/extensions/subagent/index.ts +0 -1009
  2331. package/examples/extensions/subagent/prompts/implement-and-review.md +0 -10
  2332. package/examples/extensions/subagent/prompts/implement.md +0 -10
  2333. package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -9
  2334. package/examples/extensions/summarize.ts +0 -206
  2335. package/examples/extensions/system-prompt-header.ts +0 -17
  2336. package/examples/extensions/tic-tac-toe.ts +0 -1008
  2337. package/examples/extensions/timed-confirm.ts +0 -70
  2338. package/examples/extensions/titlebar-spinner.ts +0 -58
  2339. package/examples/extensions/todo.ts +0 -297
  2340. package/examples/extensions/tool-override.ts +0 -144
  2341. package/examples/extensions/tools.ts +0 -146
  2342. package/examples/extensions/trigger-compact.ts +0 -50
  2343. package/examples/extensions/truncated-tool.ts +0 -195
  2344. package/examples/extensions/widget-placement.ts +0 -9
  2345. package/examples/extensions/with-deps/index.ts +0 -32
  2346. package/examples/extensions/with-deps/package-lock.json +0 -31
  2347. package/examples/extensions/with-deps/package.json +0 -22
  2348. package/examples/extensions/working-indicator.ts +0 -123
  2349. package/examples/extensions/working-message-test.ts +0 -25
  2350. package/examples/rpc-extension-ui.ts +0 -632
  2351. package/examples/sdk/01-minimal.ts +0 -26
  2352. package/examples/sdk/02-custom-model.ts +0 -53
  2353. package/examples/sdk/03-custom-prompt.ts +0 -75
  2354. package/examples/sdk/04-skills.ts +0 -55
  2355. package/examples/sdk/05-tools.ts +0 -48
  2356. package/examples/sdk/06-extensions.ts +0 -99
  2357. package/examples/sdk/07-context-files.ts +0 -47
  2358. package/examples/sdk/08-prompt-templates.ts +0 -51
  2359. package/examples/sdk/09-api-keys-and-oauth.ts +0 -52
  2360. package/examples/sdk/10-settings.ts +0 -53
  2361. package/examples/sdk/11-sessions.ts +0 -52
  2362. package/examples/sdk/12-full-control.ts +0 -77
  2363. package/examples/sdk/13-session-runtime.ts +0 -67
  2364. package/examples/sdk/README.md +0 -144
  2365. package/npm-shrinkwrap.json +0 -512
  2366. /package/{dist/modes/interactive/assets → readmeasset}/omk-control.webp +0 -0
@@ -0,0 +1,1875 @@
1
+ import { createHash } from "crypto";
2
+ import { statSync } from "fs";
3
+ import { sha256FileSync } from "../util/hash.js";
4
+ import { mkdir, readFile, rename, rm, writeFile } from "fs/promises";
5
+ import { dirname, resolve } from "path";
6
+ import { loadMemorySettings, summarizeMemorySettings, usesLocalGraphBackend, } from "./memory-config.js";
7
+ import { appendDelta, compactIfNeeded, computeDelta, deltaStatsMatch, loadStateViaDelta, readManifest, resolveCompactionThresholds, resolveDurabilityMode, setupDeltaMode, statDeltaFiles, withDeltaLock, } from "./graph-delta-log.js";
8
+ export const ONTOLOGY = {
9
+ version: "omk-ontology-mindmap-v1",
10
+ description: "Project-local ontology for Kimi/OMK memory. Memories are decomposed into mind-map nodes for goals, topics, decisions, tasks, risks, commands, files, evidence, provider routes, provider fallbacks, questions, answers, constraints, and concepts.",
11
+ classes: [
12
+ "Project",
13
+ "Session",
14
+ "Memory",
15
+ "MemoryVersion",
16
+ "Run",
17
+ "Goal",
18
+ "Topic",
19
+ "Decision",
20
+ "Task",
21
+ "Risk",
22
+ "Command",
23
+ "File",
24
+ "Evidence",
25
+ "EvidenceRequirement",
26
+ "EvidenceObservation",
27
+ "Artifact",
28
+ "HeadroomDecision",
29
+ "Provider",
30
+ "ProviderRoute",
31
+ "ProviderFallback",
32
+ "ProviderFreedomProfile",
33
+ "ProviderIncident",
34
+ "RetentionPolicy",
35
+ "JurisdictionPolicy",
36
+ "SovereigntyDecision",
37
+ "DegradedPlan",
38
+ "LocalFallback",
39
+ "EvidenceEnvelope",
40
+ "AuditLink",
41
+ "Constraint",
42
+ "Question",
43
+ "Answer",
44
+ "Concept",
45
+ ],
46
+ relationTypes: [
47
+ "HAS_SESSION",
48
+ "HAS_MEMORY",
49
+ "HAS_RUN",
50
+ "WROTE",
51
+ "UPDATES",
52
+ "HAS_GOAL",
53
+ "HAS_TOPIC",
54
+ "HAS_DECISION",
55
+ "HAS_TASK",
56
+ "HAS_TURN",
57
+ "HAS_RISK",
58
+ "HAS_COMMAND",
59
+ "HAS_FILE",
60
+ "HAS_EVIDENCE",
61
+ "HAS_HEADROOM_DECISION",
62
+ "USES_PROVIDER",
63
+ "HAS_PROVIDER_ROUTE",
64
+ "ROUTES_TO",
65
+ "FALLS_BACK_TO",
66
+ "HAS_PROVIDER_FALLBACK",
67
+ "HAS_SOVEREIGNTY_DECISION",
68
+ "BLOCKED_BY_PROVIDER_POLICY",
69
+ "DEGRADED_TO",
70
+ "HAS_LOCAL_FALLBACK",
71
+ "HAS_RETENTION_POLICY",
72
+ "HAS_JURISDICTION_POLICY",
73
+ "AFFECTED_BY_INCIDENT",
74
+ "EVIDENCE_ENVELOPE_STORED_AT",
75
+ "HAS_AUDIT_LINK",
76
+ "LINKS_TO",
77
+ "HAS_CONSTRAINT",
78
+ "HAS_QUESTION",
79
+ "HAS_ANSWER",
80
+ "HAS_CONCEPT",
81
+ "CHILD_OF",
82
+ "PART_OF",
83
+ "DEPENDS_ON",
84
+ "BLOCKED_BY",
85
+ "EVIDENCED_BY",
86
+ "DECLARES_EVIDENCE_REQUIREMENT",
87
+ "OBSERVED_EVIDENCE",
88
+ "SATISFIED_BY",
89
+ "STORED_AT",
90
+ "TOUCHES_FILE",
91
+ ],
92
+ };
93
+ const GENERATED_TYPES = new Set([
94
+ "Run",
95
+ "Goal",
96
+ "Topic",
97
+ "Decision",
98
+ "Task",
99
+ "Risk",
100
+ "Command",
101
+ "File",
102
+ "Evidence",
103
+ "EvidenceRequirement",
104
+ "EvidenceObservation",
105
+ "Artifact",
106
+ "HeadroomDecision",
107
+ "Provider",
108
+ "ProviderRoute",
109
+ "ProviderFallback",
110
+ "ProviderFreedomProfile",
111
+ "ProviderIncident",
112
+ "RetentionPolicy",
113
+ "JurisdictionPolicy",
114
+ "SovereigntyDecision",
115
+ "DegradedPlan",
116
+ "LocalFallback",
117
+ "EvidenceEnvelope",
118
+ "AuditLink",
119
+ "Constraint",
120
+ "Question",
121
+ "Answer",
122
+ "Concept",
123
+ ]);
124
+ const CANONICAL_NODE_TYPES = new Set([
125
+ "File",
126
+ "Symbol",
127
+ "Decision",
128
+ "Risk",
129
+ "Evidence",
130
+ "EvidenceRequirement",
131
+ "EvidenceObservation",
132
+ "Artifact",
133
+ "HeadroomDecision",
134
+ "Goal",
135
+ "Run",
136
+ "Task",
137
+ "MCPServer",
138
+ "Skill",
139
+ "Provider",
140
+ "ProviderRoute",
141
+ "ProviderFallback",
142
+ "ProviderFreedomProfile",
143
+ "ProviderIncident",
144
+ "RetentionPolicy",
145
+ "JurisdictionPolicy",
146
+ "SovereigntyDecision",
147
+ "DegradedPlan",
148
+ "LocalFallback",
149
+ "EvidenceEnvelope",
150
+ "AuditLink",
151
+ ]);
152
+ const graphWriteQueues = new Map();
153
+ /**
154
+ * Process-local cache of the most-recently-persisted parsed graph state, keyed
155
+ * by graph-state.json path. A cache hit is only honored when the on-disk file
156
+ * is unchanged on ALL of mtimeMs + size + ctimeMs + inode since the cached
157
+ * snapshot was written. ctimeMs catches a same-millisecond, same-size overwrite
158
+ * that mtimeMs+size alone would miss, and inode catches an atomic-rename replace
159
+ * (new file) — so any concurrent external writer forces a fresh disk re-read
160
+ * (multi-writer safe). The entry is populated exclusively from a state we just
161
+ * wrote via saveState, so it never masks loadState's ENOENT / empty / invalid /
162
+ * strict-mode handling.
163
+ */
164
+ const graphStateCache = new Map();
165
+ function statSyncSafe(path) {
166
+ try {
167
+ const stat = statSync(path);
168
+ return { mtimeMs: stat.mtimeMs, size: stat.size, ctimeMs: stat.ctimeMs, ino: stat.ino };
169
+ }
170
+ catch {
171
+ return undefined;
172
+ }
173
+ }
174
+ function enqueueGraphWrite(graphPath, operation) {
175
+ const previous = graphWriteQueues.get(graphPath) ?? Promise.resolve();
176
+ const running = previous.catch(() => undefined).then(operation);
177
+ const release = running.then(() => undefined, () => undefined);
178
+ graphWriteQueues.set(graphPath, release);
179
+ return running.finally(() => {
180
+ if (graphWriteQueues.get(graphPath) === release) {
181
+ graphWriteQueues.delete(graphPath);
182
+ }
183
+ });
184
+ }
185
+ function errorCode(err) {
186
+ if (typeof err !== "object" || err === null || !("code" in err))
187
+ return undefined;
188
+ const code = err.code;
189
+ return typeof code === "string" ? code : undefined;
190
+ }
191
+ function errorMessage(err) {
192
+ return err instanceof Error ? err.message : String(err);
193
+ }
194
+ function timestampForPath(date = new Date()) {
195
+ return date.toISOString().replace(/[:.]/g, "-");
196
+ }
197
+ async function writeFileAtomic(path, payload) {
198
+ await mkdir(dirname(path), { recursive: true });
199
+ const tempPath = `${path}.${process.pid}.${Date.now()}.${hash(payload).slice(0, 8)}.tmp`;
200
+ try {
201
+ await writeFile(tempPath, payload, "utf-8");
202
+ await rename(tempPath, path);
203
+ }
204
+ catch (err) {
205
+ await rm(tempPath, { force: true }).catch(() => { });
206
+ throw err;
207
+ }
208
+ }
209
+ export class LocalGraphMemoryStore {
210
+ settings;
211
+ source;
212
+ env;
213
+ durability;
214
+ deltaEpoch = 0;
215
+ deltaLastSeq = 0;
216
+ deltaOpCount = 0;
217
+ deltaManifest = null;
218
+ constructor(settings, source = "omk-local-graph-memory", env) {
219
+ this.settings = settings;
220
+ this.source = source;
221
+ this.env = env;
222
+ this.durability = resolveDurabilityMode(env);
223
+ }
224
+ static async create(options = {}) {
225
+ const env = options.sessionId
226
+ ? { ...(options.env ?? process.env), OMK_SESSION_ID: options.sessionId }
227
+ : options.env ?? process.env;
228
+ const settings = await loadMemorySettings(options.projectRoot, env);
229
+ if (!usesLocalGraphBackend(settings.backend))
230
+ return null;
231
+ return new LocalGraphMemoryStore(settings, options.source ?? "omk-local-graph-memory", env);
232
+ }
233
+ get status() {
234
+ return summarizeMemorySettings(this.settings);
235
+ }
236
+ get strict() {
237
+ return this.settings.strict;
238
+ }
239
+ get mirrorFiles() {
240
+ return this.settings.mirrorFiles;
241
+ }
242
+ get migrateFiles() {
243
+ return this.settings.migrateFiles;
244
+ }
245
+ async read(path) {
246
+ const state = await this.loadState();
247
+ return this.readFromState(state, path);
248
+ }
249
+ async write(path, content) {
250
+ await this.mutateState((state, now) => {
251
+ this.applyMemoryWrite(state, path, content, now);
252
+ });
253
+ }
254
+ applyMemoryWrite(state, path, content, now) {
255
+ state.updatedAt = now;
256
+ state.project = { ...this.settings.project };
257
+ state.ontology = ONTOLOGY;
258
+ const projectId = this.nodeId("Project", this.settings.project.key);
259
+ const sessionId = this.nodeId("Session", this.settings.session.key);
260
+ const memoryId = this.memoryNodeId(path);
261
+ const versionId = this.nodeId("MemoryVersion", `${path}\n${now}\n${hash(content)}`);
262
+ this.upsertNode(state, {
263
+ id: projectId,
264
+ type: "Project",
265
+ labels: ["OmkProject", "Project"],
266
+ label: this.settings.project.name,
267
+ summary: this.settings.project.root,
268
+ tags: ["project"],
269
+ properties: {
270
+ key: this.settings.project.key,
271
+ root: this.settings.project.root,
272
+ },
273
+ createdAt: now,
274
+ updatedAt: now,
275
+ });
276
+ this.upsertNode(state, {
277
+ id: sessionId,
278
+ type: "Session",
279
+ labels: ["OmkSession", "Session"],
280
+ label: this.settings.session.id,
281
+ summary: `Session for ${this.settings.project.name}`,
282
+ tags: ["session"],
283
+ properties: {
284
+ key: this.settings.session.key,
285
+ sessionId: this.settings.session.id,
286
+ projectKey: this.settings.project.key,
287
+ },
288
+ createdAt: now,
289
+ updatedAt: now,
290
+ });
291
+ this.upsertNode(state, {
292
+ id: memoryId,
293
+ type: "Memory",
294
+ labels: ["OmkMemory", "Memory"],
295
+ label: path,
296
+ path,
297
+ content: truncate(content, 500),
298
+ summary: summarize(content),
299
+ tags: ["memory", ...pathTags(path)],
300
+ properties: {
301
+ key: this.memoryKey(path),
302
+ path,
303
+ projectKey: this.settings.project.key,
304
+ sessionId: this.settings.session.id,
305
+ source: this.source,
306
+ },
307
+ createdAt: now,
308
+ updatedAt: now,
309
+ });
310
+ this.upsertNode(state, {
311
+ id: versionId,
312
+ type: "MemoryVersion",
313
+ labels: ["OmkMemoryVersion", "MemoryVersion"],
314
+ label: `${path}@${now}`,
315
+ path,
316
+ content,
317
+ summary: summarize(content),
318
+ tags: ["memory-version", ...pathTags(path)],
319
+ properties: {
320
+ key: `${this.settings.session.key}:${hash(`${path}\n${now}\n${content}`)}`,
321
+ path,
322
+ projectKey: this.settings.project.key,
323
+ sessionId: this.settings.session.id,
324
+ source: this.source,
325
+ },
326
+ createdAt: now,
327
+ updatedAt: now,
328
+ });
329
+ this.upsertEdge(state, projectId, sessionId, "HAS_SESSION", now);
330
+ this.upsertEdge(state, projectId, memoryId, "HAS_MEMORY", now);
331
+ this.upsertEdge(state, sessionId, versionId, "WROTE", now);
332
+ this.upsertEdge(state, versionId, memoryId, "UPDATES", now);
333
+ this.replaceGeneratedMindmap(state, memoryId, content, path, now);
334
+ }
335
+ async writeMirrorFiles(state) {
336
+ const mirrorDir = dirname(this.settings.localGraph.path);
337
+ await mkdir(mirrorDir, { recursive: true });
338
+ const projectNode = state.nodes.find((n) => n.type === "Project");
339
+ const projectOverview = [
340
+ `# ${projectNode?.label ?? state.project.name ?? "Project"}`,
341
+ "",
342
+ `**Key:** ${state.project.key}`,
343
+ `**Root:** ${state.project.root}`,
344
+ `**Updated:** ${state.updatedAt}`,
345
+ "",
346
+ `## Ontology`,
347
+ `- Version: ${state.ontology.version}`,
348
+ `- Classes: ${state.ontology.classes.join(", ")}`,
349
+ `- Relations: ${state.ontology.relationTypes.join(", ")}`,
350
+ "",
351
+ ].join("\n");
352
+ await writeFile(`${mirrorDir}/project.md`, projectOverview, "utf-8");
353
+ const byType = (type) => state.nodes.filter((n) => n.type === type);
354
+ const renderNodes = (nodes) => nodes
355
+ .map((n) => `### ${n.label}\n${n.summary ?? ""}\n- Tags: ${n.tags.join(", ")}\n`)
356
+ .join("\n");
357
+ await writeFile(`${mirrorDir}/goals.md`, `# Goals\n\n${renderNodes(byType("Goal"))}`, "utf-8");
358
+ await writeFile(`${mirrorDir}/decisions.md`, `# Decisions\n\n${renderNodes(byType("Decision"))}`, "utf-8");
359
+ await writeFile(`${mirrorDir}/commands.md`, `# Commands\n\n${renderNodes(byType("Command"))}`, "utf-8");
360
+ await writeFile(`${mirrorDir}/risks.md`, `# Risks\n\n${renderNodes(byType("Risk"))}`, "utf-8");
361
+ }
362
+ async materializeTurnAudit(input) {
363
+ await this.mutateState((state, now) => {
364
+ state.updatedAt = now;
365
+ state.project = { ...this.settings.project };
366
+ state.ontology = ONTOLOGY;
367
+ const runId = this.nodeId("Run", input.runId);
368
+ const turnId = this.nodeId("Task", `${input.runId}:${input.nodeId}`);
369
+ const providerName = input.provider ?? input.selectedRuntime?.split("-")[0] ?? "unknown";
370
+ const routeId = this.nodeId("ProviderRoute", `${input.runId}:${input.nodeId}:${input.selectedRuntime ?? providerName}`);
371
+ const evidenceId = this.nodeId("Evidence", `${input.runId}:${input.nodeId}:${input.evidenceArtifactPath ?? input.evidenceKind ?? "result"}`);
372
+ const providerId = this.nodeId("Provider", providerName);
373
+ const artifactId = input.evidenceArtifactPath
374
+ ? this.nodeId("Artifact", `${input.runId}:${input.evidenceArtifactPath}`)
375
+ : undefined;
376
+ const requirementEntries = (input.evidenceRequirements ?? [])
377
+ .filter((requirement) => requirement.required !== false)
378
+ .map((requirement) => ({
379
+ requirement,
380
+ id: this.nodeId("EvidenceRequirement", `${input.runId}:${input.nodeId}:${requirement.gate}:${requirement.ref ?? ""}`),
381
+ }));
382
+ const observationEntries = (input.evidenceObservations ?? [])
383
+ .map((observation, index) => ({
384
+ observation,
385
+ id: this.nodeId("Evidence", `${input.runId}:${input.nodeId}:observation:${index}:${observation.kind}:${observation.ref ?? observation.artifactPath ?? ""}`),
386
+ }));
387
+ const projectId = this.nodeId("Project", this.settings.project.key);
388
+ this.upsertNode(state, {
389
+ id: projectId,
390
+ type: "Project",
391
+ labels: ["OmkProject", "Project"],
392
+ label: this.settings.project.name,
393
+ summary: this.settings.project.root,
394
+ tags: ["project"],
395
+ properties: { key: this.settings.project.key, root: this.settings.project.root },
396
+ createdAt: now,
397
+ updatedAt: now,
398
+ });
399
+ this.upsertNode(state, {
400
+ id: runId,
401
+ type: "Run",
402
+ labels: ["OmkRun", "Run"],
403
+ label: input.runId,
404
+ summary: `Run ${input.runId}`,
405
+ tags: ["run", "audit"],
406
+ properties: { key: input.runId, runId: input.runId, projectKey: this.settings.project.key },
407
+ createdAt: now,
408
+ updatedAt: now,
409
+ });
410
+ this.upsertNode(state, {
411
+ id: turnId,
412
+ type: "Task",
413
+ labels: ["OmkTurn", "Task"],
414
+ label: input.nodeId,
415
+ summary: `Turn ${input.nodeId}`,
416
+ tags: ["turn", "audit"],
417
+ properties: { key: `${input.runId}:${input.nodeId}`, runId: input.runId, nodeId: input.nodeId },
418
+ createdAt: now,
419
+ updatedAt: now,
420
+ });
421
+ this.upsertNode(state, {
422
+ id: routeId,
423
+ type: "ProviderRoute",
424
+ labels: ["OmkProviderRoute", "ProviderRoute"],
425
+ label: input.selectedRuntime ?? input.provider ?? "unknown-runtime",
426
+ summary: `Selected runtime: ${input.selectedRuntime ?? input.provider ?? "unknown"}`,
427
+ tags: ["provider-route", "audit"],
428
+ properties: {
429
+ key: `${input.runId}:${input.nodeId}:route`,
430
+ runId: input.runId,
431
+ nodeId: input.nodeId,
432
+ provider: providerName,
433
+ selectedRuntime: input.selectedRuntime ?? "unknown",
434
+ fallbackChain: (input.fallbackChain ?? []).join(","),
435
+ },
436
+ createdAt: now,
437
+ updatedAt: now,
438
+ });
439
+ this.upsertNode(state, {
440
+ id: providerId,
441
+ type: "Provider",
442
+ labels: ["OmkProvider", "Provider"],
443
+ label: providerName,
444
+ summary: `Provider ${providerName}`,
445
+ tags: ["provider", "audit"],
446
+ properties: { key: providerName, provider: providerName },
447
+ createdAt: now,
448
+ updatedAt: now,
449
+ });
450
+ this.upsertNode(state, {
451
+ id: evidenceId,
452
+ type: "Evidence",
453
+ labels: ["OmkEvidence", "Evidence", "EvidenceObservation"],
454
+ label: input.evidenceKind ?? "turn-result",
455
+ summary: input.evidenceArtifactPath ?? "turn result artifact",
456
+ tags: ["evidence", "audit", "observation"],
457
+ properties: {
458
+ key: `${input.runId}:${input.nodeId}:evidence`,
459
+ runId: input.runId,
460
+ nodeId: input.nodeId,
461
+ kind: input.evidenceKind ?? "turn-result",
462
+ artifactRef: input.evidenceArtifactPath ?? "",
463
+ sha256: input.evidenceHash ?? "",
464
+ },
465
+ createdAt: now,
466
+ updatedAt: now,
467
+ });
468
+ if (artifactId && input.evidenceArtifactPath) {
469
+ const artifactPath = input.evidenceArtifactPath;
470
+ this.upsertNode(state, {
471
+ id: artifactId,
472
+ type: "Artifact",
473
+ labels: ["OmkArtifact", "Artifact"],
474
+ label: artifactPath,
475
+ summary: artifactPath,
476
+ tags: ["artifact", "audit"],
477
+ properties: {
478
+ key: `${input.runId}:${artifactPath}`,
479
+ runId: input.runId,
480
+ path: artifactPath,
481
+ sha256: input.evidenceHash ?? "",
482
+ },
483
+ createdAt: now,
484
+ updatedAt: now,
485
+ });
486
+ }
487
+ for (const { requirement, id } of requirementEntries) {
488
+ this.upsertNode(state, {
489
+ id,
490
+ type: "EvidenceRequirement",
491
+ labels: ["OmkEvidenceRequirement", "EvidenceRequirement"],
492
+ label: requirement.gate,
493
+ summary: requirement.ref ?? requirement.gate,
494
+ tags: ["evidence", "audit", "requirement"],
495
+ properties: {
496
+ key: `${input.runId}:${input.nodeId}:requirement:${requirement.gate}:${requirement.ref ?? ""}`,
497
+ runId: input.runId,
498
+ nodeId: input.nodeId,
499
+ gate: requirement.gate,
500
+ ref: requirement.ref ?? "",
501
+ required: requirement.required !== false,
502
+ },
503
+ createdAt: now,
504
+ updatedAt: now,
505
+ });
506
+ }
507
+ for (const { observation, id } of observationEntries) {
508
+ this.upsertNode(state, {
509
+ id,
510
+ type: "Evidence",
511
+ labels: ["OmkEvidence", "Evidence", "EvidenceObservation"],
512
+ label: observation.kind,
513
+ summary: observation.ref ?? observation.artifactPath ?? observation.kind,
514
+ tags: ["evidence", "audit", "observation"],
515
+ properties: {
516
+ key: `${input.runId}:${input.nodeId}:observation:${observation.kind}:${observation.ref ?? observation.artifactPath ?? ""}`,
517
+ runId: input.runId,
518
+ nodeId: input.nodeId,
519
+ kind: observation.kind,
520
+ source: observation.source,
521
+ ref: observation.ref ?? "",
522
+ artifactRef: observation.artifactPath ?? "",
523
+ confidence: observation.confidence ?? 0,
524
+ replayable: observation.replayable !== false,
525
+ redacted: observation.redacted !== false,
526
+ },
527
+ createdAt: now,
528
+ updatedAt: now,
529
+ });
530
+ }
531
+ this.upsertEdge(state, projectId, runId, "HAS_RUN", now);
532
+ this.upsertEdge(state, runId, turnId, "HAS_TASK", now);
533
+ this.upsertEdge(state, runId, turnId, "HAS_TURN", now);
534
+ this.upsertEdge(state, turnId, routeId, "HAS_PROVIDER_ROUTE", now);
535
+ this.upsertEdge(state, routeId, providerId, "ROUTES_TO", now);
536
+ this.upsertEdge(state, turnId, evidenceId, "OBSERVED_EVIDENCE", now);
537
+ this.upsertEdge(state, routeId, evidenceId, "EVIDENCED_BY", now);
538
+ if (artifactId)
539
+ this.upsertEdge(state, evidenceId, artifactId, "STORED_AT", now);
540
+ for (const { id } of requirementEntries) {
541
+ this.upsertEdge(state, turnId, id, "DECLARES_EVIDENCE_REQUIREMENT", now);
542
+ }
543
+ for (const { id, observation } of observationEntries) {
544
+ this.upsertEdge(state, turnId, id, "OBSERVED_EVIDENCE", now);
545
+ if (observation.artifactPath && artifactId && observation.artifactPath === input.evidenceArtifactPath) {
546
+ this.upsertEdge(state, id, artifactId, "STORED_AT", now);
547
+ }
548
+ for (const { id: requirementId, requirement } of requirementEntries) {
549
+ if (evidenceObservationSatisfiesRequirement(requirement.gate, observation.kind)) {
550
+ this.upsertEdge(state, requirementId, id, "SATISFIED_BY", now);
551
+ }
552
+ }
553
+ }
554
+ });
555
+ }
556
+ async materializeHeadroomDecision(input) {
557
+ await this.mutateState((state, now) => {
558
+ state.updatedAt = now;
559
+ state.project = { ...this.settings.project };
560
+ state.ontology = ONTOLOGY;
561
+ const projectId = this.nodeId("Project", this.settings.project.key);
562
+ const runId = this.nodeId("Run", input.runId);
563
+ const taskId = this.nodeId("Task", `${input.runId}:${input.nodeId}`);
564
+ const decisionId = this.nodeId("HeadroomDecision", `${input.runId}:${input.nodeId}`);
565
+ const artifactId = input.artifactRef
566
+ ? this.nodeId("Artifact", `${input.runId}:${input.artifactRef}`)
567
+ : undefined;
568
+ const attempted = input.metadata.attempted === true;
569
+ const applied = input.metadata.applied === true;
570
+ const reason = input.metadata.reason ?? "headroom decision";
571
+ this.upsertNode(state, {
572
+ id: projectId,
573
+ type: "Project",
574
+ labels: ["OmkProject", "Project"],
575
+ label: this.settings.project.name,
576
+ summary: this.settings.project.root,
577
+ tags: ["project"],
578
+ properties: { key: this.settings.project.key, root: this.settings.project.root },
579
+ createdAt: now,
580
+ updatedAt: now,
581
+ });
582
+ this.upsertNode(state, {
583
+ id: runId,
584
+ type: "Run",
585
+ labels: ["OmkRun", "Run"],
586
+ label: input.runId,
587
+ summary: `Run ${input.runId}`,
588
+ tags: ["run", "audit"],
589
+ properties: { key: input.runId, runId: input.runId, projectKey: this.settings.project.key },
590
+ createdAt: now,
591
+ updatedAt: now,
592
+ });
593
+ this.upsertNode(state, {
594
+ id: taskId,
595
+ type: "Task",
596
+ labels: ["OmkTurn", "Task"],
597
+ label: input.nodeId,
598
+ summary: `Turn ${input.nodeId}`,
599
+ tags: ["turn", "audit"],
600
+ properties: { key: `${input.runId}:${input.nodeId}`, runId: input.runId, nodeId: input.nodeId },
601
+ createdAt: now,
602
+ updatedAt: now,
603
+ });
604
+ this.upsertNode(state, {
605
+ id: decisionId,
606
+ type: "HeadroomDecision",
607
+ labels: ["OmkHeadroomDecision", "HeadroomDecision"],
608
+ label: `${input.nodeId}:headroom`,
609
+ summary: reason,
610
+ tags: ["headroom", "compaction", "audit"],
611
+ properties: {
612
+ key: `${input.runId}:${input.nodeId}:headroom`,
613
+ runId: input.runId,
614
+ nodeId: input.nodeId,
615
+ attempted,
616
+ backend: input.metadata.backend ?? "none",
617
+ compacted: input.metadata.compacted === true,
618
+ compactedTextProduced: input.metadata.compactedTextProduced === true,
619
+ validated: input.metadata.validated === true,
620
+ applied,
621
+ beforeTokens: input.metadata.beforeTokens ?? 0,
622
+ afterTokens: input.metadata.afterTokens ?? 0,
623
+ utilization: input.metadata.utilization ?? 0,
624
+ threshold: input.metadata.threshold ?? 0,
625
+ contract: input.metadata.contract ?? "unknown",
626
+ reason,
627
+ missingSections: (input.metadata.missingSections ?? []).join(","),
628
+ qualityScore: input.metadata.qualityScore ?? 0,
629
+ compressionRatio: input.metadata.compressionRatio ?? 0,
630
+ },
631
+ createdAt: now,
632
+ updatedAt: now,
633
+ });
634
+ if (artifactId && input.artifactRef) {
635
+ const artifactPath = resolve(this.settings.project.root, input.artifactRef);
636
+ let sha256 = null;
637
+ let sizeBytes = null;
638
+ let exists = false;
639
+ try {
640
+ const stats = statSync(artifactPath);
641
+ sizeBytes = stats.size;
642
+ sha256 = sha256FileSync(artifactPath) ?? null;
643
+ exists = true;
644
+ }
645
+ catch {
646
+ sha256 = null;
647
+ sizeBytes = null;
648
+ exists = false;
649
+ }
650
+ this.upsertNode(state, {
651
+ id: artifactId,
652
+ type: "Artifact",
653
+ labels: ["OmkArtifact", "Artifact"],
654
+ label: input.artifactRef,
655
+ summary: input.artifactRef,
656
+ tags: ["artifact", "headroom", "audit"],
657
+ properties: {
658
+ key: `${input.runId}:${input.artifactRef}`,
659
+ runId: input.runId,
660
+ path: input.artifactRef,
661
+ kind: "headroom-decision",
662
+ sha256,
663
+ sizeBytes,
664
+ exists,
665
+ },
666
+ createdAt: now,
667
+ updatedAt: now,
668
+ });
669
+ if (!exists) {
670
+ const missingArtifactRiskId = this.nodeId("Risk", `${input.runId}:${input.nodeId}:missing-headroom-artifact`);
671
+ this.upsertNode(state, {
672
+ id: missingArtifactRiskId,
673
+ type: "Risk",
674
+ labels: ["OmkRisk", "Risk"],
675
+ label: "missing-headroom-artifact",
676
+ summary: "headroom decision artifactRef did not resolve",
677
+ tags: ["risk", "headroom", "artifact"],
678
+ properties: {
679
+ key: `${input.runId}:${input.nodeId}:missing-headroom-artifact`,
680
+ runId: input.runId,
681
+ nodeId: input.nodeId,
682
+ kind: "missing-headroom-artifact",
683
+ artifactRef: input.artifactRef,
684
+ },
685
+ createdAt: now,
686
+ updatedAt: now,
687
+ });
688
+ this.upsertEdge(state, decisionId, missingArtifactRiskId, "HAS_RISK", now);
689
+ }
690
+ }
691
+ this.upsertEdge(state, projectId, runId, "HAS_RUN", now);
692
+ this.upsertEdge(state, runId, taskId, "HAS_TASK", now);
693
+ this.upsertEdge(state, taskId, decisionId, "HAS_HEADROOM_DECISION", now);
694
+ if (artifactId)
695
+ this.upsertEdge(state, decisionId, artifactId, "STORED_AT", now);
696
+ if (attempted && !applied) {
697
+ const riskId = this.nodeId("Risk", `${input.runId}:${input.nodeId}:headroom`);
698
+ this.upsertNode(state, {
699
+ id: riskId,
700
+ type: "Risk",
701
+ labels: ["OmkRisk", "Risk"],
702
+ label: "headroom-compaction-not-applied",
703
+ summary: reason,
704
+ tags: ["risk", "headroom", "compaction"],
705
+ properties: {
706
+ key: `${input.runId}:${input.nodeId}:headroom-risk`,
707
+ runId: input.runId,
708
+ nodeId: input.nodeId,
709
+ kind: "headroom-compaction-not-applied",
710
+ reason,
711
+ missingSections: (input.metadata.missingSections ?? []).join(","),
712
+ },
713
+ createdAt: now,
714
+ updatedAt: now,
715
+ });
716
+ this.upsertEdge(state, taskId, riskId, "HAS_RISK", now);
717
+ }
718
+ });
719
+ }
720
+ async materializeFreedomdSovereignty(input) {
721
+ await this.mutateState((state, now) => {
722
+ state.updatedAt = now;
723
+ state.ontology = ONTOLOGY;
724
+ const runNodeId = this.nodeId("Run", input.runId);
725
+ const taskId = this.nodeId("Task", `${input.runId}:${input.nodeId}`);
726
+ const decisionId = this.nodeId("SovereigntyDecision", `${input.runId}:${input.nodeId}`);
727
+ const providerId = this.nodeId("Provider", `${input.providerId}:${input.runtimeMode}`);
728
+ this.upsertNode(state, {
729
+ id: runNodeId,
730
+ type: "Run",
731
+ labels: ["OmkRun", "Run"],
732
+ label: input.runId,
733
+ summary: `Run ${input.runId}`,
734
+ tags: ["run", "audit", "freedomd"],
735
+ properties: { key: input.runId, runId: input.runId },
736
+ createdAt: now,
737
+ updatedAt: now,
738
+ });
739
+ this.upsertNode(state, {
740
+ id: taskId,
741
+ type: "Task",
742
+ labels: ["OmkTurn", "Task"],
743
+ label: input.nodeId,
744
+ summary: `Turn ${input.nodeId}`,
745
+ tags: ["turn", "audit", "freedomd"],
746
+ properties: { key: `${input.runId}:${input.nodeId}`, runId: input.runId, nodeId: input.nodeId },
747
+ createdAt: now,
748
+ updatedAt: now,
749
+ });
750
+ this.upsertNode(state, {
751
+ id: providerId,
752
+ type: "Provider",
753
+ labels: ["OmkProvider", "Provider"],
754
+ label: `${input.providerId}:${input.runtimeMode}`,
755
+ summary: `Provider ${input.providerId} (${input.runtimeMode})`,
756
+ tags: ["provider", "freedomd"],
757
+ properties: { key: `${input.providerId}:${input.runtimeMode}`, providerId: input.providerId, runtimeMode: input.runtimeMode },
758
+ createdAt: now,
759
+ updatedAt: now,
760
+ });
761
+ this.upsertNode(state, {
762
+ id: decisionId,
763
+ type: "SovereigntyDecision",
764
+ labels: ["OmkSovereigntyDecision", "SovereigntyDecision"],
765
+ label: `${input.nodeId}:sovereignty`,
766
+ summary: input.sovereignty.reason,
767
+ tags: ["sovereignty", "freedomd", "audit"],
768
+ properties: {
769
+ key: `${input.runId}:${input.nodeId}:sovereignty`,
770
+ runId: input.runId,
771
+ nodeId: input.nodeId,
772
+ mode: input.sovereignty.mode,
773
+ dataBoundary: input.sovereignty.dataBoundary,
774
+ retentionDecision: input.sovereignty.retentionDecision,
775
+ jurisdictionDecision: input.sovereignty.jurisdictionDecision,
776
+ providerCutoffRisk: input.sovereignty.providerCutoffRisk,
777
+ localFallbackAvailable: input.sovereignty.localFallbackAvailable,
778
+ reason: input.sovereignty.reason,
779
+ },
780
+ createdAt: now,
781
+ updatedAt: now,
782
+ });
783
+ this.upsertEdge(state, runNodeId, taskId, "HAS_TASK", now);
784
+ this.upsertEdge(state, taskId, decisionId, "HAS_SOVEREIGNTY_DECISION", now);
785
+ this.upsertEdge(state, taskId, providerId, "USES_PROVIDER", now);
786
+ if (input.degradedMode) {
787
+ const degradedId = this.nodeId("DegradedPlan", `${input.runId}:${input.nodeId}`);
788
+ this.upsertNode(state, {
789
+ id: degradedId,
790
+ type: "DegradedPlan",
791
+ labels: ["OmkDegradedPlan", "DegradedPlan"],
792
+ label: input.degradedMode,
793
+ summary: `Degraded to ${input.degradedMode}`,
794
+ tags: ["degraded", "freedomd"],
795
+ properties: { key: `${input.runId}:${input.nodeId}:degraded`, runId: input.runId, nodeId: input.nodeId, mode: input.degradedMode },
796
+ createdAt: now,
797
+ updatedAt: now,
798
+ });
799
+ this.upsertEdge(state, taskId, degradedId, "DEGRADED_TO", now);
800
+ }
801
+ if (input.incident) {
802
+ const incidentId = this.nodeId("ProviderIncident", `${input.runId}:${input.nodeId}:${input.providerId}`);
803
+ this.upsertNode(state, {
804
+ id: incidentId,
805
+ type: "ProviderIncident",
806
+ labels: ["OmkProviderIncident", "ProviderIncident"],
807
+ label: input.incident.kind,
808
+ summary: input.incident.reason,
809
+ tags: ["incident", "freedomd", input.incident.severity],
810
+ properties: {
811
+ key: `${input.runId}:${input.nodeId}:${input.providerId}:incident`,
812
+ runId: input.runId,
813
+ nodeId: input.nodeId,
814
+ providerId: input.providerId,
815
+ kind: input.incident.kind,
816
+ severity: input.incident.severity,
817
+ reason: input.incident.reason,
818
+ },
819
+ createdAt: now,
820
+ updatedAt: now,
821
+ });
822
+ this.upsertEdge(state, decisionId, incidentId, "AFFECTED_BY_INCIDENT", now);
823
+ }
824
+ });
825
+ }
826
+ async materializeFreedomdEvidenceEnvelope(input) {
827
+ await this.mutateState((state, now) => {
828
+ state.updatedAt = now;
829
+ state.ontology = ONTOLOGY;
830
+ const taskId = this.nodeId("Task", `${input.runId}:${input.nodeId}`);
831
+ const envelopeId = this.nodeId("EvidenceEnvelope", `${input.runId}:${input.nodeId}`);
832
+ const artifactId = this.nodeId("Artifact", `${input.runId}:${input.envelopePath}`);
833
+ this.upsertNode(state, {
834
+ id: envelopeId,
835
+ type: "EvidenceEnvelope",
836
+ labels: ["OmkEvidenceEnvelope", "EvidenceEnvelope"],
837
+ label: `${input.nodeId}:evidence-envelope`,
838
+ summary: "Freedomd local-first evidence envelope",
839
+ tags: ["evidence", "freedomd", "audit"],
840
+ properties: {
841
+ key: `${input.runId}:${input.nodeId}:evidence-envelope`,
842
+ runId: input.runId,
843
+ nodeId: input.nodeId,
844
+ path: input.envelopePath,
845
+ },
846
+ createdAt: now,
847
+ updatedAt: now,
848
+ });
849
+ this.upsertNode(state, {
850
+ id: artifactId,
851
+ type: "Artifact",
852
+ labels: ["OmkArtifact", "Artifact"],
853
+ label: input.envelopePath,
854
+ summary: input.envelopePath,
855
+ tags: ["artifact", "evidence", "freedomd"],
856
+ properties: {
857
+ key: `${input.runId}:${input.envelopePath}`,
858
+ runId: input.runId,
859
+ path: input.envelopePath,
860
+ kind: "freedomd-evidence-envelope",
861
+ sha256: input.sha256 ?? null,
862
+ sizeBytes: input.sizeBytes ?? null,
863
+ exists: input.exists ?? false,
864
+ },
865
+ createdAt: now,
866
+ updatedAt: now,
867
+ });
868
+ this.upsertEdge(state, taskId, envelopeId, "HAS_EVIDENCE", now);
869
+ this.upsertEdge(state, envelopeId, artifactId, "EVIDENCE_ENVELOPE_STORED_AT", now);
870
+ });
871
+ }
872
+ async append(path, content) {
873
+ await this.mutateState((state, now) => {
874
+ const existing = this.readFromState(state, path);
875
+ this.applyMemoryWrite(state, path, existing ? `${existing}\n${content}` : content, now);
876
+ });
877
+ }
878
+ async search(query, limit = 10) {
879
+ const state = await this.loadState();
880
+ const normalizedQuery = query.trim().toLowerCase();
881
+ const safeLimit = Math.max(1, Math.min(50, Math.floor(limit)) || 10);
882
+ // Build the per-path latest-content resolver ONCE in O(N + E) and reuse it
883
+ // for every Memory node, instead of rescanning all nodes+edges per node via
884
+ // readFromState() (which made search O(N^2)). Results are identical & same
885
+ // order; resolver output is memoized so the filter+map phases stay O(1).
886
+ const resolveContent = this.buildMemoryContentIndex(state);
887
+ return state.nodes
888
+ .filter((node) => node.type === "Memory")
889
+ .filter((node) => {
890
+ const content = resolveContent(node.path ?? node.label);
891
+ if (!normalizedQuery)
892
+ return true;
893
+ return [node.path, node.label, node.summary, content]
894
+ .filter((value) => typeof value === "string")
895
+ .some((value) => value.toLowerCase().includes(normalizedQuery));
896
+ })
897
+ .sort((a, b) => b.updatedAt.localeCompare(a.updatedAt))
898
+ .slice(0, safeLimit)
899
+ .map((node) => ({
900
+ path: node.path ?? node.label,
901
+ content: resolveContent(node.path ?? node.label),
902
+ sessionId: String(node.properties.sessionId ?? ""),
903
+ updatedAt: node.updatedAt,
904
+ source: String(node.properties.source ?? this.source),
905
+ }));
906
+ }
907
+ /**
908
+ * Build a reusable `path -> latest-content` resolver from a single pass over
909
+ * nodes and edges. Mirrors readFromState()/findLatestMemoryVersionNode()
910
+ * selection and ordering exactly (same memory-by-id lookup, same UPDATES-edge
911
+ * filter, same descending updatedAt/createdAt/id tiebreak), but pays
912
+ * O(N + E) once instead of O(N) per Memory node, removing the O(N^2) search
913
+ * hot path. Resolved content is memoized per path for O(1) repeat lookups.
914
+ */
915
+ buildMemoryContentIndex(state) {
916
+ const memoryById = new Map();
917
+ const versionsByPath = new Map();
918
+ for (const node of state.nodes) {
919
+ if (node.type === "Memory") {
920
+ if (!memoryById.has(node.id))
921
+ memoryById.set(node.id, node);
922
+ }
923
+ else if (node.type === "MemoryVersion" && node.path !== undefined) {
924
+ const existing = versionsByPath.get(node.path);
925
+ if (existing)
926
+ existing.push(node);
927
+ else
928
+ versionsByPath.set(node.path, [node]);
929
+ }
930
+ }
931
+ const updateFromByMemoryId = new Map();
932
+ for (const edge of state.edges) {
933
+ if (edge.type !== "UPDATES")
934
+ continue;
935
+ const existing = updateFromByMemoryId.get(edge.to);
936
+ if (existing)
937
+ existing.add(edge.from);
938
+ else
939
+ updateFromByMemoryId.set(edge.to, new Set([edge.from]));
940
+ }
941
+ const contentCache = new Map();
942
+ return (path) => {
943
+ const cached = contentCache.get(path);
944
+ if (cached !== undefined)
945
+ return cached;
946
+ const memory = memoryById.get(this.memoryNodeId(path));
947
+ const updateIds = memory ? updateFromByMemoryId.get(memory.id) : undefined;
948
+ const version = (versionsByPath.get(path) ?? [])
949
+ .filter((node) => !updateIds || updateIds.size === 0 || updateIds.has(node.id))
950
+ .sort((a, b) => b.updatedAt.localeCompare(a.updatedAt) ||
951
+ b.createdAt.localeCompare(a.createdAt) ||
952
+ b.id.localeCompare(a.id))[0];
953
+ const content = version?.content ?? memory?.content ?? "";
954
+ contentCache.set(path, content);
955
+ return content;
956
+ };
957
+ }
958
+ async ontology() {
959
+ return ONTOLOGY;
960
+ }
961
+ async mindmap(query = "", limit = 80) {
962
+ const state = await this.loadState();
963
+ const normalizedQuery = query.trim().toLowerCase();
964
+ const safeLimit = Math.max(1, Math.min(250, Math.floor(limit)) || 80);
965
+ const rootId = this.nodeId("Project", this.settings.project.key);
966
+ const rootNode = state.nodes.find((node) => node.id === rootId) ?? this.defaultRootNode(rootId);
967
+ const nodeMatches = (node) => {
968
+ if (!normalizedQuery)
969
+ return true;
970
+ return [node.label, node.path, node.summary, node.content, ...node.tags]
971
+ .filter((value) => typeof value === "string")
972
+ .some((value) => value.toLowerCase().includes(normalizedQuery));
973
+ };
974
+ const seedIds = new Set([rootId]);
975
+ for (const node of state.nodes) {
976
+ if (nodeMatches(node))
977
+ seedIds.add(node.id);
978
+ }
979
+ const includedIds = this.expandNeighborhood(state, seedIds, safeLimit);
980
+ includedIds.add(rootId);
981
+ const flatNodes = state.nodes
982
+ .filter((node) => includedIds.has(node.id))
983
+ .map((node) => this.toMindmapFlatNode(node));
984
+ const edges = state.edges
985
+ .filter((edge) => includedIds.has(edge.from) && includedIds.has(edge.to))
986
+ .map((edge) => ({ from: edge.from, to: edge.to, type: edge.type, label: edge.label }));
987
+ const root = this.buildMindmapTree(rootNode, state, includedIds, new Set());
988
+ return { root, nodes: flatNodes, edges, ontology: ONTOLOGY };
989
+ }
990
+ /**
991
+ * Idempotent finalizer that links a finalized run manifest into the local
992
+ * graph. Emits run -> providerRoute -> provider, run -> evidence,
993
+ * run -> decision, and run -> artifact nodes/edges.
994
+ *
995
+ * Privacy: only ids, status, paths, sha256, and aggregate counts are stored.
996
+ * Raw evidence/decision message bodies and secrets are never persisted.
997
+ *
998
+ * Idempotency: node/edge ids are deterministic and prior run-generated
999
+ * nodes/edges (tagged `generatedFromRun`) are pruned before re-inserting, so
1000
+ * re-running with the same (or a changed) manifest never duplicates state.
1001
+ */
1002
+ async linkRun(runId, manifest) {
1003
+ const canonicalRunId = manifest.runId || runId;
1004
+ if (runId && manifest.runId && runId !== manifest.runId) {
1005
+ throw new Error(`linkRun: runId mismatch (param=${runId}, manifest=${manifest.runId})`);
1006
+ }
1007
+ await this.mutateState((state, now) => {
1008
+ this.applyRunManifest(state, canonicalRunId, manifest, now);
1009
+ });
1010
+ }
1011
+ applyRunManifest(state, runId, manifest, now) {
1012
+ state.updatedAt = now;
1013
+ state.project = { ...this.settings.project };
1014
+ state.ontology = ONTOLOGY;
1015
+ // Prune prior run-generated child nodes/edges for idempotent re-runs. The
1016
+ // Run node and shared Provider nodes are intentionally not pruned (the Run
1017
+ // node is re-upserted preserving createdAt; Providers are shared by runs).
1018
+ const staleNodeIds = new Set(state.nodes.filter((node) => node.properties.generatedFromRun === runId).map((node) => node.id));
1019
+ state.nodes = state.nodes.filter((node) => !staleNodeIds.has(node.id));
1020
+ state.edges = state.edges.filter((edge) => edge.properties.generatedFromRun !== runId && !staleNodeIds.has(edge.from) && !staleNodeIds.has(edge.to));
1021
+ const tag = { generatedFromRun: runId };
1022
+ const projectId = this.nodeId("Project", this.settings.project.key);
1023
+ this.upsertNode(state, {
1024
+ id: projectId,
1025
+ type: "Project",
1026
+ labels: ["OmkProject", "Project"],
1027
+ label: this.settings.project.name,
1028
+ summary: this.settings.project.root,
1029
+ tags: ["project"],
1030
+ properties: { key: this.settings.project.key, root: this.settings.project.root },
1031
+ createdAt: now,
1032
+ updatedAt: now,
1033
+ });
1034
+ const runNodeId = this.nodeId("Run", runId);
1035
+ this.upsertNode(state, {
1036
+ id: runNodeId,
1037
+ type: "Run",
1038
+ labels: ["OmkRun", "Run"],
1039
+ label: runId,
1040
+ summary: `Run ${runId} (${manifest.status})`,
1041
+ tags: ["run", manifest.status],
1042
+ properties: {
1043
+ runId,
1044
+ status: manifest.status,
1045
+ schemaVersion: manifest.schemaVersion,
1046
+ createdAt: manifest.createdAt,
1047
+ completedAt: manifest.completedAt ?? null,
1048
+ promptHash: manifest.promptHash ?? null,
1049
+ decisionTracePath: manifest.decisionTracePath ?? null,
1050
+ evidenceRequired: manifest.evidenceSummary.required,
1051
+ evidencePassed: manifest.evidenceSummary.passed,
1052
+ evidenceFailed: manifest.evidenceSummary.failed,
1053
+ evidenceMissing: manifest.evidenceSummary.missing,
1054
+ nodeCount: manifest.nodes.length,
1055
+ artifactCount: manifest.artifacts.length,
1056
+ projectKey: this.settings.project.key,
1057
+ source: this.source,
1058
+ },
1059
+ createdAt: now,
1060
+ updatedAt: now,
1061
+ });
1062
+ this.upsertEdge(state, projectId, runNodeId, "HAS_RUN", now, tag);
1063
+ // Provider route -> provider.
1064
+ const provider = manifest.providerPolicy.provider;
1065
+ const mode = manifest.providerPolicy.mode ?? "auto";
1066
+ const routeNodeId = this.nodeId("ProviderRoute", `${runId}:${provider}:${mode}`);
1067
+ this.upsertNode(state, {
1068
+ id: routeNodeId,
1069
+ type: "ProviderRoute",
1070
+ labels: ["OmkProviderRoute", "ProviderRoute"],
1071
+ label: `${provider} (${mode})`,
1072
+ summary: `Provider route for run ${runId}`,
1073
+ tags: ["provider-route", provider, mode],
1074
+ properties: { runId, provider, mode, projectKey: this.settings.project.key, generatedFromRun: runId },
1075
+ createdAt: now,
1076
+ updatedAt: now,
1077
+ });
1078
+ this.upsertEdge(state, runNodeId, routeNodeId, "HAS_PROVIDER_ROUTE", now, tag);
1079
+ const providerNodeId = this.nodeId("Provider", provider);
1080
+ this.upsertNode(state, {
1081
+ id: providerNodeId,
1082
+ type: "Provider",
1083
+ labels: ["OmkProvider", "Provider"],
1084
+ label: provider,
1085
+ summary: `Provider ${provider}`,
1086
+ tags: ["provider", provider],
1087
+ properties: { provider, projectKey: this.settings.project.key },
1088
+ createdAt: now,
1089
+ updatedAt: now,
1090
+ });
1091
+ this.upsertEdge(state, routeNodeId, providerNodeId, "ROUTES_TO", now, tag);
1092
+ // Evidence summary node (counts/paths/sha only — never raw bodies).
1093
+ const evidenceArtifact = manifest.artifacts.find((artifact) => artifact.kind === "evidence" || /(^|\/)evidence\.jsonl$/i.test(artifact.path));
1094
+ const evidenceNodeId = this.nodeId("Evidence", `${runId}:evidence`);
1095
+ this.upsertNode(state, {
1096
+ id: evidenceNodeId,
1097
+ type: "Evidence",
1098
+ labels: ["OmkEvidence", "Evidence"],
1099
+ label: `evidence:${runId}`,
1100
+ summary: `Evidence ${manifest.evidenceSummary.passed}/${manifest.evidenceSummary.required} passed`,
1101
+ tags: ["evidence", manifest.status],
1102
+ properties: {
1103
+ runId,
1104
+ required: manifest.evidenceSummary.required,
1105
+ passed: manifest.evidenceSummary.passed,
1106
+ failed: manifest.evidenceSummary.failed,
1107
+ missing: manifest.evidenceSummary.missing,
1108
+ path: evidenceArtifact?.path ?? null,
1109
+ sha256: evidenceArtifact?.sha256 ?? null,
1110
+ projectKey: this.settings.project.key,
1111
+ generatedFromRun: runId,
1112
+ },
1113
+ createdAt: now,
1114
+ updatedAt: now,
1115
+ });
1116
+ this.upsertEdge(state, runNodeId, evidenceNodeId, "HAS_EVIDENCE", now, tag);
1117
+ // Decision trace node (path/sha only — never raw bodies).
1118
+ const decisionArtifact = manifest.artifacts.find((artifact) => artifact.kind === "decision" ||
1119
+ artifact.kind === "decisions" ||
1120
+ /(^|\/)decisions\.jsonl$/i.test(artifact.path));
1121
+ const decisionPath = manifest.decisionTracePath ?? decisionArtifact?.path ?? null;
1122
+ const decisionNodeId = this.nodeId("Decision", `${runId}:decision`);
1123
+ this.upsertNode(state, {
1124
+ id: decisionNodeId,
1125
+ type: "Decision",
1126
+ labels: ["OmkDecision", "Decision"],
1127
+ label: `decisions:${runId}`,
1128
+ summary: `Decision trace for run ${runId}`,
1129
+ tags: ["decision", manifest.status],
1130
+ properties: {
1131
+ runId,
1132
+ path: decisionPath,
1133
+ sha256: decisionArtifact?.sha256 ?? null,
1134
+ projectKey: this.settings.project.key,
1135
+ generatedFromRun: runId,
1136
+ },
1137
+ createdAt: now,
1138
+ updatedAt: now,
1139
+ });
1140
+ this.upsertEdge(state, runNodeId, decisionNodeId, "HAS_DECISION", now, tag);
1141
+ // Artifacts -> File/Artifact nodes (id/kind/path/sha only).
1142
+ for (const artifact of manifest.artifacts) {
1143
+ const artifactNodeId = this.nodeId("Artifact", `${runId}:${artifact.kind}:${artifact.path}`);
1144
+ this.upsertNode(state, {
1145
+ id: artifactNodeId,
1146
+ type: "Artifact",
1147
+ labels: ["OmkArtifact", "Artifact", "File"],
1148
+ label: artifact.path,
1149
+ path: artifact.path,
1150
+ summary: `${artifact.kind} artifact`,
1151
+ tags: ["artifact", artifact.kind, ...pathTags(artifact.path)],
1152
+ properties: {
1153
+ runId,
1154
+ kind: artifact.kind,
1155
+ path: artifact.path,
1156
+ sha256: artifact.sha256 ?? null,
1157
+ projectKey: this.settings.project.key,
1158
+ generatedFromRun: runId,
1159
+ },
1160
+ createdAt: now,
1161
+ updatedAt: now,
1162
+ });
1163
+ this.upsertEdge(state, runNodeId, artifactNodeId, "TOUCHES_FILE", now, tag);
1164
+ }
1165
+ }
1166
+ async graphQuery(query) {
1167
+ const normalized = query.replace(/\s+/g, " ").trim();
1168
+ const data = {};
1169
+ if (/\bontology\b/i.test(normalized)) {
1170
+ data.ontology = await this.ontology();
1171
+ }
1172
+ if (/\bmemory\s*\(/i.test(normalized)) {
1173
+ const path = readStringArg(normalized, "path");
1174
+ if (!path)
1175
+ throw new Error('omk_graph_query: memory(path: "...") requires a path argument');
1176
+ data.memory = {
1177
+ path,
1178
+ content: await this.read(path),
1179
+ };
1180
+ }
1181
+ if (/\bmemories\s*\(/i.test(normalized) || /\bmemories\b/i.test(normalized)) {
1182
+ const searchQuery = readStringArg(normalized, "query") ?? "";
1183
+ const limit = readNumberArg(normalized, "limit") ?? 10;
1184
+ data.memories = await this.search(searchQuery, limit);
1185
+ }
1186
+ if (/\bmindmap\s*\(/i.test(normalized) || /\bmindmap\b/i.test(normalized)) {
1187
+ const searchQuery = readStringArg(normalized, "query") ?? "";
1188
+ const limit = readNumberArg(normalized, "limit") ?? 80;
1189
+ data.mindmap = await this.mindmap(searchQuery, limit);
1190
+ }
1191
+ if (/\bnodes\s*\(/i.test(normalized) || /\bnodes\b/i.test(normalized)) {
1192
+ const state = await this.loadState();
1193
+ const type = readStringArg(normalized, "type");
1194
+ const searchQuery = (readStringArg(normalized, "query") ?? "").toLowerCase();
1195
+ const limit = readNumberArg(normalized, "limit") ?? 50;
1196
+ data.nodes = state.nodes
1197
+ .filter((node) => !type || node.type === type)
1198
+ .filter((node) => {
1199
+ if (!searchQuery)
1200
+ return true;
1201
+ const content = node.type === "Memory" ? this.readFromState(state, node.path ?? node.label) : node.content;
1202
+ return [node.label, node.path, node.summary, content, ...node.tags]
1203
+ .filter((value) => typeof value === "string")
1204
+ .some((value) => value.toLowerCase().includes(searchQuery));
1205
+ })
1206
+ .slice(0, Math.max(1, Math.min(250, Math.floor(limit))))
1207
+ .map((node) => this.toMindmapFlatNode(node));
1208
+ }
1209
+ if (Object.keys(data).length === 0) {
1210
+ throw new Error('omk_graph_query supports GraphQL-lite fields: ontology, memory(path: "..."), memories(query: "...", limit: 10), mindmap(query: "...", limit: 80), nodes(type: "Task")');
1211
+ }
1212
+ return {
1213
+ data,
1214
+ extensions: {
1215
+ dialect: "omk-graphql-lite-v1",
1216
+ backend: "local_graph",
1217
+ statePath: this.settings.localGraph.path,
1218
+ },
1219
+ };
1220
+ }
1221
+ async loadState() {
1222
+ if (this.durability === "delta") {
1223
+ return this.loadStateDelta();
1224
+ }
1225
+ return this.loadStateLegacy();
1226
+ }
1227
+ async loadStateLegacy() {
1228
+ let raw;
1229
+ try {
1230
+ raw = await readFile(this.settings.localGraph.path, "utf-8");
1231
+ }
1232
+ catch (err) {
1233
+ if (errorCode(err) === "ENOENT")
1234
+ return this.emptyState();
1235
+ if (this.settings.strict)
1236
+ throw err;
1237
+ return this.emptyState();
1238
+ }
1239
+ if (raw.trim().length === 0) {
1240
+ return this.handleInvalidState(raw, "state file is empty");
1241
+ }
1242
+ try {
1243
+ const parsed = JSON.parse(raw);
1244
+ if (parsed.version === 1 && Array.isArray(parsed.nodes) && Array.isArray(parsed.edges)) {
1245
+ return {
1246
+ version: 1,
1247
+ ontology: ONTOLOGY,
1248
+ project: parsed.project ?? { ...this.settings.project },
1249
+ updatedAt: typeof parsed.updatedAt === "string" ? parsed.updatedAt : new Date().toISOString(),
1250
+ nodes: parsed.nodes,
1251
+ edges: parsed.edges,
1252
+ };
1253
+ }
1254
+ return this.handleInvalidState(raw, "state JSON is missing version=1, nodes[], or edges[]");
1255
+ }
1256
+ catch (err) {
1257
+ return this.handleInvalidState(raw, `invalid JSON: ${errorMessage(err)}`);
1258
+ }
1259
+ }
1260
+ async loadStateDelta() {
1261
+ const graphPath = this.settings.localGraph.path;
1262
+ // Check if manifest exists; if not, try to load legacy file for migration
1263
+ const manifest = await readManifest(graphPath);
1264
+ if (!manifest) {
1265
+ // Load legacy file as base state for migration
1266
+ let legacyState;
1267
+ try {
1268
+ legacyState = await this.loadStateLegacy();
1269
+ }
1270
+ catch {
1271
+ legacyState = this.emptyState();
1272
+ }
1273
+ this.deltaManifest = await setupDeltaMode(graphPath, legacyState);
1274
+ this.deltaEpoch = this.deltaManifest.snapshotEpoch;
1275
+ this.deltaLastSeq = 0;
1276
+ this.deltaOpCount = this.deltaManifest.deltaOpCount;
1277
+ return legacyState;
1278
+ }
1279
+ this.deltaManifest = manifest;
1280
+ const result = await loadStateViaDelta(graphPath, this.settings.strict, this.emptyState());
1281
+ this.deltaEpoch = result.epoch;
1282
+ this.deltaLastSeq = result.lastSeq;
1283
+ this.deltaOpCount = result.deltaOpCount;
1284
+ return result.state;
1285
+ }
1286
+ emptyState() {
1287
+ const now = new Date().toISOString();
1288
+ return {
1289
+ version: 1,
1290
+ ontology: ONTOLOGY,
1291
+ project: { ...this.settings.project },
1292
+ updatedAt: now,
1293
+ nodes: [],
1294
+ edges: [],
1295
+ };
1296
+ }
1297
+ async saveState(state) {
1298
+ const payload = `${JSON.stringify(state, null, 2)}\n`;
1299
+ await writeFileAtomic(this.settings.localGraph.path, payload);
1300
+ // Hardcoded fallback: always persist to the canonical path as the source of truth
1301
+ const fallbackPath = resolve(this.settings.project.root, ".omk/memory/graph-state.json");
1302
+ if (fallbackPath !== this.settings.localGraph.path) {
1303
+ await writeFileAtomic(fallbackPath, payload);
1304
+ }
1305
+ }
1306
+ async handleInvalidState(raw, reason) {
1307
+ const repair = await this.writeInvalidStateRepair(raw, reason).catch(() => undefined);
1308
+ if (this.settings.strict) {
1309
+ const repairText = repair
1310
+ ? ` Backup: ${repair.backupPath}; repair signal: ${repair.signalPath}.`
1311
+ : " Backup/repair signal could not be written.";
1312
+ throw new Error(`Local graph memory state is invalid; refusing to overwrite in strict mode.${repairText} Reason: ${reason}`);
1313
+ }
1314
+ return this.emptyState();
1315
+ }
1316
+ async writeInvalidStateRepair(raw, reason) {
1317
+ const statePath = this.settings.localGraph.path;
1318
+ const suffix = `${timestampForPath()}-${hash(raw).slice(0, 8)}`;
1319
+ const backupPath = `${statePath}.invalid-${suffix}.bak`;
1320
+ const signalPath = `${statePath}.repair.json`;
1321
+ const signal = {
1322
+ schemaVersion: 1,
1323
+ status: "repair-required",
1324
+ statePath,
1325
+ backupPath,
1326
+ reason,
1327
+ strict: this.settings.strict,
1328
+ createdAt: new Date().toISOString(),
1329
+ };
1330
+ await mkdir(dirname(statePath), { recursive: true });
1331
+ await writeFile(backupPath, raw, "utf-8");
1332
+ await writeFileAtomic(signalPath, `${JSON.stringify(signal, null, 2)}\n`);
1333
+ return { backupPath, signalPath, reason };
1334
+ }
1335
+ async mutateState(mutator) {
1336
+ const graphPath = this.settings.localGraph.path;
1337
+ await enqueueGraphWrite(graphPath, async () => {
1338
+ if (this.durability === "delta") {
1339
+ await withDeltaLock(graphPath, async () => {
1340
+ const state = await this.loadStateForMutation(graphPath);
1341
+ // Capture pre-mutation id→object maps for diffing
1342
+ const preNodes = new Map(state.nodes.map((n) => [n.id, n]));
1343
+ const preEdges = new Map(state.edges.map((e) => [e.id, e]));
1344
+ const now = new Date().toISOString();
1345
+ mutator(state, now);
1346
+ // Compute delta (changed/added/deleted nodes and edges)
1347
+ const delta = computeDelta(preNodes, preEdges, state);
1348
+ // Ensure delta mode is set up (first write migrates if needed)
1349
+ if (!this.deltaManifest) {
1350
+ this.deltaManifest = await setupDeltaMode(graphPath, state);
1351
+ this.deltaEpoch = this.deltaManifest.snapshotEpoch;
1352
+ this.deltaLastSeq = 0;
1353
+ this.deltaOpCount = this.deltaManifest.deltaOpCount;
1354
+ }
1355
+ const seq = this.deltaLastSeq + 1;
1356
+ await appendDelta(graphPath, this.deltaEpoch, seq, now, {
1357
+ updatedAt: state.updatedAt,
1358
+ project: state.project,
1359
+ ontology: state.ontology.version,
1360
+ }, delta.nodes, delta.edges);
1361
+ this.deltaLastSeq = seq;
1362
+ this.deltaOpCount += 1;
1363
+ // Check compaction thresholds
1364
+ const thresholds = resolveCompactionThresholds(this.env);
1365
+ const compactResult = await compactIfNeeded(graphPath, state, this.deltaEpoch, this.deltaOpCount, thresholds);
1366
+ if (compactResult.compacted) {
1367
+ this.deltaEpoch = compactResult.newEpoch;
1368
+ this.deltaOpCount = compactResult.newOpCount;
1369
+ this.deltaLastSeq = 0;
1370
+ }
1371
+ // Refresh the process-local cache from the file we just wrote so the next
1372
+ // mutation in this process can reuse the parsed object and skip the disk
1373
+ // read + JSON.parse entirely (on-disk format/durability are unchanged).
1374
+ this.refreshGraphStateCache(graphPath, state);
1375
+ if (this.settings.mirrorFiles) {
1376
+ await this.writeMirrorFiles(state);
1377
+ }
1378
+ }, this.env);
1379
+ }
1380
+ else {
1381
+ const state = await this.loadStateForMutation(graphPath);
1382
+ mutator(state, new Date().toISOString());
1383
+ await this.saveState(state);
1384
+ this.refreshGraphStateCache(graphPath, state);
1385
+ if (this.settings.mirrorFiles) {
1386
+ await this.writeMirrorFiles(state);
1387
+ }
1388
+ }
1389
+ });
1390
+ }
1391
+ /**
1392
+ * Load state for a write, reusing the process-local cache only when the file
1393
+ * is unchanged on mtimeMs + size + ctimeMs + inode since this process last
1394
+ * persisted it. In delta mode, also checks snapshot + delta file stats.
1395
+ * Any divergence (concurrent external writer) or a missing entry invalidates
1396
+ * the cache and falls back to a full loadState(), preserving multi-writer
1397
+ * correctness and loadState's ENOENT / empty / invalid / strict semantics.
1398
+ */
1399
+ async loadStateForMutation(graphPath) {
1400
+ const cached = graphStateCache.get(graphPath);
1401
+ if (cached) {
1402
+ if (this.durability === "delta") {
1403
+ const currentDeltaStats = statDeltaFiles(graphPath);
1404
+ if (currentDeltaStats &&
1405
+ deltaStatsMatch(currentDeltaStats, cached.deltaStats ?? null)) {
1406
+ // Restore delta tracking from cache
1407
+ if (cached.deltaEpoch !== undefined)
1408
+ this.deltaEpoch = cached.deltaEpoch;
1409
+ if (cached.deltaOpCount !== undefined)
1410
+ this.deltaOpCount = cached.deltaOpCount;
1411
+ if (cached.deltaLastSeq !== undefined)
1412
+ this.deltaLastSeq = cached.deltaLastSeq;
1413
+ return cached.state;
1414
+ }
1415
+ }
1416
+ else {
1417
+ const stat = statSyncSafe(graphPath);
1418
+ if (stat &&
1419
+ stat.mtimeMs === cached.mtimeMs &&
1420
+ stat.size === cached.size &&
1421
+ stat.ctimeMs === cached.ctimeMs &&
1422
+ stat.ino === cached.ino) {
1423
+ return cached.state;
1424
+ }
1425
+ }
1426
+ graphStateCache.delete(graphPath);
1427
+ }
1428
+ return this.loadState();
1429
+ }
1430
+ /**
1431
+ * Record the just-written state plus its fresh on-disk stats so the next
1432
+ * cache hit can be validated. In delta mode, tracks snapshot + delta file
1433
+ * stats. If the files cannot be stat'd, drop the entry rather than risk
1434
+ * serving stale data on a later write.
1435
+ */
1436
+ refreshGraphStateCache(graphPath, state) {
1437
+ if (this.durability === "delta") {
1438
+ const deltaStats = statDeltaFiles(graphPath);
1439
+ if (deltaStats) {
1440
+ graphStateCache.set(graphPath, {
1441
+ state,
1442
+ mtimeMs: deltaStats.snapshotMtimeMs,
1443
+ size: deltaStats.snapshotSize,
1444
+ ctimeMs: deltaStats.snapshotCtimeMs,
1445
+ ino: deltaStats.snapshotIno,
1446
+ deltaStats,
1447
+ deltaEpoch: this.deltaEpoch,
1448
+ deltaOpCount: this.deltaOpCount,
1449
+ deltaLastSeq: this.deltaLastSeq,
1450
+ });
1451
+ }
1452
+ else {
1453
+ graphStateCache.delete(graphPath);
1454
+ }
1455
+ return;
1456
+ }
1457
+ const stat = statSyncSafe(graphPath);
1458
+ if (stat) {
1459
+ graphStateCache.set(graphPath, {
1460
+ state,
1461
+ mtimeMs: stat.mtimeMs,
1462
+ size: stat.size,
1463
+ ctimeMs: stat.ctimeMs,
1464
+ ino: stat.ino,
1465
+ });
1466
+ }
1467
+ else {
1468
+ graphStateCache.delete(graphPath);
1469
+ }
1470
+ }
1471
+ readFromState(state, path) {
1472
+ const memory = this.findMemoryNode(state, path);
1473
+ const version = this.findLatestMemoryVersionNode(state, path, memory?.id);
1474
+ return version?.content ?? memory?.content ?? "";
1475
+ }
1476
+ findLatestMemoryVersionNode(state, path, memoryId) {
1477
+ const updateIds = memoryId
1478
+ ? new Set(state.edges.filter((edge) => edge.type === "UPDATES" && edge.to === memoryId).map((edge) => edge.from))
1479
+ : undefined;
1480
+ return state.nodes
1481
+ .filter((node) => node.type === "MemoryVersion" && node.path === path)
1482
+ .filter((node) => !updateIds || updateIds.size === 0 || updateIds.has(node.id))
1483
+ .sort((a, b) => b.updatedAt.localeCompare(a.updatedAt) ||
1484
+ b.createdAt.localeCompare(a.createdAt) ||
1485
+ b.id.localeCompare(a.id))[0];
1486
+ }
1487
+ findMemoryNode(state, path) {
1488
+ const memoryId = this.memoryNodeId(path);
1489
+ return state.nodes.find((node) => node.id === memoryId && node.type === "Memory");
1490
+ }
1491
+ replaceGeneratedMindmap(state, memoryId, content, path, now) {
1492
+ const generatedIds = new Set(state.nodes
1493
+ .filter((node) => GENERATED_TYPES.has(node.type) && node.properties.generatedFrom === memoryId)
1494
+ .map((node) => node.id));
1495
+ state.nodes = state.nodes.filter((node) => !generatedIds.has(node.id));
1496
+ state.edges = state.edges.filter((edge) => !generatedIds.has(edge.from) && !generatedIds.has(edge.to) && edge.properties.generatedFrom !== memoryId);
1497
+ let concepts = extractConcepts(content);
1498
+ const MAX_CONCEPTS = 50;
1499
+ for (const concept of concepts) {
1500
+ if (!CANONICAL_NODE_TYPES.has(concept.type)) {
1501
+ concept.type = "Topic";
1502
+ concept.relation = relationForType("Topic");
1503
+ }
1504
+ }
1505
+ if (concepts.length > MAX_CONCEPTS) {
1506
+ const overflowCount = concepts.length - MAX_CONCEPTS;
1507
+ concepts = concepts.slice(0, MAX_CONCEPTS);
1508
+ concepts.push({
1509
+ type: "Topic",
1510
+ label: `And ${overflowCount} more concepts…`,
1511
+ summary: `${overflowCount} additional concepts were extracted but not stored to limit graph growth.`,
1512
+ relation: "HAS_TOPIC",
1513
+ tags: ["overflow", "limit"],
1514
+ line: 0,
1515
+ filePaths: [],
1516
+ });
1517
+ }
1518
+ const conceptIds = concepts.map((concept, index) => this.nodeId(concept.type, `${path}:${index}:${concept.label}`));
1519
+ const memoryFileNodes = new Map();
1520
+ for (const [index, concept] of concepts.entries()) {
1521
+ const conceptId = conceptIds[index];
1522
+ this.upsertNode(state, {
1523
+ id: conceptId,
1524
+ type: concept.type,
1525
+ labels: [`Omk${concept.type}`, concept.type],
1526
+ label: concept.label,
1527
+ summary: concept.summary,
1528
+ tags: concept.tags,
1529
+ properties: {
1530
+ generatedFrom: memoryId,
1531
+ line: concept.line,
1532
+ level: concept.level ?? null,
1533
+ path,
1534
+ projectKey: this.settings.project.key,
1535
+ sessionId: this.settings.session.id,
1536
+ },
1537
+ createdAt: now,
1538
+ updatedAt: now,
1539
+ });
1540
+ const ownerId = concept.parentIndex === undefined ? memoryId : conceptIds[concept.parentIndex] ?? memoryId;
1541
+ const relation = ownerId === memoryId ? concept.relation : nestedRelationForType(concept.type, concept.relation);
1542
+ this.upsertEdge(state, ownerId, conceptId, relation, now, { generatedFrom: memoryId });
1543
+ this.upsertEdge(state, conceptId, memoryId, "PART_OF", now, { generatedFrom: memoryId });
1544
+ for (const filePath of concept.filePaths) {
1545
+ const existingFileId = memoryFileNodes.get(filePath);
1546
+ const fileId = existingFileId ?? this.nodeId("File", `${path}:${filePath}`);
1547
+ memoryFileNodes.set(filePath, fileId);
1548
+ this.upsertNode(state, {
1549
+ id: fileId,
1550
+ type: "File",
1551
+ labels: ["OmkFile", "File"],
1552
+ label: filePath,
1553
+ path: filePath,
1554
+ summary: `Referenced by ${path}`,
1555
+ tags: ["file", ...pathTags(filePath)],
1556
+ properties: {
1557
+ generatedFrom: memoryId,
1558
+ path: filePath,
1559
+ projectKey: this.settings.project.key,
1560
+ sessionId: this.settings.session.id,
1561
+ },
1562
+ createdAt: now,
1563
+ updatedAt: now,
1564
+ });
1565
+ this.upsertEdge(state, conceptId, fileId, "TOUCHES_FILE", now, { generatedFrom: memoryId });
1566
+ this.upsertEdge(state, memoryId, fileId, "HAS_FILE", now, { generatedFrom: memoryId });
1567
+ }
1568
+ }
1569
+ }
1570
+ expandNeighborhood(state, seedIds, limit) {
1571
+ const included = new Set();
1572
+ const queue = [...seedIds];
1573
+ while (queue.length > 0 && included.size < limit) {
1574
+ const id = queue.shift();
1575
+ if (!id || included.has(id))
1576
+ continue;
1577
+ included.add(id);
1578
+ for (const edge of state.edges) {
1579
+ if (edge.from === id && !included.has(edge.to))
1580
+ queue.push(edge.to);
1581
+ if (edge.to === id && !included.has(edge.from))
1582
+ queue.push(edge.from);
1583
+ }
1584
+ }
1585
+ return included;
1586
+ }
1587
+ buildMindmapTree(node, state, includedIds, seen) {
1588
+ const flat = this.toMindmapFlatNode(node);
1589
+ const tree = { ...flat, children: [] };
1590
+ if (seen.has(node.id))
1591
+ return tree;
1592
+ seen.add(node.id);
1593
+ const childEdges = state.edges.filter((edge) => includedIds.has(edge.to) && this.isMindmapForward(edge));
1594
+ const children = childEdges
1595
+ .filter((edge) => edge.from === node.id)
1596
+ .map((edge) => state.nodes.find((candidate) => candidate.id === edge.to))
1597
+ .filter((candidate) => Boolean(candidate))
1598
+ .sort((a, b) => sortRank(a.type) - sortRank(b.type) || a.label.localeCompare(b.label));
1599
+ for (const child of children) {
1600
+ tree.children.push(this.buildMindmapTree(child, state, includedIds, seen));
1601
+ }
1602
+ return tree;
1603
+ }
1604
+ isMindmapForward(edge) {
1605
+ return edge.type.startsWith("HAS_") || edge.type === "UPDATES" || edge.type === "WROTE" || edge.type === "TOUCHES_FILE" || edge.type === "USES_PROVIDER";
1606
+ }
1607
+ toMindmapFlatNode(node) {
1608
+ return {
1609
+ id: node.id,
1610
+ type: node.type,
1611
+ label: node.label,
1612
+ path: node.path,
1613
+ summary: node.summary,
1614
+ };
1615
+ }
1616
+ defaultRootNode(id) {
1617
+ const now = new Date().toISOString();
1618
+ return {
1619
+ id,
1620
+ type: "Project",
1621
+ labels: ["OmkProject", "Project"],
1622
+ label: this.settings.project.name,
1623
+ summary: this.settings.project.root,
1624
+ tags: ["project"],
1625
+ properties: { key: this.settings.project.key, root: this.settings.project.root },
1626
+ createdAt: now,
1627
+ updatedAt: now,
1628
+ };
1629
+ }
1630
+ upsertNode(state, node) {
1631
+ const existing = state.nodes.findIndex((candidate) => candidate.id === node.id);
1632
+ if (existing === -1) {
1633
+ state.nodes.push(node);
1634
+ return;
1635
+ }
1636
+ state.nodes[existing] = {
1637
+ ...state.nodes[existing],
1638
+ ...node,
1639
+ createdAt: state.nodes[existing].createdAt,
1640
+ };
1641
+ }
1642
+ upsertEdge(state, from, to, type, now, properties = {}) {
1643
+ const id = this.edgeId(type, from, to);
1644
+ const existing = state.edges.findIndex((candidate) => candidate.id === id);
1645
+ const edge = {
1646
+ id,
1647
+ type,
1648
+ from,
1649
+ to,
1650
+ label: type.toLowerCase().replace(/_/g, " "),
1651
+ properties,
1652
+ createdAt: now,
1653
+ updatedAt: now,
1654
+ };
1655
+ if (existing === -1) {
1656
+ state.edges.push(edge);
1657
+ return;
1658
+ }
1659
+ state.edges[existing] = {
1660
+ ...state.edges[existing],
1661
+ ...edge,
1662
+ createdAt: state.edges[existing].createdAt,
1663
+ };
1664
+ }
1665
+ memoryNodeId(path) {
1666
+ return this.nodeId("Memory", this.memoryKey(path));
1667
+ }
1668
+ memoryKey(path) {
1669
+ return `${this.settings.project.key}:${hash(path)}`;
1670
+ }
1671
+ nodeId(type, key) {
1672
+ return `${type}:${hash(`${this.settings.project.key}:${key}`).slice(0, 24)}`;
1673
+ }
1674
+ edgeId(type, from, to) {
1675
+ return `${type}:${hash(`${from}\n${type}\n${to}`).slice(0, 24)}`;
1676
+ }
1677
+ }
1678
+ export function extractConcepts(content) {
1679
+ const concepts = [];
1680
+ const topicStack = [];
1681
+ const lines = content.split(/\r?\n/);
1682
+ let inFence = false;
1683
+ for (let index = 0; index < lines.length; index += 1) {
1684
+ const raw = lines[index];
1685
+ const trimmed = raw.trim();
1686
+ if (!trimmed)
1687
+ continue;
1688
+ if (trimmed.startsWith("```") || trimmed.startsWith("~~~")) {
1689
+ inFence = !inFence;
1690
+ continue;
1691
+ }
1692
+ const heading = trimmed.match(/^(#{1,6})\s+(.+)$/);
1693
+ if (heading) {
1694
+ const level = heading[1].length;
1695
+ const label = cleanLabel(heading[2]);
1696
+ while (topicStack.length > 0 && topicStack[topicStack.length - 1].level >= level)
1697
+ topicStack.pop();
1698
+ const parentIndex = topicStack[topicStack.length - 1]?.index;
1699
+ const conceptIndex = concepts.length;
1700
+ topicStack.push({ level, index: conceptIndex });
1701
+ concepts.push({
1702
+ type: classify(label, false),
1703
+ label,
1704
+ summary: label,
1705
+ parentIndex,
1706
+ relation: relationForType(classify(label, false)),
1707
+ tags: tagsFor(label),
1708
+ line: index + 1,
1709
+ level,
1710
+ filePaths: extractFilePaths(label),
1711
+ });
1712
+ continue;
1713
+ }
1714
+ const bullet = trimmed.match(/^[-*+]\s+(.+)$/) ?? trimmed.match(/^\d+[.)]\s+(.+)$/);
1715
+ const text = cleanLabel(bullet?.[1] ?? trimmed.replace(/^>\s*/, ""));
1716
+ const commandLike = inFence || isCommandLike(text);
1717
+ if (text.length < 3)
1718
+ continue;
1719
+ const parentIndex = topicStack[topicStack.length - 1]?.index;
1720
+ const type = commandLike ? "Command" : classify(text, Boolean(bullet));
1721
+ concepts.push({
1722
+ type,
1723
+ label: truncate(text, 140),
1724
+ summary: text,
1725
+ parentIndex,
1726
+ relation: relationForType(type),
1727
+ tags: tagsFor(text),
1728
+ line: index + 1,
1729
+ filePaths: extractFilePaths(text),
1730
+ });
1731
+ }
1732
+ return concepts;
1733
+ }
1734
+ function classify(text, isBullet) {
1735
+ const lower = text.toLowerCase();
1736
+ if (/\b(audit link|audit trail|report link|evidence link|검증 링크|감사 링크)\b/i.test(text))
1737
+ return "AuditLink";
1738
+ if (/\[[^\]]+\]\((?:\.omk\/runs\/|\.omk\/goals\/|[^)]+(?:report|summary|evidence)[^)]*\.md)[^)]*\)/i.test(text))
1739
+ return "AuditLink";
1740
+ if (/\b(run\s*id|runid|run)\b/i.test(text) && /\b[\w.-]*run[\w.-]*\b|\.omk\/runs\//i.test(text))
1741
+ return "Run";
1742
+ if (/\b(goal|objective|목표|비전|north star)\b/i.test(text))
1743
+ return "Goal";
1744
+ if (/\b(decision|decide|chosen|결정|선택|합의)\b/i.test(text))
1745
+ return "Decision";
1746
+ if (/\b(todo|task|해야|할 일|next|action|implement|구현|작업)\b/i.test(text))
1747
+ return "Task";
1748
+ if (/\b(risk|blocked|blocker|fail|failure|warning|주의|리스크|위험|실패|차단)\b/i.test(text))
1749
+ return "Risk";
1750
+ if (/\b(evidence|verified|tested|pass|출처|근거|검증|통과)\b/i.test(text))
1751
+ return "Evidence";
1752
+ if (/\b(fallback|failover|fallback-to-kimi|대체|폴백)\b/i.test(text) && /\b(provider|kimi|deepseek|라우팅|공급자)\b/i.test(text))
1753
+ return "ProviderFallback";
1754
+ if (/\b(provider route|provider routing|routeProvider|provider router|deepseek|compatibility-first|라우팅|공급자)\b/i.test(text))
1755
+ return "ProviderRoute";
1756
+ if (/\b(provider|kimi|deepseek|runtime|worker pool|공급자|런타임)\b/i.test(text))
1757
+ return "Provider";
1758
+ if (/\b(constraint|must|must not|required|제약|필수|금지)\b/i.test(text))
1759
+ return "Constraint";
1760
+ if (text.endsWith("?") || /\b(question|질문|의문)\b/i.test(text))
1761
+ return "Question";
1762
+ if (/\b(answer|resolution|해결|답변)\b/i.test(text))
1763
+ return "Answer";
1764
+ if (isBullet && lower.length < 100)
1765
+ return "Concept";
1766
+ return "Topic";
1767
+ }
1768
+ function relationForType(type) {
1769
+ switch (type) {
1770
+ case "Goal":
1771
+ return "HAS_GOAL";
1772
+ case "Run":
1773
+ return "HAS_RUN";
1774
+ case "Topic":
1775
+ return "HAS_TOPIC";
1776
+ case "Decision":
1777
+ return "HAS_DECISION";
1778
+ case "Task":
1779
+ return "HAS_TASK";
1780
+ case "Risk":
1781
+ return "HAS_RISK";
1782
+ case "Command":
1783
+ return "HAS_COMMAND";
1784
+ case "Evidence":
1785
+ return "HAS_EVIDENCE";
1786
+ case "Provider":
1787
+ return "USES_PROVIDER";
1788
+ case "ProviderRoute":
1789
+ return "HAS_PROVIDER_ROUTE";
1790
+ case "ProviderFallback":
1791
+ return "HAS_PROVIDER_FALLBACK";
1792
+ case "AuditLink":
1793
+ return "HAS_AUDIT_LINK";
1794
+ case "Constraint":
1795
+ return "HAS_CONSTRAINT";
1796
+ case "Question":
1797
+ return "HAS_QUESTION";
1798
+ case "Answer":
1799
+ return "HAS_ANSWER";
1800
+ case "File":
1801
+ return "HAS_FILE";
1802
+ default:
1803
+ return "HAS_CONCEPT";
1804
+ }
1805
+ }
1806
+ function nestedRelationForType(type, relation) {
1807
+ if (["Run", "AuditLink", "ProviderRoute", "ProviderFallback", "Evidence"].includes(type)) {
1808
+ return relation;
1809
+ }
1810
+ return "HAS_CONCEPT";
1811
+ }
1812
+ function isCommandLike(text) {
1813
+ return /^(\$\s*)?(npm|pnpm|yarn|node|tsx|tsc|git|omk|kimi|python|python3|uv|pytest|ruff|docker|docker-compose|kubectl)\b/.test(text);
1814
+ }
1815
+ function extractFilePaths(text) {
1816
+ const markdownLinks = [...text.matchAll(/\]\(([^)]+)\)/g)]
1817
+ .map((match) => match[1].trim())
1818
+ .filter((target) => target && !/^[a-z][a-z0-9+.-]*:/i.test(target));
1819
+ const matches = text.match(/(?:\.?[A-Za-z0-9_.-]+\/)+(?:[A-Za-z0-9_.-]+)|(?:^|\s)(?:[A-Za-z0-9_.-]+\.(?:ts|tsx|js|mjs|cjs|json|md|toml|yaml|yml|py|sh|mjs))/g) ?? [];
1820
+ return [...new Set([...markdownLinks, ...matches.map((match) => match.trim())].filter(Boolean))].slice(0, 10);
1821
+ }
1822
+ function tagsFor(text) {
1823
+ const tags = new Set();
1824
+ for (const part of text.toLowerCase().match(/[a-z0-9가-힣_-]{3,}/g) ?? []) {
1825
+ if (tags.size >= 12)
1826
+ break;
1827
+ tags.add(part);
1828
+ }
1829
+ return [...tags];
1830
+ }
1831
+ function pathTags(path) {
1832
+ return path
1833
+ .split(/[\\/.:-]+/)
1834
+ .map((part) => part.trim().toLowerCase())
1835
+ .filter((part) => part.length >= 2)
1836
+ .slice(0, 8);
1837
+ }
1838
+ function cleanLabel(text) {
1839
+ return text.replace(/[`*_~]/g, "").replace(/\s+/g, " ").trim();
1840
+ }
1841
+ function summarize(content) {
1842
+ const firstUseful = content
1843
+ .split(/\r?\n/)
1844
+ .map((line) => cleanLabel(line.replace(/^#{1,6}\s+/, "").replace(/^[-*+]\s+/, "")))
1845
+ .find((line) => line.length > 0);
1846
+ return truncate(firstUseful ?? "", 180);
1847
+ }
1848
+ function truncate(value, max) {
1849
+ return value.length <= max ? value : `${value.slice(0, Math.max(0, max - 1))}…`;
1850
+ }
1851
+ function sortRank(type) {
1852
+ const order = ["Project", "Session", "Memory", "Goal", "Run", "Topic", "Decision", "Task", "Risk", "Evidence", "Provider", "ProviderRoute", "ProviderFallback", "AuditLink", "Constraint", "Command", "File", "Concept"];
1853
+ const index = order.indexOf(type);
1854
+ return index === -1 ? order.length : index;
1855
+ }
1856
+ function readStringArg(query, name) {
1857
+ const match = query.match(new RegExp(`${name}\\s*:\\s*["']([^"']*)["']`, "i"));
1858
+ return match?.[1];
1859
+ }
1860
+ function readNumberArg(query, name) {
1861
+ const match = query.match(new RegExp(`${name}\\s*:\\s*(\\d+)`, "i"));
1862
+ return match ? Number.parseInt(match[1], 10) : undefined;
1863
+ }
1864
+ function evidenceObservationSatisfiesRequirement(requirementGate, observationKind) {
1865
+ if (observationKind === requirementGate)
1866
+ return true;
1867
+ if (requirementGate === "test-pass" && observationKind === "command-pass")
1868
+ return true;
1869
+ if (requirementGate === "file-exists" && observationKind === "artifact")
1870
+ return true;
1871
+ return false;
1872
+ }
1873
+ function hash(value) {
1874
+ return createHash("sha256").update(value).digest("hex");
1875
+ }