open-multi-agent-kit 0.80.7 → 0.80.8

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 (1470) hide show
  1. package/CHANGELOG.md +4 -30
  2. package/README.md +80 -38
  3. package/dist/agents/jailbreak/index.d.ts +7 -0
  4. package/dist/agents/jailbreak/index.d.ts.map +1 -0
  5. package/dist/agents/jailbreak/index.js +7 -0
  6. package/dist/agents/jailbreak/index.js.map +1 -0
  7. package/dist/agents/jailbreak/subagent-f.d.ts +44 -0
  8. package/dist/agents/jailbreak/subagent-f.d.ts.map +1 -0
  9. package/dist/agents/jailbreak/subagent-f.js +60 -0
  10. package/dist/agents/jailbreak/subagent-f.js.map +1 -0
  11. package/dist/bun/register-bedrock.d.ts.map +1 -1
  12. package/dist/bun/register-bedrock.js +2 -2
  13. package/dist/bun/register-bedrock.js.map +1 -1
  14. package/dist/ci/verify-reporter.d.ts +22 -0
  15. package/dist/ci/verify-reporter.d.ts.map +1 -0
  16. package/dist/ci/verify-reporter.js +50 -0
  17. package/dist/ci/verify-reporter.js.map +1 -0
  18. package/dist/cli/args.d.ts +4 -1
  19. package/dist/cli/args.d.ts.map +1 -1
  20. package/dist/cli/args.js +7 -0
  21. package/dist/cli/args.js.map +1 -1
  22. package/dist/cli/config-selector.d.ts.map +1 -1
  23. package/dist/cli/config-selector.js +1 -1
  24. package/dist/cli/config-selector.js.map +1 -1
  25. package/dist/cli/file-processor.d.ts +1 -1
  26. package/dist/cli/file-processor.d.ts.map +1 -1
  27. package/dist/cli/file-processor.js.map +1 -1
  28. package/dist/cli/initial-message.d.ts +1 -1
  29. package/dist/cli/initial-message.d.ts.map +1 -1
  30. package/dist/cli/initial-message.js.map +1 -1
  31. package/dist/cli/jailbreak-args.d.ts +26 -0
  32. package/dist/cli/jailbreak-args.d.ts.map +1 -0
  33. package/dist/cli/jailbreak-args.js +86 -0
  34. package/dist/cli/jailbreak-args.js.map +1 -0
  35. package/dist/cli/list-models.d.ts.map +1 -1
  36. package/dist/cli/list-models.js +1 -1
  37. package/dist/cli/list-models.js.map +1 -1
  38. package/dist/cli/session-picker.d.ts.map +1 -1
  39. package/dist/cli/session-picker.js +1 -1
  40. package/dist/cli/session-picker.js.map +1 -1
  41. package/dist/commands/doctor-provider.d.ts +19 -0
  42. package/dist/commands/doctor-provider.d.ts.map +1 -0
  43. package/dist/commands/doctor-provider.js +123 -0
  44. package/dist/commands/doctor-provider.js.map +1 -0
  45. package/dist/commands/jailbreak.d.ts +49 -0
  46. package/dist/commands/jailbreak.d.ts.map +1 -0
  47. package/dist/commands/jailbreak.js +201 -0
  48. package/dist/commands/jailbreak.js.map +1 -0
  49. package/dist/config.d.ts +9 -5
  50. package/dist/config.d.ts.map +1 -1
  51. package/dist/config.js +33 -52
  52. package/dist/config.js.map +1 -1
  53. package/dist/core/agent-session-services.d.ts +2 -2
  54. package/dist/core/agent-session-services.d.ts.map +1 -1
  55. package/dist/core/agent-session-services.js.map +1 -1
  56. package/dist/core/agent-session.d.ts +16 -27
  57. package/dist/core/agent-session.d.ts.map +1 -1
  58. package/dist/core/agent-session.js +185 -89
  59. package/dist/core/agent-session.js.map +1 -1
  60. package/dist/core/auth-storage.d.ts +3 -6
  61. package/dist/core/auth-storage.d.ts.map +1 -1
  62. package/dist/core/auth-storage.js +7 -7
  63. package/dist/core/auth-storage.js.map +1 -1
  64. package/dist/core/bash-executor.d.ts +1 -0
  65. package/dist/core/bash-executor.d.ts.map +1 -1
  66. package/dist/core/bash-executor.js +1 -0
  67. package/dist/core/bash-executor.js.map +1 -1
  68. package/dist/core/browser-use.d.ts +45 -0
  69. package/dist/core/browser-use.d.ts.map +1 -0
  70. package/dist/core/browser-use.js +70 -0
  71. package/dist/core/browser-use.js.map +1 -0
  72. package/dist/core/command-safety-parser.d.ts +77 -0
  73. package/dist/core/command-safety-parser.d.ts.map +1 -0
  74. package/dist/core/command-safety-parser.js +763 -0
  75. package/dist/core/command-safety-parser.js.map +1 -0
  76. package/dist/core/command-safety.d.ts.map +1 -1
  77. package/dist/core/command-safety.js +106 -3
  78. package/dist/core/command-safety.js.map +1 -1
  79. package/dist/core/compaction/branch-summarization.d.ts +2 -2
  80. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  81. package/dist/core/compaction/branch-summarization.js +5 -21
  82. package/dist/core/compaction/branch-summarization.js.map +1 -1
  83. package/dist/core/compaction/compaction.d.ts +3 -101
  84. package/dist/core/compaction/compaction.d.ts.map +1 -1
  85. package/dist/core/compaction/compaction.js +21 -656
  86. package/dist/core/compaction/compaction.js.map +1 -1
  87. package/dist/core/compaction/utils.d.ts +2 -2
  88. package/dist/core/compaction/utils.d.ts.map +1 -1
  89. package/dist/core/compaction/utils.js.map +1 -1
  90. package/dist/core/compactor.d.ts +42 -0
  91. package/dist/core/compactor.d.ts.map +1 -0
  92. package/dist/core/compactor.js +131 -0
  93. package/dist/core/compactor.js.map +1 -0
  94. package/dist/core/context-budget-compressors.d.ts +50 -0
  95. package/dist/core/context-budget-compressors.d.ts.map +1 -0
  96. package/dist/core/context-budget-compressors.js +166 -0
  97. package/dist/core/context-budget-compressors.js.map +1 -0
  98. package/dist/core/context-budget-governor-v2.d.ts +7 -0
  99. package/dist/core/context-budget-governor-v2.d.ts.map +1 -0
  100. package/dist/core/context-budget-governor-v2.js +7 -0
  101. package/dist/core/context-budget-governor-v2.js.map +1 -0
  102. package/dist/core/context-budget-governor.d.ts +67 -0
  103. package/dist/core/context-budget-governor.d.ts.map +1 -0
  104. package/dist/core/context-budget-governor.js +224 -0
  105. package/dist/core/context-budget-governor.js.map +1 -0
  106. package/dist/core/context-budget-headroom-candidates.d.ts +3 -0
  107. package/dist/core/context-budget-headroom-candidates.d.ts.map +1 -0
  108. package/dist/core/context-budget-headroom-candidates.js +85 -0
  109. package/dist/core/context-budget-headroom-candidates.js.map +1 -0
  110. package/dist/core/context-budget-headroom-types.d.ts +67 -0
  111. package/dist/core/context-budget-headroom-types.d.ts.map +1 -0
  112. package/dist/core/context-budget-headroom-types.js +46 -0
  113. package/dist/core/context-budget-headroom-types.js.map +1 -0
  114. package/dist/core/context-budget-headroom.d.ts +5 -0
  115. package/dist/core/context-budget-headroom.d.ts.map +1 -0
  116. package/dist/core/context-budget-headroom.js +123 -0
  117. package/dist/core/context-budget-headroom.js.map +1 -0
  118. package/dist/core/context-budget-relevance.d.ts +46 -0
  119. package/dist/core/context-budget-relevance.d.ts.map +1 -0
  120. package/dist/core/context-budget-relevance.js +329 -0
  121. package/dist/core/context-budget-relevance.js.map +1 -0
  122. package/dist/core/context-budget-system-prompt-items.d.ts +19 -0
  123. package/dist/core/context-budget-system-prompt-items.d.ts.map +1 -0
  124. package/dist/core/context-budget-system-prompt-items.js +143 -0
  125. package/dist/core/context-budget-system-prompt-items.js.map +1 -0
  126. package/dist/core/context-budget-system-prompt.d.ts +31 -0
  127. package/dist/core/context-budget-system-prompt.d.ts.map +1 -0
  128. package/dist/core/context-budget-system-prompt.js +87 -0
  129. package/dist/core/context-budget-system-prompt.js.map +1 -0
  130. package/dist/core/context-budget-token-counter.d.ts +34 -0
  131. package/dist/core/context-budget-token-counter.d.ts.map +1 -0
  132. package/dist/core/context-budget-token-counter.js +315 -0
  133. package/dist/core/context-budget-token-counter.js.map +1 -0
  134. package/dist/core/context-budget-v2-coverage.d.ts +5 -0
  135. package/dist/core/context-budget-v2-coverage.d.ts.map +1 -0
  136. package/dist/core/context-budget-v2-coverage.js +58 -0
  137. package/dist/core/context-budget-v2-coverage.js.map +1 -0
  138. package/dist/core/context-budget-v2-plan-hash.d.ts +12 -0
  139. package/dist/core/context-budget-v2-plan-hash.d.ts.map +1 -0
  140. package/dist/core/context-budget-v2-plan-hash.js +38 -0
  141. package/dist/core/context-budget-v2-plan-hash.js.map +1 -0
  142. package/dist/core/context-budget-v2-planner.d.ts +3 -0
  143. package/dist/core/context-budget-v2-planner.d.ts.map +1 -0
  144. package/dist/core/context-budget-v2-planner.js +143 -0
  145. package/dist/core/context-budget-v2-planner.js.map +1 -0
  146. package/dist/core/context-budget-v2-scoring.d.ts +14 -0
  147. package/dist/core/context-budget-v2-scoring.d.ts.map +1 -0
  148. package/dist/core/context-budget-v2-scoring.js +114 -0
  149. package/dist/core/context-budget-v2-scoring.js.map +1 -0
  150. package/dist/core/context-budget-v2-selection.d.ts +32 -0
  151. package/dist/core/context-budget-v2-selection.d.ts.map +1 -0
  152. package/dist/core/context-budget-v2-selection.js +158 -0
  153. package/dist/core/context-budget-v2-selection.js.map +1 -0
  154. package/dist/core/context-budget-v2-tiers.d.ts +15 -0
  155. package/dist/core/context-budget-v2-tiers.d.ts.map +1 -0
  156. package/dist/core/context-budget-v2-tiers.js +68 -0
  157. package/dist/core/context-budget-v2-tiers.js.map +1 -0
  158. package/dist/core/context-budget-v2-types.d.ts +92 -0
  159. package/dist/core/context-budget-v2-types.d.ts.map +1 -0
  160. package/dist/core/context-budget-v2-types.js +24 -0
  161. package/dist/core/context-budget-v2-types.js.map +1 -0
  162. package/dist/core/defaults.d.ts +1 -1
  163. package/dist/core/defaults.d.ts.map +1 -1
  164. package/dist/core/defaults.js.map +1 -1
  165. package/dist/core/diagnostics.d.ts +4 -0
  166. package/dist/core/diagnostics.d.ts.map +1 -1
  167. package/dist/core/diagnostics.js.map +1 -1
  168. package/dist/core/domain-confidence.d.ts +9 -0
  169. package/dist/core/domain-confidence.d.ts.map +1 -0
  170. package/dist/core/domain-confidence.js +39 -0
  171. package/dist/core/domain-confidence.js.map +1 -0
  172. package/dist/core/domain-dispatch.d.ts +44 -0
  173. package/dist/core/domain-dispatch.d.ts.map +1 -0
  174. package/dist/core/domain-dispatch.js +118 -0
  175. package/dist/core/domain-dispatch.js.map +1 -0
  176. package/dist/core/domain-loadouts.d.ts +76 -0
  177. package/dist/core/domain-loadouts.d.ts.map +1 -0
  178. package/dist/core/domain-loadouts.js +981 -0
  179. package/dist/core/domain-loadouts.js.map +1 -0
  180. package/dist/core/domain-registry.d.ts +7 -0
  181. package/dist/core/domain-registry.d.ts.map +1 -0
  182. package/dist/core/domain-registry.js +11 -0
  183. package/dist/core/domain-registry.js.map +1 -0
  184. package/dist/core/domain-router.d.ts +16 -0
  185. package/dist/core/domain-router.d.ts.map +1 -0
  186. package/dist/core/domain-router.js +24 -0
  187. package/dist/core/domain-router.js.map +1 -0
  188. package/dist/core/domain-score.d.ts +13 -0
  189. package/dist/core/domain-score.d.ts.map +1 -0
  190. package/dist/core/domain-score.js +48 -0
  191. package/dist/core/domain-score.js.map +1 -0
  192. package/dist/core/domain-trigger-match.d.ts +14 -0
  193. package/dist/core/domain-trigger-match.d.ts.map +1 -0
  194. package/dist/core/domain-trigger-match.js +51 -0
  195. package/dist/core/domain-trigger-match.js.map +1 -0
  196. package/dist/core/domain-types.d.ts +30 -0
  197. package/dist/core/domain-types.d.ts.map +1 -0
  198. package/dist/core/domain-types.js +2 -0
  199. package/dist/core/domain-types.js.map +1 -0
  200. package/dist/core/exact-cache-policy.d.ts +8 -0
  201. package/dist/core/exact-cache-policy.d.ts.map +1 -1
  202. package/dist/core/exact-cache-policy.js +9 -0
  203. package/dist/core/exact-cache-policy.js.map +1 -1
  204. package/dist/core/exec.d.ts +0 -2
  205. package/dist/core/exec.d.ts.map +1 -1
  206. package/dist/core/exec.js +0 -1
  207. package/dist/core/exec.js.map +1 -1
  208. package/dist/core/export-html/index.d.ts +1 -1
  209. package/dist/core/export-html/index.d.ts.map +1 -1
  210. package/dist/core/export-html/index.js.map +1 -1
  211. package/dist/core/export-html/template.js +1 -3
  212. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  213. package/dist/core/export-html/tool-renderer.js.map +1 -1
  214. package/dist/core/extensions/builtin/command-safety-gate.d.ts +3 -0
  215. package/dist/core/extensions/builtin/command-safety-gate.d.ts.map +1 -1
  216. package/dist/core/extensions/builtin/command-safety-gate.js +15 -3
  217. package/dist/core/extensions/builtin/command-safety-gate.js.map +1 -1
  218. package/dist/core/extensions/builtin/todo-checklist.d.ts +20 -0
  219. package/dist/core/extensions/builtin/todo-checklist.d.ts.map +1 -0
  220. package/dist/core/extensions/builtin/todo-checklist.js +70 -0
  221. package/dist/core/extensions/builtin/todo-checklist.js.map +1 -0
  222. package/dist/core/extensions/loader.d.ts +4 -4
  223. package/dist/core/extensions/loader.d.ts.map +1 -1
  224. package/dist/core/extensions/loader.js +57 -92
  225. package/dist/core/extensions/loader.js.map +1 -1
  226. package/dist/core/extensions/runner.d.ts +3 -3
  227. package/dist/core/extensions/runner.d.ts.map +1 -1
  228. package/dist/core/extensions/runner.js +1 -1
  229. package/dist/core/extensions/runner.js.map +1 -1
  230. package/dist/core/extensions/types.d.ts +7 -35
  231. package/dist/core/extensions/types.d.ts.map +1 -1
  232. package/dist/core/extensions/types.js.map +1 -1
  233. package/dist/core/extensions/wrapper.d.ts +1 -1
  234. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  235. package/dist/core/extensions/wrapper.js.map +1 -1
  236. package/dist/core/headroom.d.ts +45 -0
  237. package/dist/core/headroom.d.ts.map +1 -0
  238. package/dist/core/headroom.js +171 -0
  239. package/dist/core/headroom.js.map +1 -0
  240. package/dist/core/hook-inventory.d.ts +4 -2
  241. package/dist/core/hook-inventory.d.ts.map +1 -1
  242. package/dist/core/hook-inventory.js +80 -11
  243. package/dist/core/hook-inventory.js.map +1 -1
  244. package/dist/core/hooks/fail-closed.d.ts +4 -1
  245. package/dist/core/hooks/fail-closed.d.ts.map +1 -1
  246. package/dist/core/hooks/fail-closed.js +79 -5
  247. package/dist/core/hooks/fail-closed.js.map +1 -1
  248. package/dist/core/hooks/index.d.ts +2 -2
  249. package/dist/core/hooks/index.d.ts.map +1 -1
  250. package/dist/core/hooks/index.js +1 -1
  251. package/dist/core/hooks/index.js.map +1 -1
  252. package/dist/core/hooks/types.d.ts +9 -0
  253. package/dist/core/hooks/types.d.ts.map +1 -1
  254. package/dist/core/hooks/types.js.map +1 -1
  255. package/dist/core/keybindings.d.ts +2 -14
  256. package/dist/core/keybindings.d.ts.map +1 -1
  257. package/dist/core/keybindings.js +1 -31
  258. package/dist/core/keybindings.js.map +1 -1
  259. package/dist/core/lean-ctx.d.ts +99 -0
  260. package/dist/core/lean-ctx.d.ts.map +1 -0
  261. package/dist/core/lean-ctx.js +225 -0
  262. package/dist/core/lean-ctx.js.map +1 -0
  263. package/dist/core/loadout-compose.d.ts +53 -0
  264. package/dist/core/loadout-compose.d.ts.map +1 -0
  265. package/dist/core/loadout-compose.js +172 -0
  266. package/dist/core/loadout-compose.js.map +1 -0
  267. package/dist/core/loadout-policy-bridge.d.ts +22 -0
  268. package/dist/core/loadout-policy-bridge.d.ts.map +1 -0
  269. package/dist/core/loadout-policy-bridge.js +52 -0
  270. package/dist/core/loadout-policy-bridge.js.map +1 -0
  271. package/dist/core/loadout-runtime.d.ts +22 -0
  272. package/dist/core/loadout-runtime.d.ts.map +1 -1
  273. package/dist/core/loadout-runtime.js +41 -5
  274. package/dist/core/loadout-runtime.js.map +1 -1
  275. package/dist/core/loadout-safety.d.ts +55 -0
  276. package/dist/core/loadout-safety.d.ts.map +1 -0
  277. package/dist/core/loadout-safety.js +213 -0
  278. package/dist/core/loadout-safety.js.map +1 -0
  279. package/dist/core/loadouts.d.ts +4 -2
  280. package/dist/core/loadouts.d.ts.map +1 -1
  281. package/dist/core/loadouts.js +116 -5
  282. package/dist/core/loadouts.js.map +1 -1
  283. package/dist/core/loop-gates.d.ts +48 -0
  284. package/dist/core/loop-gates.d.ts.map +1 -0
  285. package/dist/core/loop-gates.js +352 -0
  286. package/dist/core/loop-gates.js.map +1 -0
  287. package/dist/core/loop-registry.d.ts +77 -0
  288. package/dist/core/loop-registry.d.ts.map +1 -0
  289. package/dist/core/loop-registry.js +831 -0
  290. package/dist/core/loop-registry.js.map +1 -0
  291. package/dist/core/loop-types.d.ts +194 -0
  292. package/dist/core/loop-types.d.ts.map +1 -0
  293. package/dist/core/loop-types.js +2 -0
  294. package/dist/core/loop-types.js.map +1 -0
  295. package/dist/core/mcp-inventory.d.ts +7 -0
  296. package/dist/core/mcp-inventory.d.ts.map +1 -1
  297. package/dist/core/mcp-inventory.js +5 -1
  298. package/dist/core/mcp-inventory.js.map +1 -1
  299. package/dist/core/mcp-presets.d.ts +43 -2
  300. package/dist/core/mcp-presets.d.ts.map +1 -1
  301. package/dist/core/mcp-presets.js +298 -2
  302. package/dist/core/mcp-presets.js.map +1 -1
  303. package/dist/core/messages.d.ts +3 -3
  304. package/dist/core/messages.d.ts.map +1 -1
  305. package/dist/core/messages.js.map +1 -1
  306. package/dist/core/metrics-sampler.d.ts +11 -0
  307. package/dist/core/metrics-sampler.d.ts.map +1 -1
  308. package/dist/core/metrics-sampler.js +52 -13
  309. package/dist/core/metrics-sampler.js.map +1 -1
  310. package/dist/core/model-registry.d.ts +1 -2
  311. package/dist/core/model-registry.d.ts.map +1 -1
  312. package/dist/core/model-registry.js +18 -41
  313. package/dist/core/model-registry.js.map +1 -1
  314. package/dist/core/model-resolver.d.ts +2 -2
  315. package/dist/core/model-resolver.d.ts.map +1 -1
  316. package/dist/core/model-resolver.js +1 -2
  317. package/dist/core/model-resolver.js.map +1 -1
  318. package/dist/core/package-gallery-identity.d.ts +7 -0
  319. package/dist/core/package-gallery-identity.d.ts.map +1 -0
  320. package/dist/core/package-gallery-identity.js +31 -0
  321. package/dist/core/package-gallery-identity.js.map +1 -0
  322. package/dist/core/package-gallery-install.d.ts +6 -0
  323. package/dist/core/package-gallery-install.d.ts.map +1 -0
  324. package/dist/core/package-gallery-install.js +59 -0
  325. package/dist/core/package-gallery-install.js.map +1 -0
  326. package/dist/core/package-gallery-manifest.d.ts +13 -0
  327. package/dist/core/package-gallery-manifest.d.ts.map +1 -0
  328. package/dist/core/package-gallery-manifest.js +183 -0
  329. package/dist/core/package-gallery-manifest.js.map +1 -0
  330. package/dist/core/package-gallery-trial.d.ts +4 -0
  331. package/dist/core/package-gallery-trial.d.ts.map +1 -0
  332. package/dist/core/package-gallery-trial.js +55 -0
  333. package/dist/core/package-gallery-trial.js.map +1 -0
  334. package/dist/core/package-gallery-types.d.ts +71 -0
  335. package/dist/core/package-gallery-types.d.ts.map +1 -0
  336. package/dist/core/package-gallery-types.js +2 -0
  337. package/dist/core/package-gallery-types.js.map +1 -0
  338. package/dist/core/package-gallery.d.ts +5 -123
  339. package/dist/core/package-gallery.d.ts.map +1 -1
  340. package/dist/core/package-gallery.js +5 -391
  341. package/dist/core/package-gallery.js.map +1 -1
  342. package/dist/core/package-manager.d.ts +0 -69
  343. package/dist/core/package-manager.d.ts.map +1 -1
  344. package/dist/core/package-manager.js +69 -367
  345. package/dist/core/package-manager.js.map +1 -1
  346. package/dist/core/package-procurement.d.ts +4 -4
  347. package/dist/core/package-procurement.d.ts.map +1 -1
  348. package/dist/core/package-procurement.js +29 -17
  349. package/dist/core/package-procurement.js.map +1 -1
  350. package/dist/core/provider-attribution.d.ts +1 -1
  351. package/dist/core/provider-attribution.d.ts.map +1 -1
  352. package/dist/core/provider-attribution.js.map +1 -1
  353. package/dist/core/read-anchors.d.ts +1 -1
  354. package/dist/core/read-anchors.d.ts.map +1 -1
  355. package/dist/core/read-anchors.js +1 -1
  356. package/dist/core/read-anchors.js.map +1 -1
  357. package/dist/core/recovery-checkpoint.d.ts +2 -2
  358. package/dist/core/recovery-checkpoint.d.ts.map +1 -1
  359. package/dist/core/recovery-checkpoint.js +2 -2
  360. package/dist/core/recovery-checkpoint.js.map +1 -1
  361. package/dist/core/resolve-config-value.d.ts +1 -1
  362. package/dist/core/resolve-config-value.d.ts.map +1 -1
  363. package/dist/core/resolve-config-value.js +2 -30
  364. package/dist/core/resolve-config-value.js.map +1 -1
  365. package/dist/core/resource-loader.d.ts +12 -20
  366. package/dist/core/resource-loader.d.ts.map +1 -1
  367. package/dist/core/resource-loader.js +66 -90
  368. package/dist/core/resource-loader.js.map +1 -1
  369. package/dist/core/sandbox-policy-v2.d.ts +49 -0
  370. package/dist/core/sandbox-policy-v2.d.ts.map +1 -0
  371. package/dist/core/sandbox-policy-v2.js +368 -0
  372. package/dist/core/sandbox-policy-v2.js.map +1 -0
  373. package/dist/core/sdk.d.ts +10 -78
  374. package/dist/core/sdk.d.ts.map +1 -1
  375. package/dist/core/sdk.js +97 -139
  376. package/dist/core/sdk.js.map +1 -1
  377. package/dist/core/semantic-cache-policy.d.ts +7 -1
  378. package/dist/core/semantic-cache-policy.d.ts.map +1 -1
  379. package/dist/core/semantic-cache-policy.js +8 -0
  380. package/dist/core/semantic-cache-policy.js.map +1 -1
  381. package/dist/core/session-manager.d.ts +2 -4
  382. package/dist/core/session-manager.d.ts.map +1 -1
  383. package/dist/core/session-manager.js +5 -6
  384. package/dist/core/session-manager.js.map +1 -1
  385. package/dist/core/settings-manager.d.ts +1 -18
  386. package/dist/core/settings-manager.d.ts.map +1 -1
  387. package/dist/core/settings-manager.js +2 -48
  388. package/dist/core/settings-manager.js.map +1 -1
  389. package/dist/core/skills.d.ts +1 -0
  390. package/dist/core/skills.d.ts.map +1 -1
  391. package/dist/core/skills.js +46 -5
  392. package/dist/core/skills.js.map +1 -1
  393. package/dist/core/slash-commands.d.ts.map +1 -1
  394. package/dist/core/slash-commands.js +0 -2
  395. package/dist/core/slash-commands.js.map +1 -1
  396. package/dist/core/subagent-orchestration.d.ts +73 -0
  397. package/dist/core/subagent-orchestration.d.ts.map +1 -0
  398. package/dist/core/subagent-orchestration.js +408 -0
  399. package/dist/core/subagent-orchestration.js.map +1 -0
  400. package/dist/core/system-prompt.d.ts +5 -4
  401. package/dist/core/system-prompt.d.ts.map +1 -1
  402. package/dist/core/system-prompt.js +57 -36
  403. package/dist/core/system-prompt.js.map +1 -1
  404. package/dist/core/timings.d.ts +0 -4
  405. package/dist/core/timings.d.ts.map +1 -1
  406. package/dist/core/timings.js +0 -4
  407. package/dist/core/timings.js.map +1 -1
  408. package/dist/core/todo-state.d.ts +53 -0
  409. package/dist/core/todo-state.d.ts.map +1 -0
  410. package/dist/core/todo-state.js +87 -0
  411. package/dist/core/todo-state.js.map +1 -0
  412. package/dist/core/token-optimizer.d.ts +58 -0
  413. package/dist/core/token-optimizer.d.ts.map +1 -0
  414. package/dist/core/token-optimizer.js +179 -0
  415. package/dist/core/token-optimizer.js.map +1 -0
  416. package/dist/core/tools/bash.d.ts +8 -9
  417. package/dist/core/tools/bash.d.ts.map +1 -1
  418. package/dist/core/tools/bash.js +9 -8
  419. package/dist/core/tools/bash.js.map +1 -1
  420. package/dist/core/tools/edit.d.ts +3 -14
  421. package/dist/core/tools/edit.d.ts.map +1 -1
  422. package/dist/core/tools/edit.js +4 -25
  423. package/dist/core/tools/edit.js.map +1 -1
  424. package/dist/core/tools/find.d.ts +1 -4
  425. package/dist/core/tools/find.d.ts.map +1 -1
  426. package/dist/core/tools/find.js +1 -4
  427. package/dist/core/tools/find.js.map +1 -1
  428. package/dist/core/tools/grep.d.ts +1 -4
  429. package/dist/core/tools/grep.d.ts.map +1 -1
  430. package/dist/core/tools/grep.js +2 -5
  431. package/dist/core/tools/grep.js.map +1 -1
  432. package/dist/core/tools/index.d.ts +2 -2
  433. package/dist/core/tools/index.d.ts.map +1 -1
  434. package/dist/core/tools/index.js.map +1 -1
  435. package/dist/core/tools/ls.d.ts +1 -4
  436. package/dist/core/tools/ls.d.ts.map +1 -1
  437. package/dist/core/tools/ls.js +1 -4
  438. package/dist/core/tools/ls.js.map +1 -1
  439. package/dist/core/tools/read.d.ts +2 -14
  440. package/dist/core/tools/read.d.ts.map +1 -1
  441. package/dist/core/tools/read.js +4 -28
  442. package/dist/core/tools/read.js.map +1 -1
  443. package/dist/core/tools/render-utils.d.ts +1 -1
  444. package/dist/core/tools/render-utils.d.ts.map +1 -1
  445. package/dist/core/tools/render-utils.js +1 -1
  446. package/dist/core/tools/render-utils.js.map +1 -1
  447. package/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
  448. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  449. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  450. package/dist/core/tools/write.d.ts +2 -4
  451. package/dist/core/tools/write.d.ts.map +1 -1
  452. package/dist/core/tools/write.js +4 -4
  453. package/dist/core/tools/write.js.map +1 -1
  454. package/dist/encoding/index.d.ts +6 -0
  455. package/dist/encoding/index.d.ts.map +1 -0
  456. package/dist/encoding/index.js +6 -0
  457. package/dist/encoding/index.js.map +1 -0
  458. package/dist/encoding/l4-encoder.d.ts +96 -0
  459. package/dist/encoding/l4-encoder.d.ts.map +1 -0
  460. package/dist/encoding/l4-encoder.js +474 -0
  461. package/dist/encoding/l4-encoder.js.map +1 -0
  462. package/dist/fuzzing/index.d.ts +6 -0
  463. package/dist/fuzzing/index.d.ts.map +1 -0
  464. package/dist/fuzzing/index.js +6 -0
  465. package/dist/fuzzing/index.js.map +1 -0
  466. package/dist/fuzzing/mutation-engine.d.ts +93 -0
  467. package/dist/fuzzing/mutation-engine.d.ts.map +1 -0
  468. package/dist/fuzzing/mutation-engine.js +244 -0
  469. package/dist/fuzzing/mutation-engine.js.map +1 -0
  470. package/dist/guardrails/audit-logger.d.ts +4 -0
  471. package/dist/guardrails/audit-logger.d.ts.map +1 -0
  472. package/dist/guardrails/audit-logger.js +28 -0
  473. package/dist/guardrails/audit-logger.js.map +1 -0
  474. package/dist/guardrails/evidence-system.d.ts +61 -0
  475. package/dist/guardrails/evidence-system.d.ts.map +1 -0
  476. package/dist/guardrails/evidence-system.js +302 -0
  477. package/dist/guardrails/evidence-system.js.map +1 -0
  478. package/dist/guardrails/freedomd-adapter.d.ts +16 -0
  479. package/dist/guardrails/freedomd-adapter.d.ts.map +1 -0
  480. package/dist/guardrails/freedomd-adapter.js +87 -0
  481. package/dist/guardrails/freedomd-adapter.js.map +1 -0
  482. package/dist/index.d.ts +4 -19
  483. package/dist/index.d.ts.map +1 -1
  484. package/dist/index.js +2 -17
  485. package/dist/index.js.map +1 -1
  486. package/dist/jailbreak-extension.d.ts +48 -0
  487. package/dist/jailbreak-extension.d.ts.map +1 -0
  488. package/dist/jailbreak-extension.js +47 -0
  489. package/dist/jailbreak-extension.js.map +1 -0
  490. package/dist/main.d.ts.map +1 -1
  491. package/dist/main.js +2 -2
  492. package/dist/main.js.map +1 -1
  493. package/dist/migrations.d.ts +0 -37
  494. package/dist/migrations.d.ts.map +1 -1
  495. package/dist/migrations.js +6 -414
  496. package/dist/migrations.js.map +1 -1
  497. package/dist/modes/interactive/components/armin.d.ts +1 -1
  498. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  499. package/dist/modes/interactive/components/armin.js.map +1 -1
  500. package/dist/modes/interactive/components/assistant-message.d.ts +2 -2
  501. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  502. package/dist/modes/interactive/components/assistant-message.js +1 -1
  503. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  504. package/dist/modes/interactive/components/bash-execution.d.ts +1 -1
  505. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  506. package/dist/modes/interactive/components/bash-execution.js +1 -1
  507. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  508. package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
  509. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  510. package/dist/modes/interactive/components/bordered-loader.js +1 -1
  511. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  512. package/dist/modes/interactive/components/branch-summary-message.d.ts +1 -1
  513. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  514. package/dist/modes/interactive/components/branch-summary-message.js +1 -1
  515. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  516. package/dist/modes/interactive/components/compaction-summary-message.d.ts +1 -1
  517. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  518. package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
  519. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  520. package/dist/modes/interactive/components/config-selector.d.ts +1 -1
  521. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  522. package/dist/modes/interactive/components/config-selector.js +1 -1
  523. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  524. package/dist/modes/interactive/components/control-panel-box.d.ts +15 -0
  525. package/dist/modes/interactive/components/control-panel-box.d.ts.map +1 -0
  526. package/dist/modes/interactive/components/control-panel-box.js +55 -0
  527. package/dist/modes/interactive/components/control-panel-box.js.map +1 -0
  528. package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts.map +1 -1
  529. package/dist/modes/interactive/components/control-panel-gradient-motion.js +2 -36
  530. package/dist/modes/interactive/components/control-panel-gradient-motion.js.map +1 -1
  531. package/dist/modes/interactive/components/control-panel-gradient.d.ts +1 -0
  532. package/dist/modes/interactive/components/control-panel-gradient.d.ts.map +1 -1
  533. package/dist/modes/interactive/components/control-panel-gradient.js +6 -5
  534. package/dist/modes/interactive/components/control-panel-gradient.js.map +1 -1
  535. package/dist/modes/interactive/components/control-panel-layout.d.ts +23 -0
  536. package/dist/modes/interactive/components/control-panel-layout.d.ts.map +1 -0
  537. package/dist/modes/interactive/components/control-panel-layout.js +165 -0
  538. package/dist/modes/interactive/components/control-panel-layout.js.map +1 -0
  539. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts +5 -0
  540. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts.map +1 -0
  541. package/dist/modes/interactive/components/control-panel-runtime-status.js +20 -0
  542. package/dist/modes/interactive/components/control-panel-runtime-status.js.map +1 -0
  543. package/dist/modes/interactive/components/control-panel.d.ts +8 -31
  544. package/dist/modes/interactive/components/control-panel.d.ts.map +1 -1
  545. package/dist/modes/interactive/components/control-panel.js +38 -169
  546. package/dist/modes/interactive/components/control-panel.js.map +1 -1
  547. package/dist/modes/interactive/components/countdown-timer.d.ts +1 -1
  548. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  549. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  550. package/dist/modes/interactive/components/custom-editor.d.ts +1 -1
  551. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  552. package/dist/modes/interactive/components/custom-editor.js +14 -22
  553. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  554. package/dist/modes/interactive/components/custom-message.d.ts +1 -1
  555. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  556. package/dist/modes/interactive/components/custom-message.js +1 -1
  557. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  558. package/dist/modes/interactive/components/daxnuts.d.ts +1 -1
  559. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  560. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  561. package/dist/modes/interactive/components/dynamic-border.d.ts +1 -1
  562. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  563. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  564. package/dist/modes/interactive/components/earendil-announcement.d.ts +1 -1
  565. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  566. package/dist/modes/interactive/components/earendil-announcement.js +1 -1
  567. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  568. package/dist/modes/interactive/components/extension-editor.d.ts +1 -1
  569. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  570. package/dist/modes/interactive/components/extension-editor.js +1 -1
  571. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  572. package/dist/modes/interactive/components/extension-input.d.ts +1 -1
  573. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  574. package/dist/modes/interactive/components/extension-input.js +1 -1
  575. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  576. package/dist/modes/interactive/components/extension-selector.d.ts +1 -1
  577. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  578. package/dist/modes/interactive/components/extension-selector.js +1 -1
  579. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  580. package/dist/modes/interactive/components/footer.d.ts +1 -1
  581. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  582. package/dist/modes/interactive/components/footer.js +1 -9
  583. package/dist/modes/interactive/components/footer.js.map +1 -1
  584. package/dist/modes/interactive/components/index.d.ts +0 -2
  585. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  586. package/dist/modes/interactive/components/index.js +0 -2
  587. package/dist/modes/interactive/components/index.js.map +1 -1
  588. package/dist/modes/interactive/components/keybinding-hints.d.ts +1 -1
  589. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  590. package/dist/modes/interactive/components/keybinding-hints.js +1 -1
  591. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  592. package/dist/modes/interactive/components/login-dialog.d.ts +2 -2
  593. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  594. package/dist/modes/interactive/components/login-dialog.js +2 -2
  595. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  596. package/dist/modes/interactive/components/model-selector.d.ts +13 -47
  597. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  598. package/dist/modes/interactive/components/model-selector.js +118 -193
  599. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  600. package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
  601. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  602. package/dist/modes/interactive/components/oauth-selector.js +1 -1
  603. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  604. package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
  605. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  606. package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
  607. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  608. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  609. package/dist/modes/interactive/components/session-selector-search.js +1 -1
  610. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  611. package/dist/modes/interactive/components/session-selector.d.ts +1 -1
  612. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  613. package/dist/modes/interactive/components/session-selector.js +1 -1
  614. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  615. package/dist/modes/interactive/components/settings-selector.d.ts +3 -3
  616. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  617. package/dist/modes/interactive/components/settings-selector.js +1 -1
  618. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  619. package/dist/modes/interactive/components/show-images-selector.d.ts +1 -1
  620. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  621. package/dist/modes/interactive/components/show-images-selector.js +1 -1
  622. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  623. package/dist/modes/interactive/components/skill-invocation-message.d.ts +1 -1
  624. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  625. package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
  626. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  627. package/dist/modes/interactive/components/theme-selector.d.ts +1 -2
  628. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  629. package/dist/modes/interactive/components/theme-selector.js +2 -11
  630. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  631. package/dist/modes/interactive/components/thinking-selector.d.ts +8 -7
  632. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  633. package/dist/modes/interactive/components/thinking-selector.js +48 -7
  634. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  635. package/dist/modes/interactive/components/todo-checklist.d.ts +31 -0
  636. package/dist/modes/interactive/components/todo-checklist.d.ts.map +1 -0
  637. package/dist/modes/interactive/components/todo-checklist.js +121 -0
  638. package/dist/modes/interactive/components/todo-checklist.js.map +1 -0
  639. package/dist/modes/interactive/components/tool-execution.d.ts +1 -1
  640. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  641. package/dist/modes/interactive/components/tool-execution.js +1 -1
  642. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  643. package/dist/modes/interactive/components/tree-selector.d.ts +1 -1
  644. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  645. package/dist/modes/interactive/components/tree-selector.js +1 -1
  646. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  647. package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
  648. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  649. package/dist/modes/interactive/components/user-message-selector.js +1 -1
  650. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  651. package/dist/modes/interactive/components/user-message.d.ts +1 -1
  652. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  653. package/dist/modes/interactive/components/user-message.js +1 -1
  654. package/dist/modes/interactive/components/user-message.js.map +1 -1
  655. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  656. package/dist/modes/interactive/components/visual-truncate.js +1 -1
  657. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  658. package/dist/modes/interactive/interactive-mode.d.ts +3 -8
  659. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  660. package/dist/modes/interactive/interactive-mode.js +74 -232
  661. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  662. package/dist/modes/interactive/theme/omk-control-grid-dark.json +65 -77
  663. package/dist/modes/interactive/theme/omk-neon-control.json +90 -0
  664. package/dist/modes/interactive/theme/rust-forge.json +14 -24
  665. package/dist/modes/interactive/theme/theme.d.ts +1 -1
  666. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  667. package/dist/modes/interactive/theme/theme.js +22 -45
  668. package/dist/modes/interactive/theme/theme.js.map +1 -1
  669. package/dist/modes/print-mode.d.ts +1 -1
  670. package/dist/modes/print-mode.d.ts.map +1 -1
  671. package/dist/modes/print-mode.js.map +1 -1
  672. package/dist/modes/rpc/rpc-client.d.ts +2 -2
  673. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  674. package/dist/modes/rpc/rpc-client.js.map +1 -1
  675. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  676. package/dist/modes/rpc/rpc-mode.js +0 -4
  677. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  678. package/dist/modes/rpc/rpc-types.d.ts +2 -2
  679. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  680. package/dist/modes/rpc/rpc-types.js.map +1 -1
  681. package/dist/modules/index.d.ts +8 -0
  682. package/dist/modules/index.d.ts.map +1 -0
  683. package/dist/modules/index.js +7 -0
  684. package/dist/modules/index.js.map +1 -0
  685. package/dist/modules/lrl-bypass.d.ts +40 -0
  686. package/dist/modules/lrl-bypass.d.ts.map +1 -0
  687. package/dist/modules/lrl-bypass.js +84 -0
  688. package/dist/modules/lrl-bypass.js.map +1 -0
  689. package/dist/modules/lrl-deps.d.ts +38 -0
  690. package/dist/modules/lrl-deps.d.ts.map +1 -0
  691. package/dist/modules/lrl-deps.js +128 -0
  692. package/dist/modules/lrl-deps.js.map +1 -0
  693. package/dist/multiturn/easl-chain.d.ts +113 -0
  694. package/dist/multiturn/easl-chain.d.ts.map +1 -0
  695. package/dist/multiturn/easl-chain.js +351 -0
  696. package/dist/multiturn/easl-chain.js.map +1 -0
  697. package/dist/multiturn/index.d.ts +6 -0
  698. package/dist/multiturn/index.d.ts.map +1 -0
  699. package/dist/multiturn/index.js +6 -0
  700. package/dist/multiturn/index.js.map +1 -0
  701. package/dist/orchestration/lane-grant-auditor.d.ts +4 -0
  702. package/dist/orchestration/lane-grant-auditor.d.ts.map +1 -0
  703. package/dist/orchestration/lane-grant-auditor.js +87 -0
  704. package/dist/orchestration/lane-grant-auditor.js.map +1 -0
  705. package/dist/package-manager-cli.d.ts.map +1 -1
  706. package/dist/package-manager-cli.js +48 -113
  707. package/dist/package-manager-cli.js.map +1 -1
  708. package/dist/routing/fallback-router.d.ts +123 -0
  709. package/dist/routing/fallback-router.d.ts.map +1 -0
  710. package/dist/routing/fallback-router.js +355 -0
  711. package/dist/routing/fallback-router.js.map +1 -0
  712. package/dist/routing/index.d.ts +6 -0
  713. package/dist/routing/index.d.ts.map +1 -0
  714. package/dist/routing/index.js +6 -0
  715. package/dist/routing/index.js.map +1 -0
  716. package/dist/types/evidence.d.ts +117 -0
  717. package/dist/types/evidence.d.ts.map +1 -0
  718. package/dist/types/evidence.js +8 -0
  719. package/dist/types/evidence.js.map +1 -0
  720. package/dist/types/guardrails.d.ts +61 -0
  721. package/dist/types/guardrails.d.ts.map +1 -0
  722. package/dist/types/guardrails.js +9 -0
  723. package/dist/types/guardrails.js.map +1 -0
  724. package/dist/types/jailbreak.d.ts +246 -0
  725. package/dist/types/jailbreak.d.ts.map +1 -0
  726. package/dist/types/jailbreak.js +8 -0
  727. package/dist/types/jailbreak.js.map +1 -0
  728. package/dist/types/lane-grant.d.ts +58 -0
  729. package/dist/types/lane-grant.d.ts.map +1 -0
  730. package/dist/types/lane-grant.js +9 -0
  731. package/dist/types/lane-grant.js.map +1 -0
  732. package/dist/utils/jailbreak/common.d.ts +63 -0
  733. package/dist/utils/jailbreak/common.d.ts.map +1 -0
  734. package/dist/utils/jailbreak/common.js +130 -0
  735. package/dist/utils/jailbreak/common.js.map +1 -0
  736. package/dist/utils/jailbreak/index.d.ts +7 -0
  737. package/dist/utils/jailbreak/index.d.ts.map +1 -0
  738. package/dist/utils/jailbreak/index.js +7 -0
  739. package/dist/utils/jailbreak/index.js.map +1 -0
  740. package/dist/utils/windows-self-update.d.ts.map +1 -1
  741. package/dist/utils/windows-self-update.js +1 -1
  742. package/dist/utils/windows-self-update.js.map +1 -1
  743. package/docs/compaction.md +8 -21
  744. package/docs/custom-provider.md +2 -2
  745. package/docs/development.md +1 -1
  746. package/docs/extensions.md +11 -11
  747. package/docs/loadout-domains/README.md +70 -0
  748. package/docs/loadout-domains/ai-agent-ops.md +94 -0
  749. package/docs/loadout-domains/backend-api.md +116 -0
  750. package/docs/loadout-domains/data-science.md +100 -0
  751. package/docs/loadout-domains/devops-infra.md +85 -0
  752. package/docs/loadout-domains/docs-writing.md +92 -0
  753. package/docs/loadout-domains/frontend-ui.md +128 -0
  754. package/docs/loadout-domains/general.md +62 -0
  755. package/docs/loadout-domains/mobile.md +84 -0
  756. package/docs/loadout-domains/qa-testing.md +87 -0
  757. package/docs/loadout-domains/research.md +80 -0
  758. package/docs/loadout-domains/security-audit.md +97 -0
  759. package/docs/packages.md +7 -48
  760. package/docs/prompt-templates.md +0 -2
  761. package/docs/sdk.md +3 -3
  762. package/docs/security.md +145 -0
  763. package/docs/session-format.md +1 -1
  764. package/docs/themes.md +8 -7
  765. package/docs/tui.md +14 -14
  766. package/docs/usage.md +6 -16
  767. package/examples/extensions/README.md +2 -2
  768. package/examples/extensions/aside-computer-use/README.md +114 -0
  769. package/examples/extensions/aside-computer-use/action-scoring.ts +122 -0
  770. package/examples/extensions/aside-computer-use/assertions.ts +380 -0
  771. package/examples/extensions/aside-computer-use/controller.ts +491 -0
  772. package/examples/extensions/aside-computer-use/evidence.ts +229 -0
  773. package/examples/extensions/aside-computer-use/golden-trace.ts +141 -0
  774. package/examples/extensions/aside-computer-use/index.ts +76 -0
  775. package/examples/extensions/aside-computer-use/mcp-client.ts +381 -0
  776. package/examples/extensions/aside-computer-use/observation-snapshot.ts +121 -0
  777. package/examples/extensions/aside-computer-use/package.json +16 -0
  778. package/examples/extensions/aside-computer-use/policy.ts +257 -0
  779. package/examples/extensions/aside-computer-use/risk-authorize.ts +200 -0
  780. package/examples/extensions/aside-computer-use/risk-classifier.ts +205 -0
  781. package/examples/extensions/aside-computer-use/schema-fingerprint.ts +80 -0
  782. package/examples/extensions/aside-computer-use/session-binding.ts +161 -0
  783. package/examples/extensions/aside-computer-use/tools.ts +449 -0
  784. package/examples/extensions/aside-computer-use/types.ts +217 -0
  785. package/examples/extensions/aside-computer-use/url-origin.ts +132 -0
  786. package/examples/extensions/bash-spawn-hook.ts +1 -1
  787. package/examples/extensions/border-status-editor.ts +2 -2
  788. package/examples/extensions/built-in-tool-renderer.ts +1 -1
  789. package/examples/extensions/custom-compaction.ts +1 -1
  790. package/examples/extensions/custom-footer.ts +2 -2
  791. package/examples/extensions/custom-header.ts +8 -8
  792. package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
  793. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  794. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  795. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  796. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  797. package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
  798. package/examples/extensions/doom-overlay/README.md +1 -2
  799. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  800. package/examples/extensions/doom-overlay/doom/build.sh +4 -4
  801. package/examples/extensions/doom-overlay/doom/doomgeneric_omk.c +72 -0
  802. package/examples/extensions/doom-overlay/doom-component.ts +2 -2
  803. package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
  804. package/examples/extensions/git-merge-and-resolve.ts +1 -1
  805. package/examples/extensions/github-issue-autocomplete.ts +1 -6
  806. package/examples/extensions/gondolin/index.ts +1 -1
  807. package/examples/extensions/gondolin/package-lock.json +2 -2
  808. package/examples/extensions/gondolin/package.json +1 -1
  809. package/examples/extensions/handoff.ts +2 -2
  810. package/examples/extensions/hello.ts +1 -1
  811. package/examples/extensions/inline-bash.ts +1 -1
  812. package/examples/extensions/input-transform-streaming.ts +1 -1
  813. package/examples/extensions/input-transform.ts +2 -2
  814. package/examples/extensions/mac-system-theme.ts +1 -1
  815. package/examples/extensions/message-renderer.ts +1 -1
  816. package/examples/extensions/minimal-mode.ts +1 -1
  817. package/examples/extensions/modal-editor.ts +1 -1
  818. package/examples/extensions/overlay-qa-tests.ts +7 -7
  819. package/examples/extensions/overlay-test.ts +1 -1
  820. package/examples/extensions/plan-mode/index.ts +3 -3
  821. package/examples/extensions/preset.ts +4 -4
  822. package/examples/extensions/provider-payload.ts +6 -3
  823. package/examples/extensions/qna.ts +1 -1
  824. package/examples/extensions/question.ts +1 -1
  825. package/examples/extensions/questionnaire.ts +1 -1
  826. package/examples/extensions/rpc-demo.ts +1 -1
  827. package/examples/extensions/sandbox/index.ts +2 -2
  828. package/examples/extensions/sandbox/package-lock.json +2 -2
  829. package/examples/extensions/sandbox/package.json +1 -1
  830. package/examples/extensions/shutdown-command.ts +5 -5
  831. package/examples/extensions/snake.ts +1 -1
  832. package/examples/extensions/space-invaders.ts +1 -1
  833. package/examples/extensions/structured-output.ts +1 -1
  834. package/examples/extensions/subagent/agents.ts +2 -2
  835. package/examples/extensions/subagent/index.ts +19 -51
  836. package/examples/extensions/summarize.ts +2 -2
  837. package/examples/extensions/tic-tac-toe.ts +2 -2
  838. package/examples/extensions/todo.ts +2 -2
  839. package/examples/extensions/tool-override.ts +1 -1
  840. package/examples/extensions/tools.ts +1 -1
  841. package/examples/extensions/truncated-tool.ts +1 -1
  842. package/examples/extensions/with-deps/package-lock.json +2 -2
  843. package/examples/extensions/with-deps/package.json +1 -1
  844. package/examples/extensions/working-indicator.ts +3 -3
  845. package/examples/rpc-extension-ui.ts +1 -9
  846. package/examples/sdk/02-custom-model.ts +1 -1
  847. package/examples/sdk/07-context-files.ts +0 -2
  848. package/examples/sdk/12-full-control.ts +1 -1
  849. package/examples/sdk/README.md +1 -1
  850. package/npm-shrinkwrap.json +1805 -0
  851. package/package.json +10 -32
  852. package/dist/core/compaction/pruner-policy.d.ts +0 -84
  853. package/dist/core/compaction/pruner-policy.d.ts.map +0 -1
  854. package/dist/core/compaction/pruner-policy.js +0 -273
  855. package/dist/core/compaction/pruner-policy.js.map +0 -1
  856. package/dist/core/context-graph-identity-resolution.d.ts +0 -114
  857. package/dist/core/context-graph-identity-resolution.d.ts.map +0 -1
  858. package/dist/core/context-graph-identity-resolution.js +0 -127
  859. package/dist/core/context-graph-identity-resolution.js.map +0 -1
  860. package/dist/core/context-graph-memory-store.d.ts +0 -153
  861. package/dist/core/context-graph-memory-store.d.ts.map +0 -1
  862. package/dist/core/context-graph-memory-store.js +0 -377
  863. package/dist/core/context-graph-memory-store.js.map +0 -1
  864. package/dist/core/context-graph-ontology-generation.d.ts +0 -104
  865. package/dist/core/context-graph-ontology-generation.d.ts.map +0 -1
  866. package/dist/core/context-graph-ontology-generation.js +0 -135
  867. package/dist/core/context-graph-ontology-generation.js.map +0 -1
  868. package/dist/core/context-graph-ontology-registry.d.ts +0 -766
  869. package/dist/core/context-graph-ontology-registry.d.ts.map +0 -1
  870. package/dist/core/context-graph-ontology-registry.js +0 -1133
  871. package/dist/core/context-graph-ontology-registry.js.map +0 -1
  872. package/dist/core/context-graph-policy.d.ts +0 -68
  873. package/dist/core/context-graph-policy.d.ts.map +0 -1
  874. package/dist/core/context-graph-policy.js +0 -221
  875. package/dist/core/context-graph-policy.js.map +0 -1
  876. package/dist/core/context-graph-reasoning.d.ts +0 -130
  877. package/dist/core/context-graph-reasoning.d.ts.map +0 -1
  878. package/dist/core/context-graph-reasoning.js +0 -442
  879. package/dist/core/context-graph-reasoning.js.map +0 -1
  880. package/dist/core/context-graph-retrieval.d.ts +0 -120
  881. package/dist/core/context-graph-retrieval.d.ts.map +0 -1
  882. package/dist/core/context-graph-retrieval.js +0 -288
  883. package/dist/core/context-graph-retrieval.js.map +0 -1
  884. package/dist/core/contract-verification.d.ts +0 -78
  885. package/dist/core/contract-verification.d.ts.map +0 -1
  886. package/dist/core/contract-verification.js +0 -110
  887. package/dist/core/contract-verification.js.map +0 -1
  888. package/dist/core/freedom/banner.d.ts +0 -14
  889. package/dist/core/freedom/banner.d.ts.map +0 -1
  890. package/dist/core/freedom/banner.js +0 -22
  891. package/dist/core/freedom/banner.js.map +0 -1
  892. package/dist/core/freedom/config.d.ts +0 -27
  893. package/dist/core/freedom/config.d.ts.map +0 -1
  894. package/dist/core/freedom/config.js +0 -216
  895. package/dist/core/freedom/config.js.map +0 -1
  896. package/dist/core/freedom/index.d.ts +0 -23
  897. package/dist/core/freedom/index.d.ts.map +0 -1
  898. package/dist/core/freedom/index.js +0 -19
  899. package/dist/core/freedom/index.js.map +0 -1
  900. package/dist/core/freedom/policy.d.ts +0 -42
  901. package/dist/core/freedom/policy.d.ts.map +0 -1
  902. package/dist/core/freedom/policy.js +0 -47
  903. package/dist/core/freedom/policy.js.map +0 -1
  904. package/dist/core/freedom/safety-floor.d.ts +0 -73
  905. package/dist/core/freedom/safety-floor.d.ts.map +0 -1
  906. package/dist/core/freedom/safety-floor.js +0 -275
  907. package/dist/core/freedom/safety-floor.js.map +0 -1
  908. package/dist/core/harness-control-events.d.ts +0 -91
  909. package/dist/core/harness-control-events.d.ts.map +0 -1
  910. package/dist/core/harness-control-events.js +0 -514
  911. package/dist/core/harness-control-events.js.map +0 -1
  912. package/dist/core/harness-control-replay.d.ts +0 -31
  913. package/dist/core/harness-control-replay.d.ts.map +0 -1
  914. package/dist/core/harness-control-replay.js +0 -187
  915. package/dist/core/harness-control-replay.js.map +0 -1
  916. package/dist/core/headroom-middleware.d.ts +0 -35
  917. package/dist/core/headroom-middleware.d.ts.map +0 -1
  918. package/dist/core/headroom-middleware.js +0 -166
  919. package/dist/core/headroom-middleware.js.map +0 -1
  920. package/dist/core/lean-context-middleware.d.ts +0 -12
  921. package/dist/core/lean-context-middleware.d.ts.map +0 -1
  922. package/dist/core/lean-context-middleware.js +0 -87
  923. package/dist/core/lean-context-middleware.js.map +0 -1
  924. package/dist/core/lean-context-policy.d.ts +0 -45
  925. package/dist/core/lean-context-policy.d.ts.map +0 -1
  926. package/dist/core/lean-context-policy.js +0 -108
  927. package/dist/core/lean-context-policy.js.map +0 -1
  928. package/dist/core/native-adoption-benchmark.d.ts +0 -166
  929. package/dist/core/native-adoption-benchmark.d.ts.map +0 -1
  930. package/dist/core/native-adoption-benchmark.js +0 -624
  931. package/dist/core/native-adoption-benchmark.js.map +0 -1
  932. package/dist/core/observability-trace.d.ts +0 -80
  933. package/dist/core/observability-trace.d.ts.map +0 -1
  934. package/dist/core/observability-trace.js +0 -140
  935. package/dist/core/observability-trace.js.map +0 -1
  936. package/dist/core/orchestration/checkpoint.d.ts +0 -83
  937. package/dist/core/orchestration/checkpoint.d.ts.map +0 -1
  938. package/dist/core/orchestration/checkpoint.js +0 -152
  939. package/dist/core/orchestration/checkpoint.js.map +0 -1
  940. package/dist/core/orchestration/errors.d.ts +0 -74
  941. package/dist/core/orchestration/errors.d.ts.map +0 -1
  942. package/dist/core/orchestration/errors.js +0 -52
  943. package/dist/core/orchestration/errors.js.map +0 -1
  944. package/dist/core/orchestration/merge-queue.d.ts +0 -121
  945. package/dist/core/orchestration/merge-queue.d.ts.map +0 -1
  946. package/dist/core/orchestration/merge-queue.js +0 -149
  947. package/dist/core/orchestration/merge-queue.js.map +0 -1
  948. package/dist/core/orchestration/recovery.d.ts +0 -106
  949. package/dist/core/orchestration/recovery.d.ts.map +0 -1
  950. package/dist/core/orchestration/recovery.js +0 -110
  951. package/dist/core/orchestration/recovery.js.map +0 -1
  952. package/dist/core/orchestration/replay-ledger.d.ts +0 -76
  953. package/dist/core/orchestration/replay-ledger.d.ts.map +0 -1
  954. package/dist/core/orchestration/replay-ledger.js +0 -395
  955. package/dist/core/orchestration/replay-ledger.js.map +0 -1
  956. package/dist/core/orchestration/scheduler-state.d.ts +0 -78
  957. package/dist/core/orchestration/scheduler-state.d.ts.map +0 -1
  958. package/dist/core/orchestration/scheduler-state.js +0 -185
  959. package/dist/core/orchestration/scheduler-state.js.map +0 -1
  960. package/dist/core/orchestration/scheduler-store.d.ts +0 -309
  961. package/dist/core/orchestration/scheduler-store.d.ts.map +0 -1
  962. package/dist/core/orchestration/scheduler-store.js +0 -368
  963. package/dist/core/orchestration/scheduler-store.js.map +0 -1
  964. package/dist/core/orchestration/sqlite-scheduler-store.d.ts +0 -57
  965. package/dist/core/orchestration/sqlite-scheduler-store.d.ts.map +0 -1
  966. package/dist/core/orchestration/sqlite-scheduler-store.js +0 -528
  967. package/dist/core/orchestration/sqlite-scheduler-store.js.map +0 -1
  968. package/dist/core/orchestration/transaction-coordinator.d.ts +0 -217
  969. package/dist/core/orchestration/transaction-coordinator.d.ts.map +0 -1
  970. package/dist/core/orchestration/transaction-coordinator.js +0 -281
  971. package/dist/core/orchestration/transaction-coordinator.js.map +0 -1
  972. package/dist/core/orchestration/verification-contract.d.ts +0 -197
  973. package/dist/core/orchestration/verification-contract.d.ts.map +0 -1
  974. package/dist/core/orchestration/verification-contract.js +0 -145
  975. package/dist/core/orchestration/verification-contract.js.map +0 -1
  976. package/dist/core/package-composition.d.ts +0 -68
  977. package/dist/core/package-composition.d.ts.map +0 -1
  978. package/dist/core/package-composition.js +0 -304
  979. package/dist/core/package-composition.js.map +0 -1
  980. package/dist/core/package-trial-runtime.d.ts +0 -75
  981. package/dist/core/package-trial-runtime.d.ts.map +0 -1
  982. package/dist/core/package-trial-runtime.js +0 -73
  983. package/dist/core/package-trial-runtime.js.map +0 -1
  984. package/dist/core/package-trial-sandbox.d.ts +0 -27
  985. package/dist/core/package-trial-sandbox.d.ts.map +0 -1
  986. package/dist/core/package-trial-sandbox.js +0 -102
  987. package/dist/core/package-trial-sandbox.js.map +0 -1
  988. package/dist/core/policy-overlays-runtime.d.ts +0 -141
  989. package/dist/core/policy-overlays-runtime.d.ts.map +0 -1
  990. package/dist/core/policy-overlays-runtime.js +0 -720
  991. package/dist/core/policy-overlays-runtime.js.map +0 -1
  992. package/dist/core/read-anchor-registry.d.ts +0 -27
  993. package/dist/core/read-anchor-registry.d.ts.map +0 -1
  994. package/dist/core/read-anchor-registry.js +0 -103
  995. package/dist/core/read-anchor-registry.js.map +0 -1
  996. package/dist/core/read-content-cache.d.ts +0 -22
  997. package/dist/core/read-content-cache.d.ts.map +0 -1
  998. package/dist/core/read-content-cache.js +0 -79
  999. package/dist/core/read-content-cache.js.map +0 -1
  1000. package/dist/core/session-digest.d.ts +0 -57
  1001. package/dist/core/session-digest.d.ts.map +0 -1
  1002. package/dist/core/session-digest.js +0 -193
  1003. package/dist/core/session-digest.js.map +0 -1
  1004. package/dist/core/spec-kit/compiler.d.ts +0 -67
  1005. package/dist/core/spec-kit/compiler.d.ts.map +0 -1
  1006. package/dist/core/spec-kit/compiler.js +0 -268
  1007. package/dist/core/spec-kit/compiler.js.map +0 -1
  1008. package/dist/core/transaction-coordinator.d.ts +0 -30
  1009. package/dist/core/transaction-coordinator.d.ts.map +0 -1
  1010. package/dist/core/transaction-coordinator.js +0 -173
  1011. package/dist/core/transaction-coordinator.js.map +0 -1
  1012. package/dist/modes/interactive/components/mcp-selector.d.ts +0 -30
  1013. package/dist/modes/interactive/components/mcp-selector.d.ts.map +0 -1
  1014. package/dist/modes/interactive/components/mcp-selector.js +0 -155
  1015. package/dist/modes/interactive/components/mcp-selector.js.map +0 -1
  1016. package/dist/modes/interactive/components/model-selector-state.d.ts +0 -101
  1017. package/dist/modes/interactive/components/model-selector-state.d.ts.map +0 -1
  1018. package/dist/modes/interactive/components/model-selector-state.js +0 -261
  1019. package/dist/modes/interactive/components/model-selector-state.js.map +0 -1
  1020. package/dist/modes/interactive/components/skills-selector.d.ts +0 -32
  1021. package/dist/modes/interactive/components/skills-selector.d.ts.map +0 -1
  1022. package/dist/modes/interactive/components/skills-selector.js +0 -130
  1023. package/dist/modes/interactive/components/skills-selector.js.map +0 -1
  1024. package/dist/modes/interactive/theme/omk-blackboard.json +0 -91
  1025. package/dist/modes/interactive/theme/omk-freedom-grid.json +0 -91
  1026. package/dist/modes/interactive/theme/omk-neon-ops.json +0 -90
  1027. package/dist/modes/interactive/theme/omk-slate-light.json +0 -91
  1028. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -72
  1029. package/node_modules/@earendil-works/omk-agent-core/README.md +0 -488
  1030. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts +0 -24
  1031. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts.map +0 -1
  1032. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js +0 -553
  1033. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js.map +0 -1
  1034. package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts +0 -118
  1035. package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts.map +0 -1
  1036. package/node_modules/@earendil-works/omk-agent-core/dist/agent.js +0 -402
  1037. package/node_modules/@earendil-works/omk-agent-core/dist/agent.js.map +0 -1
  1038. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts +0 -95
  1039. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts.map +0 -1
  1040. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js +0 -996
  1041. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js.map +0 -1
  1042. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts +0 -53
  1043. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +0 -1
  1044. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js +0 -175
  1045. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js.map +0 -1
  1046. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts +0 -117
  1047. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts.map +0 -1
  1048. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js +0 -568
  1049. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js.map +0 -1
  1050. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts +0 -25
  1051. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts.map +0 -1
  1052. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js +0 -131
  1053. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js.map +0 -1
  1054. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts +0 -51
  1055. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts.map +0 -1
  1056. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js +0 -510
  1057. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js.map +0 -1
  1058. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts +0 -51
  1059. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts.map +0 -1
  1060. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js +0 -102
  1061. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js.map +0 -1
  1062. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts +0 -48
  1063. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts.map +0 -1
  1064. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js +0 -230
  1065. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js.map +0 -1
  1066. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts +0 -26
  1067. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts.map +0 -1
  1068. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js +0 -101
  1069. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js.map +0 -1
  1070. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts +0 -36
  1071. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts.map +0 -1
  1072. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js +0 -273
  1073. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js.map +0 -1
  1074. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts +0 -18
  1075. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts.map +0 -1
  1076. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js +0 -42
  1077. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js.map +0 -1
  1078. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts +0 -25
  1079. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts.map +0 -1
  1080. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js +0 -114
  1081. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js.map +0 -1
  1082. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts +0 -11
  1083. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts.map +0 -1
  1084. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js +0 -39
  1085. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js.map +0 -1
  1086. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts +0 -33
  1087. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts.map +0 -1
  1088. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js +0 -210
  1089. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js.map +0 -1
  1090. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts +0 -2
  1091. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts.map +0 -1
  1092. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js +0 -50
  1093. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js.map +0 -1
  1094. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts +0 -44
  1095. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts.map +0 -1
  1096. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js +0 -311
  1097. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js.map +0 -1
  1098. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts +0 -3
  1099. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts.map +0 -1
  1100. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js +0 -30
  1101. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js.map +0 -1
  1102. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts +0 -616
  1103. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts.map +0 -1
  1104. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js +0 -94
  1105. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js.map +0 -1
  1106. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts +0 -14
  1107. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts.map +0 -1
  1108. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js +0 -126
  1109. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js.map +0 -1
  1110. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts +0 -70
  1111. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts.map +0 -1
  1112. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js +0 -297
  1113. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js.map +0 -1
  1114. package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts +0 -20
  1115. package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts.map +0 -1
  1116. package/node_modules/@earendil-works/omk-agent-core/dist/index.js +0 -25
  1117. package/node_modules/@earendil-works/omk-agent-core/dist/index.js.map +0 -1
  1118. package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts +0 -3
  1119. package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts.map +0 -1
  1120. package/node_modules/@earendil-works/omk-agent-core/dist/node.js +0 -3
  1121. package/node_modules/@earendil-works/omk-agent-core/dist/node.js.map +0 -1
  1122. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts +0 -69
  1123. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts.map +0 -1
  1124. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js +0 -278
  1125. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js.map +0 -1
  1126. package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts +0 -393
  1127. package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts.map +0 -1
  1128. package/node_modules/@earendil-works/omk-agent-core/dist/types.js +0 -2
  1129. package/node_modules/@earendil-works/omk-agent-core/dist/types.js.map +0 -1
  1130. package/node_modules/@earendil-works/omk-agent-core/package.json +0 -60
  1131. package/node_modules/@earendil-works/omk-ai/README.md +0 -1389
  1132. package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts +0 -20
  1133. package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts.map +0 -1
  1134. package/node_modules/@earendil-works/omk-ai/dist/api-registry.js +0 -44
  1135. package/node_modules/@earendil-works/omk-ai/dist/api-registry.js.map +0 -1
  1136. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts +0 -5
  1137. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts.map +0 -1
  1138. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js +0 -6
  1139. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js.map +0 -1
  1140. package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts +0 -3
  1141. package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts.map +0 -1
  1142. package/node_modules/@earendil-works/omk-ai/dist/cli.js +0 -130
  1143. package/node_modules/@earendil-works/omk-ai/dist/cli.js.map +0 -1
  1144. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts +0 -20
  1145. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts.map +0 -1
  1146. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js +0 -199
  1147. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js.map +0 -1
  1148. package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts +0 -10
  1149. package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts.map +0 -1
  1150. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts +0 -515
  1151. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts.map +0 -1
  1152. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js +0 -517
  1153. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js.map +0 -1
  1154. package/node_modules/@earendil-works/omk-ai/dist/image-models.js +0 -23
  1155. package/node_modules/@earendil-works/omk-ai/dist/image-models.js.map +0 -1
  1156. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts +0 -14
  1157. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts.map +0 -1
  1158. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js +0 -22
  1159. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js.map +0 -1
  1160. package/node_modules/@earendil-works/omk-ai/dist/images.d.ts +0 -4
  1161. package/node_modules/@earendil-works/omk-ai/dist/images.d.ts.map +0 -1
  1162. package/node_modules/@earendil-works/omk-ai/dist/images.js +0 -16
  1163. package/node_modules/@earendil-works/omk-ai/dist/images.js.map +0 -1
  1164. package/node_modules/@earendil-works/omk-ai/dist/index.d.ts +0 -33
  1165. package/node_modules/@earendil-works/omk-ai/dist/index.d.ts.map +0 -1
  1166. package/node_modules/@earendil-works/omk-ai/dist/index.js +0 -21
  1167. package/node_modules/@earendil-works/omk-ai/dist/index.js.map +0 -1
  1168. package/node_modules/@earendil-works/omk-ai/dist/models.d.ts +0 -18
  1169. package/node_modules/@earendil-works/omk-ai/dist/models.d.ts.map +0 -1
  1170. package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts +0 -18762
  1171. package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts.map +0 -1
  1172. package/node_modules/@earendil-works/omk-ai/dist/models.generated.js +0 -17197
  1173. package/node_modules/@earendil-works/omk-ai/dist/models.generated.js.map +0 -1
  1174. package/node_modules/@earendil-works/omk-ai/dist/models.js +0 -78
  1175. package/node_modules/@earendil-works/omk-ai/dist/models.js.map +0 -1
  1176. package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts +0 -2
  1177. package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts.map +0 -1
  1178. package/node_modules/@earendil-works/omk-ai/dist/oauth.js +0 -2
  1179. package/node_modules/@earendil-works/omk-ai/dist/oauth.js.map +0 -1
  1180. package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts +0 -39
  1181. package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts.map +0 -1
  1182. package/node_modules/@earendil-works/omk-ai/dist/provider-network.js +0 -170
  1183. package/node_modules/@earendil-works/omk-ai/dist/provider-network.js.map +0 -1
  1184. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts +0 -38
  1185. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts.map +0 -1
  1186. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js +0 -826
  1187. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js.map +0 -1
  1188. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts +0 -77
  1189. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts.map +0 -1
  1190. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js +0 -1123
  1191. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js.map +0 -1
  1192. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts +0 -15
  1193. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts.map +0 -1
  1194. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js +0 -221
  1195. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js.map +0 -1
  1196. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts +0 -13
  1197. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts.map +0 -1
  1198. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js +0 -26
  1199. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js.map +0 -1
  1200. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts +0 -56
  1201. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts.map +0 -1
  1202. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js +0 -368
  1203. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js.map +0 -1
  1204. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts +0 -8
  1205. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts.map +0 -1
  1206. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js +0 -29
  1207. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js.map +0 -1
  1208. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts +0 -70
  1209. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts.map +0 -1
  1210. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js +0 -331
  1211. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js.map +0 -1
  1212. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts +0 -15
  1213. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts.map +0 -1
  1214. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js +0 -442
  1215. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js.map +0 -1
  1216. package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts +0 -13
  1217. package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts.map +0 -1
  1218. package/node_modules/@earendil-works/omk-ai/dist/providers/google.js +0 -402
  1219. package/node_modules/@earendil-works/omk-ai/dist/providers/google.js.map +0 -1
  1220. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts +0 -3
  1221. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts.map +0 -1
  1222. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js +0 -128
  1223. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js.map +0 -1
  1224. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts +0 -4
  1225. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts.map +0 -1
  1226. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js +0 -34
  1227. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js.map +0 -1
  1228. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts +0 -25
  1229. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts.map +0 -1
  1230. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js +0 -534
  1231. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js.map +0 -1
  1232. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts +0 -30
  1233. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts.map +0 -1
  1234. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js +0 -1171
  1235. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js.map +0 -1
  1236. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts +0 -19
  1237. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts.map +0 -1
  1238. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js +0 -977
  1239. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js.map +0 -1
  1240. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts +0 -11
  1241. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts.map +0 -1
  1242. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js +0 -22
  1243. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js.map +0 -1
  1244. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts +0 -18
  1245. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts.map +0 -1
  1246. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js +0 -496
  1247. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js.map +0 -1
  1248. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts +0 -13
  1249. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts.map +0 -1
  1250. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js +0 -233
  1251. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js.map +0 -1
  1252. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts +0 -35
  1253. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts.map +0 -1
  1254. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js +0 -254
  1255. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js.map +0 -1
  1256. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts +0 -8
  1257. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts.map +0 -1
  1258. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js +0 -42
  1259. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js.map +0 -1
  1260. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts +0 -13
  1261. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts.map +0 -1
  1262. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js +0 -82
  1263. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js.map +0 -1
  1264. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts +0 -8
  1265. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts.map +0 -1
  1266. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js +0 -184
  1267. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js.map +0 -1
  1268. package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts +0 -4
  1269. package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts.map +0 -1
  1270. package/node_modules/@earendil-works/omk-ai/dist/session-resources.js +0 -22
  1271. package/node_modules/@earendil-works/omk-ai/dist/session-resources.js.map +0 -1
  1272. package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts +0 -8
  1273. package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts.map +0 -1
  1274. package/node_modules/@earendil-works/omk-ai/dist/stream.js +0 -77
  1275. package/node_modules/@earendil-works/omk-ai/dist/stream.js.map +0 -1
  1276. package/node_modules/@earendil-works/omk-ai/dist/types.d.ts +0 -570
  1277. package/node_modules/@earendil-works/omk-ai/dist/types.d.ts.map +0 -1
  1278. package/node_modules/@earendil-works/omk-ai/dist/types.js +0 -2
  1279. package/node_modules/@earendil-works/omk-ai/dist/types.js.map +0 -1
  1280. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts +0 -6
  1281. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts.map +0 -1
  1282. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js +0 -34
  1283. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js.map +0 -1
  1284. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts +0 -19
  1285. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts.map +0 -1
  1286. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js +0 -25
  1287. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js.map +0 -1
  1288. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts +0 -21
  1289. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts.map +0 -1
  1290. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js +0 -81
  1291. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js.map +0 -1
  1292. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts +0 -3
  1293. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts.map +0 -1
  1294. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js +0 -14
  1295. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js.map +0 -1
  1296. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts +0 -2
  1297. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts.map +0 -1
  1298. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js +0 -8
  1299. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js.map +0 -1
  1300. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts +0 -16
  1301. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts.map +0 -1
  1302. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js +0 -113
  1303. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js.map +0 -1
  1304. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts +0 -10
  1305. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts.map +0 -1
  1306. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js +0 -97
  1307. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js.map +0 -1
  1308. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts +0 -25
  1309. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts.map +0 -1
  1310. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js +0 -335
  1311. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js.map +0 -1
  1312. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts +0 -21
  1313. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts.map +0 -1
  1314. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js +0 -56
  1315. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js.map +0 -1
  1316. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts +0 -30
  1317. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts.map +0 -1
  1318. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js +0 -280
  1319. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js.map +0 -1
  1320. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts +0 -58
  1321. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts.map +0 -1
  1322. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js +0 -122
  1323. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js.map +0 -1
  1324. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts +0 -3
  1325. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts.map +0 -1
  1326. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js +0 -105
  1327. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js.map +0 -1
  1328. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts +0 -43
  1329. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts.map +0 -1
  1330. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js +0 -487
  1331. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js.map +0 -1
  1332. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts +0 -13
  1333. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts.map +0 -1
  1334. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js +0 -31
  1335. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js.map +0 -1
  1336. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts +0 -64
  1337. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts.map +0 -1
  1338. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js +0 -2
  1339. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js.map +0 -1
  1340. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts +0 -57
  1341. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts.map +0 -1
  1342. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js +0 -154
  1343. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js.map +0 -1
  1344. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts +0 -22
  1345. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts.map +0 -1
  1346. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js +0 -26
  1347. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js.map +0 -1
  1348. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts +0 -17
  1349. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts.map +0 -1
  1350. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js +0 -21
  1351. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js.map +0 -1
  1352. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts +0 -18
  1353. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts.map +0 -1
  1354. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js +0 -281
  1355. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js.map +0 -1
  1356. package/node_modules/@earendil-works/omk-ai/package.json +0 -106
  1357. package/node_modules/@earendil-works/omk-tui/README.md +0 -791
  1358. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts +0 -54
  1359. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts.map +0 -1
  1360. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js +0 -632
  1361. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js.map +0 -1
  1362. package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts +0 -22
  1363. package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts.map +0 -1
  1364. package/node_modules/@earendil-works/omk-tui/dist/components/box.js +0 -104
  1365. package/node_modules/@earendil-works/omk-tui/dist/components/box.js.map +0 -1
  1366. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts +0 -22
  1367. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts.map +0 -1
  1368. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js +0 -35
  1369. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js.map +0 -1
  1370. package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts +0 -249
  1371. package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts.map +0 -1
  1372. package/node_modules/@earendil-works/omk-tui/dist/components/editor.js +0 -1857
  1373. package/node_modules/@earendil-works/omk-tui/dist/components/editor.js.map +0 -1
  1374. package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts +0 -28
  1375. package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts.map +0 -1
  1376. package/node_modules/@earendil-works/omk-tui/dist/components/image.js +0 -89
  1377. package/node_modules/@earendil-works/omk-tui/dist/components/image.js.map +0 -1
  1378. package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts +0 -37
  1379. package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts.map +0 -1
  1380. package/node_modules/@earendil-works/omk-tui/dist/components/input.js +0 -378
  1381. package/node_modules/@earendil-works/omk-tui/dist/components/input.js.map +0 -1
  1382. package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts +0 -31
  1383. package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts.map +0 -1
  1384. package/node_modules/@earendil-works/omk-tui/dist/components/loader.js +0 -69
  1385. package/node_modules/@earendil-works/omk-tui/dist/components/loader.js.map +0 -1
  1386. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts +0 -96
  1387. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts.map +0 -1
  1388. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js +0 -644
  1389. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js.map +0 -1
  1390. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts +0 -50
  1391. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts.map +0 -1
  1392. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js +0 -159
  1393. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js.map +0 -1
  1394. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts +0 -50
  1395. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts.map +0 -1
  1396. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js +0 -185
  1397. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js.map +0 -1
  1398. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts +0 -12
  1399. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts.map +0 -1
  1400. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js +0 -23
  1401. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js.map +0 -1
  1402. package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts +0 -19
  1403. package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts.map +0 -1
  1404. package/node_modules/@earendil-works/omk-tui/dist/components/text.js +0 -89
  1405. package/node_modules/@earendil-works/omk-tui/dist/components/text.js.map +0 -1
  1406. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts +0 -13
  1407. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts.map +0 -1
  1408. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js +0 -51
  1409. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js.map +0 -1
  1410. package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts +0 -39
  1411. package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts.map +0 -1
  1412. package/node_modules/@earendil-works/omk-tui/dist/editor-component.js +0 -2
  1413. package/node_modules/@earendil-works/omk-tui/dist/editor-component.js.map +0 -1
  1414. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts +0 -16
  1415. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts.map +0 -1
  1416. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js +0 -110
  1417. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js.map +0 -1
  1418. package/node_modules/@earendil-works/omk-tui/dist/index.d.ts +0 -23
  1419. package/node_modules/@earendil-works/omk-tui/dist/index.d.ts.map +0 -1
  1420. package/node_modules/@earendil-works/omk-tui/dist/index.js +0 -32
  1421. package/node_modules/@earendil-works/omk-tui/dist/index.js.map +0 -1
  1422. package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts +0 -212
  1423. package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts.map +0 -1
  1424. package/node_modules/@earendil-works/omk-tui/dist/keybindings.js +0 -252
  1425. package/node_modules/@earendil-works/omk-tui/dist/keybindings.js.map +0 -1
  1426. package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts +0 -184
  1427. package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts.map +0 -1
  1428. package/node_modules/@earendil-works/omk-tui/dist/keys.js +0 -1173
  1429. package/node_modules/@earendil-works/omk-tui/dist/keys.js.map +0 -1
  1430. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts +0 -28
  1431. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts.map +0 -1
  1432. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js +0 -44
  1433. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js.map +0 -1
  1434. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts +0 -3
  1435. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts.map +0 -1
  1436. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js +0 -53
  1437. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js.map +0 -1
  1438. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts +0 -50
  1439. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts.map +0 -1
  1440. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js +0 -361
  1441. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js.map +0 -1
  1442. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts +0 -90
  1443. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts.map +0 -1
  1444. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js +0 -366
  1445. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js.map +0 -1
  1446. package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts +0 -113
  1447. package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts.map +0 -1
  1448. package/node_modules/@earendil-works/omk-tui/dist/terminal.js +0 -472
  1449. package/node_modules/@earendil-works/omk-tui/dist/terminal.js.map +0 -1
  1450. package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts +0 -242
  1451. package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts.map +0 -1
  1452. package/node_modules/@earendil-works/omk-tui/dist/tui.js +0 -1221
  1453. package/node_modules/@earendil-works/omk-tui/dist/tui.js.map +0 -1
  1454. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts +0 -17
  1455. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts.map +0 -1
  1456. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js +0 -25
  1457. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js.map +0 -1
  1458. package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts +0 -84
  1459. package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts.map +0 -1
  1460. package/node_modules/@earendil-works/omk-tui/dist/utils.js +0 -1032
  1461. package/node_modules/@earendil-works/omk-tui/dist/utils.js.map +0 -1
  1462. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts +0 -25
  1463. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts.map +0 -1
  1464. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js +0 -96
  1465. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js.map +0 -1
  1466. package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  1467. package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  1468. package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  1469. package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
  1470. package/node_modules/@earendil-works/omk-tui/package.json +0 -47
@@ -1,78 +0,0 @@
1
- /**
2
- * `cli.contract.verify` — durable, tamper-evident verification of a CLI contract.
3
- *
4
- * Builds on the harness-control hash-chained ledger to record a contract
5
- * verification as two correlated events (started -> completed/blocked), each
6
- * carrying the SHA-256 of the contract's manifest and test files. After
7
- * recording, the whole ledger is re-verified; a contract is only `passed` when
8
- * both the gate succeeds AND the hash-chain ledger verifies. This lets a release
9
- * gate detect after-the-fact tampering of either the contract artifacts or the
10
- * audit ledger itself.
11
- *
12
- * Dependency-free: uses node:crypto only (no fast-check/xterm/etc.).
13
- */
14
- export declare const CONTRACT_VERIFY_EVENT_KIND = "cli.contract.verify";
15
- export declare const CONTRACT_RESULT_SCHEMA_VERSION = "omk.cli-contract.result.v1";
16
- export interface ContractFileRef {
17
- readonly id: string;
18
- readonly path: string;
19
- }
20
- export interface ContractFileHash {
21
- readonly id: string;
22
- readonly path: string;
23
- /** `sha256:<hex>` of the file contents. */
24
- readonly sha256: string;
25
- }
26
- export type ContractVerificationStatus = "passed" | "blocked";
27
- export interface ContractGateResult {
28
- readonly ok: boolean;
29
- readonly details?: string;
30
- }
31
- export interface ContractLedgerSummary {
32
- readonly path: string;
33
- readonly verified: boolean;
34
- readonly errors: readonly string[];
35
- }
36
- export interface ContractResult {
37
- readonly schemaVersion: typeof CONTRACT_RESULT_SCHEMA_VERSION;
38
- readonly contractId: string;
39
- readonly contractVersion: string;
40
- readonly status: ContractVerificationStatus;
41
- readonly manifestHash: string;
42
- readonly testFileHash: string;
43
- readonly files: readonly ContractFileHash[];
44
- readonly gate: ContractGateResult;
45
- readonly ledger: ContractLedgerSummary;
46
- readonly startedAt: string;
47
- readonly completedAt: string;
48
- }
49
- export interface VerifyCliContractOptions {
50
- readonly contractId: string;
51
- readonly contractVersion: string;
52
- readonly manifestPath: string;
53
- readonly testPath: string;
54
- readonly extraFiles?: readonly ContractFileRef[];
55
- /** Runs the actual contract gate (e.g. the vitest contract file). */
56
- readonly runGate: () => ContractGateResult | Promise<ContractGateResult>;
57
- readonly cwd?: string;
58
- readonly logPath?: string;
59
- readonly runId?: string;
60
- /** When set, a JSON contract-result is written here (atomically). */
61
- readonly resultPath?: string;
62
- readonly now?: () => Date;
63
- }
64
- /**
65
- * Verify a CLI contract and append a tamper-evident audit trail.
66
- *
67
- * Algorithm:
68
- * 1. SHA-256 the manifest, test, and any extra contract files.
69
- * 2. Record a `started` ledger event (manifest/test hashes + artifact manifest).
70
- * 3. Run the contract gate.
71
- * 4. Record a `completed` (gate ok) or `blocked` (gate failed) ledger event.
72
- * 5. Re-verify the whole hash-chain ledger.
73
- * 6. Status is `passed` only when the gate passed AND the ledger verifies;
74
- * otherwise `blocked`.
75
- * 7. Optionally write a canonical contract-result.json.
76
- */
77
- export declare function verifyCliContract(options: VerifyCliContractOptions): Promise<ContractResult>;
78
- //# sourceMappingURL=contract-verification.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract-verification.d.ts","sourceRoot":"","sources":["../../src/core/contract-verification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAaH,eAAO,MAAM,0BAA0B,wBAAwB,CAAC;AAChE,eAAO,MAAM,8BAA8B,+BAA+B,CAAC;AAE3E,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,aAAa,EAAE,OAAO,8BAA8B,CAAC;IAC9D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACjD,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAkBD;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAgFlG","sourcesContent":["/**\n * `cli.contract.verify` — durable, tamper-evident verification of a CLI contract.\n *\n * Builds on the harness-control hash-chained ledger to record a contract\n * verification as two correlated events (started -> completed/blocked), each\n * carrying the SHA-256 of the contract's manifest and test files. After\n * recording, the whole ledger is re-verified; a contract is only `passed` when\n * both the gate succeeds AND the hash-chain ledger verifies. This lets a release\n * gate detect after-the-fact tampering of either the contract artifacts or the\n * audit ledger itself.\n *\n * Dependency-free: uses node:crypto only (no fast-check/xterm/etc.).\n */\n\nimport { createHash, randomUUID } from \"node:crypto\";\nimport { mkdirSync, readFileSync, renameSync, writeFileSync } from \"node:fs\";\nimport { dirname, resolve } from \"node:path\";\nimport {\n\ttype HarnessControlEventOptions,\n\ttype HarnessControlEventWriteResult,\n\trecordHarnessControlEvent,\n\tresolveHarnessControlEventLogPath,\n\tverifyHarnessControlLedger,\n} from \"./harness-control-events.ts\";\n\nexport const CONTRACT_VERIFY_EVENT_KIND = \"cli.contract.verify\";\nexport const CONTRACT_RESULT_SCHEMA_VERSION = \"omk.cli-contract.result.v1\";\n\nexport interface ContractFileRef {\n\treadonly id: string;\n\treadonly path: string;\n}\n\nexport interface ContractFileHash {\n\treadonly id: string;\n\treadonly path: string;\n\t/** `sha256:<hex>` of the file contents. */\n\treadonly sha256: string;\n}\n\nexport type ContractVerificationStatus = \"passed\" | \"blocked\";\n\nexport interface ContractGateResult {\n\treadonly ok: boolean;\n\treadonly details?: string;\n}\n\nexport interface ContractLedgerSummary {\n\treadonly path: string;\n\treadonly verified: boolean;\n\treadonly errors: readonly string[];\n}\n\nexport interface ContractResult {\n\treadonly schemaVersion: typeof CONTRACT_RESULT_SCHEMA_VERSION;\n\treadonly contractId: string;\n\treadonly contractVersion: string;\n\treadonly status: ContractVerificationStatus;\n\treadonly manifestHash: string;\n\treadonly testFileHash: string;\n\treadonly files: readonly ContractFileHash[];\n\treadonly gate: ContractGateResult;\n\treadonly ledger: ContractLedgerSummary;\n\treadonly startedAt: string;\n\treadonly completedAt: string;\n}\n\nexport interface VerifyCliContractOptions {\n\treadonly contractId: string;\n\treadonly contractVersion: string;\n\treadonly manifestPath: string;\n\treadonly testPath: string;\n\treadonly extraFiles?: readonly ContractFileRef[];\n\t/** Runs the actual contract gate (e.g. the vitest contract file). */\n\treadonly runGate: () => ContractGateResult | Promise<ContractGateResult>;\n\treadonly cwd?: string;\n\treadonly logPath?: string;\n\treadonly runId?: string;\n\t/** When set, a JSON contract-result is written here (atomically). */\n\treadonly resultPath?: string;\n\treadonly now?: () => Date;\n}\n\nfunction hashFile(path: string): string {\n\treturn `sha256:${createHash(\"sha256\").update(readFileSync(path)).digest(\"hex\")}`;\n}\n\nfunction writeJsonAtomic(path: string, value: unknown): void {\n\tmkdirSync(dirname(path), { recursive: true });\n\tconst tmp = `${path}.tmp-${process.pid}-${randomUUID()}`;\n\twriteFileSync(tmp, `${JSON.stringify(value, null, 2)}\\n`, { encoding: \"utf-8\", mode: 0o600 });\n\trenameSync(tmp, path);\n}\n\nfunction ledgerErrorOf(record: HarnessControlEventWriteResult): string | undefined {\n\tif (record.ok) return undefined;\n\treturn record.error ? `event not recorded: ${record.error}` : \"event not recorded\";\n}\n\n/**\n * Verify a CLI contract and append a tamper-evident audit trail.\n *\n * Algorithm:\n * 1. SHA-256 the manifest, test, and any extra contract files.\n * 2. Record a `started` ledger event (manifest/test hashes + artifact manifest).\n * 3. Run the contract gate.\n * 4. Record a `completed` (gate ok) or `blocked` (gate failed) ledger event.\n * 5. Re-verify the whole hash-chain ledger.\n * 6. Status is `passed` only when the gate passed AND the ledger verifies;\n * otherwise `blocked`.\n * 7. Optionally write a canonical contract-result.json.\n */\nexport async function verifyCliContract(options: VerifyCliContractOptions): Promise<ContractResult> {\n\tconst clock = options.now ?? (() => new Date());\n\tconst cwd = options.cwd ?? process.cwd();\n\tconst operationId = randomUUID();\n\tconst startedAt = clock().toISOString();\n\n\tconst files: ContractFileHash[] = [\n\t\t{ id: \"manifest\", path: options.manifestPath, sha256: hashFile(options.manifestPath) },\n\t\t{ id: \"test\", path: options.testPath, sha256: hashFile(options.testPath) },\n\t\t...(options.extraFiles ?? []).map((file) => ({ id: file.id, path: file.path, sha256: hashFile(file.path) })),\n\t];\n\tconst manifestHash = files[0]?.sha256 ?? \"\";\n\tconst testFileHash = files[1]?.sha256 ?? \"\";\n\tconst artifactRefs = files.map((file) => file.path);\n\n\tconst eventBase: HarnessControlEventOptions = {\n\t\tcwd,\n\t\tlogPath: options.logPath,\n\t\trunId: options.runId,\n\t\toperationId,\n\t\tcorrelationId: operationId,\n\t\tartifactRefs,\n\t};\n\n\tconst startedRecord = recordHarnessControlEvent(\n\t\tCONTRACT_VERIFY_EVENT_KIND,\n\t\t\"started\",\n\t\t{ contractId: options.contractId, contractVersion: options.contractVersion, manifestHash, testFileHash, files },\n\t\t{ ...eventBase, now: clock() },\n\t);\n\n\tconst gate = await options.runGate();\n\tconst completedAt = clock().toISOString();\n\n\tconst completedRecord = recordHarnessControlEvent(\n\t\tCONTRACT_VERIFY_EVENT_KIND,\n\t\tgate.ok ? \"completed\" : \"blocked\",\n\t\t{\n\t\t\tcontractId: options.contractId,\n\t\t\tcontractVersion: options.contractVersion,\n\t\t\tmanifestHash,\n\t\t\ttestFileHash,\n\t\t\tgate,\n\t\t},\n\t\t{ ...eventBase, causationId: startedRecord.event?.eventId ?? null, now: clock() },\n\t);\n\n\tconst ledgerPath = resolveHarnessControlEventLogPath({ cwd, logPath: options.logPath, runId: options.runId });\n\tconst ledgerErrors: string[] = [];\n\tlet ledgerChainOk = true;\n\tif (ledgerPath) {\n\t\tconst verification = verifyHarnessControlLedger(ledgerPath);\n\t\tledgerChainOk = verification.ok;\n\t\tledgerErrors.push(...verification.errors);\n\t}\n\tfor (const record of [startedRecord, completedRecord]) {\n\t\tconst error = ledgerErrorOf(record);\n\t\tif (error) ledgerErrors.push(error);\n\t}\n\tconst ledgerVerified = ledgerChainOk && ledgerErrors.length === 0;\n\n\tconst result: ContractResult = {\n\t\tschemaVersion: CONTRACT_RESULT_SCHEMA_VERSION,\n\t\tcontractId: options.contractId,\n\t\tcontractVersion: options.contractVersion,\n\t\tstatus: gate.ok && ledgerVerified ? \"passed\" : \"blocked\",\n\t\tmanifestHash,\n\t\ttestFileHash,\n\t\tfiles,\n\t\tgate,\n\t\tledger: { path: ledgerPath ?? \"\", verified: ledgerVerified, errors: ledgerErrors },\n\t\tstartedAt,\n\t\tcompletedAt,\n\t};\n\n\tif (options.resultPath) {\n\t\twriteJsonAtomic(resolve(cwd, options.resultPath), result);\n\t}\n\n\treturn result;\n}\n"]}
@@ -1,110 +0,0 @@
1
- /**
2
- * `cli.contract.verify` — durable, tamper-evident verification of a CLI contract.
3
- *
4
- * Builds on the harness-control hash-chained ledger to record a contract
5
- * verification as two correlated events (started -> completed/blocked), each
6
- * carrying the SHA-256 of the contract's manifest and test files. After
7
- * recording, the whole ledger is re-verified; a contract is only `passed` when
8
- * both the gate succeeds AND the hash-chain ledger verifies. This lets a release
9
- * gate detect after-the-fact tampering of either the contract artifacts or the
10
- * audit ledger itself.
11
- *
12
- * Dependency-free: uses node:crypto only (no fast-check/xterm/etc.).
13
- */
14
- import { createHash, randomUUID } from "node:crypto";
15
- import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
16
- import { dirname, resolve } from "node:path";
17
- import { recordHarnessControlEvent, resolveHarnessControlEventLogPath, verifyHarnessControlLedger, } from "./harness-control-events.js";
18
- export const CONTRACT_VERIFY_EVENT_KIND = "cli.contract.verify";
19
- export const CONTRACT_RESULT_SCHEMA_VERSION = "omk.cli-contract.result.v1";
20
- function hashFile(path) {
21
- return `sha256:${createHash("sha256").update(readFileSync(path)).digest("hex")}`;
22
- }
23
- function writeJsonAtomic(path, value) {
24
- mkdirSync(dirname(path), { recursive: true });
25
- const tmp = `${path}.tmp-${process.pid}-${randomUUID()}`;
26
- writeFileSync(tmp, `${JSON.stringify(value, null, 2)}\n`, { encoding: "utf-8", mode: 0o600 });
27
- renameSync(tmp, path);
28
- }
29
- function ledgerErrorOf(record) {
30
- if (record.ok)
31
- return undefined;
32
- return record.error ? `event not recorded: ${record.error}` : "event not recorded";
33
- }
34
- /**
35
- * Verify a CLI contract and append a tamper-evident audit trail.
36
- *
37
- * Algorithm:
38
- * 1. SHA-256 the manifest, test, and any extra contract files.
39
- * 2. Record a `started` ledger event (manifest/test hashes + artifact manifest).
40
- * 3. Run the contract gate.
41
- * 4. Record a `completed` (gate ok) or `blocked` (gate failed) ledger event.
42
- * 5. Re-verify the whole hash-chain ledger.
43
- * 6. Status is `passed` only when the gate passed AND the ledger verifies;
44
- * otherwise `blocked`.
45
- * 7. Optionally write a canonical contract-result.json.
46
- */
47
- export async function verifyCliContract(options) {
48
- const clock = options.now ?? (() => new Date());
49
- const cwd = options.cwd ?? process.cwd();
50
- const operationId = randomUUID();
51
- const startedAt = clock().toISOString();
52
- const files = [
53
- { id: "manifest", path: options.manifestPath, sha256: hashFile(options.manifestPath) },
54
- { id: "test", path: options.testPath, sha256: hashFile(options.testPath) },
55
- ...(options.extraFiles ?? []).map((file) => ({ id: file.id, path: file.path, sha256: hashFile(file.path) })),
56
- ];
57
- const manifestHash = files[0]?.sha256 ?? "";
58
- const testFileHash = files[1]?.sha256 ?? "";
59
- const artifactRefs = files.map((file) => file.path);
60
- const eventBase = {
61
- cwd,
62
- logPath: options.logPath,
63
- runId: options.runId,
64
- operationId,
65
- correlationId: operationId,
66
- artifactRefs,
67
- };
68
- const startedRecord = recordHarnessControlEvent(CONTRACT_VERIFY_EVENT_KIND, "started", { contractId: options.contractId, contractVersion: options.contractVersion, manifestHash, testFileHash, files }, { ...eventBase, now: clock() });
69
- const gate = await options.runGate();
70
- const completedAt = clock().toISOString();
71
- const completedRecord = recordHarnessControlEvent(CONTRACT_VERIFY_EVENT_KIND, gate.ok ? "completed" : "blocked", {
72
- contractId: options.contractId,
73
- contractVersion: options.contractVersion,
74
- manifestHash,
75
- testFileHash,
76
- gate,
77
- }, { ...eventBase, causationId: startedRecord.event?.eventId ?? null, now: clock() });
78
- const ledgerPath = resolveHarnessControlEventLogPath({ cwd, logPath: options.logPath, runId: options.runId });
79
- const ledgerErrors = [];
80
- let ledgerChainOk = true;
81
- if (ledgerPath) {
82
- const verification = verifyHarnessControlLedger(ledgerPath);
83
- ledgerChainOk = verification.ok;
84
- ledgerErrors.push(...verification.errors);
85
- }
86
- for (const record of [startedRecord, completedRecord]) {
87
- const error = ledgerErrorOf(record);
88
- if (error)
89
- ledgerErrors.push(error);
90
- }
91
- const ledgerVerified = ledgerChainOk && ledgerErrors.length === 0;
92
- const result = {
93
- schemaVersion: CONTRACT_RESULT_SCHEMA_VERSION,
94
- contractId: options.contractId,
95
- contractVersion: options.contractVersion,
96
- status: gate.ok && ledgerVerified ? "passed" : "blocked",
97
- manifestHash,
98
- testFileHash,
99
- files,
100
- gate,
101
- ledger: { path: ledgerPath ?? "", verified: ledgerVerified, errors: ledgerErrors },
102
- startedAt,
103
- completedAt,
104
- };
105
- if (options.resultPath) {
106
- writeJsonAtomic(resolve(cwd, options.resultPath), result);
107
- }
108
- return result;
109
- }
110
- //# sourceMappingURL=contract-verification.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract-verification.js","sourceRoot":"","sources":["../../src/core/contract-verification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAGN,yBAAyB,EACzB,iCAAiC,EACjC,0BAA0B,GAC1B,MAAM,6BAA6B,CAAC;AAErC,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAAqB,CAAC;AAChE,MAAM,CAAC,MAAM,8BAA8B,GAAG,4BAA4B,CAAC;AAyD3E,SAAS,QAAQ,CAAC,IAAY,EAAU;IACvC,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAAA,CACjF;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,KAAc,EAAQ;IAC5D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,GAAG,IAAI,QAAQ,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,EAAE,CAAC;IACzD,aAAa,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9F,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAAA,CACtB;AAED,SAAS,aAAa,CAAC,MAAsC,EAAsB;IAClF,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAChC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;AAAA,CACnF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAiC,EAA2B;IACnG,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,KAAK,GAAuB;QACjC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QACtF,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC1E,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC5G,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,SAAS,GAA+B;QAC7C,GAAG;QACH,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW;QACX,aAAa,EAAE,WAAW;QAC1B,YAAY;KACZ,CAAC;IAEF,MAAM,aAAa,GAAG,yBAAyB,CAC9C,0BAA0B,EAC1B,SAAS,EACT,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,EAC/G,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAC9B,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;IAE1C,MAAM,eAAe,GAAG,yBAAyB,CAChD,0BAA0B,EAC1B,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EACjC;QACC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,YAAY;QACZ,YAAY;QACZ,IAAI;KACJ,EACD,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CACjF,CAAC;IAEF,MAAM,UAAU,GAAG,iCAAiC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9G,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,YAAY,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;QAC5D,aAAa,GAAG,YAAY,CAAC,EAAE,CAAC;QAChC,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,KAAK;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,cAAc,GAAG,aAAa,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC;IAElE,MAAM,MAAM,GAAmB;QAC9B,aAAa,EAAE,8BAA8B;QAC7C,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACxD,YAAY;QACZ,YAAY;QACZ,KAAK;QACL,IAAI;QACJ,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE;QAClF,SAAS;QACT,WAAW;KACX,CAAC;IAEF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC;AAAA,CACd","sourcesContent":["/**\n * `cli.contract.verify` — durable, tamper-evident verification of a CLI contract.\n *\n * Builds on the harness-control hash-chained ledger to record a contract\n * verification as two correlated events (started -> completed/blocked), each\n * carrying the SHA-256 of the contract's manifest and test files. After\n * recording, the whole ledger is re-verified; a contract is only `passed` when\n * both the gate succeeds AND the hash-chain ledger verifies. This lets a release\n * gate detect after-the-fact tampering of either the contract artifacts or the\n * audit ledger itself.\n *\n * Dependency-free: uses node:crypto only (no fast-check/xterm/etc.).\n */\n\nimport { createHash, randomUUID } from \"node:crypto\";\nimport { mkdirSync, readFileSync, renameSync, writeFileSync } from \"node:fs\";\nimport { dirname, resolve } from \"node:path\";\nimport {\n\ttype HarnessControlEventOptions,\n\ttype HarnessControlEventWriteResult,\n\trecordHarnessControlEvent,\n\tresolveHarnessControlEventLogPath,\n\tverifyHarnessControlLedger,\n} from \"./harness-control-events.ts\";\n\nexport const CONTRACT_VERIFY_EVENT_KIND = \"cli.contract.verify\";\nexport const CONTRACT_RESULT_SCHEMA_VERSION = \"omk.cli-contract.result.v1\";\n\nexport interface ContractFileRef {\n\treadonly id: string;\n\treadonly path: string;\n}\n\nexport interface ContractFileHash {\n\treadonly id: string;\n\treadonly path: string;\n\t/** `sha256:<hex>` of the file contents. */\n\treadonly sha256: string;\n}\n\nexport type ContractVerificationStatus = \"passed\" | \"blocked\";\n\nexport interface ContractGateResult {\n\treadonly ok: boolean;\n\treadonly details?: string;\n}\n\nexport interface ContractLedgerSummary {\n\treadonly path: string;\n\treadonly verified: boolean;\n\treadonly errors: readonly string[];\n}\n\nexport interface ContractResult {\n\treadonly schemaVersion: typeof CONTRACT_RESULT_SCHEMA_VERSION;\n\treadonly contractId: string;\n\treadonly contractVersion: string;\n\treadonly status: ContractVerificationStatus;\n\treadonly manifestHash: string;\n\treadonly testFileHash: string;\n\treadonly files: readonly ContractFileHash[];\n\treadonly gate: ContractGateResult;\n\treadonly ledger: ContractLedgerSummary;\n\treadonly startedAt: string;\n\treadonly completedAt: string;\n}\n\nexport interface VerifyCliContractOptions {\n\treadonly contractId: string;\n\treadonly contractVersion: string;\n\treadonly manifestPath: string;\n\treadonly testPath: string;\n\treadonly extraFiles?: readonly ContractFileRef[];\n\t/** Runs the actual contract gate (e.g. the vitest contract file). */\n\treadonly runGate: () => ContractGateResult | Promise<ContractGateResult>;\n\treadonly cwd?: string;\n\treadonly logPath?: string;\n\treadonly runId?: string;\n\t/** When set, a JSON contract-result is written here (atomically). */\n\treadonly resultPath?: string;\n\treadonly now?: () => Date;\n}\n\nfunction hashFile(path: string): string {\n\treturn `sha256:${createHash(\"sha256\").update(readFileSync(path)).digest(\"hex\")}`;\n}\n\nfunction writeJsonAtomic(path: string, value: unknown): void {\n\tmkdirSync(dirname(path), { recursive: true });\n\tconst tmp = `${path}.tmp-${process.pid}-${randomUUID()}`;\n\twriteFileSync(tmp, `${JSON.stringify(value, null, 2)}\\n`, { encoding: \"utf-8\", mode: 0o600 });\n\trenameSync(tmp, path);\n}\n\nfunction ledgerErrorOf(record: HarnessControlEventWriteResult): string | undefined {\n\tif (record.ok) return undefined;\n\treturn record.error ? `event not recorded: ${record.error}` : \"event not recorded\";\n}\n\n/**\n * Verify a CLI contract and append a tamper-evident audit trail.\n *\n * Algorithm:\n * 1. SHA-256 the manifest, test, and any extra contract files.\n * 2. Record a `started` ledger event (manifest/test hashes + artifact manifest).\n * 3. Run the contract gate.\n * 4. Record a `completed` (gate ok) or `blocked` (gate failed) ledger event.\n * 5. Re-verify the whole hash-chain ledger.\n * 6. Status is `passed` only when the gate passed AND the ledger verifies;\n * otherwise `blocked`.\n * 7. Optionally write a canonical contract-result.json.\n */\nexport async function verifyCliContract(options: VerifyCliContractOptions): Promise<ContractResult> {\n\tconst clock = options.now ?? (() => new Date());\n\tconst cwd = options.cwd ?? process.cwd();\n\tconst operationId = randomUUID();\n\tconst startedAt = clock().toISOString();\n\n\tconst files: ContractFileHash[] = [\n\t\t{ id: \"manifest\", path: options.manifestPath, sha256: hashFile(options.manifestPath) },\n\t\t{ id: \"test\", path: options.testPath, sha256: hashFile(options.testPath) },\n\t\t...(options.extraFiles ?? []).map((file) => ({ id: file.id, path: file.path, sha256: hashFile(file.path) })),\n\t];\n\tconst manifestHash = files[0]?.sha256 ?? \"\";\n\tconst testFileHash = files[1]?.sha256 ?? \"\";\n\tconst artifactRefs = files.map((file) => file.path);\n\n\tconst eventBase: HarnessControlEventOptions = {\n\t\tcwd,\n\t\tlogPath: options.logPath,\n\t\trunId: options.runId,\n\t\toperationId,\n\t\tcorrelationId: operationId,\n\t\tartifactRefs,\n\t};\n\n\tconst startedRecord = recordHarnessControlEvent(\n\t\tCONTRACT_VERIFY_EVENT_KIND,\n\t\t\"started\",\n\t\t{ contractId: options.contractId, contractVersion: options.contractVersion, manifestHash, testFileHash, files },\n\t\t{ ...eventBase, now: clock() },\n\t);\n\n\tconst gate = await options.runGate();\n\tconst completedAt = clock().toISOString();\n\n\tconst completedRecord = recordHarnessControlEvent(\n\t\tCONTRACT_VERIFY_EVENT_KIND,\n\t\tgate.ok ? \"completed\" : \"blocked\",\n\t\t{\n\t\t\tcontractId: options.contractId,\n\t\t\tcontractVersion: options.contractVersion,\n\t\t\tmanifestHash,\n\t\t\ttestFileHash,\n\t\t\tgate,\n\t\t},\n\t\t{ ...eventBase, causationId: startedRecord.event?.eventId ?? null, now: clock() },\n\t);\n\n\tconst ledgerPath = resolveHarnessControlEventLogPath({ cwd, logPath: options.logPath, runId: options.runId });\n\tconst ledgerErrors: string[] = [];\n\tlet ledgerChainOk = true;\n\tif (ledgerPath) {\n\t\tconst verification = verifyHarnessControlLedger(ledgerPath);\n\t\tledgerChainOk = verification.ok;\n\t\tledgerErrors.push(...verification.errors);\n\t}\n\tfor (const record of [startedRecord, completedRecord]) {\n\t\tconst error = ledgerErrorOf(record);\n\t\tif (error) ledgerErrors.push(error);\n\t}\n\tconst ledgerVerified = ledgerChainOk && ledgerErrors.length === 0;\n\n\tconst result: ContractResult = {\n\t\tschemaVersion: CONTRACT_RESULT_SCHEMA_VERSION,\n\t\tcontractId: options.contractId,\n\t\tcontractVersion: options.contractVersion,\n\t\tstatus: gate.ok && ledgerVerified ? \"passed\" : \"blocked\",\n\t\tmanifestHash,\n\t\ttestFileHash,\n\t\tfiles,\n\t\tgate,\n\t\tledger: { path: ledgerPath ?? \"\", verified: ledgerVerified, errors: ledgerErrors },\n\t\tstartedAt,\n\t\tcompletedAt,\n\t};\n\n\tif (options.resultPath) {\n\t\twriteJsonAtomic(resolve(cwd, options.resultPath), result);\n\t}\n\n\treturn result;\n}\n"]}
@@ -1,14 +0,0 @@
1
- /**
2
- * One-shot freedom-mode banner.
3
- *
4
- * The interactive session calls `bannerOnce(cfg, memo)` once at startup. The
5
- * memo is a session-scoped object that this module mutates so the same banner
6
- * is never rendered twice in the same session. The memo lives wherever the
7
- * session does; that keeps the banner module pure and testable.
8
- */
9
- import type { FreedomConfig } from "./config.ts";
10
- export interface BannerMemo {
11
- shown?: boolean;
12
- }
13
- export declare function bannerOnce(cfg: FreedomConfig, memo: BannerMemo): string | undefined;
14
- //# sourceMappingURL=banner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/core/freedom/banner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,UAAU;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAcD,wBAAgB,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAMnF","sourcesContent":["/**\n * One-shot freedom-mode banner.\n *\n * The interactive session calls `bannerOnce(cfg, memo)` once at startup. The\n * memo is a session-scoped object that this module mutates so the same banner\n * is never rendered twice in the same session. The memo lives wherever the\n * session does; that keeps the banner module pure and testable.\n */\nimport type { FreedomConfig } from \"./config.ts\";\n\nexport interface BannerMemo {\n\tshown?: boolean;\n}\n\nconst BANNER_TEMPLATE = `\n╔══════════════════════════════════════════════════════════╗\n║ OMK FREEDOM MODE — ACTIVE ║\n║ ║\n║ approval_policy = yolo ║\n║ safety floor = enforced (secrets / privilege / ║\n║ fs / scope) ║\n║ ║\n║ > User autonomy. Bounded execution. No moralizing. ║\n╚══════════════════════════════════════════════════════════╝\n`;\n\nexport function bannerOnce(cfg: FreedomConfig, memo: BannerMemo): string | undefined {\n\tif (!cfg.enabled) return undefined;\n\tif (!cfg.banner.show) return undefined;\n\tif (memo.shown) return undefined;\n\tmemo.shown = true;\n\treturn BANNER_TEMPLATE;\n}\n"]}
@@ -1,22 +0,0 @@
1
- const BANNER_TEMPLATE = `
2
- ╔══════════════════════════════════════════════════════════╗
3
- ║ OMK FREEDOM MODE — ACTIVE ║
4
- ║ ║
5
- ║ approval_policy = yolo ║
6
- ║ safety floor = enforced (secrets / privilege / ║
7
- ║ fs / scope) ║
8
- ║ ║
9
- ║ > User autonomy. Bounded execution. No moralizing. ║
10
- ╚══════════════════════════════════════════════════════════╝
11
- `;
12
- export function bannerOnce(cfg, memo) {
13
- if (!cfg.enabled)
14
- return undefined;
15
- if (!cfg.banner.show)
16
- return undefined;
17
- if (memo.shown)
18
- return undefined;
19
- memo.shown = true;
20
- return BANNER_TEMPLATE;
21
- }
22
- //# sourceMappingURL=banner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/core/freedom/banner.ts"],"names":[],"mappings":"AAcA,MAAM,eAAe,GAAG;;;;;;;;;;CAUvB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,GAAkB,EAAE,IAAgB,EAAsB;IACpF,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IAClB,OAAO,eAAe,CAAC;AAAA,CACvB","sourcesContent":["/**\n * One-shot freedom-mode banner.\n *\n * The interactive session calls `bannerOnce(cfg, memo)` once at startup. The\n * memo is a session-scoped object that this module mutates so the same banner\n * is never rendered twice in the same session. The memo lives wherever the\n * session does; that keeps the banner module pure and testable.\n */\nimport type { FreedomConfig } from \"./config.ts\";\n\nexport interface BannerMemo {\n\tshown?: boolean;\n}\n\nconst BANNER_TEMPLATE = `\n╔══════════════════════════════════════════════════════════╗\n║ OMK FREEDOM MODE — ACTIVE ║\n║ ║\n║ approval_policy = yolo ║\n║ safety floor = enforced (secrets / privilege / ║\n║ fs / scope) ║\n║ ║\n║ > User autonomy. Bounded execution. No moralizing. ║\n╚══════════════════════════════════════════════════════════╝\n`;\n\nexport function bannerOnce(cfg: FreedomConfig, memo: BannerMemo): string | undefined {\n\tif (!cfg.enabled) return undefined;\n\tif (!cfg.banner.show) return undefined;\n\tif (memo.shown) return undefined;\n\tmemo.shown = true;\n\treturn BANNER_TEMPLATE;\n}\n"]}
@@ -1,27 +0,0 @@
1
- export type ApprovalPolicy = "yolo" | "prompt-per-tool";
2
- export interface FreedomConfig {
3
- enabled: boolean;
4
- approvalPolicy: ApprovalPolicy;
5
- yoloMode: boolean;
6
- safetyFloor: {
7
- enforced: true;
8
- };
9
- banner: {
10
- show: boolean;
11
- suppressAfter: "session" | "forever";
12
- };
13
- audit: {
14
- emitEvents: boolean;
15
- includeArgs: boolean;
16
- logPath: string;
17
- };
18
- doctrineVersion: string;
19
- }
20
- export declare const FREEDOM_CONFIG_DEFAULTS: FreedomConfig;
21
- export declare class FreedomConfigError extends Error {
22
- readonly line?: number;
23
- constructor(message: string, line?: number);
24
- }
25
- export declare function loadFreedomConfig(projectRoot: string): FreedomConfig;
26
- export declare function parseFreedomConfigFromString(raw: string): FreedomConfig;
27
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/freedom/config.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,CAAC;IAChC,MAAM,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,SAAS,GAAG,SAAS,CAAA;KAAE,CAAC;IAChE,KAAK,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,eAAe,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,uBAAuB,EAAE,aAenB,CAAC;AAMpB,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAIzC;CACD;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAMpE;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAEvE","sourcesContent":["/**\n * `.omk/config.toml` loader for the freedom block.\n *\n * Implements a tiny, deterministic TOML subset that is exactly enough for the\n * schema defined in `.omk/runs/freedom-plan-20260619/config-schema.md`:\n *\n * - `# comment` lines and blank lines\n * - `[section.subsection]` headers\n * - `key = \"string\"` | `key = true` | `key = false`\n *\n * Anything outside that subset is treated as a malformed line and rejected\n * at parse time so users learn early that their config is wrong.\n *\n * Adding `@iarna/toml` would also work, but AGENTS.md keeps direct deps pinned\n * and reviewed; a 60-line hand parser avoids the dep-review cost for a config\n * shape this small.\n */\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n\nexport type ApprovalPolicy = \"yolo\" | \"prompt-per-tool\";\n\nexport interface FreedomConfig {\n\tenabled: boolean;\n\tapprovalPolicy: ApprovalPolicy;\n\tyoloMode: boolean;\n\tsafetyFloor: { enforced: true };\n\tbanner: { show: boolean; suppressAfter: \"session\" | \"forever\" };\n\taudit: { emitEvents: boolean; includeArgs: boolean; logPath: string };\n\tdoctrineVersion: string;\n}\n\nexport const FREEDOM_CONFIG_DEFAULTS: FreedomConfig = Object.freeze({\n\tenabled: false,\n\tapprovalPolicy: \"prompt-per-tool\",\n\tyoloMode: false,\n\tsafetyFloor: Object.freeze({ enforced: true }) as { enforced: true },\n\tbanner: Object.freeze({ show: true, suppressAfter: \"session\" }) as {\n\t\tshow: boolean;\n\t\tsuppressAfter: \"session\" | \"forever\";\n\t},\n\taudit: Object.freeze({ emitEvents: true, includeArgs: false, logPath: \".omk/audit/freedom.log\" }) as {\n\t\temitEvents: boolean;\n\t\tincludeArgs: boolean;\n\t\tlogPath: string;\n\t},\n\tdoctrineVersion: \"0.78.0-freedom\",\n}) as FreedomConfig;\n\ntype TomlValue = string | boolean | number;\n\ntype TomlTable = { [key: string]: TomlValue | TomlTable };\n\nexport class FreedomConfigError extends Error {\n\treadonly line?: number;\n\tconstructor(message: string, line?: number) {\n\t\tsuper(line ? `${message} (line ${line})` : message);\n\t\tthis.name = \"FreedomConfigError\";\n\t\tthis.line = line;\n\t}\n}\n\nexport function loadFreedomConfig(projectRoot: string): FreedomConfig {\n\tconst configPath = join(projectRoot, \".omk\", \"config.toml\");\n\tif (!existsSync(configPath)) return FREEDOM_CONFIG_DEFAULTS;\n\tconst raw = readFileSync(configPath, \"utf8\");\n\tconst parsed = parseToml(raw);\n\treturn materializeFreedomConfig(parsed);\n}\n\nexport function parseFreedomConfigFromString(raw: string): FreedomConfig {\n\treturn materializeFreedomConfig(parseToml(raw));\n}\n\nfunction parseToml(raw: string): TomlTable {\n\tconst root: TomlTable = {};\n\tlet current: TomlTable = root;\n\tconst normalized = raw.replace(/\\r\\n/g, \"\\n\");\n\tconst lines = normalized.split(\"\\n\");\n\tfor (let i = 0; i < lines.length; i++) {\n\t\tconst lineNumber = i + 1;\n\t\tconst line = stripInlineComment(lines[i]).trim();\n\t\tif (line.length === 0) continue;\n\t\tif (line.startsWith(\"[\")) {\n\t\t\tif (!line.endsWith(\"]\")) {\n\t\t\t\tthrow new FreedomConfigError(`Unterminated section header: ${line}`, lineNumber);\n\t\t\t}\n\t\t\tconst path = line\n\t\t\t\t.slice(1, -1)\n\t\t\t\t.split(\".\")\n\t\t\t\t.map((part) => part.trim());\n\t\t\tfor (const part of path) {\n\t\t\t\tif (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(part)) {\n\t\t\t\t\tthrow new FreedomConfigError(`Invalid section name '${part}'`, lineNumber);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrent = ensureTable(root, path);\n\t\t\tcontinue;\n\t\t}\n\t\tconst eq = line.indexOf(\"=\");\n\t\tif (eq < 0) {\n\t\t\tthrow new FreedomConfigError(`Expected 'key = value' but got '${line}'`, lineNumber);\n\t\t}\n\t\tconst key = line.slice(0, eq).trim();\n\t\tconst value = line.slice(eq + 1).trim();\n\t\tif (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key)) {\n\t\t\tthrow new FreedomConfigError(`Invalid key '${key}'`, lineNumber);\n\t\t}\n\t\tcurrent[key] = parseValue(value, lineNumber);\n\t}\n\treturn root;\n}\n\nfunction ensureTable(root: TomlTable, path: readonly string[]): TomlTable {\n\tlet cursor: TomlTable = root;\n\tfor (const part of path) {\n\t\tconst next = cursor[part];\n\t\tif (next === undefined) {\n\t\t\tconst created: TomlTable = {};\n\t\t\tcursor[part] = created;\n\t\t\tcursor = created;\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof next !== \"object\" || next === null) {\n\t\t\tthrow new FreedomConfigError(`Section '${path.join(\".\")}' collides with a value`);\n\t\t}\n\t\tcursor = next as TomlTable;\n\t}\n\treturn cursor;\n}\n\nfunction stripInlineComment(line: string): string {\n\tlet inString = false;\n\tlet quote = \"\";\n\tfor (let i = 0; i < line.length; i++) {\n\t\tconst c = line[i];\n\t\tif (inString) {\n\t\t\tif (c === \"\\\\\") {\n\t\t\t\ti += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (c === quote) inString = false;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === '\"' || c === \"'\") {\n\t\t\tinString = true;\n\t\t\tquote = c;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"#\") return line.slice(0, i);\n\t}\n\treturn line;\n}\n\nfunction parseValue(raw: string, lineNumber: number): TomlValue {\n\tif (raw === \"true\") return true;\n\tif (raw === \"false\") return false;\n\tif (/^-?\\d+$/.test(raw)) return Number(raw);\n\tif ((raw.startsWith('\"') && raw.endsWith('\"')) || (raw.startsWith(\"'\") && raw.endsWith(\"'\"))) {\n\t\treturn raw.slice(1, -1).replace(/\\\\n/g, \"\\n\").replace(/\\\\t/g, \"\\t\").replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, \"\\\\\");\n\t}\n\tthrow new FreedomConfigError(`Unsupported value '${raw}'`, lineNumber);\n}\n\nfunction materializeFreedomConfig(parsed: TomlTable): FreedomConfig {\n\tconst block = parsed.freedom;\n\tif (block === undefined) return FREEDOM_CONFIG_DEFAULTS;\n\tif (typeof block !== \"object\" || block === null) {\n\t\tthrow new FreedomConfigError(\"'[freedom]' must be a table\");\n\t}\n\tconst freedom = block as TomlTable;\n\n\tconst enabled = readBool(freedom, \"enabled\", FREEDOM_CONFIG_DEFAULTS.enabled);\n\tconst approvalPolicy = readApprovalPolicy(freedom);\n\tconst yoloMode = readBool(freedom, \"yolo_mode\", FREEDOM_CONFIG_DEFAULTS.yoloMode);\n\tconst doctrineVersion = readString(freedom, \"doctrine_version\", FREEDOM_CONFIG_DEFAULTS.doctrineVersion);\n\n\tif (yoloMode && approvalPolicy !== \"yolo\") {\n\t\tthrow new FreedomConfigError('yolo_mode=true requires approval_policy=\"yolo\"');\n\t}\n\n\tconst safetyFloorBlock = (freedom.safety_floor ?? {}) as TomlTable;\n\tfor (const [key, value] of Object.entries(safetyFloorBlock)) {\n\t\tif (value !== \"enforced\") {\n\t\t\tthrow new FreedomConfigError(\n\t\t\t\t`[freedom.safety_floor] '${key}' must be \"enforced\", got ${JSON.stringify(value)}`,\n\t\t\t);\n\t\t}\n\t}\n\n\tconst bannerBlock = (freedom.banner ?? {}) as TomlTable;\n\tconst banner = {\n\t\tshow: readBool(bannerBlock, \"show\", FREEDOM_CONFIG_DEFAULTS.banner.show),\n\t\tsuppressAfter: readSuppressAfter(bannerBlock),\n\t};\n\n\tconst auditBlock = (freedom.audit ?? {}) as TomlTable;\n\tconst audit = {\n\t\temitEvents: readBool(auditBlock, \"emit_events\", FREEDOM_CONFIG_DEFAULTS.audit.emitEvents),\n\t\tincludeArgs: readBool(auditBlock, \"include_args\", FREEDOM_CONFIG_DEFAULTS.audit.includeArgs),\n\t\tlogPath: readString(auditBlock, \"log_path\", FREEDOM_CONFIG_DEFAULTS.audit.logPath),\n\t};\n\n\treturn {\n\t\tenabled,\n\t\tapprovalPolicy,\n\t\tyoloMode,\n\t\tsafetyFloor: { enforced: true },\n\t\tbanner,\n\t\taudit,\n\t\tdoctrineVersion,\n\t};\n}\n\nfunction readBool(table: TomlTable, key: string, fallback: boolean): boolean {\n\tconst value = table[key];\n\tif (value === undefined) return fallback;\n\tif (typeof value !== \"boolean\") {\n\t\tthrow new FreedomConfigError(`'${key}' must be a boolean, got ${JSON.stringify(value)}`);\n\t}\n\treturn value;\n}\n\nfunction readString(table: TomlTable, key: string, fallback: string): string {\n\tconst value = table[key];\n\tif (value === undefined) return fallback;\n\tif (typeof value !== \"string\") {\n\t\tthrow new FreedomConfigError(`'${key}' must be a string, got ${JSON.stringify(value)}`);\n\t}\n\treturn value;\n}\n\nfunction readApprovalPolicy(table: TomlTable): ApprovalPolicy {\n\tconst value = table.approval_policy;\n\tif (value === undefined) return FREEDOM_CONFIG_DEFAULTS.approvalPolicy;\n\tif (value === \"yolo\" || value === \"prompt-per-tool\") return value;\n\tthrow new FreedomConfigError(`approval_policy must be \"yolo\" or \"prompt-per-tool\", got ${JSON.stringify(value)}`);\n}\n\nfunction readSuppressAfter(table: TomlTable): \"session\" | \"forever\" {\n\tconst value = table.suppress_after;\n\tif (value === undefined) return FREEDOM_CONFIG_DEFAULTS.banner.suppressAfter;\n\tif (value === \"session\" || value === \"forever\") return value;\n\tthrow new FreedomConfigError(`suppress_after must be \"session\" or \"forever\", got ${JSON.stringify(value)}`);\n}\n"]}
@@ -1,216 +0,0 @@
1
- /**
2
- * `.omk/config.toml` loader for the freedom block.
3
- *
4
- * Implements a tiny, deterministic TOML subset that is exactly enough for the
5
- * schema defined in `.omk/runs/freedom-plan-20260619/config-schema.md`:
6
- *
7
- * - `# comment` lines and blank lines
8
- * - `[section.subsection]` headers
9
- * - `key = "string"` | `key = true` | `key = false`
10
- *
11
- * Anything outside that subset is treated as a malformed line and rejected
12
- * at parse time so users learn early that their config is wrong.
13
- *
14
- * Adding `@iarna/toml` would also work, but AGENTS.md keeps direct deps pinned
15
- * and reviewed; a 60-line hand parser avoids the dep-review cost for a config
16
- * shape this small.
17
- */
18
- import { existsSync, readFileSync } from "node:fs";
19
- import { join } from "node:path";
20
- export const FREEDOM_CONFIG_DEFAULTS = Object.freeze({
21
- enabled: false,
22
- approvalPolicy: "prompt-per-tool",
23
- yoloMode: false,
24
- safetyFloor: Object.freeze({ enforced: true }),
25
- banner: Object.freeze({ show: true, suppressAfter: "session" }),
26
- audit: Object.freeze({ emitEvents: true, includeArgs: false, logPath: ".omk/audit/freedom.log" }),
27
- doctrineVersion: "0.78.0-freedom",
28
- });
29
- export class FreedomConfigError extends Error {
30
- line;
31
- constructor(message, line) {
32
- super(line ? `${message} (line ${line})` : message);
33
- this.name = "FreedomConfigError";
34
- this.line = line;
35
- }
36
- }
37
- export function loadFreedomConfig(projectRoot) {
38
- const configPath = join(projectRoot, ".omk", "config.toml");
39
- if (!existsSync(configPath))
40
- return FREEDOM_CONFIG_DEFAULTS;
41
- const raw = readFileSync(configPath, "utf8");
42
- const parsed = parseToml(raw);
43
- return materializeFreedomConfig(parsed);
44
- }
45
- export function parseFreedomConfigFromString(raw) {
46
- return materializeFreedomConfig(parseToml(raw));
47
- }
48
- function parseToml(raw) {
49
- const root = {};
50
- let current = root;
51
- const normalized = raw.replace(/\r\n/g, "\n");
52
- const lines = normalized.split("\n");
53
- for (let i = 0; i < lines.length; i++) {
54
- const lineNumber = i + 1;
55
- const line = stripInlineComment(lines[i]).trim();
56
- if (line.length === 0)
57
- continue;
58
- if (line.startsWith("[")) {
59
- if (!line.endsWith("]")) {
60
- throw new FreedomConfigError(`Unterminated section header: ${line}`, lineNumber);
61
- }
62
- const path = line
63
- .slice(1, -1)
64
- .split(".")
65
- .map((part) => part.trim());
66
- for (const part of path) {
67
- if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(part)) {
68
- throw new FreedomConfigError(`Invalid section name '${part}'`, lineNumber);
69
- }
70
- }
71
- current = ensureTable(root, path);
72
- continue;
73
- }
74
- const eq = line.indexOf("=");
75
- if (eq < 0) {
76
- throw new FreedomConfigError(`Expected 'key = value' but got '${line}'`, lineNumber);
77
- }
78
- const key = line.slice(0, eq).trim();
79
- const value = line.slice(eq + 1).trim();
80
- if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key)) {
81
- throw new FreedomConfigError(`Invalid key '${key}'`, lineNumber);
82
- }
83
- current[key] = parseValue(value, lineNumber);
84
- }
85
- return root;
86
- }
87
- function ensureTable(root, path) {
88
- let cursor = root;
89
- for (const part of path) {
90
- const next = cursor[part];
91
- if (next === undefined) {
92
- const created = {};
93
- cursor[part] = created;
94
- cursor = created;
95
- continue;
96
- }
97
- if (typeof next !== "object" || next === null) {
98
- throw new FreedomConfigError(`Section '${path.join(".")}' collides with a value`);
99
- }
100
- cursor = next;
101
- }
102
- return cursor;
103
- }
104
- function stripInlineComment(line) {
105
- let inString = false;
106
- let quote = "";
107
- for (let i = 0; i < line.length; i++) {
108
- const c = line[i];
109
- if (inString) {
110
- if (c === "\\") {
111
- i += 1;
112
- continue;
113
- }
114
- if (c === quote)
115
- inString = false;
116
- continue;
117
- }
118
- if (c === '"' || c === "'") {
119
- inString = true;
120
- quote = c;
121
- continue;
122
- }
123
- if (c === "#")
124
- return line.slice(0, i);
125
- }
126
- return line;
127
- }
128
- function parseValue(raw, lineNumber) {
129
- if (raw === "true")
130
- return true;
131
- if (raw === "false")
132
- return false;
133
- if (/^-?\d+$/.test(raw))
134
- return Number(raw);
135
- if ((raw.startsWith('"') && raw.endsWith('"')) || (raw.startsWith("'") && raw.endsWith("'"))) {
136
- return raw.slice(1, -1).replace(/\\n/g, "\n").replace(/\\t/g, "\t").replace(/\\"/g, '"').replace(/\\\\/g, "\\");
137
- }
138
- throw new FreedomConfigError(`Unsupported value '${raw}'`, lineNumber);
139
- }
140
- function materializeFreedomConfig(parsed) {
141
- const block = parsed.freedom;
142
- if (block === undefined)
143
- return FREEDOM_CONFIG_DEFAULTS;
144
- if (typeof block !== "object" || block === null) {
145
- throw new FreedomConfigError("'[freedom]' must be a table");
146
- }
147
- const freedom = block;
148
- const enabled = readBool(freedom, "enabled", FREEDOM_CONFIG_DEFAULTS.enabled);
149
- const approvalPolicy = readApprovalPolicy(freedom);
150
- const yoloMode = readBool(freedom, "yolo_mode", FREEDOM_CONFIG_DEFAULTS.yoloMode);
151
- const doctrineVersion = readString(freedom, "doctrine_version", FREEDOM_CONFIG_DEFAULTS.doctrineVersion);
152
- if (yoloMode && approvalPolicy !== "yolo") {
153
- throw new FreedomConfigError('yolo_mode=true requires approval_policy="yolo"');
154
- }
155
- const safetyFloorBlock = (freedom.safety_floor ?? {});
156
- for (const [key, value] of Object.entries(safetyFloorBlock)) {
157
- if (value !== "enforced") {
158
- throw new FreedomConfigError(`[freedom.safety_floor] '${key}' must be "enforced", got ${JSON.stringify(value)}`);
159
- }
160
- }
161
- const bannerBlock = (freedom.banner ?? {});
162
- const banner = {
163
- show: readBool(bannerBlock, "show", FREEDOM_CONFIG_DEFAULTS.banner.show),
164
- suppressAfter: readSuppressAfter(bannerBlock),
165
- };
166
- const auditBlock = (freedom.audit ?? {});
167
- const audit = {
168
- emitEvents: readBool(auditBlock, "emit_events", FREEDOM_CONFIG_DEFAULTS.audit.emitEvents),
169
- includeArgs: readBool(auditBlock, "include_args", FREEDOM_CONFIG_DEFAULTS.audit.includeArgs),
170
- logPath: readString(auditBlock, "log_path", FREEDOM_CONFIG_DEFAULTS.audit.logPath),
171
- };
172
- return {
173
- enabled,
174
- approvalPolicy,
175
- yoloMode,
176
- safetyFloor: { enforced: true },
177
- banner,
178
- audit,
179
- doctrineVersion,
180
- };
181
- }
182
- function readBool(table, key, fallback) {
183
- const value = table[key];
184
- if (value === undefined)
185
- return fallback;
186
- if (typeof value !== "boolean") {
187
- throw new FreedomConfigError(`'${key}' must be a boolean, got ${JSON.stringify(value)}`);
188
- }
189
- return value;
190
- }
191
- function readString(table, key, fallback) {
192
- const value = table[key];
193
- if (value === undefined)
194
- return fallback;
195
- if (typeof value !== "string") {
196
- throw new FreedomConfigError(`'${key}' must be a string, got ${JSON.stringify(value)}`);
197
- }
198
- return value;
199
- }
200
- function readApprovalPolicy(table) {
201
- const value = table.approval_policy;
202
- if (value === undefined)
203
- return FREEDOM_CONFIG_DEFAULTS.approvalPolicy;
204
- if (value === "yolo" || value === "prompt-per-tool")
205
- return value;
206
- throw new FreedomConfigError(`approval_policy must be "yolo" or "prompt-per-tool", got ${JSON.stringify(value)}`);
207
- }
208
- function readSuppressAfter(table) {
209
- const value = table.suppress_after;
210
- if (value === undefined)
211
- return FREEDOM_CONFIG_DEFAULTS.banner.suppressAfter;
212
- if (value === "session" || value === "forever")
213
- return value;
214
- throw new FreedomConfigError(`suppress_after must be "session" or "forever", got ${JSON.stringify(value)}`);
215
- }
216
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/freedom/config.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `.omk/config.toml` loader for the freedom block.\n *\n * Implements a tiny, deterministic TOML subset that is exactly enough for the\n * schema defined in `.omk/runs/freedom-plan-20260619/config-schema.md`:\n *\n * - `# comment` lines and blank lines\n * - `[section.subsection]` headers\n * - `key = \"string\"` | `key = true` | `key = false`\n *\n * Anything outside that subset is treated as a malformed line and rejected\n * at parse time so users learn early that their config is wrong.\n *\n * Adding `@iarna/toml` would also work, but AGENTS.md keeps direct deps pinned\n * and reviewed; a 60-line hand parser avoids the dep-review cost for a config\n * shape this small.\n */\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n\nexport type ApprovalPolicy = \"yolo\" | \"prompt-per-tool\";\n\nexport interface FreedomConfig {\n\tenabled: boolean;\n\tapprovalPolicy: ApprovalPolicy;\n\tyoloMode: boolean;\n\tsafetyFloor: { enforced: true };\n\tbanner: { show: boolean; suppressAfter: \"session\" | \"forever\" };\n\taudit: { emitEvents: boolean; includeArgs: boolean; logPath: string };\n\tdoctrineVersion: string;\n}\n\nexport const FREEDOM_CONFIG_DEFAULTS: FreedomConfig = Object.freeze({\n\tenabled: false,\n\tapprovalPolicy: \"prompt-per-tool\",\n\tyoloMode: false,\n\tsafetyFloor: Object.freeze({ enforced: true }) as { enforced: true },\n\tbanner: Object.freeze({ show: true, suppressAfter: \"session\" }) as {\n\t\tshow: boolean;\n\t\tsuppressAfter: \"session\" | \"forever\";\n\t},\n\taudit: Object.freeze({ emitEvents: true, includeArgs: false, logPath: \".omk/audit/freedom.log\" }) as {\n\t\temitEvents: boolean;\n\t\tincludeArgs: boolean;\n\t\tlogPath: string;\n\t},\n\tdoctrineVersion: \"0.78.0-freedom\",\n}) as FreedomConfig;\n\ntype TomlValue = string | boolean | number;\n\ntype TomlTable = { [key: string]: TomlValue | TomlTable };\n\nexport class FreedomConfigError extends Error {\n\treadonly line?: number;\n\tconstructor(message: string, line?: number) {\n\t\tsuper(line ? `${message} (line ${line})` : message);\n\t\tthis.name = \"FreedomConfigError\";\n\t\tthis.line = line;\n\t}\n}\n\nexport function loadFreedomConfig(projectRoot: string): FreedomConfig {\n\tconst configPath = join(projectRoot, \".omk\", \"config.toml\");\n\tif (!existsSync(configPath)) return FREEDOM_CONFIG_DEFAULTS;\n\tconst raw = readFileSync(configPath, \"utf8\");\n\tconst parsed = parseToml(raw);\n\treturn materializeFreedomConfig(parsed);\n}\n\nexport function parseFreedomConfigFromString(raw: string): FreedomConfig {\n\treturn materializeFreedomConfig(parseToml(raw));\n}\n\nfunction parseToml(raw: string): TomlTable {\n\tconst root: TomlTable = {};\n\tlet current: TomlTable = root;\n\tconst normalized = raw.replace(/\\r\\n/g, \"\\n\");\n\tconst lines = normalized.split(\"\\n\");\n\tfor (let i = 0; i < lines.length; i++) {\n\t\tconst lineNumber = i + 1;\n\t\tconst line = stripInlineComment(lines[i]).trim();\n\t\tif (line.length === 0) continue;\n\t\tif (line.startsWith(\"[\")) {\n\t\t\tif (!line.endsWith(\"]\")) {\n\t\t\t\tthrow new FreedomConfigError(`Unterminated section header: ${line}`, lineNumber);\n\t\t\t}\n\t\t\tconst path = line\n\t\t\t\t.slice(1, -1)\n\t\t\t\t.split(\".\")\n\t\t\t\t.map((part) => part.trim());\n\t\t\tfor (const part of path) {\n\t\t\t\tif (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(part)) {\n\t\t\t\t\tthrow new FreedomConfigError(`Invalid section name '${part}'`, lineNumber);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrent = ensureTable(root, path);\n\t\t\tcontinue;\n\t\t}\n\t\tconst eq = line.indexOf(\"=\");\n\t\tif (eq < 0) {\n\t\t\tthrow new FreedomConfigError(`Expected 'key = value' but got '${line}'`, lineNumber);\n\t\t}\n\t\tconst key = line.slice(0, eq).trim();\n\t\tconst value = line.slice(eq + 1).trim();\n\t\tif (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key)) {\n\t\t\tthrow new FreedomConfigError(`Invalid key '${key}'`, lineNumber);\n\t\t}\n\t\tcurrent[key] = parseValue(value, lineNumber);\n\t}\n\treturn root;\n}\n\nfunction ensureTable(root: TomlTable, path: readonly string[]): TomlTable {\n\tlet cursor: TomlTable = root;\n\tfor (const part of path) {\n\t\tconst next = cursor[part];\n\t\tif (next === undefined) {\n\t\t\tconst created: TomlTable = {};\n\t\t\tcursor[part] = created;\n\t\t\tcursor = created;\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof next !== \"object\" || next === null) {\n\t\t\tthrow new FreedomConfigError(`Section '${path.join(\".\")}' collides with a value`);\n\t\t}\n\t\tcursor = next as TomlTable;\n\t}\n\treturn cursor;\n}\n\nfunction stripInlineComment(line: string): string {\n\tlet inString = false;\n\tlet quote = \"\";\n\tfor (let i = 0; i < line.length; i++) {\n\t\tconst c = line[i];\n\t\tif (inString) {\n\t\t\tif (c === \"\\\\\") {\n\t\t\t\ti += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (c === quote) inString = false;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === '\"' || c === \"'\") {\n\t\t\tinString = true;\n\t\t\tquote = c;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"#\") return line.slice(0, i);\n\t}\n\treturn line;\n}\n\nfunction parseValue(raw: string, lineNumber: number): TomlValue {\n\tif (raw === \"true\") return true;\n\tif (raw === \"false\") return false;\n\tif (/^-?\\d+$/.test(raw)) return Number(raw);\n\tif ((raw.startsWith('\"') && raw.endsWith('\"')) || (raw.startsWith(\"'\") && raw.endsWith(\"'\"))) {\n\t\treturn raw.slice(1, -1).replace(/\\\\n/g, \"\\n\").replace(/\\\\t/g, \"\\t\").replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, \"\\\\\");\n\t}\n\tthrow new FreedomConfigError(`Unsupported value '${raw}'`, lineNumber);\n}\n\nfunction materializeFreedomConfig(parsed: TomlTable): FreedomConfig {\n\tconst block = parsed.freedom;\n\tif (block === undefined) return FREEDOM_CONFIG_DEFAULTS;\n\tif (typeof block !== \"object\" || block === null) {\n\t\tthrow new FreedomConfigError(\"'[freedom]' must be a table\");\n\t}\n\tconst freedom = block as TomlTable;\n\n\tconst enabled = readBool(freedom, \"enabled\", FREEDOM_CONFIG_DEFAULTS.enabled);\n\tconst approvalPolicy = readApprovalPolicy(freedom);\n\tconst yoloMode = readBool(freedom, \"yolo_mode\", FREEDOM_CONFIG_DEFAULTS.yoloMode);\n\tconst doctrineVersion = readString(freedom, \"doctrine_version\", FREEDOM_CONFIG_DEFAULTS.doctrineVersion);\n\n\tif (yoloMode && approvalPolicy !== \"yolo\") {\n\t\tthrow new FreedomConfigError('yolo_mode=true requires approval_policy=\"yolo\"');\n\t}\n\n\tconst safetyFloorBlock = (freedom.safety_floor ?? {}) as TomlTable;\n\tfor (const [key, value] of Object.entries(safetyFloorBlock)) {\n\t\tif (value !== \"enforced\") {\n\t\t\tthrow new FreedomConfigError(\n\t\t\t\t`[freedom.safety_floor] '${key}' must be \"enforced\", got ${JSON.stringify(value)}`,\n\t\t\t);\n\t\t}\n\t}\n\n\tconst bannerBlock = (freedom.banner ?? {}) as TomlTable;\n\tconst banner = {\n\t\tshow: readBool(bannerBlock, \"show\", FREEDOM_CONFIG_DEFAULTS.banner.show),\n\t\tsuppressAfter: readSuppressAfter(bannerBlock),\n\t};\n\n\tconst auditBlock = (freedom.audit ?? {}) as TomlTable;\n\tconst audit = {\n\t\temitEvents: readBool(auditBlock, \"emit_events\", FREEDOM_CONFIG_DEFAULTS.audit.emitEvents),\n\t\tincludeArgs: readBool(auditBlock, \"include_args\", FREEDOM_CONFIG_DEFAULTS.audit.includeArgs),\n\t\tlogPath: readString(auditBlock, \"log_path\", FREEDOM_CONFIG_DEFAULTS.audit.logPath),\n\t};\n\n\treturn {\n\t\tenabled,\n\t\tapprovalPolicy,\n\t\tyoloMode,\n\t\tsafetyFloor: { enforced: true },\n\t\tbanner,\n\t\taudit,\n\t\tdoctrineVersion,\n\t};\n}\n\nfunction readBool(table: TomlTable, key: string, fallback: boolean): boolean {\n\tconst value = table[key];\n\tif (value === undefined) return fallback;\n\tif (typeof value !== \"boolean\") {\n\t\tthrow new FreedomConfigError(`'${key}' must be a boolean, got ${JSON.stringify(value)}`);\n\t}\n\treturn value;\n}\n\nfunction readString(table: TomlTable, key: string, fallback: string): string {\n\tconst value = table[key];\n\tif (value === undefined) return fallback;\n\tif (typeof value !== \"string\") {\n\t\tthrow new FreedomConfigError(`'${key}' must be a string, got ${JSON.stringify(value)}`);\n\t}\n\treturn value;\n}\n\nfunction readApprovalPolicy(table: TomlTable): ApprovalPolicy {\n\tconst value = table.approval_policy;\n\tif (value === undefined) return FREEDOM_CONFIG_DEFAULTS.approvalPolicy;\n\tif (value === \"yolo\" || value === \"prompt-per-tool\") return value;\n\tthrow new FreedomConfigError(`approval_policy must be \"yolo\" or \"prompt-per-tool\", got ${JSON.stringify(value)}`);\n}\n\nfunction readSuppressAfter(table: TomlTable): \"session\" | \"forever\" {\n\tconst value = table.suppress_after;\n\tif (value === undefined) return FREEDOM_CONFIG_DEFAULTS.banner.suppressAfter;\n\tif (value === \"session\" || value === \"forever\") return value;\n\tthrow new FreedomConfigError(`suppress_after must be \"session\" or \"forever\", got ${JSON.stringify(value)}`);\n}\n"]}
@@ -1,23 +0,0 @@
1
- /**
2
- * Public surface for the OMK freedom-mode runtime.
3
- *
4
- * Tool dispatchers import `gate`. The interactive TUI imports `badgeText` and
5
- * `bannerOnce`. Subprocess spawners import `applyFreedomEnv`. Everything else
6
- * is implementation detail and stays inside this directory.
7
- *
8
- * Design: every doctrine clause from AGENTS.md §0 has exactly one owner here.
9
- * - §0.1 safety floor → safety-floor.ts (always-on, never downgradable)
10
- * - §0.2 defaults → config.ts (parsed from .omk/config.toml)
11
- * - §0.3 no moralizing → not enforced at runtime (system prompt only)
12
- * - banner & badge → banner.ts + policy.badgeText
13
- * - subprocess env → policy.applyFreedomEnv
14
- */
15
- export type { BannerMemo } from "./banner.ts";
16
- export { bannerOnce } from "./banner.ts";
17
- export type { ApprovalPolicy, FreedomConfig } from "./config.ts";
18
- export { FREEDOM_CONFIG_DEFAULTS, FreedomConfigError, loadFreedomConfig, parseFreedomConfigFromString, } from "./config.ts";
19
- export type { PolicyDecision, ToolCallContext } from "./policy.ts";
20
- export { applyFreedomEnv, badgeText, gate } from "./policy.ts";
21
- export type { MatcherVerdict } from "./safety-floor.ts";
22
- export { redactSecrets, runSafetyFloor } from "./safety-floor.ts";
23
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/freedom/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACN,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,GAC5B,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["/**\n * Public surface for the OMK freedom-mode runtime.\n *\n * Tool dispatchers import `gate`. The interactive TUI imports `badgeText` and\n * `bannerOnce`. Subprocess spawners import `applyFreedomEnv`. Everything else\n * is implementation detail and stays inside this directory.\n *\n * Design: every doctrine clause from AGENTS.md §0 has exactly one owner here.\n * - §0.1 safety floor → safety-floor.ts (always-on, never downgradable)\n * - §0.2 defaults → config.ts (parsed from .omk/config.toml)\n * - §0.3 no moralizing → not enforced at runtime (system prompt only)\n * - banner & badge → banner.ts + policy.badgeText\n * - subprocess env → policy.applyFreedomEnv\n */\n\nexport type { BannerMemo } from \"./banner.ts\";\nexport { bannerOnce } from \"./banner.ts\";\nexport type { ApprovalPolicy, FreedomConfig } from \"./config.ts\";\nexport {\n\tFREEDOM_CONFIG_DEFAULTS,\n\tFreedomConfigError,\n\tloadFreedomConfig,\n\tparseFreedomConfigFromString,\n} from \"./config.ts\";\nexport type { PolicyDecision, ToolCallContext } from \"./policy.ts\";\nexport { applyFreedomEnv, badgeText, gate } from \"./policy.ts\";\nexport type { MatcherVerdict } from \"./safety-floor.ts\";\nexport { redactSecrets, runSafetyFloor } from \"./safety-floor.ts\";\n"]}