open-multi-agent-kit 0.80.7 → 0.90.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1494) hide show
  1. package/CHANGELOG.md +5 -27
  2. package/README.md +81 -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 +8 -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/automation/index.d.ts +359 -0
  65. package/dist/core/automation/index.d.ts.map +1 -0
  66. package/dist/core/automation/index.js +665 -0
  67. package/dist/core/automation/index.js.map +1 -0
  68. package/dist/core/bash-executor.d.ts +1 -0
  69. package/dist/core/bash-executor.d.ts.map +1 -1
  70. package/dist/core/bash-executor.js +1 -0
  71. package/dist/core/bash-executor.js.map +1 -1
  72. package/dist/core/browser-use.d.ts +53 -0
  73. package/dist/core/browser-use.d.ts.map +1 -0
  74. package/dist/core/browser-use.js +108 -0
  75. package/dist/core/browser-use.js.map +1 -0
  76. package/dist/core/command-safety-parser.d.ts +77 -0
  77. package/dist/core/command-safety-parser.d.ts.map +1 -0
  78. package/dist/core/command-safety-parser.js +763 -0
  79. package/dist/core/command-safety-parser.js.map +1 -0
  80. package/dist/core/command-safety.d.ts.map +1 -1
  81. package/dist/core/command-safety.js +106 -3
  82. package/dist/core/command-safety.js.map +1 -1
  83. package/dist/core/compaction/branch-summarization.d.ts +2 -2
  84. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  85. package/dist/core/compaction/branch-summarization.js +5 -21
  86. package/dist/core/compaction/branch-summarization.js.map +1 -1
  87. package/dist/core/compaction/compaction.d.ts +3 -101
  88. package/dist/core/compaction/compaction.d.ts.map +1 -1
  89. package/dist/core/compaction/compaction.js +21 -656
  90. package/dist/core/compaction/compaction.js.map +1 -1
  91. package/dist/core/compaction/utils.d.ts +2 -2
  92. package/dist/core/compaction/utils.d.ts.map +1 -1
  93. package/dist/core/compaction/utils.js.map +1 -1
  94. package/dist/core/compactor.d.ts +42 -0
  95. package/dist/core/compactor.d.ts.map +1 -0
  96. package/dist/core/compactor.js +131 -0
  97. package/dist/core/compactor.js.map +1 -0
  98. package/dist/core/context-budget-compressors.d.ts +50 -0
  99. package/dist/core/context-budget-compressors.d.ts.map +1 -0
  100. package/dist/core/context-budget-compressors.js +166 -0
  101. package/dist/core/context-budget-compressors.js.map +1 -0
  102. package/dist/core/context-budget-governor-v2.d.ts +7 -0
  103. package/dist/core/context-budget-governor-v2.d.ts.map +1 -0
  104. package/dist/core/context-budget-governor-v2.js +7 -0
  105. package/dist/core/context-budget-governor-v2.js.map +1 -0
  106. package/dist/core/context-budget-governor.d.ts +67 -0
  107. package/dist/core/context-budget-governor.d.ts.map +1 -0
  108. package/dist/core/context-budget-governor.js +224 -0
  109. package/dist/core/context-budget-governor.js.map +1 -0
  110. package/dist/core/context-budget-headroom-candidates.d.ts +3 -0
  111. package/dist/core/context-budget-headroom-candidates.d.ts.map +1 -0
  112. package/dist/core/context-budget-headroom-candidates.js +85 -0
  113. package/dist/core/context-budget-headroom-candidates.js.map +1 -0
  114. package/dist/core/context-budget-headroom-types.d.ts +67 -0
  115. package/dist/core/context-budget-headroom-types.d.ts.map +1 -0
  116. package/dist/core/context-budget-headroom-types.js +46 -0
  117. package/dist/core/context-budget-headroom-types.js.map +1 -0
  118. package/dist/core/context-budget-headroom.d.ts +5 -0
  119. package/dist/core/context-budget-headroom.d.ts.map +1 -0
  120. package/dist/core/context-budget-headroom.js +123 -0
  121. package/dist/core/context-budget-headroom.js.map +1 -0
  122. package/dist/core/context-budget-relevance.d.ts +46 -0
  123. package/dist/core/context-budget-relevance.d.ts.map +1 -0
  124. package/dist/core/context-budget-relevance.js +329 -0
  125. package/dist/core/context-budget-relevance.js.map +1 -0
  126. package/dist/core/context-budget-system-prompt-items.d.ts +19 -0
  127. package/dist/core/context-budget-system-prompt-items.d.ts.map +1 -0
  128. package/dist/core/context-budget-system-prompt-items.js +143 -0
  129. package/dist/core/context-budget-system-prompt-items.js.map +1 -0
  130. package/dist/core/context-budget-system-prompt.d.ts +31 -0
  131. package/dist/core/context-budget-system-prompt.d.ts.map +1 -0
  132. package/dist/core/context-budget-system-prompt.js +87 -0
  133. package/dist/core/context-budget-system-prompt.js.map +1 -0
  134. package/dist/core/context-budget-token-counter.d.ts +34 -0
  135. package/dist/core/context-budget-token-counter.d.ts.map +1 -0
  136. package/dist/core/context-budget-token-counter.js +315 -0
  137. package/dist/core/context-budget-token-counter.js.map +1 -0
  138. package/dist/core/context-budget-v2-coverage.d.ts +5 -0
  139. package/dist/core/context-budget-v2-coverage.d.ts.map +1 -0
  140. package/dist/core/context-budget-v2-coverage.js +58 -0
  141. package/dist/core/context-budget-v2-coverage.js.map +1 -0
  142. package/dist/core/context-budget-v2-plan-hash.d.ts +12 -0
  143. package/dist/core/context-budget-v2-plan-hash.d.ts.map +1 -0
  144. package/dist/core/context-budget-v2-plan-hash.js +38 -0
  145. package/dist/core/context-budget-v2-plan-hash.js.map +1 -0
  146. package/dist/core/context-budget-v2-planner.d.ts +3 -0
  147. package/dist/core/context-budget-v2-planner.d.ts.map +1 -0
  148. package/dist/core/context-budget-v2-planner.js +143 -0
  149. package/dist/core/context-budget-v2-planner.js.map +1 -0
  150. package/dist/core/context-budget-v2-scoring.d.ts +14 -0
  151. package/dist/core/context-budget-v2-scoring.d.ts.map +1 -0
  152. package/dist/core/context-budget-v2-scoring.js +114 -0
  153. package/dist/core/context-budget-v2-scoring.js.map +1 -0
  154. package/dist/core/context-budget-v2-selection.d.ts +32 -0
  155. package/dist/core/context-budget-v2-selection.d.ts.map +1 -0
  156. package/dist/core/context-budget-v2-selection.js +158 -0
  157. package/dist/core/context-budget-v2-selection.js.map +1 -0
  158. package/dist/core/context-budget-v2-tiers.d.ts +15 -0
  159. package/dist/core/context-budget-v2-tiers.d.ts.map +1 -0
  160. package/dist/core/context-budget-v2-tiers.js +68 -0
  161. package/dist/core/context-budget-v2-tiers.js.map +1 -0
  162. package/dist/core/context-budget-v2-types.d.ts +92 -0
  163. package/dist/core/context-budget-v2-types.d.ts.map +1 -0
  164. package/dist/core/context-budget-v2-types.js +24 -0
  165. package/dist/core/context-budget-v2-types.js.map +1 -0
  166. package/dist/core/defaults.d.ts +1 -1
  167. package/dist/core/defaults.d.ts.map +1 -1
  168. package/dist/core/defaults.js.map +1 -1
  169. package/dist/core/diagnostics.d.ts +6 -0
  170. package/dist/core/diagnostics.d.ts.map +1 -1
  171. package/dist/core/diagnostics.js.map +1 -1
  172. package/dist/core/domain-confidence.d.ts +9 -0
  173. package/dist/core/domain-confidence.d.ts.map +1 -0
  174. package/dist/core/domain-confidence.js +39 -0
  175. package/dist/core/domain-confidence.js.map +1 -0
  176. package/dist/core/domain-dispatch.d.ts +44 -0
  177. package/dist/core/domain-dispatch.d.ts.map +1 -0
  178. package/dist/core/domain-dispatch.js +118 -0
  179. package/dist/core/domain-dispatch.js.map +1 -0
  180. package/dist/core/domain-loadouts.d.ts +76 -0
  181. package/dist/core/domain-loadouts.d.ts.map +1 -0
  182. package/dist/core/domain-loadouts.js +981 -0
  183. package/dist/core/domain-loadouts.js.map +1 -0
  184. package/dist/core/domain-registry.d.ts +7 -0
  185. package/dist/core/domain-registry.d.ts.map +1 -0
  186. package/dist/core/domain-registry.js +11 -0
  187. package/dist/core/domain-registry.js.map +1 -0
  188. package/dist/core/domain-router.d.ts +16 -0
  189. package/dist/core/domain-router.d.ts.map +1 -0
  190. package/dist/core/domain-router.js +24 -0
  191. package/dist/core/domain-router.js.map +1 -0
  192. package/dist/core/domain-score.d.ts +13 -0
  193. package/dist/core/domain-score.d.ts.map +1 -0
  194. package/dist/core/domain-score.js +48 -0
  195. package/dist/core/domain-score.js.map +1 -0
  196. package/dist/core/domain-trigger-match.d.ts +14 -0
  197. package/dist/core/domain-trigger-match.d.ts.map +1 -0
  198. package/dist/core/domain-trigger-match.js +51 -0
  199. package/dist/core/domain-trigger-match.js.map +1 -0
  200. package/dist/core/domain-types.d.ts +30 -0
  201. package/dist/core/domain-types.d.ts.map +1 -0
  202. package/dist/core/domain-types.js +2 -0
  203. package/dist/core/domain-types.js.map +1 -0
  204. package/dist/core/exact-cache-policy.d.ts +8 -0
  205. package/dist/core/exact-cache-policy.d.ts.map +1 -1
  206. package/dist/core/exact-cache-policy.js +9 -0
  207. package/dist/core/exact-cache-policy.js.map +1 -1
  208. package/dist/core/exec.d.ts +0 -2
  209. package/dist/core/exec.d.ts.map +1 -1
  210. package/dist/core/exec.js +0 -1
  211. package/dist/core/exec.js.map +1 -1
  212. package/dist/core/export-html/index.d.ts +1 -1
  213. package/dist/core/export-html/index.d.ts.map +1 -1
  214. package/dist/core/export-html/index.js.map +1 -1
  215. package/dist/core/export-html/template.js +1 -3
  216. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  217. package/dist/core/export-html/tool-renderer.js.map +1 -1
  218. package/dist/core/extensions/builtin/command-safety-gate.d.ts +3 -0
  219. package/dist/core/extensions/builtin/command-safety-gate.d.ts.map +1 -1
  220. package/dist/core/extensions/builtin/command-safety-gate.js +15 -3
  221. package/dist/core/extensions/builtin/command-safety-gate.js.map +1 -1
  222. package/dist/core/extensions/builtin/todo-checklist.d.ts +20 -0
  223. package/dist/core/extensions/builtin/todo-checklist.d.ts.map +1 -0
  224. package/dist/core/extensions/builtin/todo-checklist.js +73 -0
  225. package/dist/core/extensions/builtin/todo-checklist.js.map +1 -0
  226. package/dist/core/extensions/loader.d.ts +4 -4
  227. package/dist/core/extensions/loader.d.ts.map +1 -1
  228. package/dist/core/extensions/loader.js +57 -92
  229. package/dist/core/extensions/loader.js.map +1 -1
  230. package/dist/core/extensions/runner.d.ts +3 -3
  231. package/dist/core/extensions/runner.d.ts.map +1 -1
  232. package/dist/core/extensions/runner.js +1 -1
  233. package/dist/core/extensions/runner.js.map +1 -1
  234. package/dist/core/extensions/types.d.ts +7 -35
  235. package/dist/core/extensions/types.d.ts.map +1 -1
  236. package/dist/core/extensions/types.js.map +1 -1
  237. package/dist/core/extensions/wrapper.d.ts +1 -1
  238. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  239. package/dist/core/extensions/wrapper.js.map +1 -1
  240. package/dist/core/footer-data-provider.d.ts +3 -1
  241. package/dist/core/footer-data-provider.d.ts.map +1 -1
  242. package/dist/core/footer-data-provider.js +4 -0
  243. package/dist/core/footer-data-provider.js.map +1 -1
  244. package/dist/core/headroom.d.ts +45 -0
  245. package/dist/core/headroom.d.ts.map +1 -0
  246. package/dist/core/headroom.js +171 -0
  247. package/dist/core/headroom.js.map +1 -0
  248. package/dist/core/hook-inventory.d.ts +4 -2
  249. package/dist/core/hook-inventory.d.ts.map +1 -1
  250. package/dist/core/hook-inventory.js +80 -11
  251. package/dist/core/hook-inventory.js.map +1 -1
  252. package/dist/core/hooks/fail-closed.d.ts +4 -1
  253. package/dist/core/hooks/fail-closed.d.ts.map +1 -1
  254. package/dist/core/hooks/fail-closed.js +79 -5
  255. package/dist/core/hooks/fail-closed.js.map +1 -1
  256. package/dist/core/hooks/index.d.ts +2 -2
  257. package/dist/core/hooks/index.d.ts.map +1 -1
  258. package/dist/core/hooks/index.js +1 -1
  259. package/dist/core/hooks/index.js.map +1 -1
  260. package/dist/core/hooks/types.d.ts +9 -0
  261. package/dist/core/hooks/types.d.ts.map +1 -1
  262. package/dist/core/hooks/types.js.map +1 -1
  263. package/dist/core/keybindings.d.ts +2 -14
  264. package/dist/core/keybindings.d.ts.map +1 -1
  265. package/dist/core/keybindings.js +1 -31
  266. package/dist/core/keybindings.js.map +1 -1
  267. package/dist/core/lean-ctx.d.ts +99 -0
  268. package/dist/core/lean-ctx.d.ts.map +1 -0
  269. package/dist/core/lean-ctx.js +225 -0
  270. package/dist/core/lean-ctx.js.map +1 -0
  271. package/dist/core/loadout-compose.d.ts +53 -0
  272. package/dist/core/loadout-compose.d.ts.map +1 -0
  273. package/dist/core/loadout-compose.js +172 -0
  274. package/dist/core/loadout-compose.js.map +1 -0
  275. package/dist/core/loadout-policy-bridge.d.ts +22 -0
  276. package/dist/core/loadout-policy-bridge.d.ts.map +1 -0
  277. package/dist/core/loadout-policy-bridge.js +52 -0
  278. package/dist/core/loadout-policy-bridge.js.map +1 -0
  279. package/dist/core/loadout-runtime.d.ts +22 -0
  280. package/dist/core/loadout-runtime.d.ts.map +1 -1
  281. package/dist/core/loadout-runtime.js +41 -5
  282. package/dist/core/loadout-runtime.js.map +1 -1
  283. package/dist/core/loadout-safety.d.ts +55 -0
  284. package/dist/core/loadout-safety.d.ts.map +1 -0
  285. package/dist/core/loadout-safety.js +213 -0
  286. package/dist/core/loadout-safety.js.map +1 -0
  287. package/dist/core/loadouts.d.ts +4 -2
  288. package/dist/core/loadouts.d.ts.map +1 -1
  289. package/dist/core/loadouts.js +116 -5
  290. package/dist/core/loadouts.js.map +1 -1
  291. package/dist/core/loop-gates.d.ts +48 -0
  292. package/dist/core/loop-gates.d.ts.map +1 -0
  293. package/dist/core/loop-gates.js +352 -0
  294. package/dist/core/loop-gates.js.map +1 -0
  295. package/dist/core/loop-registry.d.ts +77 -0
  296. package/dist/core/loop-registry.d.ts.map +1 -0
  297. package/dist/core/loop-registry.js +831 -0
  298. package/dist/core/loop-registry.js.map +1 -0
  299. package/dist/core/loop-types.d.ts +194 -0
  300. package/dist/core/loop-types.d.ts.map +1 -0
  301. package/dist/core/loop-types.js +2 -0
  302. package/dist/core/loop-types.js.map +1 -0
  303. package/dist/core/mcp-inventory.d.ts +7 -0
  304. package/dist/core/mcp-inventory.d.ts.map +1 -1
  305. package/dist/core/mcp-inventory.js +5 -1
  306. package/dist/core/mcp-inventory.js.map +1 -1
  307. package/dist/core/mcp-presets.d.ts +43 -2
  308. package/dist/core/mcp-presets.d.ts.map +1 -1
  309. package/dist/core/mcp-presets.js +298 -2
  310. package/dist/core/mcp-presets.js.map +1 -1
  311. package/dist/core/messages.d.ts +3 -3
  312. package/dist/core/messages.d.ts.map +1 -1
  313. package/dist/core/messages.js.map +1 -1
  314. package/dist/core/metrics-sampler.d.ts +11 -0
  315. package/dist/core/metrics-sampler.d.ts.map +1 -1
  316. package/dist/core/metrics-sampler.js +52 -13
  317. package/dist/core/metrics-sampler.js.map +1 -1
  318. package/dist/core/model-registry.d.ts +1 -2
  319. package/dist/core/model-registry.d.ts.map +1 -1
  320. package/dist/core/model-registry.js +18 -41
  321. package/dist/core/model-registry.js.map +1 -1
  322. package/dist/core/model-resolver.d.ts +2 -2
  323. package/dist/core/model-resolver.d.ts.map +1 -1
  324. package/dist/core/model-resolver.js +2 -2
  325. package/dist/core/model-resolver.js.map +1 -1
  326. package/dist/core/package-gallery-identity.d.ts +7 -0
  327. package/dist/core/package-gallery-identity.d.ts.map +1 -0
  328. package/dist/core/package-gallery-identity.js +31 -0
  329. package/dist/core/package-gallery-identity.js.map +1 -0
  330. package/dist/core/package-gallery-install.d.ts +6 -0
  331. package/dist/core/package-gallery-install.d.ts.map +1 -0
  332. package/dist/core/package-gallery-install.js +59 -0
  333. package/dist/core/package-gallery-install.js.map +1 -0
  334. package/dist/core/package-gallery-manifest.d.ts +13 -0
  335. package/dist/core/package-gallery-manifest.d.ts.map +1 -0
  336. package/dist/core/package-gallery-manifest.js +183 -0
  337. package/dist/core/package-gallery-manifest.js.map +1 -0
  338. package/dist/core/package-gallery-trial.d.ts +4 -0
  339. package/dist/core/package-gallery-trial.d.ts.map +1 -0
  340. package/dist/core/package-gallery-trial.js +55 -0
  341. package/dist/core/package-gallery-trial.js.map +1 -0
  342. package/dist/core/package-gallery-types.d.ts +71 -0
  343. package/dist/core/package-gallery-types.d.ts.map +1 -0
  344. package/dist/core/package-gallery-types.js +2 -0
  345. package/dist/core/package-gallery-types.js.map +1 -0
  346. package/dist/core/package-gallery.d.ts +5 -123
  347. package/dist/core/package-gallery.d.ts.map +1 -1
  348. package/dist/core/package-gallery.js +5 -391
  349. package/dist/core/package-gallery.js.map +1 -1
  350. package/dist/core/package-manager.d.ts +0 -69
  351. package/dist/core/package-manager.d.ts.map +1 -1
  352. package/dist/core/package-manager.js +69 -367
  353. package/dist/core/package-manager.js.map +1 -1
  354. package/dist/core/package-procurement.d.ts +4 -4
  355. package/dist/core/package-procurement.d.ts.map +1 -1
  356. package/dist/core/package-procurement.js +29 -17
  357. package/dist/core/package-procurement.js.map +1 -1
  358. package/dist/core/pi-package-intake-candidates.d.ts +21 -0
  359. package/dist/core/pi-package-intake-candidates.d.ts.map +1 -0
  360. package/dist/core/pi-package-intake-candidates.js +109 -0
  361. package/dist/core/pi-package-intake-candidates.js.map +1 -0
  362. package/dist/core/pi-package-intake.d.ts +43 -0
  363. package/dist/core/pi-package-intake.d.ts.map +1 -0
  364. package/dist/core/pi-package-intake.js +122 -0
  365. package/dist/core/pi-package-intake.js.map +1 -0
  366. package/dist/core/provider-attribution.d.ts +1 -1
  367. package/dist/core/provider-attribution.d.ts.map +1 -1
  368. package/dist/core/provider-attribution.js.map +1 -1
  369. package/dist/core/provider-display-names.d.ts.map +1 -1
  370. package/dist/core/provider-display-names.js +1 -0
  371. package/dist/core/provider-display-names.js.map +1 -1
  372. package/dist/core/read-anchors.d.ts +1 -1
  373. package/dist/core/read-anchors.d.ts.map +1 -1
  374. package/dist/core/read-anchors.js +1 -1
  375. package/dist/core/read-anchors.js.map +1 -1
  376. package/dist/core/recovery-checkpoint.d.ts +2 -2
  377. package/dist/core/recovery-checkpoint.d.ts.map +1 -1
  378. package/dist/core/recovery-checkpoint.js +2 -2
  379. package/dist/core/recovery-checkpoint.js.map +1 -1
  380. package/dist/core/resolve-config-value.d.ts +1 -1
  381. package/dist/core/resolve-config-value.d.ts.map +1 -1
  382. package/dist/core/resolve-config-value.js +2 -30
  383. package/dist/core/resolve-config-value.js.map +1 -1
  384. package/dist/core/resource-loader.d.ts +12 -20
  385. package/dist/core/resource-loader.d.ts.map +1 -1
  386. package/dist/core/resource-loader.js +67 -90
  387. package/dist/core/resource-loader.js.map +1 -1
  388. package/dist/core/sandbox-policy-v2.d.ts +49 -0
  389. package/dist/core/sandbox-policy-v2.d.ts.map +1 -0
  390. package/dist/core/sandbox-policy-v2.js +368 -0
  391. package/dist/core/sandbox-policy-v2.js.map +1 -0
  392. package/dist/core/sdk.d.ts +10 -78
  393. package/dist/core/sdk.d.ts.map +1 -1
  394. package/dist/core/sdk.js +97 -139
  395. package/dist/core/sdk.js.map +1 -1
  396. package/dist/core/semantic-cache-policy.d.ts +7 -1
  397. package/dist/core/semantic-cache-policy.d.ts.map +1 -1
  398. package/dist/core/semantic-cache-policy.js +8 -0
  399. package/dist/core/semantic-cache-policy.js.map +1 -1
  400. package/dist/core/session-manager.d.ts +2 -4
  401. package/dist/core/session-manager.d.ts.map +1 -1
  402. package/dist/core/session-manager.js +5 -6
  403. package/dist/core/session-manager.js.map +1 -1
  404. package/dist/core/settings-manager.d.ts +1 -18
  405. package/dist/core/settings-manager.d.ts.map +1 -1
  406. package/dist/core/settings-manager.js +2 -48
  407. package/dist/core/settings-manager.js.map +1 -1
  408. package/dist/core/skills.d.ts +5 -0
  409. package/dist/core/skills.d.ts.map +1 -1
  410. package/dist/core/skills.js +149 -36
  411. package/dist/core/skills.js.map +1 -1
  412. package/dist/core/slash-commands.d.ts.map +1 -1
  413. package/dist/core/slash-commands.js +0 -2
  414. package/dist/core/slash-commands.js.map +1 -1
  415. package/dist/core/subagent-orchestration.d.ts +73 -0
  416. package/dist/core/subagent-orchestration.d.ts.map +1 -0
  417. package/dist/core/subagent-orchestration.js +408 -0
  418. package/dist/core/subagent-orchestration.js.map +1 -0
  419. package/dist/core/system-prompt.d.ts +5 -4
  420. package/dist/core/system-prompt.d.ts.map +1 -1
  421. package/dist/core/system-prompt.js +57 -36
  422. package/dist/core/system-prompt.js.map +1 -1
  423. package/dist/core/timings.d.ts +0 -4
  424. package/dist/core/timings.d.ts.map +1 -1
  425. package/dist/core/timings.js +0 -4
  426. package/dist/core/timings.js.map +1 -1
  427. package/dist/core/todo-runtime-state.d.ts +5 -0
  428. package/dist/core/todo-runtime-state.d.ts.map +1 -0
  429. package/dist/core/todo-runtime-state.js +12 -0
  430. package/dist/core/todo-runtime-state.js.map +1 -0
  431. package/dist/core/todo-state.d.ts +53 -0
  432. package/dist/core/todo-state.d.ts.map +1 -0
  433. package/dist/core/todo-state.js +87 -0
  434. package/dist/core/todo-state.js.map +1 -0
  435. package/dist/core/token-optimizer.d.ts +58 -0
  436. package/dist/core/token-optimizer.d.ts.map +1 -0
  437. package/dist/core/token-optimizer.js +179 -0
  438. package/dist/core/token-optimizer.js.map +1 -0
  439. package/dist/core/tools/bash.d.ts +8 -9
  440. package/dist/core/tools/bash.d.ts.map +1 -1
  441. package/dist/core/tools/bash.js +9 -8
  442. package/dist/core/tools/bash.js.map +1 -1
  443. package/dist/core/tools/edit.d.ts +3 -14
  444. package/dist/core/tools/edit.d.ts.map +1 -1
  445. package/dist/core/tools/edit.js +4 -25
  446. package/dist/core/tools/edit.js.map +1 -1
  447. package/dist/core/tools/find.d.ts +1 -4
  448. package/dist/core/tools/find.d.ts.map +1 -1
  449. package/dist/core/tools/find.js +1 -4
  450. package/dist/core/tools/find.js.map +1 -1
  451. package/dist/core/tools/grep.d.ts +1 -4
  452. package/dist/core/tools/grep.d.ts.map +1 -1
  453. package/dist/core/tools/grep.js +2 -5
  454. package/dist/core/tools/grep.js.map +1 -1
  455. package/dist/core/tools/index.d.ts +2 -2
  456. package/dist/core/tools/index.d.ts.map +1 -1
  457. package/dist/core/tools/index.js.map +1 -1
  458. package/dist/core/tools/ls.d.ts +1 -4
  459. package/dist/core/tools/ls.d.ts.map +1 -1
  460. package/dist/core/tools/ls.js +1 -4
  461. package/dist/core/tools/ls.js.map +1 -1
  462. package/dist/core/tools/read.d.ts +2 -14
  463. package/dist/core/tools/read.d.ts.map +1 -1
  464. package/dist/core/tools/read.js +4 -28
  465. package/dist/core/tools/read.js.map +1 -1
  466. package/dist/core/tools/render-utils.d.ts +1 -1
  467. package/dist/core/tools/render-utils.d.ts.map +1 -1
  468. package/dist/core/tools/render-utils.js +1 -1
  469. package/dist/core/tools/render-utils.js.map +1 -1
  470. package/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
  471. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  472. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  473. package/dist/core/tools/write.d.ts +2 -4
  474. package/dist/core/tools/write.d.ts.map +1 -1
  475. package/dist/core/tools/write.js +4 -4
  476. package/dist/core/tools/write.js.map +1 -1
  477. package/dist/encoding/index.d.ts +6 -0
  478. package/dist/encoding/index.d.ts.map +1 -0
  479. package/dist/encoding/index.js +6 -0
  480. package/dist/encoding/index.js.map +1 -0
  481. package/dist/encoding/l4-encoder.d.ts +96 -0
  482. package/dist/encoding/l4-encoder.d.ts.map +1 -0
  483. package/dist/encoding/l4-encoder.js +474 -0
  484. package/dist/encoding/l4-encoder.js.map +1 -0
  485. package/dist/fuzzing/index.d.ts +6 -0
  486. package/dist/fuzzing/index.d.ts.map +1 -0
  487. package/dist/fuzzing/index.js +6 -0
  488. package/dist/fuzzing/index.js.map +1 -0
  489. package/dist/fuzzing/mutation-engine.d.ts +93 -0
  490. package/dist/fuzzing/mutation-engine.d.ts.map +1 -0
  491. package/dist/fuzzing/mutation-engine.js +244 -0
  492. package/dist/fuzzing/mutation-engine.js.map +1 -0
  493. package/dist/guardrails/audit-logger.d.ts +4 -0
  494. package/dist/guardrails/audit-logger.d.ts.map +1 -0
  495. package/dist/guardrails/audit-logger.js +28 -0
  496. package/dist/guardrails/audit-logger.js.map +1 -0
  497. package/dist/guardrails/evidence-system.d.ts +61 -0
  498. package/dist/guardrails/evidence-system.d.ts.map +1 -0
  499. package/dist/guardrails/evidence-system.js +302 -0
  500. package/dist/guardrails/evidence-system.js.map +1 -0
  501. package/dist/guardrails/freedomd-adapter.d.ts +16 -0
  502. package/dist/guardrails/freedomd-adapter.d.ts.map +1 -0
  503. package/dist/guardrails/freedomd-adapter.js +87 -0
  504. package/dist/guardrails/freedomd-adapter.js.map +1 -0
  505. package/dist/index.d.ts +5 -19
  506. package/dist/index.d.ts.map +1 -1
  507. package/dist/index.js +3 -17
  508. package/dist/index.js.map +1 -1
  509. package/dist/jailbreak-extension.d.ts +48 -0
  510. package/dist/jailbreak-extension.d.ts.map +1 -0
  511. package/dist/jailbreak-extension.js +47 -0
  512. package/dist/jailbreak-extension.js.map +1 -0
  513. package/dist/main.d.ts.map +1 -1
  514. package/dist/main.js +2 -2
  515. package/dist/main.js.map +1 -1
  516. package/dist/migrations.d.ts +0 -37
  517. package/dist/migrations.d.ts.map +1 -1
  518. package/dist/migrations.js +6 -414
  519. package/dist/migrations.js.map +1 -1
  520. package/dist/modes/interactive/components/armin.d.ts +1 -1
  521. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  522. package/dist/modes/interactive/components/armin.js.map +1 -1
  523. package/dist/modes/interactive/components/assistant-message.d.ts +2 -2
  524. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  525. package/dist/modes/interactive/components/assistant-message.js +1 -1
  526. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  527. package/dist/modes/interactive/components/bash-execution.d.ts +1 -1
  528. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  529. package/dist/modes/interactive/components/bash-execution.js +1 -1
  530. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  531. package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
  532. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  533. package/dist/modes/interactive/components/bordered-loader.js +1 -1
  534. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  535. package/dist/modes/interactive/components/branch-summary-message.d.ts +1 -1
  536. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  537. package/dist/modes/interactive/components/branch-summary-message.js +1 -1
  538. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  539. package/dist/modes/interactive/components/compaction-summary-message.d.ts +1 -1
  540. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  541. package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
  542. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  543. package/dist/modes/interactive/components/config-selector.d.ts +1 -1
  544. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  545. package/dist/modes/interactive/components/config-selector.js +1 -1
  546. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  547. package/dist/modes/interactive/components/control-panel-box.d.ts +15 -0
  548. package/dist/modes/interactive/components/control-panel-box.d.ts.map +1 -0
  549. package/dist/modes/interactive/components/control-panel-box.js +55 -0
  550. package/dist/modes/interactive/components/control-panel-box.js.map +1 -0
  551. package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts.map +1 -1
  552. package/dist/modes/interactive/components/control-panel-gradient-motion.js +2 -36
  553. package/dist/modes/interactive/components/control-panel-gradient-motion.js.map +1 -1
  554. package/dist/modes/interactive/components/control-panel-gradient.d.ts +1 -0
  555. package/dist/modes/interactive/components/control-panel-gradient.d.ts.map +1 -1
  556. package/dist/modes/interactive/components/control-panel-gradient.js +6 -5
  557. package/dist/modes/interactive/components/control-panel-gradient.js.map +1 -1
  558. package/dist/modes/interactive/components/control-panel-layout.d.ts +30 -0
  559. package/dist/modes/interactive/components/control-panel-layout.d.ts.map +1 -0
  560. package/dist/modes/interactive/components/control-panel-layout.js +197 -0
  561. package/dist/modes/interactive/components/control-panel-layout.js.map +1 -0
  562. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts +6 -0
  563. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts.map +1 -0
  564. package/dist/modes/interactive/components/control-panel-runtime-status.js +29 -0
  565. package/dist/modes/interactive/components/control-panel-runtime-status.js.map +1 -0
  566. package/dist/modes/interactive/components/control-panel.d.ts +9 -31
  567. package/dist/modes/interactive/components/control-panel.d.ts.map +1 -1
  568. package/dist/modes/interactive/components/control-panel.js +49 -168
  569. package/dist/modes/interactive/components/control-panel.js.map +1 -1
  570. package/dist/modes/interactive/components/countdown-timer.d.ts +1 -1
  571. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  572. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  573. package/dist/modes/interactive/components/custom-editor.d.ts +1 -1
  574. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  575. package/dist/modes/interactive/components/custom-editor.js +14 -22
  576. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  577. package/dist/modes/interactive/components/custom-message.d.ts +1 -1
  578. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  579. package/dist/modes/interactive/components/custom-message.js +1 -1
  580. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  581. package/dist/modes/interactive/components/daxnuts.d.ts +1 -1
  582. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  583. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  584. package/dist/modes/interactive/components/dynamic-border.d.ts +1 -1
  585. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  586. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  587. package/dist/modes/interactive/components/earendil-announcement.d.ts +1 -1
  588. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  589. package/dist/modes/interactive/components/earendil-announcement.js +1 -1
  590. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  591. package/dist/modes/interactive/components/extension-editor.d.ts +1 -1
  592. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  593. package/dist/modes/interactive/components/extension-editor.js +1 -1
  594. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  595. package/dist/modes/interactive/components/extension-input.d.ts +1 -1
  596. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  597. package/dist/modes/interactive/components/extension-input.js +1 -1
  598. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  599. package/dist/modes/interactive/components/extension-selector.d.ts +1 -1
  600. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  601. package/dist/modes/interactive/components/extension-selector.js +1 -1
  602. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  603. package/dist/modes/interactive/components/footer.d.ts +1 -1
  604. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  605. package/dist/modes/interactive/components/footer.js +7 -9
  606. package/dist/modes/interactive/components/footer.js.map +1 -1
  607. package/dist/modes/interactive/components/index.d.ts +0 -2
  608. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  609. package/dist/modes/interactive/components/index.js +0 -2
  610. package/dist/modes/interactive/components/index.js.map +1 -1
  611. package/dist/modes/interactive/components/keybinding-hints.d.ts +1 -1
  612. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  613. package/dist/modes/interactive/components/keybinding-hints.js +1 -1
  614. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  615. package/dist/modes/interactive/components/login-dialog.d.ts +2 -2
  616. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  617. package/dist/modes/interactive/components/login-dialog.js +2 -2
  618. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  619. package/dist/modes/interactive/components/model-selector.d.ts +13 -47
  620. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  621. package/dist/modes/interactive/components/model-selector.js +118 -193
  622. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  623. package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
  624. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  625. package/dist/modes/interactive/components/oauth-selector.js +1 -1
  626. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  627. package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
  628. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  629. package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
  630. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  631. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  632. package/dist/modes/interactive/components/session-selector-search.js +1 -1
  633. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  634. package/dist/modes/interactive/components/session-selector.d.ts +1 -1
  635. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  636. package/dist/modes/interactive/components/session-selector.js +1 -1
  637. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  638. package/dist/modes/interactive/components/settings-selector.d.ts +3 -3
  639. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  640. package/dist/modes/interactive/components/settings-selector.js +1 -1
  641. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  642. package/dist/modes/interactive/components/show-images-selector.d.ts +1 -1
  643. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  644. package/dist/modes/interactive/components/show-images-selector.js +1 -1
  645. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  646. package/dist/modes/interactive/components/skill-invocation-message.d.ts +1 -1
  647. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  648. package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
  649. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  650. package/dist/modes/interactive/components/theme-selector.d.ts +1 -2
  651. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  652. package/dist/modes/interactive/components/theme-selector.js +2 -11
  653. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  654. package/dist/modes/interactive/components/thinking-selector.d.ts +8 -7
  655. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  656. package/dist/modes/interactive/components/thinking-selector.js +48 -7
  657. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  658. package/dist/modes/interactive/components/todo-checklist.d.ts +31 -0
  659. package/dist/modes/interactive/components/todo-checklist.d.ts.map +1 -0
  660. package/dist/modes/interactive/components/todo-checklist.js +121 -0
  661. package/dist/modes/interactive/components/todo-checklist.js.map +1 -0
  662. package/dist/modes/interactive/components/tool-execution.d.ts +1 -1
  663. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  664. package/dist/modes/interactive/components/tool-execution.js +1 -1
  665. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  666. package/dist/modes/interactive/components/tree-selector.d.ts +1 -1
  667. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  668. package/dist/modes/interactive/components/tree-selector.js +1 -1
  669. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  670. package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
  671. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  672. package/dist/modes/interactive/components/user-message-selector.js +1 -1
  673. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  674. package/dist/modes/interactive/components/user-message.d.ts +1 -1
  675. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  676. package/dist/modes/interactive/components/user-message.js +1 -1
  677. package/dist/modes/interactive/components/user-message.js.map +1 -1
  678. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  679. package/dist/modes/interactive/components/visual-truncate.js +1 -1
  680. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  681. package/dist/modes/interactive/interactive-mode.d.ts +3 -8
  682. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  683. package/dist/modes/interactive/interactive-mode.js +80 -232
  684. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  685. package/dist/modes/interactive/theme/omk-control-grid-dark.json +65 -77
  686. package/dist/modes/interactive/theme/omk-neon-control.json +90 -0
  687. package/dist/modes/interactive/theme/rust-forge.json +14 -24
  688. package/dist/modes/interactive/theme/theme.d.ts +1 -1
  689. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  690. package/dist/modes/interactive/theme/theme.js +25 -45
  691. package/dist/modes/interactive/theme/theme.js.map +1 -1
  692. package/dist/modes/print-mode.d.ts +1 -1
  693. package/dist/modes/print-mode.d.ts.map +1 -1
  694. package/dist/modes/print-mode.js.map +1 -1
  695. package/dist/modes/rpc/rpc-client.d.ts +2 -2
  696. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  697. package/dist/modes/rpc/rpc-client.js.map +1 -1
  698. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  699. package/dist/modes/rpc/rpc-mode.js +0 -4
  700. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  701. package/dist/modes/rpc/rpc-types.d.ts +2 -2
  702. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  703. package/dist/modes/rpc/rpc-types.js.map +1 -1
  704. package/dist/modules/index.d.ts +8 -0
  705. package/dist/modules/index.d.ts.map +1 -0
  706. package/dist/modules/index.js +7 -0
  707. package/dist/modules/index.js.map +1 -0
  708. package/dist/modules/lrl-bypass.d.ts +40 -0
  709. package/dist/modules/lrl-bypass.d.ts.map +1 -0
  710. package/dist/modules/lrl-bypass.js +84 -0
  711. package/dist/modules/lrl-bypass.js.map +1 -0
  712. package/dist/modules/lrl-deps.d.ts +38 -0
  713. package/dist/modules/lrl-deps.d.ts.map +1 -0
  714. package/dist/modules/lrl-deps.js +128 -0
  715. package/dist/modules/lrl-deps.js.map +1 -0
  716. package/dist/multiturn/easl-chain.d.ts +113 -0
  717. package/dist/multiturn/easl-chain.d.ts.map +1 -0
  718. package/dist/multiturn/easl-chain.js +351 -0
  719. package/dist/multiturn/easl-chain.js.map +1 -0
  720. package/dist/multiturn/index.d.ts +6 -0
  721. package/dist/multiturn/index.d.ts.map +1 -0
  722. package/dist/multiturn/index.js +6 -0
  723. package/dist/multiturn/index.js.map +1 -0
  724. package/dist/orchestration/lane-grant-auditor.d.ts +4 -0
  725. package/dist/orchestration/lane-grant-auditor.d.ts.map +1 -0
  726. package/dist/orchestration/lane-grant-auditor.js +87 -0
  727. package/dist/orchestration/lane-grant-auditor.js.map +1 -0
  728. package/dist/package-manager-cli.d.ts.map +1 -1
  729. package/dist/package-manager-cli.js +48 -113
  730. package/dist/package-manager-cli.js.map +1 -1
  731. package/dist/routing/fallback-router.d.ts +123 -0
  732. package/dist/routing/fallback-router.d.ts.map +1 -0
  733. package/dist/routing/fallback-router.js +355 -0
  734. package/dist/routing/fallback-router.js.map +1 -0
  735. package/dist/routing/index.d.ts +6 -0
  736. package/dist/routing/index.d.ts.map +1 -0
  737. package/dist/routing/index.js +6 -0
  738. package/dist/routing/index.js.map +1 -0
  739. package/dist/types/evidence.d.ts +117 -0
  740. package/dist/types/evidence.d.ts.map +1 -0
  741. package/dist/types/evidence.js +8 -0
  742. package/dist/types/evidence.js.map +1 -0
  743. package/dist/types/guardrails.d.ts +61 -0
  744. package/dist/types/guardrails.d.ts.map +1 -0
  745. package/dist/types/guardrails.js +9 -0
  746. package/dist/types/guardrails.js.map +1 -0
  747. package/dist/types/jailbreak.d.ts +246 -0
  748. package/dist/types/jailbreak.d.ts.map +1 -0
  749. package/dist/types/jailbreak.js +8 -0
  750. package/dist/types/jailbreak.js.map +1 -0
  751. package/dist/types/lane-grant.d.ts +58 -0
  752. package/dist/types/lane-grant.d.ts.map +1 -0
  753. package/dist/types/lane-grant.js +9 -0
  754. package/dist/types/lane-grant.js.map +1 -0
  755. package/dist/utils/jailbreak/common.d.ts +63 -0
  756. package/dist/utils/jailbreak/common.d.ts.map +1 -0
  757. package/dist/utils/jailbreak/common.js +130 -0
  758. package/dist/utils/jailbreak/common.js.map +1 -0
  759. package/dist/utils/jailbreak/index.d.ts +7 -0
  760. package/dist/utils/jailbreak/index.d.ts.map +1 -0
  761. package/dist/utils/jailbreak/index.js +7 -0
  762. package/dist/utils/jailbreak/index.js.map +1 -0
  763. package/dist/utils/windows-self-update.d.ts.map +1 -1
  764. package/dist/utils/windows-self-update.js +1 -1
  765. package/dist/utils/windows-self-update.js.map +1 -1
  766. package/docs/compaction.md +8 -21
  767. package/docs/custom-provider.md +2 -2
  768. package/docs/development.md +1 -1
  769. package/docs/extensions.md +11 -11
  770. package/docs/loadout-domains/README.md +70 -0
  771. package/docs/loadout-domains/ai-agent-ops.md +94 -0
  772. package/docs/loadout-domains/backend-api.md +116 -0
  773. package/docs/loadout-domains/data-science.md +100 -0
  774. package/docs/loadout-domains/devops-infra.md +85 -0
  775. package/docs/loadout-domains/docs-writing.md +92 -0
  776. package/docs/loadout-domains/frontend-ui.md +128 -0
  777. package/docs/loadout-domains/general.md +62 -0
  778. package/docs/loadout-domains/mobile.md +84 -0
  779. package/docs/loadout-domains/qa-testing.md +87 -0
  780. package/docs/loadout-domains/research.md +80 -0
  781. package/docs/loadout-domains/security-audit.md +97 -0
  782. package/docs/packages.md +7 -48
  783. package/docs/prompt-templates.md +0 -2
  784. package/docs/providers.md +12 -0
  785. package/docs/sdk.md +3 -3
  786. package/docs/security.md +145 -0
  787. package/docs/session-format.md +1 -1
  788. package/docs/themes.md +8 -7
  789. package/docs/tui.md +14 -14
  790. package/docs/usage.md +6 -16
  791. package/examples/extensions/README.md +2 -2
  792. package/examples/extensions/aside-computer-use/README.md +114 -0
  793. package/examples/extensions/aside-computer-use/action-scoring.ts +122 -0
  794. package/examples/extensions/aside-computer-use/assertions.ts +380 -0
  795. package/examples/extensions/aside-computer-use/controller.ts +491 -0
  796. package/examples/extensions/aside-computer-use/evidence.ts +229 -0
  797. package/examples/extensions/aside-computer-use/golden-trace.ts +141 -0
  798. package/examples/extensions/aside-computer-use/index.ts +76 -0
  799. package/examples/extensions/aside-computer-use/mcp-client.ts +381 -0
  800. package/examples/extensions/aside-computer-use/observation-snapshot.ts +121 -0
  801. package/examples/extensions/aside-computer-use/package.json +16 -0
  802. package/examples/extensions/aside-computer-use/policy.ts +257 -0
  803. package/examples/extensions/aside-computer-use/risk-authorize.ts +200 -0
  804. package/examples/extensions/aside-computer-use/risk-classifier.ts +205 -0
  805. package/examples/extensions/aside-computer-use/schema-fingerprint.ts +80 -0
  806. package/examples/extensions/aside-computer-use/session-binding.ts +161 -0
  807. package/examples/extensions/aside-computer-use/tools.ts +449 -0
  808. package/examples/extensions/aside-computer-use/types.ts +217 -0
  809. package/examples/extensions/aside-computer-use/url-origin.ts +132 -0
  810. package/examples/extensions/bash-spawn-hook.ts +1 -1
  811. package/examples/extensions/border-status-editor.ts +2 -2
  812. package/examples/extensions/built-in-tool-renderer.ts +1 -1
  813. package/examples/extensions/custom-compaction.ts +1 -1
  814. package/examples/extensions/custom-footer.ts +2 -2
  815. package/examples/extensions/custom-header.ts +8 -8
  816. package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
  817. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  818. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  819. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  820. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  821. package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
  822. package/examples/extensions/doom-overlay/README.md +1 -2
  823. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  824. package/examples/extensions/doom-overlay/doom/build.sh +4 -4
  825. package/examples/extensions/doom-overlay/doom/doomgeneric_omk.c +72 -0
  826. package/examples/extensions/doom-overlay/doom-component.ts +2 -2
  827. package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
  828. package/examples/extensions/git-merge-and-resolve.ts +1 -1
  829. package/examples/extensions/github-issue-autocomplete.ts +1 -6
  830. package/examples/extensions/gondolin/index.ts +1 -1
  831. package/examples/extensions/gondolin/package-lock.json +2 -2
  832. package/examples/extensions/gondolin/package.json +1 -1
  833. package/examples/extensions/handoff.ts +2 -2
  834. package/examples/extensions/hello.ts +1 -1
  835. package/examples/extensions/inline-bash.ts +1 -1
  836. package/examples/extensions/input-transform-streaming.ts +1 -1
  837. package/examples/extensions/input-transform.ts +2 -2
  838. package/examples/extensions/mac-system-theme.ts +1 -1
  839. package/examples/extensions/message-renderer.ts +1 -1
  840. package/examples/extensions/minimal-mode.ts +1 -1
  841. package/examples/extensions/modal-editor.ts +1 -1
  842. package/examples/extensions/overlay-qa-tests.ts +7 -7
  843. package/examples/extensions/overlay-test.ts +1 -1
  844. package/examples/extensions/plan-mode/index.ts +3 -3
  845. package/examples/extensions/preset.ts +4 -4
  846. package/examples/extensions/provider-payload.ts +6 -3
  847. package/examples/extensions/qna.ts +1 -1
  848. package/examples/extensions/question.ts +1 -1
  849. package/examples/extensions/questionnaire.ts +1 -1
  850. package/examples/extensions/rpc-demo.ts +1 -1
  851. package/examples/extensions/sandbox/index.ts +2 -2
  852. package/examples/extensions/sandbox/package-lock.json +2 -2
  853. package/examples/extensions/sandbox/package.json +1 -1
  854. package/examples/extensions/shutdown-command.ts +5 -5
  855. package/examples/extensions/snake.ts +1 -1
  856. package/examples/extensions/space-invaders.ts +1 -1
  857. package/examples/extensions/structured-output.ts +1 -1
  858. package/examples/extensions/subagent/agents.ts +2 -2
  859. package/examples/extensions/subagent/index.ts +19 -51
  860. package/examples/extensions/summarize.ts +2 -2
  861. package/examples/extensions/tic-tac-toe.ts +2 -2
  862. package/examples/extensions/todo.ts +2 -2
  863. package/examples/extensions/tool-override.ts +1 -1
  864. package/examples/extensions/tools.ts +1 -1
  865. package/examples/extensions/truncated-tool.ts +1 -1
  866. package/examples/extensions/with-deps/package-lock.json +2 -2
  867. package/examples/extensions/with-deps/package.json +1 -1
  868. package/examples/extensions/working-indicator.ts +3 -3
  869. package/examples/rpc-extension-ui.ts +1 -9
  870. package/examples/sdk/02-custom-model.ts +1 -1
  871. package/examples/sdk/07-context-files.ts +0 -2
  872. package/examples/sdk/12-full-control.ts +1 -1
  873. package/examples/sdk/README.md +1 -1
  874. package/npm-shrinkwrap.json +1805 -0
  875. package/package.json +10 -32
  876. package/dist/core/compaction/pruner-policy.d.ts +0 -84
  877. package/dist/core/compaction/pruner-policy.d.ts.map +0 -1
  878. package/dist/core/compaction/pruner-policy.js +0 -273
  879. package/dist/core/compaction/pruner-policy.js.map +0 -1
  880. package/dist/core/context-graph-identity-resolution.d.ts +0 -114
  881. package/dist/core/context-graph-identity-resolution.d.ts.map +0 -1
  882. package/dist/core/context-graph-identity-resolution.js +0 -127
  883. package/dist/core/context-graph-identity-resolution.js.map +0 -1
  884. package/dist/core/context-graph-memory-store.d.ts +0 -153
  885. package/dist/core/context-graph-memory-store.d.ts.map +0 -1
  886. package/dist/core/context-graph-memory-store.js +0 -377
  887. package/dist/core/context-graph-memory-store.js.map +0 -1
  888. package/dist/core/context-graph-ontology-generation.d.ts +0 -104
  889. package/dist/core/context-graph-ontology-generation.d.ts.map +0 -1
  890. package/dist/core/context-graph-ontology-generation.js +0 -135
  891. package/dist/core/context-graph-ontology-generation.js.map +0 -1
  892. package/dist/core/context-graph-ontology-registry.d.ts +0 -766
  893. package/dist/core/context-graph-ontology-registry.d.ts.map +0 -1
  894. package/dist/core/context-graph-ontology-registry.js +0 -1133
  895. package/dist/core/context-graph-ontology-registry.js.map +0 -1
  896. package/dist/core/context-graph-policy.d.ts +0 -68
  897. package/dist/core/context-graph-policy.d.ts.map +0 -1
  898. package/dist/core/context-graph-policy.js +0 -221
  899. package/dist/core/context-graph-policy.js.map +0 -1
  900. package/dist/core/context-graph-reasoning.d.ts +0 -130
  901. package/dist/core/context-graph-reasoning.d.ts.map +0 -1
  902. package/dist/core/context-graph-reasoning.js +0 -442
  903. package/dist/core/context-graph-reasoning.js.map +0 -1
  904. package/dist/core/context-graph-retrieval.d.ts +0 -120
  905. package/dist/core/context-graph-retrieval.d.ts.map +0 -1
  906. package/dist/core/context-graph-retrieval.js +0 -288
  907. package/dist/core/context-graph-retrieval.js.map +0 -1
  908. package/dist/core/contract-verification.d.ts +0 -78
  909. package/dist/core/contract-verification.d.ts.map +0 -1
  910. package/dist/core/contract-verification.js +0 -110
  911. package/dist/core/contract-verification.js.map +0 -1
  912. package/dist/core/freedom/banner.d.ts +0 -14
  913. package/dist/core/freedom/banner.d.ts.map +0 -1
  914. package/dist/core/freedom/banner.js +0 -22
  915. package/dist/core/freedom/banner.js.map +0 -1
  916. package/dist/core/freedom/config.d.ts +0 -27
  917. package/dist/core/freedom/config.d.ts.map +0 -1
  918. package/dist/core/freedom/config.js +0 -216
  919. package/dist/core/freedom/config.js.map +0 -1
  920. package/dist/core/freedom/index.d.ts +0 -23
  921. package/dist/core/freedom/index.d.ts.map +0 -1
  922. package/dist/core/freedom/index.js +0 -19
  923. package/dist/core/freedom/index.js.map +0 -1
  924. package/dist/core/freedom/policy.d.ts +0 -42
  925. package/dist/core/freedom/policy.d.ts.map +0 -1
  926. package/dist/core/freedom/policy.js +0 -47
  927. package/dist/core/freedom/policy.js.map +0 -1
  928. package/dist/core/freedom/safety-floor.d.ts +0 -73
  929. package/dist/core/freedom/safety-floor.d.ts.map +0 -1
  930. package/dist/core/freedom/safety-floor.js +0 -275
  931. package/dist/core/freedom/safety-floor.js.map +0 -1
  932. package/dist/core/harness-control-events.d.ts +0 -91
  933. package/dist/core/harness-control-events.d.ts.map +0 -1
  934. package/dist/core/harness-control-events.js +0 -514
  935. package/dist/core/harness-control-events.js.map +0 -1
  936. package/dist/core/harness-control-replay.d.ts +0 -31
  937. package/dist/core/harness-control-replay.d.ts.map +0 -1
  938. package/dist/core/harness-control-replay.js +0 -187
  939. package/dist/core/harness-control-replay.js.map +0 -1
  940. package/dist/core/headroom-middleware.d.ts +0 -35
  941. package/dist/core/headroom-middleware.d.ts.map +0 -1
  942. package/dist/core/headroom-middleware.js +0 -166
  943. package/dist/core/headroom-middleware.js.map +0 -1
  944. package/dist/core/lean-context-middleware.d.ts +0 -12
  945. package/dist/core/lean-context-middleware.d.ts.map +0 -1
  946. package/dist/core/lean-context-middleware.js +0 -87
  947. package/dist/core/lean-context-middleware.js.map +0 -1
  948. package/dist/core/lean-context-policy.d.ts +0 -45
  949. package/dist/core/lean-context-policy.d.ts.map +0 -1
  950. package/dist/core/lean-context-policy.js +0 -108
  951. package/dist/core/lean-context-policy.js.map +0 -1
  952. package/dist/core/native-adoption-benchmark.d.ts +0 -166
  953. package/dist/core/native-adoption-benchmark.d.ts.map +0 -1
  954. package/dist/core/native-adoption-benchmark.js +0 -624
  955. package/dist/core/native-adoption-benchmark.js.map +0 -1
  956. package/dist/core/observability-trace.d.ts +0 -80
  957. package/dist/core/observability-trace.d.ts.map +0 -1
  958. package/dist/core/observability-trace.js +0 -140
  959. package/dist/core/observability-trace.js.map +0 -1
  960. package/dist/core/orchestration/checkpoint.d.ts +0 -83
  961. package/dist/core/orchestration/checkpoint.d.ts.map +0 -1
  962. package/dist/core/orchestration/checkpoint.js +0 -152
  963. package/dist/core/orchestration/checkpoint.js.map +0 -1
  964. package/dist/core/orchestration/errors.d.ts +0 -74
  965. package/dist/core/orchestration/errors.d.ts.map +0 -1
  966. package/dist/core/orchestration/errors.js +0 -52
  967. package/dist/core/orchestration/errors.js.map +0 -1
  968. package/dist/core/orchestration/merge-queue.d.ts +0 -121
  969. package/dist/core/orchestration/merge-queue.d.ts.map +0 -1
  970. package/dist/core/orchestration/merge-queue.js +0 -149
  971. package/dist/core/orchestration/merge-queue.js.map +0 -1
  972. package/dist/core/orchestration/recovery.d.ts +0 -106
  973. package/dist/core/orchestration/recovery.d.ts.map +0 -1
  974. package/dist/core/orchestration/recovery.js +0 -110
  975. package/dist/core/orchestration/recovery.js.map +0 -1
  976. package/dist/core/orchestration/replay-ledger.d.ts +0 -76
  977. package/dist/core/orchestration/replay-ledger.d.ts.map +0 -1
  978. package/dist/core/orchestration/replay-ledger.js +0 -395
  979. package/dist/core/orchestration/replay-ledger.js.map +0 -1
  980. package/dist/core/orchestration/scheduler-state.d.ts +0 -78
  981. package/dist/core/orchestration/scheduler-state.d.ts.map +0 -1
  982. package/dist/core/orchestration/scheduler-state.js +0 -185
  983. package/dist/core/orchestration/scheduler-state.js.map +0 -1
  984. package/dist/core/orchestration/scheduler-store.d.ts +0 -309
  985. package/dist/core/orchestration/scheduler-store.d.ts.map +0 -1
  986. package/dist/core/orchestration/scheduler-store.js +0 -368
  987. package/dist/core/orchestration/scheduler-store.js.map +0 -1
  988. package/dist/core/orchestration/sqlite-scheduler-store.d.ts +0 -57
  989. package/dist/core/orchestration/sqlite-scheduler-store.d.ts.map +0 -1
  990. package/dist/core/orchestration/sqlite-scheduler-store.js +0 -528
  991. package/dist/core/orchestration/sqlite-scheduler-store.js.map +0 -1
  992. package/dist/core/orchestration/transaction-coordinator.d.ts +0 -217
  993. package/dist/core/orchestration/transaction-coordinator.d.ts.map +0 -1
  994. package/dist/core/orchestration/transaction-coordinator.js +0 -281
  995. package/dist/core/orchestration/transaction-coordinator.js.map +0 -1
  996. package/dist/core/orchestration/verification-contract.d.ts +0 -197
  997. package/dist/core/orchestration/verification-contract.d.ts.map +0 -1
  998. package/dist/core/orchestration/verification-contract.js +0 -145
  999. package/dist/core/orchestration/verification-contract.js.map +0 -1
  1000. package/dist/core/package-composition.d.ts +0 -68
  1001. package/dist/core/package-composition.d.ts.map +0 -1
  1002. package/dist/core/package-composition.js +0 -304
  1003. package/dist/core/package-composition.js.map +0 -1
  1004. package/dist/core/package-trial-runtime.d.ts +0 -75
  1005. package/dist/core/package-trial-runtime.d.ts.map +0 -1
  1006. package/dist/core/package-trial-runtime.js +0 -73
  1007. package/dist/core/package-trial-runtime.js.map +0 -1
  1008. package/dist/core/package-trial-sandbox.d.ts +0 -27
  1009. package/dist/core/package-trial-sandbox.d.ts.map +0 -1
  1010. package/dist/core/package-trial-sandbox.js +0 -102
  1011. package/dist/core/package-trial-sandbox.js.map +0 -1
  1012. package/dist/core/policy-overlays-runtime.d.ts +0 -141
  1013. package/dist/core/policy-overlays-runtime.d.ts.map +0 -1
  1014. package/dist/core/policy-overlays-runtime.js +0 -720
  1015. package/dist/core/policy-overlays-runtime.js.map +0 -1
  1016. package/dist/core/read-anchor-registry.d.ts +0 -27
  1017. package/dist/core/read-anchor-registry.d.ts.map +0 -1
  1018. package/dist/core/read-anchor-registry.js +0 -103
  1019. package/dist/core/read-anchor-registry.js.map +0 -1
  1020. package/dist/core/read-content-cache.d.ts +0 -22
  1021. package/dist/core/read-content-cache.d.ts.map +0 -1
  1022. package/dist/core/read-content-cache.js +0 -79
  1023. package/dist/core/read-content-cache.js.map +0 -1
  1024. package/dist/core/session-digest.d.ts +0 -57
  1025. package/dist/core/session-digest.d.ts.map +0 -1
  1026. package/dist/core/session-digest.js +0 -193
  1027. package/dist/core/session-digest.js.map +0 -1
  1028. package/dist/core/spec-kit/compiler.d.ts +0 -67
  1029. package/dist/core/spec-kit/compiler.d.ts.map +0 -1
  1030. package/dist/core/spec-kit/compiler.js +0 -268
  1031. package/dist/core/spec-kit/compiler.js.map +0 -1
  1032. package/dist/core/transaction-coordinator.d.ts +0 -30
  1033. package/dist/core/transaction-coordinator.d.ts.map +0 -1
  1034. package/dist/core/transaction-coordinator.js +0 -173
  1035. package/dist/core/transaction-coordinator.js.map +0 -1
  1036. package/dist/modes/interactive/components/mcp-selector.d.ts +0 -30
  1037. package/dist/modes/interactive/components/mcp-selector.d.ts.map +0 -1
  1038. package/dist/modes/interactive/components/mcp-selector.js +0 -155
  1039. package/dist/modes/interactive/components/mcp-selector.js.map +0 -1
  1040. package/dist/modes/interactive/components/model-selector-state.d.ts +0 -101
  1041. package/dist/modes/interactive/components/model-selector-state.d.ts.map +0 -1
  1042. package/dist/modes/interactive/components/model-selector-state.js +0 -261
  1043. package/dist/modes/interactive/components/model-selector-state.js.map +0 -1
  1044. package/dist/modes/interactive/components/skills-selector.d.ts +0 -32
  1045. package/dist/modes/interactive/components/skills-selector.d.ts.map +0 -1
  1046. package/dist/modes/interactive/components/skills-selector.js +0 -130
  1047. package/dist/modes/interactive/components/skills-selector.js.map +0 -1
  1048. package/dist/modes/interactive/theme/omk-blackboard.json +0 -91
  1049. package/dist/modes/interactive/theme/omk-freedom-grid.json +0 -91
  1050. package/dist/modes/interactive/theme/omk-neon-ops.json +0 -90
  1051. package/dist/modes/interactive/theme/omk-slate-light.json +0 -91
  1052. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -72
  1053. package/node_modules/@earendil-works/omk-agent-core/README.md +0 -488
  1054. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts +0 -24
  1055. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts.map +0 -1
  1056. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js +0 -553
  1057. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js.map +0 -1
  1058. package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts +0 -118
  1059. package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts.map +0 -1
  1060. package/node_modules/@earendil-works/omk-agent-core/dist/agent.js +0 -402
  1061. package/node_modules/@earendil-works/omk-agent-core/dist/agent.js.map +0 -1
  1062. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts +0 -95
  1063. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts.map +0 -1
  1064. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js +0 -996
  1065. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js.map +0 -1
  1066. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts +0 -53
  1067. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +0 -1
  1068. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js +0 -175
  1069. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js.map +0 -1
  1070. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts +0 -117
  1071. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts.map +0 -1
  1072. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js +0 -568
  1073. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js.map +0 -1
  1074. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts +0 -25
  1075. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts.map +0 -1
  1076. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js +0 -131
  1077. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js.map +0 -1
  1078. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts +0 -51
  1079. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts.map +0 -1
  1080. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js +0 -510
  1081. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js.map +0 -1
  1082. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts +0 -51
  1083. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts.map +0 -1
  1084. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js +0 -102
  1085. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js.map +0 -1
  1086. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts +0 -48
  1087. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts.map +0 -1
  1088. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js +0 -230
  1089. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js.map +0 -1
  1090. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts +0 -26
  1091. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts.map +0 -1
  1092. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js +0 -101
  1093. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js.map +0 -1
  1094. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts +0 -36
  1095. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts.map +0 -1
  1096. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js +0 -273
  1097. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js.map +0 -1
  1098. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts +0 -18
  1099. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts.map +0 -1
  1100. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js +0 -42
  1101. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js.map +0 -1
  1102. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts +0 -25
  1103. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts.map +0 -1
  1104. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js +0 -114
  1105. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js.map +0 -1
  1106. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts +0 -11
  1107. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts.map +0 -1
  1108. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js +0 -39
  1109. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js.map +0 -1
  1110. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts +0 -33
  1111. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts.map +0 -1
  1112. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js +0 -210
  1113. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js.map +0 -1
  1114. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts +0 -2
  1115. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts.map +0 -1
  1116. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js +0 -50
  1117. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js.map +0 -1
  1118. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts +0 -44
  1119. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts.map +0 -1
  1120. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js +0 -311
  1121. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js.map +0 -1
  1122. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts +0 -3
  1123. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts.map +0 -1
  1124. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js +0 -30
  1125. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js.map +0 -1
  1126. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts +0 -616
  1127. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts.map +0 -1
  1128. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js +0 -94
  1129. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js.map +0 -1
  1130. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts +0 -14
  1131. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts.map +0 -1
  1132. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js +0 -126
  1133. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js.map +0 -1
  1134. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts +0 -70
  1135. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts.map +0 -1
  1136. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js +0 -297
  1137. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js.map +0 -1
  1138. package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts +0 -20
  1139. package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts.map +0 -1
  1140. package/node_modules/@earendil-works/omk-agent-core/dist/index.js +0 -25
  1141. package/node_modules/@earendil-works/omk-agent-core/dist/index.js.map +0 -1
  1142. package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts +0 -3
  1143. package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts.map +0 -1
  1144. package/node_modules/@earendil-works/omk-agent-core/dist/node.js +0 -3
  1145. package/node_modules/@earendil-works/omk-agent-core/dist/node.js.map +0 -1
  1146. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts +0 -69
  1147. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts.map +0 -1
  1148. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js +0 -278
  1149. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js.map +0 -1
  1150. package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts +0 -393
  1151. package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts.map +0 -1
  1152. package/node_modules/@earendil-works/omk-agent-core/dist/types.js +0 -2
  1153. package/node_modules/@earendil-works/omk-agent-core/dist/types.js.map +0 -1
  1154. package/node_modules/@earendil-works/omk-agent-core/package.json +0 -60
  1155. package/node_modules/@earendil-works/omk-ai/README.md +0 -1389
  1156. package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts +0 -20
  1157. package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts.map +0 -1
  1158. package/node_modules/@earendil-works/omk-ai/dist/api-registry.js +0 -44
  1159. package/node_modules/@earendil-works/omk-ai/dist/api-registry.js.map +0 -1
  1160. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts +0 -5
  1161. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts.map +0 -1
  1162. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js +0 -6
  1163. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js.map +0 -1
  1164. package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts +0 -3
  1165. package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts.map +0 -1
  1166. package/node_modules/@earendil-works/omk-ai/dist/cli.js +0 -130
  1167. package/node_modules/@earendil-works/omk-ai/dist/cli.js.map +0 -1
  1168. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts +0 -20
  1169. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts.map +0 -1
  1170. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js +0 -199
  1171. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js.map +0 -1
  1172. package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts +0 -10
  1173. package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts.map +0 -1
  1174. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts +0 -515
  1175. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts.map +0 -1
  1176. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js +0 -517
  1177. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js.map +0 -1
  1178. package/node_modules/@earendil-works/omk-ai/dist/image-models.js +0 -23
  1179. package/node_modules/@earendil-works/omk-ai/dist/image-models.js.map +0 -1
  1180. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts +0 -14
  1181. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts.map +0 -1
  1182. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js +0 -22
  1183. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js.map +0 -1
  1184. package/node_modules/@earendil-works/omk-ai/dist/images.d.ts +0 -4
  1185. package/node_modules/@earendil-works/omk-ai/dist/images.d.ts.map +0 -1
  1186. package/node_modules/@earendil-works/omk-ai/dist/images.js +0 -16
  1187. package/node_modules/@earendil-works/omk-ai/dist/images.js.map +0 -1
  1188. package/node_modules/@earendil-works/omk-ai/dist/index.d.ts +0 -33
  1189. package/node_modules/@earendil-works/omk-ai/dist/index.d.ts.map +0 -1
  1190. package/node_modules/@earendil-works/omk-ai/dist/index.js +0 -21
  1191. package/node_modules/@earendil-works/omk-ai/dist/index.js.map +0 -1
  1192. package/node_modules/@earendil-works/omk-ai/dist/models.d.ts +0 -18
  1193. package/node_modules/@earendil-works/omk-ai/dist/models.d.ts.map +0 -1
  1194. package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts +0 -18762
  1195. package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts.map +0 -1
  1196. package/node_modules/@earendil-works/omk-ai/dist/models.generated.js +0 -17197
  1197. package/node_modules/@earendil-works/omk-ai/dist/models.generated.js.map +0 -1
  1198. package/node_modules/@earendil-works/omk-ai/dist/models.js +0 -78
  1199. package/node_modules/@earendil-works/omk-ai/dist/models.js.map +0 -1
  1200. package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts +0 -2
  1201. package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts.map +0 -1
  1202. package/node_modules/@earendil-works/omk-ai/dist/oauth.js +0 -2
  1203. package/node_modules/@earendil-works/omk-ai/dist/oauth.js.map +0 -1
  1204. package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts +0 -39
  1205. package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts.map +0 -1
  1206. package/node_modules/@earendil-works/omk-ai/dist/provider-network.js +0 -170
  1207. package/node_modules/@earendil-works/omk-ai/dist/provider-network.js.map +0 -1
  1208. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts +0 -38
  1209. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts.map +0 -1
  1210. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js +0 -826
  1211. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js.map +0 -1
  1212. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts +0 -77
  1213. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts.map +0 -1
  1214. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js +0 -1123
  1215. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js.map +0 -1
  1216. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts +0 -15
  1217. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts.map +0 -1
  1218. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js +0 -221
  1219. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js.map +0 -1
  1220. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts +0 -13
  1221. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts.map +0 -1
  1222. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js +0 -26
  1223. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js.map +0 -1
  1224. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts +0 -56
  1225. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts.map +0 -1
  1226. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js +0 -368
  1227. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js.map +0 -1
  1228. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts +0 -8
  1229. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts.map +0 -1
  1230. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js +0 -29
  1231. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js.map +0 -1
  1232. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts +0 -70
  1233. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts.map +0 -1
  1234. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js +0 -331
  1235. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js.map +0 -1
  1236. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts +0 -15
  1237. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts.map +0 -1
  1238. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js +0 -442
  1239. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js.map +0 -1
  1240. package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts +0 -13
  1241. package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts.map +0 -1
  1242. package/node_modules/@earendil-works/omk-ai/dist/providers/google.js +0 -402
  1243. package/node_modules/@earendil-works/omk-ai/dist/providers/google.js.map +0 -1
  1244. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts +0 -3
  1245. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts.map +0 -1
  1246. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js +0 -128
  1247. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js.map +0 -1
  1248. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts +0 -4
  1249. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts.map +0 -1
  1250. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js +0 -34
  1251. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js.map +0 -1
  1252. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts +0 -25
  1253. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts.map +0 -1
  1254. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js +0 -534
  1255. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js.map +0 -1
  1256. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts +0 -30
  1257. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts.map +0 -1
  1258. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js +0 -1171
  1259. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js.map +0 -1
  1260. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts +0 -19
  1261. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts.map +0 -1
  1262. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js +0 -977
  1263. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js.map +0 -1
  1264. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts +0 -11
  1265. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts.map +0 -1
  1266. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js +0 -22
  1267. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js.map +0 -1
  1268. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts +0 -18
  1269. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts.map +0 -1
  1270. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js +0 -496
  1271. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js.map +0 -1
  1272. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts +0 -13
  1273. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts.map +0 -1
  1274. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js +0 -233
  1275. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js.map +0 -1
  1276. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts +0 -35
  1277. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts.map +0 -1
  1278. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js +0 -254
  1279. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js.map +0 -1
  1280. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts +0 -8
  1281. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts.map +0 -1
  1282. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js +0 -42
  1283. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js.map +0 -1
  1284. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts +0 -13
  1285. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts.map +0 -1
  1286. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js +0 -82
  1287. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js.map +0 -1
  1288. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts +0 -8
  1289. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts.map +0 -1
  1290. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js +0 -184
  1291. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js.map +0 -1
  1292. package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts +0 -4
  1293. package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts.map +0 -1
  1294. package/node_modules/@earendil-works/omk-ai/dist/session-resources.js +0 -22
  1295. package/node_modules/@earendil-works/omk-ai/dist/session-resources.js.map +0 -1
  1296. package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts +0 -8
  1297. package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts.map +0 -1
  1298. package/node_modules/@earendil-works/omk-ai/dist/stream.js +0 -77
  1299. package/node_modules/@earendil-works/omk-ai/dist/stream.js.map +0 -1
  1300. package/node_modules/@earendil-works/omk-ai/dist/types.d.ts +0 -570
  1301. package/node_modules/@earendil-works/omk-ai/dist/types.d.ts.map +0 -1
  1302. package/node_modules/@earendil-works/omk-ai/dist/types.js +0 -2
  1303. package/node_modules/@earendil-works/omk-ai/dist/types.js.map +0 -1
  1304. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts +0 -6
  1305. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts.map +0 -1
  1306. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js +0 -34
  1307. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js.map +0 -1
  1308. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts +0 -19
  1309. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts.map +0 -1
  1310. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js +0 -25
  1311. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js.map +0 -1
  1312. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts +0 -21
  1313. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts.map +0 -1
  1314. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js +0 -81
  1315. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js.map +0 -1
  1316. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts +0 -3
  1317. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts.map +0 -1
  1318. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js +0 -14
  1319. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js.map +0 -1
  1320. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts +0 -2
  1321. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts.map +0 -1
  1322. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js +0 -8
  1323. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js.map +0 -1
  1324. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts +0 -16
  1325. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts.map +0 -1
  1326. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js +0 -113
  1327. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js.map +0 -1
  1328. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts +0 -10
  1329. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts.map +0 -1
  1330. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js +0 -97
  1331. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js.map +0 -1
  1332. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts +0 -25
  1333. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts.map +0 -1
  1334. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js +0 -335
  1335. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js.map +0 -1
  1336. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts +0 -21
  1337. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts.map +0 -1
  1338. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js +0 -56
  1339. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js.map +0 -1
  1340. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts +0 -30
  1341. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts.map +0 -1
  1342. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js +0 -280
  1343. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js.map +0 -1
  1344. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts +0 -58
  1345. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts.map +0 -1
  1346. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js +0 -122
  1347. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js.map +0 -1
  1348. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts +0 -3
  1349. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts.map +0 -1
  1350. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js +0 -105
  1351. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js.map +0 -1
  1352. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts +0 -43
  1353. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts.map +0 -1
  1354. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js +0 -487
  1355. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js.map +0 -1
  1356. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts +0 -13
  1357. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts.map +0 -1
  1358. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js +0 -31
  1359. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js.map +0 -1
  1360. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts +0 -64
  1361. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts.map +0 -1
  1362. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js +0 -2
  1363. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js.map +0 -1
  1364. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts +0 -57
  1365. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts.map +0 -1
  1366. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js +0 -154
  1367. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js.map +0 -1
  1368. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts +0 -22
  1369. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts.map +0 -1
  1370. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js +0 -26
  1371. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js.map +0 -1
  1372. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts +0 -17
  1373. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts.map +0 -1
  1374. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js +0 -21
  1375. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js.map +0 -1
  1376. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts +0 -18
  1377. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts.map +0 -1
  1378. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js +0 -281
  1379. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js.map +0 -1
  1380. package/node_modules/@earendil-works/omk-ai/package.json +0 -106
  1381. package/node_modules/@earendil-works/omk-tui/README.md +0 -791
  1382. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts +0 -54
  1383. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts.map +0 -1
  1384. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js +0 -632
  1385. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js.map +0 -1
  1386. package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts +0 -22
  1387. package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts.map +0 -1
  1388. package/node_modules/@earendil-works/omk-tui/dist/components/box.js +0 -104
  1389. package/node_modules/@earendil-works/omk-tui/dist/components/box.js.map +0 -1
  1390. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts +0 -22
  1391. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts.map +0 -1
  1392. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js +0 -35
  1393. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js.map +0 -1
  1394. package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts +0 -249
  1395. package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts.map +0 -1
  1396. package/node_modules/@earendil-works/omk-tui/dist/components/editor.js +0 -1857
  1397. package/node_modules/@earendil-works/omk-tui/dist/components/editor.js.map +0 -1
  1398. package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts +0 -28
  1399. package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts.map +0 -1
  1400. package/node_modules/@earendil-works/omk-tui/dist/components/image.js +0 -89
  1401. package/node_modules/@earendil-works/omk-tui/dist/components/image.js.map +0 -1
  1402. package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts +0 -37
  1403. package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts.map +0 -1
  1404. package/node_modules/@earendil-works/omk-tui/dist/components/input.js +0 -378
  1405. package/node_modules/@earendil-works/omk-tui/dist/components/input.js.map +0 -1
  1406. package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts +0 -31
  1407. package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts.map +0 -1
  1408. package/node_modules/@earendil-works/omk-tui/dist/components/loader.js +0 -69
  1409. package/node_modules/@earendil-works/omk-tui/dist/components/loader.js.map +0 -1
  1410. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts +0 -96
  1411. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts.map +0 -1
  1412. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js +0 -644
  1413. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js.map +0 -1
  1414. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts +0 -50
  1415. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts.map +0 -1
  1416. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js +0 -159
  1417. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js.map +0 -1
  1418. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts +0 -50
  1419. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts.map +0 -1
  1420. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js +0 -185
  1421. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js.map +0 -1
  1422. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts +0 -12
  1423. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts.map +0 -1
  1424. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js +0 -23
  1425. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js.map +0 -1
  1426. package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts +0 -19
  1427. package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts.map +0 -1
  1428. package/node_modules/@earendil-works/omk-tui/dist/components/text.js +0 -89
  1429. package/node_modules/@earendil-works/omk-tui/dist/components/text.js.map +0 -1
  1430. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts +0 -13
  1431. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts.map +0 -1
  1432. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js +0 -51
  1433. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js.map +0 -1
  1434. package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts +0 -39
  1435. package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts.map +0 -1
  1436. package/node_modules/@earendil-works/omk-tui/dist/editor-component.js +0 -2
  1437. package/node_modules/@earendil-works/omk-tui/dist/editor-component.js.map +0 -1
  1438. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts +0 -16
  1439. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts.map +0 -1
  1440. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js +0 -110
  1441. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js.map +0 -1
  1442. package/node_modules/@earendil-works/omk-tui/dist/index.d.ts +0 -23
  1443. package/node_modules/@earendil-works/omk-tui/dist/index.d.ts.map +0 -1
  1444. package/node_modules/@earendil-works/omk-tui/dist/index.js +0 -32
  1445. package/node_modules/@earendil-works/omk-tui/dist/index.js.map +0 -1
  1446. package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts +0 -212
  1447. package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts.map +0 -1
  1448. package/node_modules/@earendil-works/omk-tui/dist/keybindings.js +0 -252
  1449. package/node_modules/@earendil-works/omk-tui/dist/keybindings.js.map +0 -1
  1450. package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts +0 -184
  1451. package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts.map +0 -1
  1452. package/node_modules/@earendil-works/omk-tui/dist/keys.js +0 -1173
  1453. package/node_modules/@earendil-works/omk-tui/dist/keys.js.map +0 -1
  1454. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts +0 -28
  1455. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts.map +0 -1
  1456. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js +0 -44
  1457. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js.map +0 -1
  1458. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts +0 -3
  1459. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts.map +0 -1
  1460. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js +0 -53
  1461. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js.map +0 -1
  1462. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts +0 -50
  1463. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts.map +0 -1
  1464. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js +0 -361
  1465. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js.map +0 -1
  1466. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts +0 -90
  1467. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts.map +0 -1
  1468. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js +0 -366
  1469. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js.map +0 -1
  1470. package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts +0 -113
  1471. package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts.map +0 -1
  1472. package/node_modules/@earendil-works/omk-tui/dist/terminal.js +0 -472
  1473. package/node_modules/@earendil-works/omk-tui/dist/terminal.js.map +0 -1
  1474. package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts +0 -242
  1475. package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts.map +0 -1
  1476. package/node_modules/@earendil-works/omk-tui/dist/tui.js +0 -1221
  1477. package/node_modules/@earendil-works/omk-tui/dist/tui.js.map +0 -1
  1478. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts +0 -17
  1479. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts.map +0 -1
  1480. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js +0 -25
  1481. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js.map +0 -1
  1482. package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts +0 -84
  1483. package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts.map +0 -1
  1484. package/node_modules/@earendil-works/omk-tui/dist/utils.js +0 -1032
  1485. package/node_modules/@earendil-works/omk-tui/dist/utils.js.map +0 -1
  1486. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts +0 -25
  1487. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts.map +0 -1
  1488. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js +0 -96
  1489. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js.map +0 -1
  1490. package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  1491. package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  1492. package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  1493. package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
  1494. package/node_modules/@earendil-works/omk-tui/package.json +0 -47
@@ -1,197 +0,0 @@
1
- /**
2
- * Pure VerificationContract evaluation helpers.
3
- *
4
- * These functions evaluate a verification contract against already-captured
5
- * evidence (command receipts, passed gate ids, agent contexts). They perform NO
6
- * real command execution, NO filesystem access, and NO network calls — every
7
- * input is passed in by the caller. This keeps them deterministic, fast, and
8
- * safe to run inside any lane without write/execute scope.
9
- *
10
- * The shapes here are a focused, machine-verifiable subset of the orchestration
11
- * verification contract (see `.omk/runs/omk-orchestration-upgrade-plan/
12
- * verification-contract.md`). Downstream lanes add the executor (spawning,
13
- * hashing, globbing) on top of these pure evaluators.
14
- */
15
- /** Where an {@link OutputMatcher} should look for its pattern. */
16
- export type OutputSource = "stdout" | "stderr" | "combined";
17
- /** Match predicates supported by {@link evaluateOutputMatchers}. */
18
- export type OutputPredicate = "includes" | "regex" | "not-includes";
19
- /**
20
- * A serializable matcher over a captured command stream.
21
- *
22
- * - `includes` : the stream must contain `value` as a substring.
23
- * - `regex` : the stream must match the RegExp built from `value`.
24
- * - `not-includes` : the stream must NOT contain `value` as a substring.
25
- */
26
- export interface OutputMatcher {
27
- readonly source: OutputSource;
28
- readonly predicate: OutputPredicate;
29
- readonly value: string;
30
- }
31
- /** Optional exit-code constraint for a {@link CommandGate}. */
32
- export type ExpectedExitCode = number | {
33
- readonly min: number;
34
- readonly max: number;
35
- };
36
- /**
37
- * A single executable gate inside a verification contract. The gate itself is
38
- * data only; {@link evaluateCommandGate} evaluates it against a receipt.
39
- */
40
- export interface CommandGate {
41
- readonly id: string;
42
- readonly cmd: string;
43
- readonly args?: readonly string[];
44
- /** Exact code or inclusive range. Omit to skip the exit-code constraint. */
45
- readonly expectedExitCode?: ExpectedExitCode;
46
- readonly matchers?: readonly OutputMatcher[];
47
- readonly timeoutMs: number;
48
- }
49
- /**
50
- * Captured output of an already-executed command. `combined` defaults to
51
- * `stdout + stderr` when omitted so matchers that select `combined` still work.
52
- */
53
- export interface CommandReceipt {
54
- readonly exitCode: number;
55
- readonly stdout: string;
56
- readonly stderr: string;
57
- readonly combined?: string;
58
- }
59
- /**
60
- * An artifact existence/hash/size requirement. (Type shape only — artifact
61
- * verification touches the filesystem and is implemented by the executor lane.)
62
- */
63
- export interface ArtifactRule {
64
- readonly id: string;
65
- readonly pathGlob: string;
66
- readonly mustExist: boolean;
67
- readonly expectedHash?: string;
68
- readonly sizeBytes?: {
69
- readonly min?: number;
70
- readonly max?: number;
71
- };
72
- readonly containment?: "file" | "directory" | "any";
73
- }
74
- /** Supported test frameworks for a {@link TestSelector}. */
75
- export type TestFramework = "vitest" | "jest" | "pytest" | "go";
76
- /**
77
- * A test-suite selector. (Type shape only — running and parsing test output is
78
- * implemented by the executor lane.)
79
- */
80
- export interface TestSelector {
81
- readonly id: string;
82
- readonly framework: TestFramework;
83
- readonly fileOrPattern: string;
84
- readonly expectedResult?: {
85
- readonly passed?: number;
86
- readonly failed?: number;
87
- readonly skipped?: number;
88
- };
89
- readonly timeoutMs: number;
90
- }
91
- /**
92
- * How gate results are aggregated into a single pass/fail.
93
- *
94
- * - `all` : every gate must pass (and there must be at least one gate).
95
- * - `quorum` : at least `requiredPasses` gates must pass.
96
- */
97
- export type EvidencePolicy = {
98
- readonly mode: "all";
99
- } | {
100
- readonly mode: "quorum";
101
- readonly requiredPasses: number;
102
- };
103
- /** The kind of gate a {@link VerificationGateResult} summarizes. */
104
- export type GateKind = "command" | "artifact" | "test";
105
- /** Result of evaluating a single gate. */
106
- export interface VerificationGateResult {
107
- readonly id: string;
108
- readonly kind: GateKind;
109
- readonly pass: boolean;
110
- readonly exitCode?: number;
111
- readonly matcherFailures?: readonly string[];
112
- readonly errors?: readonly string[];
113
- }
114
- /** Top-level verification outcome after aggregation and policy checks. */
115
- export interface VerificationResult {
116
- readonly pass: boolean;
117
- readonly evidencePolicy: EvidencePolicy;
118
- readonly gates: readonly VerificationGateResult[];
119
- readonly traceabilityOk: boolean;
120
- readonly independenceOk: boolean;
121
- readonly errorSummary?: string;
122
- }
123
- /**
124
- * Maps a requirement to the gate ids that prove it. `minPassingGates` defaults
125
- * to 1 when omitted.
126
- */
127
- export interface RequirementLink {
128
- readonly requirementId: string;
129
- readonly gateIds: readonly string[];
130
- readonly minPassingGates?: number;
131
- }
132
- /** Identity of an executor or reviewer agent for independence checks. */
133
- export interface AgentContext {
134
- readonly modelId: string;
135
- readonly contextId: string;
136
- /** Reviewer-only: declares the reviewer ran in a freshly created context. */
137
- readonly freshContext?: boolean;
138
- }
139
- /** Streams available to matchers. */
140
- export interface CommandOutputs {
141
- readonly stdout: string;
142
- readonly stderr: string;
143
- readonly combined?: string;
144
- }
145
- /** Outcome of {@link evaluateOutputMatchers}. */
146
- export interface MatcherEvaluation {
147
- readonly pass: boolean;
148
- readonly failures: readonly string[];
149
- }
150
- /** Outcome of {@link aggregateGateResults}. */
151
- export interface AggregationEvaluation {
152
- readonly pass: boolean;
153
- readonly passedCount: number;
154
- }
155
- /** Outcome of {@link verifyTraceability}. */
156
- export interface TraceabilityEvaluation {
157
- readonly pass: boolean;
158
- readonly failures: readonly string[];
159
- }
160
- /**
161
- * Evaluate a list of {@link OutputMatcher}s against captured command streams.
162
- * All matchers must pass. Invalid regex is treated as a failure (never thrown).
163
- */
164
- export declare function evaluateOutputMatchers(outputs: CommandOutputs, matchers: readonly OutputMatcher[]): MatcherEvaluation;
165
- /**
166
- * Evaluate a {@link CommandGate} against an executed-command receipt. The gate
167
- * passes when the exit code satisfies `expectedExitCode` (if set) AND every
168
- * matcher passes. No execution happens here.
169
- */
170
- export declare function evaluateCommandGate(gate: CommandGate, receipt: CommandReceipt): VerificationGateResult;
171
- /**
172
- * Aggregate gate results under an {@link EvidencePolicy}.
173
- *
174
- * - `all` : passes only when there is at least one gate and every gate passes.
175
- * - `quorum` : passes when at least `requiredPasses` gates pass.
176
- */
177
- export declare function aggregateGateResults(results: readonly VerificationGateResult[], policy: EvidencePolicy): AggregationEvaluation;
178
- /**
179
- * Verify every requirement id is covered by enough passed gates.
180
- *
181
- * For each requirement id in `requirements`, its {@link RequirementLink} must
182
- * exist and at least `minPassingGates` (default 1) of its linked gate ids must
183
- * appear in `passedGateIds`. A missing link is a traceability gap.
184
- */
185
- export declare function verifyTraceability(requirements: readonly string[], links: readonly RequirementLink[], passedGateIds: readonly string[]): TraceabilityEvaluation;
186
- /**
187
- * Check reviewer/executor independence.
188
- *
189
- * Passes only when:
190
- * - the reviewer's model differs from the executor's model, OR
191
- * - the reviewer's context differs AND the reviewer declared `freshContext`.
192
- *
193
- * This is the fail-closed gate that prevents a node's executor from also being
194
- * its verifier.
195
- */
196
- export declare function checkReviewerExecutorIndependence(executor: AgentContext, reviewer: AgentContext): boolean;
197
- //# sourceMappingURL=verification-contract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verification-contract.d.ts","sourceRoot":"","sources":["../../../src/core/orchestration/verification-contract.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Pure VerificationContract evaluation helpers.\n *\n * These functions evaluate a verification contract against already-captured\n * evidence (command receipts, passed gate ids, agent contexts). They perform NO\n * real command execution, NO filesystem access, and NO network calls — every\n * input is passed in by the caller. This keeps them deterministic, fast, and\n * safe to run inside any lane without write/execute scope.\n *\n * The shapes here are a focused, machine-verifiable subset of the orchestration\n * verification contract (see `.omk/runs/omk-orchestration-upgrade-plan/\n * verification-contract.md`). Downstream lanes add the executor (spawning,\n * hashing, globbing) on top of these pure evaluators.\n */\n\n/** Where an {@link OutputMatcher} should look for its pattern. */\nexport type OutputSource = \"stdout\" | \"stderr\" | \"combined\";\n\n/** Match predicates supported by {@link evaluateOutputMatchers}. */\nexport type OutputPredicate = \"includes\" | \"regex\" | \"not-includes\";\n\n/**\n * A serializable matcher over a captured command stream.\n *\n * - `includes` : the stream must contain `value` as a substring.\n * - `regex` : the stream must match the RegExp built from `value`.\n * - `not-includes` : the stream must NOT contain `value` as a substring.\n */\nexport interface OutputMatcher {\n\treadonly source: OutputSource;\n\treadonly predicate: OutputPredicate;\n\treadonly value: string;\n}\n\n/** Optional exit-code constraint for a {@link CommandGate}. */\nexport type ExpectedExitCode = number | { readonly min: number; readonly max: number };\n\n/**\n * A single executable gate inside a verification contract. The gate itself is\n * data only; {@link evaluateCommandGate} evaluates it against a receipt.\n */\nexport interface CommandGate {\n\treadonly id: string;\n\treadonly cmd: string;\n\treadonly args?: readonly string[];\n\t/** Exact code or inclusive range. Omit to skip the exit-code constraint. */\n\treadonly expectedExitCode?: ExpectedExitCode;\n\treadonly matchers?: readonly OutputMatcher[];\n\treadonly timeoutMs: number;\n}\n\n/**\n * Captured output of an already-executed command. `combined` defaults to\n * `stdout + stderr` when omitted so matchers that select `combined` still work.\n */\nexport interface CommandReceipt {\n\treadonly exitCode: number;\n\treadonly stdout: string;\n\treadonly stderr: string;\n\treadonly combined?: string;\n}\n\n/**\n * An artifact existence/hash/size requirement. (Type shape only — artifact\n * verification touches the filesystem and is implemented by the executor lane.)\n */\nexport interface ArtifactRule {\n\treadonly id: string;\n\treadonly pathGlob: string;\n\treadonly mustExist: boolean;\n\treadonly expectedHash?: string;\n\treadonly sizeBytes?: { readonly min?: number; readonly max?: number };\n\treadonly containment?: \"file\" | \"directory\" | \"any\";\n}\n\n/** Supported test frameworks for a {@link TestSelector}. */\nexport type TestFramework = \"vitest\" | \"jest\" | \"pytest\" | \"go\";\n\n/**\n * A test-suite selector. (Type shape only — running and parsing test output is\n * implemented by the executor lane.)\n */\nexport interface TestSelector {\n\treadonly id: string;\n\treadonly framework: TestFramework;\n\treadonly fileOrPattern: string;\n\treadonly expectedResult?: {\n\t\treadonly passed?: number;\n\t\treadonly failed?: number;\n\t\treadonly skipped?: number;\n\t};\n\treadonly timeoutMs: number;\n}\n\n/**\n * How gate results are aggregated into a single pass/fail.\n *\n * - `all` : every gate must pass (and there must be at least one gate).\n * - `quorum` : at least `requiredPasses` gates must pass.\n */\nexport type EvidencePolicy = { readonly mode: \"all\" } | { readonly mode: \"quorum\"; readonly requiredPasses: number };\n\n/** The kind of gate a {@link VerificationGateResult} summarizes. */\nexport type GateKind = \"command\" | \"artifact\" | \"test\";\n\n/** Result of evaluating a single gate. */\nexport interface VerificationGateResult {\n\treadonly id: string;\n\treadonly kind: GateKind;\n\treadonly pass: boolean;\n\treadonly exitCode?: number;\n\treadonly matcherFailures?: readonly string[];\n\treadonly errors?: readonly string[];\n}\n\n/** Top-level verification outcome after aggregation and policy checks. */\nexport interface VerificationResult {\n\treadonly pass: boolean;\n\treadonly evidencePolicy: EvidencePolicy;\n\treadonly gates: readonly VerificationGateResult[];\n\treadonly traceabilityOk: boolean;\n\treadonly independenceOk: boolean;\n\treadonly errorSummary?: string;\n}\n\n/**\n * Maps a requirement to the gate ids that prove it. `minPassingGates` defaults\n * to 1 when omitted.\n */\nexport interface RequirementLink {\n\treadonly requirementId: string;\n\treadonly gateIds: readonly string[];\n\treadonly minPassingGates?: number;\n}\n\n/** Identity of an executor or reviewer agent for independence checks. */\nexport interface AgentContext {\n\treadonly modelId: string;\n\treadonly contextId: string;\n\t/** Reviewer-only: declares the reviewer ran in a freshly created context. */\n\treadonly freshContext?: boolean;\n}\n\n/** Streams available to matchers. */\nexport interface CommandOutputs {\n\treadonly stdout: string;\n\treadonly stderr: string;\n\treadonly combined?: string;\n}\n\n/** Outcome of {@link evaluateOutputMatchers}. */\nexport interface MatcherEvaluation {\n\treadonly pass: boolean;\n\treadonly failures: readonly string[];\n}\n\n/** Outcome of {@link aggregateGateResults}. */\nexport interface AggregationEvaluation {\n\treadonly pass: boolean;\n\treadonly passedCount: number;\n}\n\n/** Outcome of {@link verifyTraceability}. */\nexport interface TraceabilityEvaluation {\n\treadonly pass: boolean;\n\treadonly failures: readonly string[];\n}\n\nfunction selectStream(outputs: CommandOutputs, source: OutputSource): string {\n\tif (source === \"stdout\") return outputs.stdout;\n\tif (source === \"stderr\") return outputs.stderr;\n\t// `combined` defaults to stdout + stderr so callers can omit it.\n\treturn outputs.combined ?? `${outputs.stdout}${outputs.stderr}`;\n}\n\nfunction describeMatcher(matcher: OutputMatcher): string {\n\treturn `${matcher.source}/${matcher.predicate}=${JSON.stringify(matcher.value)}`;\n}\n\n/**\n * Evaluate a list of {@link OutputMatcher}s against captured command streams.\n * All matchers must pass. Invalid regex is treated as a failure (never thrown).\n */\nexport function evaluateOutputMatchers(outputs: CommandOutputs, matchers: readonly OutputMatcher[]): MatcherEvaluation {\n\tconst failures: string[] = [];\n\tfor (const matcher of matchers) {\n\t\tconst stream = selectStream(outputs, matcher.source);\n\t\tlet ok: boolean;\n\t\tif (matcher.predicate === \"includes\") {\n\t\t\tok = stream.includes(matcher.value);\n\t\t} else if (matcher.predicate === \"not-includes\") {\n\t\t\tok = !stream.includes(matcher.value);\n\t\t} else {\n\t\t\t// regex: a malformed pattern is a failed matcher, not a crash.\n\t\t\ttry {\n\t\t\t\tok = new RegExp(matcher.value).test(stream);\n\t\t\t} catch {\n\t\t\t\tfailures.push(`invalid regex for ${describeMatcher(matcher)}`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (!ok) {\n\t\t\tfailures.push(`matcher failed: ${describeMatcher(matcher)}`);\n\t\t}\n\t}\n\treturn { pass: failures.length === 0, failures };\n}\n\nfunction evaluateExitCode(expected: ExpectedExitCode | undefined, exitCode: number): boolean {\n\tif (expected === undefined) return true;\n\tif (typeof expected === \"number\") return exitCode === expected;\n\treturn exitCode >= expected.min && exitCode <= expected.max;\n}\n\n/**\n * Evaluate a {@link CommandGate} against an executed-command receipt. The gate\n * passes when the exit code satisfies `expectedExitCode` (if set) AND every\n * matcher passes. No execution happens here.\n */\nexport function evaluateCommandGate(gate: CommandGate, receipt: CommandReceipt): VerificationGateResult {\n\tconst errors: string[] = [];\n\tconst exitOk = evaluateExitCode(gate.expectedExitCode, receipt.exitCode);\n\tif (!exitOk) {\n\t\terrors.push(`exit code ${receipt.exitCode} did not satisfy ${JSON.stringify(gate.expectedExitCode)}`);\n\t}\n\tconst matcherResult = evaluateOutputMatchers(receipt, gate.matchers ?? []);\n\tconst pass = exitOk && matcherResult.pass;\n\treturn {\n\t\tid: gate.id,\n\t\tkind: \"command\",\n\t\tpass,\n\t\texitCode: receipt.exitCode,\n\t\t...(matcherResult.failures.length > 0 ? { matcherFailures: matcherResult.failures } : {}),\n\t\t...(errors.length > 0 ? { errors } : {}),\n\t};\n}\n\n/**\n * Aggregate gate results under an {@link EvidencePolicy}.\n *\n * - `all` : passes only when there is at least one gate and every gate passes.\n * - `quorum` : passes when at least `requiredPasses` gates pass.\n */\nexport function aggregateGateResults(\n\tresults: readonly VerificationGateResult[],\n\tpolicy: EvidencePolicy,\n): AggregationEvaluation {\n\tconst passedCount = results.filter((r) => r.pass).length;\n\tlet pass: boolean;\n\tif (policy.mode === \"all\") {\n\t\tpass = results.length > 0 && passedCount === results.length;\n\t} else {\n\t\tpass = passedCount >= policy.requiredPasses;\n\t}\n\treturn { pass, passedCount };\n}\n\n/**\n * Verify every requirement id is covered by enough passed gates.\n *\n * For each requirement id in `requirements`, its {@link RequirementLink} must\n * exist and at least `minPassingGates` (default 1) of its linked gate ids must\n * appear in `passedGateIds`. A missing link is a traceability gap.\n */\nexport function verifyTraceability(\n\trequirements: readonly string[],\n\tlinks: readonly RequirementLink[],\n\tpassedGateIds: readonly string[],\n): TraceabilityEvaluation {\n\tconst failures: string[] = [];\n\tconst passed = new Set(passedGateIds);\n\tconst byId = new Map<string, RequirementLink>();\n\tfor (const link of links) byId.set(link.requirementId, link);\n\tfor (const requirementId of requirements) {\n\t\tconst link = byId.get(requirementId);\n\t\tif (!link) {\n\t\t\tfailures.push(`requirement ${requirementId} has no gate link (traceability gap)`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst minPassing = link.minPassingGates ?? 1;\n\t\tconst passing = link.gateIds.filter((id) => passed.has(id)).length;\n\t\tif (passing < minPassing) {\n\t\t\tfailures.push(`requirement ${requirementId} covered by ${passing}/${minPassing} passed gates`);\n\t\t}\n\t}\n\treturn { pass: failures.length === 0, failures };\n}\n\n/**\n * Check reviewer/executor independence.\n *\n * Passes only when:\n * - the reviewer's model differs from the executor's model, OR\n * - the reviewer's context differs AND the reviewer declared `freshContext`.\n *\n * This is the fail-closed gate that prevents a node's executor from also being\n * its verifier.\n */\nexport function checkReviewerExecutorIndependence(executor: AgentContext, reviewer: AgentContext): boolean {\n\tconst differentModel = reviewer.modelId !== executor.modelId;\n\tconst freshDifferentContext = reviewer.contextId !== executor.contextId && reviewer.freshContext === true;\n\treturn differentModel || freshDifferentContext;\n}\n"]}
@@ -1,145 +0,0 @@
1
- /**
2
- * Pure VerificationContract evaluation helpers.
3
- *
4
- * These functions evaluate a verification contract against already-captured
5
- * evidence (command receipts, passed gate ids, agent contexts). They perform NO
6
- * real command execution, NO filesystem access, and NO network calls — every
7
- * input is passed in by the caller. This keeps them deterministic, fast, and
8
- * safe to run inside any lane without write/execute scope.
9
- *
10
- * The shapes here are a focused, machine-verifiable subset of the orchestration
11
- * verification contract (see `.omk/runs/omk-orchestration-upgrade-plan/
12
- * verification-contract.md`). Downstream lanes add the executor (spawning,
13
- * hashing, globbing) on top of these pure evaluators.
14
- */
15
- function selectStream(outputs, source) {
16
- if (source === "stdout")
17
- return outputs.stdout;
18
- if (source === "stderr")
19
- return outputs.stderr;
20
- // `combined` defaults to stdout + stderr so callers can omit it.
21
- return outputs.combined ?? `${outputs.stdout}${outputs.stderr}`;
22
- }
23
- function describeMatcher(matcher) {
24
- return `${matcher.source}/${matcher.predicate}=${JSON.stringify(matcher.value)}`;
25
- }
26
- /**
27
- * Evaluate a list of {@link OutputMatcher}s against captured command streams.
28
- * All matchers must pass. Invalid regex is treated as a failure (never thrown).
29
- */
30
- export function evaluateOutputMatchers(outputs, matchers) {
31
- const failures = [];
32
- for (const matcher of matchers) {
33
- const stream = selectStream(outputs, matcher.source);
34
- let ok;
35
- if (matcher.predicate === "includes") {
36
- ok = stream.includes(matcher.value);
37
- }
38
- else if (matcher.predicate === "not-includes") {
39
- ok = !stream.includes(matcher.value);
40
- }
41
- else {
42
- // regex: a malformed pattern is a failed matcher, not a crash.
43
- try {
44
- ok = new RegExp(matcher.value).test(stream);
45
- }
46
- catch {
47
- failures.push(`invalid regex for ${describeMatcher(matcher)}`);
48
- continue;
49
- }
50
- }
51
- if (!ok) {
52
- failures.push(`matcher failed: ${describeMatcher(matcher)}`);
53
- }
54
- }
55
- return { pass: failures.length === 0, failures };
56
- }
57
- function evaluateExitCode(expected, exitCode) {
58
- if (expected === undefined)
59
- return true;
60
- if (typeof expected === "number")
61
- return exitCode === expected;
62
- return exitCode >= expected.min && exitCode <= expected.max;
63
- }
64
- /**
65
- * Evaluate a {@link CommandGate} against an executed-command receipt. The gate
66
- * passes when the exit code satisfies `expectedExitCode` (if set) AND every
67
- * matcher passes. No execution happens here.
68
- */
69
- export function evaluateCommandGate(gate, receipt) {
70
- const errors = [];
71
- const exitOk = evaluateExitCode(gate.expectedExitCode, receipt.exitCode);
72
- if (!exitOk) {
73
- errors.push(`exit code ${receipt.exitCode} did not satisfy ${JSON.stringify(gate.expectedExitCode)}`);
74
- }
75
- const matcherResult = evaluateOutputMatchers(receipt, gate.matchers ?? []);
76
- const pass = exitOk && matcherResult.pass;
77
- return {
78
- id: gate.id,
79
- kind: "command",
80
- pass,
81
- exitCode: receipt.exitCode,
82
- ...(matcherResult.failures.length > 0 ? { matcherFailures: matcherResult.failures } : {}),
83
- ...(errors.length > 0 ? { errors } : {}),
84
- };
85
- }
86
- /**
87
- * Aggregate gate results under an {@link EvidencePolicy}.
88
- *
89
- * - `all` : passes only when there is at least one gate and every gate passes.
90
- * - `quorum` : passes when at least `requiredPasses` gates pass.
91
- */
92
- export function aggregateGateResults(results, policy) {
93
- const passedCount = results.filter((r) => r.pass).length;
94
- let pass;
95
- if (policy.mode === "all") {
96
- pass = results.length > 0 && passedCount === results.length;
97
- }
98
- else {
99
- pass = passedCount >= policy.requiredPasses;
100
- }
101
- return { pass, passedCount };
102
- }
103
- /**
104
- * Verify every requirement id is covered by enough passed gates.
105
- *
106
- * For each requirement id in `requirements`, its {@link RequirementLink} must
107
- * exist and at least `minPassingGates` (default 1) of its linked gate ids must
108
- * appear in `passedGateIds`. A missing link is a traceability gap.
109
- */
110
- export function verifyTraceability(requirements, links, passedGateIds) {
111
- const failures = [];
112
- const passed = new Set(passedGateIds);
113
- const byId = new Map();
114
- for (const link of links)
115
- byId.set(link.requirementId, link);
116
- for (const requirementId of requirements) {
117
- const link = byId.get(requirementId);
118
- if (!link) {
119
- failures.push(`requirement ${requirementId} has no gate link (traceability gap)`);
120
- continue;
121
- }
122
- const minPassing = link.minPassingGates ?? 1;
123
- const passing = link.gateIds.filter((id) => passed.has(id)).length;
124
- if (passing < minPassing) {
125
- failures.push(`requirement ${requirementId} covered by ${passing}/${minPassing} passed gates`);
126
- }
127
- }
128
- return { pass: failures.length === 0, failures };
129
- }
130
- /**
131
- * Check reviewer/executor independence.
132
- *
133
- * Passes only when:
134
- * - the reviewer's model differs from the executor's model, OR
135
- * - the reviewer's context differs AND the reviewer declared `freshContext`.
136
- *
137
- * This is the fail-closed gate that prevents a node's executor from also being
138
- * its verifier.
139
- */
140
- export function checkReviewerExecutorIndependence(executor, reviewer) {
141
- const differentModel = reviewer.modelId !== executor.modelId;
142
- const freshDifferentContext = reviewer.contextId !== executor.contextId && reviewer.freshContext === true;
143
- return differentModel || freshDifferentContext;
144
- }
145
- //# sourceMappingURL=verification-contract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verification-contract.js","sourceRoot":"","sources":["../../../src/core/orchestration/verification-contract.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Pure VerificationContract evaluation helpers.\n *\n * These functions evaluate a verification contract against already-captured\n * evidence (command receipts, passed gate ids, agent contexts). They perform NO\n * real command execution, NO filesystem access, and NO network calls — every\n * input is passed in by the caller. This keeps them deterministic, fast, and\n * safe to run inside any lane without write/execute scope.\n *\n * The shapes here are a focused, machine-verifiable subset of the orchestration\n * verification contract (see `.omk/runs/omk-orchestration-upgrade-plan/\n * verification-contract.md`). Downstream lanes add the executor (spawning,\n * hashing, globbing) on top of these pure evaluators.\n */\n\n/** Where an {@link OutputMatcher} should look for its pattern. */\nexport type OutputSource = \"stdout\" | \"stderr\" | \"combined\";\n\n/** Match predicates supported by {@link evaluateOutputMatchers}. */\nexport type OutputPredicate = \"includes\" | \"regex\" | \"not-includes\";\n\n/**\n * A serializable matcher over a captured command stream.\n *\n * - `includes` : the stream must contain `value` as a substring.\n * - `regex` : the stream must match the RegExp built from `value`.\n * - `not-includes` : the stream must NOT contain `value` as a substring.\n */\nexport interface OutputMatcher {\n\treadonly source: OutputSource;\n\treadonly predicate: OutputPredicate;\n\treadonly value: string;\n}\n\n/** Optional exit-code constraint for a {@link CommandGate}. */\nexport type ExpectedExitCode = number | { readonly min: number; readonly max: number };\n\n/**\n * A single executable gate inside a verification contract. The gate itself is\n * data only; {@link evaluateCommandGate} evaluates it against a receipt.\n */\nexport interface CommandGate {\n\treadonly id: string;\n\treadonly cmd: string;\n\treadonly args?: readonly string[];\n\t/** Exact code or inclusive range. Omit to skip the exit-code constraint. */\n\treadonly expectedExitCode?: ExpectedExitCode;\n\treadonly matchers?: readonly OutputMatcher[];\n\treadonly timeoutMs: number;\n}\n\n/**\n * Captured output of an already-executed command. `combined` defaults to\n * `stdout + stderr` when omitted so matchers that select `combined` still work.\n */\nexport interface CommandReceipt {\n\treadonly exitCode: number;\n\treadonly stdout: string;\n\treadonly stderr: string;\n\treadonly combined?: string;\n}\n\n/**\n * An artifact existence/hash/size requirement. (Type shape only — artifact\n * verification touches the filesystem and is implemented by the executor lane.)\n */\nexport interface ArtifactRule {\n\treadonly id: string;\n\treadonly pathGlob: string;\n\treadonly mustExist: boolean;\n\treadonly expectedHash?: string;\n\treadonly sizeBytes?: { readonly min?: number; readonly max?: number };\n\treadonly containment?: \"file\" | \"directory\" | \"any\";\n}\n\n/** Supported test frameworks for a {@link TestSelector}. */\nexport type TestFramework = \"vitest\" | \"jest\" | \"pytest\" | \"go\";\n\n/**\n * A test-suite selector. (Type shape only — running and parsing test output is\n * implemented by the executor lane.)\n */\nexport interface TestSelector {\n\treadonly id: string;\n\treadonly framework: TestFramework;\n\treadonly fileOrPattern: string;\n\treadonly expectedResult?: {\n\t\treadonly passed?: number;\n\t\treadonly failed?: number;\n\t\treadonly skipped?: number;\n\t};\n\treadonly timeoutMs: number;\n}\n\n/**\n * How gate results are aggregated into a single pass/fail.\n *\n * - `all` : every gate must pass (and there must be at least one gate).\n * - `quorum` : at least `requiredPasses` gates must pass.\n */\nexport type EvidencePolicy = { readonly mode: \"all\" } | { readonly mode: \"quorum\"; readonly requiredPasses: number };\n\n/** The kind of gate a {@link VerificationGateResult} summarizes. */\nexport type GateKind = \"command\" | \"artifact\" | \"test\";\n\n/** Result of evaluating a single gate. */\nexport interface VerificationGateResult {\n\treadonly id: string;\n\treadonly kind: GateKind;\n\treadonly pass: boolean;\n\treadonly exitCode?: number;\n\treadonly matcherFailures?: readonly string[];\n\treadonly errors?: readonly string[];\n}\n\n/** Top-level verification outcome after aggregation and policy checks. */\nexport interface VerificationResult {\n\treadonly pass: boolean;\n\treadonly evidencePolicy: EvidencePolicy;\n\treadonly gates: readonly VerificationGateResult[];\n\treadonly traceabilityOk: boolean;\n\treadonly independenceOk: boolean;\n\treadonly errorSummary?: string;\n}\n\n/**\n * Maps a requirement to the gate ids that prove it. `minPassingGates` defaults\n * to 1 when omitted.\n */\nexport interface RequirementLink {\n\treadonly requirementId: string;\n\treadonly gateIds: readonly string[];\n\treadonly minPassingGates?: number;\n}\n\n/** Identity of an executor or reviewer agent for independence checks. */\nexport interface AgentContext {\n\treadonly modelId: string;\n\treadonly contextId: string;\n\t/** Reviewer-only: declares the reviewer ran in a freshly created context. */\n\treadonly freshContext?: boolean;\n}\n\n/** Streams available to matchers. */\nexport interface CommandOutputs {\n\treadonly stdout: string;\n\treadonly stderr: string;\n\treadonly combined?: string;\n}\n\n/** Outcome of {@link evaluateOutputMatchers}. */\nexport interface MatcherEvaluation {\n\treadonly pass: boolean;\n\treadonly failures: readonly string[];\n}\n\n/** Outcome of {@link aggregateGateResults}. */\nexport interface AggregationEvaluation {\n\treadonly pass: boolean;\n\treadonly passedCount: number;\n}\n\n/** Outcome of {@link verifyTraceability}. */\nexport interface TraceabilityEvaluation {\n\treadonly pass: boolean;\n\treadonly failures: readonly string[];\n}\n\nfunction selectStream(outputs: CommandOutputs, source: OutputSource): string {\n\tif (source === \"stdout\") return outputs.stdout;\n\tif (source === \"stderr\") return outputs.stderr;\n\t// `combined` defaults to stdout + stderr so callers can omit it.\n\treturn outputs.combined ?? `${outputs.stdout}${outputs.stderr}`;\n}\n\nfunction describeMatcher(matcher: OutputMatcher): string {\n\treturn `${matcher.source}/${matcher.predicate}=${JSON.stringify(matcher.value)}`;\n}\n\n/**\n * Evaluate a list of {@link OutputMatcher}s against captured command streams.\n * All matchers must pass. Invalid regex is treated as a failure (never thrown).\n */\nexport function evaluateOutputMatchers(outputs: CommandOutputs, matchers: readonly OutputMatcher[]): MatcherEvaluation {\n\tconst failures: string[] = [];\n\tfor (const matcher of matchers) {\n\t\tconst stream = selectStream(outputs, matcher.source);\n\t\tlet ok: boolean;\n\t\tif (matcher.predicate === \"includes\") {\n\t\t\tok = stream.includes(matcher.value);\n\t\t} else if (matcher.predicate === \"not-includes\") {\n\t\t\tok = !stream.includes(matcher.value);\n\t\t} else {\n\t\t\t// regex: a malformed pattern is a failed matcher, not a crash.\n\t\t\ttry {\n\t\t\t\tok = new RegExp(matcher.value).test(stream);\n\t\t\t} catch {\n\t\t\t\tfailures.push(`invalid regex for ${describeMatcher(matcher)}`);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (!ok) {\n\t\t\tfailures.push(`matcher failed: ${describeMatcher(matcher)}`);\n\t\t}\n\t}\n\treturn { pass: failures.length === 0, failures };\n}\n\nfunction evaluateExitCode(expected: ExpectedExitCode | undefined, exitCode: number): boolean {\n\tif (expected === undefined) return true;\n\tif (typeof expected === \"number\") return exitCode === expected;\n\treturn exitCode >= expected.min && exitCode <= expected.max;\n}\n\n/**\n * Evaluate a {@link CommandGate} against an executed-command receipt. The gate\n * passes when the exit code satisfies `expectedExitCode` (if set) AND every\n * matcher passes. No execution happens here.\n */\nexport function evaluateCommandGate(gate: CommandGate, receipt: CommandReceipt): VerificationGateResult {\n\tconst errors: string[] = [];\n\tconst exitOk = evaluateExitCode(gate.expectedExitCode, receipt.exitCode);\n\tif (!exitOk) {\n\t\terrors.push(`exit code ${receipt.exitCode} did not satisfy ${JSON.stringify(gate.expectedExitCode)}`);\n\t}\n\tconst matcherResult = evaluateOutputMatchers(receipt, gate.matchers ?? []);\n\tconst pass = exitOk && matcherResult.pass;\n\treturn {\n\t\tid: gate.id,\n\t\tkind: \"command\",\n\t\tpass,\n\t\texitCode: receipt.exitCode,\n\t\t...(matcherResult.failures.length > 0 ? { matcherFailures: matcherResult.failures } : {}),\n\t\t...(errors.length > 0 ? { errors } : {}),\n\t};\n}\n\n/**\n * Aggregate gate results under an {@link EvidencePolicy}.\n *\n * - `all` : passes only when there is at least one gate and every gate passes.\n * - `quorum` : passes when at least `requiredPasses` gates pass.\n */\nexport function aggregateGateResults(\n\tresults: readonly VerificationGateResult[],\n\tpolicy: EvidencePolicy,\n): AggregationEvaluation {\n\tconst passedCount = results.filter((r) => r.pass).length;\n\tlet pass: boolean;\n\tif (policy.mode === \"all\") {\n\t\tpass = results.length > 0 && passedCount === results.length;\n\t} else {\n\t\tpass = passedCount >= policy.requiredPasses;\n\t}\n\treturn { pass, passedCount };\n}\n\n/**\n * Verify every requirement id is covered by enough passed gates.\n *\n * For each requirement id in `requirements`, its {@link RequirementLink} must\n * exist and at least `minPassingGates` (default 1) of its linked gate ids must\n * appear in `passedGateIds`. A missing link is a traceability gap.\n */\nexport function verifyTraceability(\n\trequirements: readonly string[],\n\tlinks: readonly RequirementLink[],\n\tpassedGateIds: readonly string[],\n): TraceabilityEvaluation {\n\tconst failures: string[] = [];\n\tconst passed = new Set(passedGateIds);\n\tconst byId = new Map<string, RequirementLink>();\n\tfor (const link of links) byId.set(link.requirementId, link);\n\tfor (const requirementId of requirements) {\n\t\tconst link = byId.get(requirementId);\n\t\tif (!link) {\n\t\t\tfailures.push(`requirement ${requirementId} has no gate link (traceability gap)`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst minPassing = link.minPassingGates ?? 1;\n\t\tconst passing = link.gateIds.filter((id) => passed.has(id)).length;\n\t\tif (passing < minPassing) {\n\t\t\tfailures.push(`requirement ${requirementId} covered by ${passing}/${minPassing} passed gates`);\n\t\t}\n\t}\n\treturn { pass: failures.length === 0, failures };\n}\n\n/**\n * Check reviewer/executor independence.\n *\n * Passes only when:\n * - the reviewer's model differs from the executor's model, OR\n * - the reviewer's context differs AND the reviewer declared `freshContext`.\n *\n * This is the fail-closed gate that prevents a node's executor from also being\n * its verifier.\n */\nexport function checkReviewerExecutorIndependence(executor: AgentContext, reviewer: AgentContext): boolean {\n\tconst differentModel = reviewer.modelId !== executor.modelId;\n\tconst freshDifferentContext = reviewer.contextId !== executor.contextId && reviewer.freshContext === true;\n\treturn differentModel || freshDifferentContext;\n}\n"]}
@@ -1,68 +0,0 @@
1
- import type { ProcurementReview } from "./package-procurement.ts";
2
- import type { PackageSource } from "./settings-manager.ts";
3
- export type CompositionSurface = "theme" | "footer" | "header" | "editor" | "tool-row" | "assistant-markdown" | "status" | "permission" | "structured-input" | "report-preview" | "loadout";
4
- export type OmkOwnedDomain = "ontology" | "search" | "memory" | "cache" | "compaction" | "multi-agent" | "session" | "scheduler";
5
- export type CompositionVerdict = "admit" | "reject" | "defer" | "canary";
6
- export interface CompositionResourceFilter {
7
- extensions: boolean;
8
- skills: boolean;
9
- prompts: boolean;
10
- themes: boolean;
11
- }
12
- export interface SurfaceOwnerRule {
13
- surface: CompositionSurface;
14
- ownerPackageIdentity: string;
15
- }
16
- export interface PackageCompositionPolicy {
17
- readonly omkOwnedDomains: readonly OmkOwnedDomain[];
18
- readonly surfaceOwnership: readonly SurfaceOwnerRule[];
19
- readonly allowedResources: Readonly<Record<string, Partial<CompositionResourceFilter>>>;
20
- readonly capabilityToSurfaces: Readonly<Record<string, readonly CompositionSurface[]>>;
21
- readonly capabilityToOmkDomains: Readonly<Record<string, readonly OmkOwnedDomain[]>>;
22
- }
23
- export interface CompositionInput {
24
- identity: string;
25
- review: ProcurementReview;
26
- requestedSurfaces?: readonly CompositionSurface[];
27
- }
28
- export interface CompositionConflict {
29
- kind: "duplicate-surface-owner" | "omk-domain-mutation" | "unapproved-surface" | "capability-surface-mismatch" | "resource-filter-blocked";
30
- surface?: CompositionSurface;
31
- domain?: OmkOwnedDomain;
32
- owner?: string;
33
- capability?: string;
34
- reason: string;
35
- }
36
- export interface CompositionReview {
37
- identity: string;
38
- verdict: CompositionVerdict;
39
- allowedResources: CompositionResourceFilter;
40
- admittedSurfaces: CompositionSurface[];
41
- conflicts: CompositionConflict[];
42
- deferredReason?: string;
43
- rejectedReasons: string[];
44
- }
45
- export interface CompositionPromotionRecord {
46
- schemaVersion: "omk.package-composition.promotion.v1";
47
- identity: string;
48
- source: string;
49
- scope: "project";
50
- allowedResources: CompositionResourceFilter;
51
- admittedSurfaces: CompositionSurface[];
52
- reviewedAt: string;
53
- reviewedBy: "manual" | "root-orchestrator";
54
- }
55
- export declare function createDefaultCompositionPolicy(): PackageCompositionPolicy;
56
- export declare function checkSingleSurfaceOwner(identity: string, requestedSurfaces: readonly CompositionSurface[], existingOwners: readonly SurfaceOwnerRule[]): CompositionConflict[];
57
- export declare function checkOmkDomainMutation(identity: string, capabilities: readonly string[], policy: PackageCompositionPolicy): CompositionConflict[];
58
- export declare function checkCapabilitySurfaceMatch(identity: string, requestedSurfaces: readonly CompositionSurface[], capabilities: readonly string[], policy: PackageCompositionPolicy): CompositionConflict[];
59
- export declare function resolveResourceFilter(identity: string, policy: PackageCompositionPolicy): CompositionResourceFilter;
60
- export declare function inferRequestedSurfaces(review: ProcurementReview, policy: PackageCompositionPolicy): CompositionSurface[];
61
- export declare function composePackage(input: CompositionInput, policy: PackageCompositionPolicy): CompositionReview;
62
- export declare function composeCandidateBatch(inputs: readonly CompositionInput[], basePolicy: PackageCompositionPolicy): CompositionReview[];
63
- export declare function toPackageSource(review: CompositionReview): PackageSource;
64
- export declare function createPromotionRecord(review: CompositionReview, source: string, options?: {
65
- reviewedBy?: "manual" | "root-orchestrator";
66
- now?: Date;
67
- }): CompositionPromotionRecord;
68
- //# sourceMappingURL=package-composition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-composition.d.ts","sourceRoot":"","sources":["../../src/core/package-composition.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ProcurementReview } from \"./package-procurement.ts\";\nimport type { PackageSource } from \"./settings-manager.ts\";\n\nexport type CompositionSurface =\n\t| \"theme\"\n\t| \"footer\"\n\t| \"header\"\n\t| \"editor\"\n\t| \"tool-row\"\n\t| \"assistant-markdown\"\n\t| \"status\"\n\t| \"permission\"\n\t| \"structured-input\"\n\t| \"report-preview\"\n\t| \"loadout\";\n\nexport type OmkOwnedDomain =\n\t| \"ontology\"\n\t| \"search\"\n\t| \"memory\"\n\t| \"cache\"\n\t| \"compaction\"\n\t| \"multi-agent\"\n\t| \"session\"\n\t| \"scheduler\";\n\nexport type CompositionVerdict = \"admit\" | \"reject\" | \"defer\" | \"canary\";\n\nexport interface CompositionResourceFilter {\n\textensions: boolean;\n\tskills: boolean;\n\tprompts: boolean;\n\tthemes: boolean;\n}\n\nexport interface SurfaceOwnerRule {\n\tsurface: CompositionSurface;\n\townerPackageIdentity: string;\n}\n\nexport interface PackageCompositionPolicy {\n\treadonly omkOwnedDomains: readonly OmkOwnedDomain[];\n\treadonly surfaceOwnership: readonly SurfaceOwnerRule[];\n\treadonly allowedResources: Readonly<Record<string, Partial<CompositionResourceFilter>>>;\n\treadonly capabilityToSurfaces: Readonly<Record<string, readonly CompositionSurface[]>>;\n\treadonly capabilityToOmkDomains: Readonly<Record<string, readonly OmkOwnedDomain[]>>;\n}\n\nexport interface CompositionInput {\n\tidentity: string;\n\treview: ProcurementReview;\n\trequestedSurfaces?: readonly CompositionSurface[];\n}\n\nexport interface CompositionConflict {\n\tkind:\n\t\t| \"duplicate-surface-owner\"\n\t\t| \"omk-domain-mutation\"\n\t\t| \"unapproved-surface\"\n\t\t| \"capability-surface-mismatch\"\n\t\t| \"resource-filter-blocked\";\n\tsurface?: CompositionSurface;\n\tdomain?: OmkOwnedDomain;\n\towner?: string;\n\tcapability?: string;\n\treason: string;\n}\n\nexport interface CompositionReview {\n\tidentity: string;\n\tverdict: CompositionVerdict;\n\tallowedResources: CompositionResourceFilter;\n\tadmittedSurfaces: CompositionSurface[];\n\tconflicts: CompositionConflict[];\n\tdeferredReason?: string;\n\trejectedReasons: string[];\n}\n\nexport interface CompositionPromotionRecord {\n\tschemaVersion: \"omk.package-composition.promotion.v1\";\n\tidentity: string;\n\tsource: string;\n\tscope: \"project\";\n\tallowedResources: CompositionResourceFilter;\n\tadmittedSurfaces: CompositionSurface[];\n\treviewedAt: string;\n\treviewedBy: \"manual\" | \"root-orchestrator\";\n}\n\nconst ALL_RESOURCES: CompositionResourceFilter = {\n\textensions: true,\n\tskills: true,\n\tprompts: true,\n\tthemes: true,\n};\n\nconst SIDE_EFFECT_CAPABILITIES = new Set([\n\t\"child-process\",\n\t\"network\",\n\t\"filesystem-write\",\n\t\"browser-control\",\n\t\"telemetry\",\n]);\n\nconst RESOURCE_PATTERNS: Record<keyof CompositionResourceFilter, string[]> = {\n\textensions: [\"**/*\"],\n\tskills: [\"**/*\"],\n\tprompts: [\"**/*\"],\n\tthemes: [\"**/*\"],\n};\n\nexport function createDefaultCompositionPolicy(): PackageCompositionPolicy {\n\treturn {\n\t\tomkOwnedDomains: [\"ontology\", \"search\", \"memory\", \"cache\", \"compaction\", \"multi-agent\", \"session\", \"scheduler\"],\n\t\tsurfaceOwnership: [\n\t\t\t{ surface: \"theme\", ownerPackageIdentity: \"npm:pi-tokyo-night\" },\n\t\t\t{ surface: \"footer\", ownerPackageIdentity: \"npm:pi-zentui\" },\n\t\t\t{ surface: \"editor\", ownerPackageIdentity: \"npm:pi-zentui\" },\n\t\t\t{ surface: \"header\", ownerPackageIdentity: \"omk:core\" },\n\t\t\t{ surface: \"tool-row\", ownerPackageIdentity: \"npm:pi-claude-style-tools\" },\n\t\t\t{ surface: \"loadout\", ownerPackageIdentity: \"npm:pi-loadout\" },\n\t\t\t{ surface: \"permission\", ownerPackageIdentity: \"npm:@gotgenes/pi-permission-system\" },\n\t\t\t{ surface: \"structured-input\", ownerPackageIdentity: \"npm:@juicesharp/rpiv-ask-user-question\" },\n\t\t\t{ surface: \"report-preview\", ownerPackageIdentity: \"npm:pi-markdown-preview\" },\n\t\t],\n\t\tallowedResources: {\n\t\t\t\"npm:pi-tokyo-night\": { extensions: false, skills: false, prompts: false, themes: true },\n\t\t\t\"npm:pi-zentui\": { extensions: true, skills: false, prompts: false, themes: false },\n\t\t\t\"npm:pi-claude-style-tools\": { extensions: true, skills: false, prompts: false, themes: false },\n\t\t\t\"npm:pi-loadout\": { extensions: true, skills: false, prompts: false, themes: false },\n\t\t\t\"npm:pi-lens\": { extensions: true, skills: false, prompts: false, themes: false },\n\t\t\t\"npm:@gotgenes/pi-permission-system\": { extensions: true, skills: false, prompts: false, themes: false },\n\t\t\t\"npm:@juicesharp/rpiv-ask-user-question\": { extensions: true, skills: false, prompts: false, themes: false },\n\t\t\t\"npm:pi-markdown-preview\": { extensions: true, skills: false, prompts: false, themes: false },\n\t\t\t\"npm:pi-langfuse\": { extensions: true, skills: false, prompts: false, themes: false },\n\t\t\t\"npm:pi-cache-optimizer\": { extensions: true, skills: false, prompts: false, themes: false },\n\t\t\t\"npm:pi-sandbox\": { extensions: true, skills: false, prompts: false, themes: false },\n\t\t},\n\t\tcapabilityToSurfaces: {\n\t\t\tsetFooter: [\"footer\"],\n\t\t\tsetEditorComponent: [\"editor\"],\n\t\t\tsetHeader: [\"header\"],\n\t\t\tsetStatus: [\"status\"],\n\t\t\trenderCall: [\"tool-row\"],\n\t\t\trenderResult: [\"tool-row\"],\n\t\t\tregisterMessageRenderer: [\"assistant-markdown\"],\n\t\t\tsetActiveTools: [\"loadout\"],\n\t\t\tpermission: [\"permission\"],\n\t\t\taskUserQuestion: [\"structured-input\"],\n\t\t\tmarkdownPreview: [\"report-preview\"],\n\t\t},\n\t\tcapabilityToOmkDomains: {\n\t\t\tcontext: [\"session\"],\n\t\t\tbefore_provider_request: [\"cache\", \"session\"],\n\t\t\tsession_before_compact: [\"compaction\"],\n\t\t\tsetModel: [\"session\"],\n\t\t\tsetThinkingLevel: [\"session\"],\n\t\t\tmemory: [\"memory\"],\n\t\t\tcache: [\"cache\"],\n\t\t\tontology: [\"ontology\"],\n\t\t\tmultiAgent: [\"multi-agent\"],\n\t\t\tscheduler: [\"scheduler\"],\n\t\t},\n\t};\n}\n\nexport function checkSingleSurfaceOwner(\n\tidentity: string,\n\trequestedSurfaces: readonly CompositionSurface[],\n\texistingOwners: readonly SurfaceOwnerRule[],\n): CompositionConflict[] {\n\tconst key = packageIdentityKey(identity);\n\tconst conflicts: CompositionConflict[] = [];\n\tfor (const surface of uniqueSorted(requestedSurfaces)) {\n\t\tconst owner = existingOwners.find((rule) => rule.surface === surface);\n\t\tif (!owner) continue;\n\t\tif (owner.ownerPackageIdentity === key || owner.ownerPackageIdentity === identity) continue;\n\t\tconflicts.push({\n\t\t\tkind: \"duplicate-surface-owner\",\n\t\t\tsurface,\n\t\t\towner: owner.ownerPackageIdentity,\n\t\t\treason: `${identity} cannot claim ${surface}; ${owner.ownerPackageIdentity} already owns it`,\n\t\t});\n\t}\n\treturn conflicts;\n}\n\nexport function checkOmkDomainMutation(\n\tidentity: string,\n\tcapabilities: readonly string[],\n\tpolicy: PackageCompositionPolicy,\n): CompositionConflict[] {\n\tconst conflicts: CompositionConflict[] = [];\n\tfor (const capability of capabilities) {\n\t\tconst domains = policy.capabilityToOmkDomains[capability] ?? [];\n\t\tfor (const domain of domains) {\n\t\t\tconflicts.push({\n\t\t\t\tkind: \"omk-domain-mutation\",\n\t\t\t\tdomain,\n\t\t\t\tcapability,\n\t\t\t\treason: `${identity} requested ${capability}, which mutates OMK-owned ${domain}`,\n\t\t\t});\n\t\t}\n\t}\n\treturn conflicts;\n}\n\nexport function checkCapabilitySurfaceMatch(\n\tidentity: string,\n\trequestedSurfaces: readonly CompositionSurface[],\n\tcapabilities: readonly string[],\n\tpolicy: PackageCompositionPolicy,\n): CompositionConflict[] {\n\tif (capabilities.length === 0) return [];\n\tconst supported = new Set<CompositionSurface>();\n\tfor (const capability of capabilities) {\n\t\tfor (const surface of policy.capabilityToSurfaces[capability] ?? []) {\n\t\t\tsupported.add(surface);\n\t\t}\n\t}\n\n\treturn uniqueSorted(requestedSurfaces)\n\t\t.filter((surface) => !supported.has(surface))\n\t\t.map((surface) => ({\n\t\t\tkind: \"capability-surface-mismatch\" as const,\n\t\t\tsurface,\n\t\t\treason: `${identity} requested ${surface}, but no detected capability supports that surface`,\n\t\t}));\n}\n\nexport function resolveResourceFilter(identity: string, policy: PackageCompositionPolicy): CompositionResourceFilter {\n\tconst override = policy.allowedResources[identity] ?? policy.allowedResources[packageIdentityKey(identity)] ?? {};\n\treturn { ...ALL_RESOURCES, ...override };\n}\n\nexport function inferRequestedSurfaces(\n\treview: ProcurementReview,\n\tpolicy: PackageCompositionPolicy,\n): CompositionSurface[] {\n\tconst surfaces = new Set<CompositionSurface>();\n\tfor (const resource of review.candidate.expectedResources) {\n\t\tif (resource === \"theme\") surfaces.add(\"theme\");\n\t}\n\tfor (const capability of review.capabilities) {\n\t\tfor (const surface of policy.capabilityToSurfaces[capability] ?? []) {\n\t\t\tsurfaces.add(surface);\n\t\t}\n\t}\n\treturn uniqueSorted([...surfaces]);\n}\n\nexport function composePackage(input: CompositionInput, policy: PackageCompositionPolicy): CompositionReview {\n\tconst requestedSurfaces = uniqueSorted(input.requestedSurfaces ?? inferRequestedSurfaces(input.review, policy));\n\tconst allowedResources = resolveResourceFilter(input.identity, policy);\n\tconst conflicts = [\n\t\t...checkSingleSurfaceOwner(input.identity, requestedSurfaces, policy.surfaceOwnership),\n\t\t...checkOmkDomainMutation(input.identity, input.review.capabilities, policy),\n\t\t...checkCapabilitySurfaceMatch(input.identity, requestedSurfaces, input.review.capabilities, policy),\n\t\t...checkResourceFilter(input.identity, requestedSurfaces, allowedResources),\n\t];\n\n\tconst rejectedReasons = [...input.review.rejectedReasons, ...conflicts.map((conflict) => conflict.reason)];\n\tconst blockingConflict = conflicts.find((conflict) =>\n\t\t[\n\t\t\t\"duplicate-surface-owner\",\n\t\t\t\"omk-domain-mutation\",\n\t\t\t\"unapproved-surface\",\n\t\t\t\"capability-surface-mismatch\",\n\t\t\t\"resource-filter-blocked\",\n\t\t].includes(conflict.kind),\n\t);\n\n\tif (!input.review.pinned) {\n\t\treturn compositionReview(input.identity, \"reject\", allowedResources, requestedSurfaces, conflicts, undefined, [\n\t\t\t...rejectedReasons,\n\t\t\t\"missing-exact-pin\",\n\t\t]);\n\t}\n\tif (input.review.licenseVerdict === \"reject\" || input.review.lifecycleVerdict === \"reject\") {\n\t\treturn compositionReview(\n\t\t\tinput.identity,\n\t\t\t\"reject\",\n\t\t\tallowedResources,\n\t\t\trequestedSurfaces,\n\t\t\tconflicts,\n\t\t\tundefined,\n\t\t\trejectedReasons,\n\t\t);\n\t}\n\tif (input.review.pathCompatibility === \"pi-hardcoded\") {\n\t\treturn compositionReview(input.identity, \"reject\", allowedResources, requestedSurfaces, conflicts, undefined, [\n\t\t\t...rejectedReasons,\n\t\t\t\"pi-hardcoded-paths\",\n\t\t]);\n\t}\n\tif (blockingConflict) {\n\t\treturn compositionReview(\n\t\t\tinput.identity,\n\t\t\t\"reject\",\n\t\t\tallowedResources,\n\t\t\trequestedSurfaces,\n\t\t\tconflicts,\n\t\t\tundefined,\n\t\t\trejectedReasons,\n\t\t);\n\t}\n\tif (input.review.adoption === \"deferred\") {\n\t\treturn compositionReview(\n\t\t\tinput.identity,\n\t\t\t\"defer\",\n\t\t\tallowedResources,\n\t\t\trequestedSurfaces,\n\t\t\tconflicts,\n\t\t\tinput.review.deferredReason,\n\t\t\trejectedReasons,\n\t\t);\n\t}\n\tif (input.review.adoption === \"reject\") {\n\t\treturn compositionReview(\n\t\t\tinput.identity,\n\t\t\t\"reject\",\n\t\t\tallowedResources,\n\t\t\trequestedSurfaces,\n\t\t\tconflicts,\n\t\t\tundefined,\n\t\t\trejectedReasons,\n\t\t);\n\t}\n\n\tconst canaryReasons = canaryRequiredReasons(input.review.capabilities);\n\tif (input.review.risk === \"high\" && canaryReasons.length === 0) {\n\t\tcanaryReasons.push(\"canary-required: high-risk\");\n\t}\n\tif (canaryReasons.length > 0) {\n\t\treturn compositionReview(input.identity, \"canary\", allowedResources, requestedSurfaces, conflicts, undefined, [\n\t\t\t...rejectedReasons,\n\t\t\t...canaryReasons,\n\t\t]);\n\t}\n\n\treturn compositionReview(\n\t\tinput.identity,\n\t\t\"admit\",\n\t\tallowedResources,\n\t\trequestedSurfaces,\n\t\tconflicts,\n\t\tundefined,\n\t\trejectedReasons,\n\t);\n}\n\nexport function composeCandidateBatch(\n\tinputs: readonly CompositionInput[],\n\tbasePolicy: PackageCompositionPolicy,\n): CompositionReview[] {\n\tconst owners = [...basePolicy.surfaceOwnership];\n\tconst results: CompositionReview[] = [];\n\tfor (const input of inputs) {\n\t\tconst policy = { ...basePolicy, surfaceOwnership: owners };\n\t\tconst result = composePackage(input, policy);\n\t\tresults.push(result);\n\t\tif (result.verdict === \"admit\" || result.verdict === \"canary\") {\n\t\t\tconst ownerKey = packageIdentityKey(result.identity);\n\t\t\tfor (const surface of result.admittedSurfaces) {\n\t\t\t\tif (!owners.some((owner) => owner.surface === surface)) {\n\t\t\t\t\towners.push({ surface, ownerPackageIdentity: ownerKey });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n}\n\nexport function toPackageSource(review: CompositionReview): PackageSource {\n\tassertPromotable(review);\n\tif (isAllResourcesEnabled(review.allowedResources)) {\n\t\treturn review.identity;\n\t}\n\treturn {\n\t\tsource: review.identity,\n\t\textensions: review.allowedResources.extensions ? RESOURCE_PATTERNS.extensions : [],\n\t\tskills: review.allowedResources.skills ? RESOURCE_PATTERNS.skills : [],\n\t\tprompts: review.allowedResources.prompts ? RESOURCE_PATTERNS.prompts : [],\n\t\tthemes: review.allowedResources.themes ? RESOURCE_PATTERNS.themes : [],\n\t};\n}\n\nexport function createPromotionRecord(\n\treview: CompositionReview,\n\tsource: string,\n\toptions: { reviewedBy?: \"manual\" | \"root-orchestrator\"; now?: Date } = {},\n): CompositionPromotionRecord {\n\tassertPromotable(review);\n\treturn {\n\t\tschemaVersion: \"omk.package-composition.promotion.v1\",\n\t\tidentity: review.identity,\n\t\tsource: redactSource(source),\n\t\tscope: \"project\",\n\t\tallowedResources: review.allowedResources,\n\t\tadmittedSurfaces: review.admittedSurfaces,\n\t\treviewedAt: (options.now ?? new Date()).toISOString(),\n\t\treviewedBy: options.reviewedBy ?? \"root-orchestrator\",\n\t};\n}\n\nfunction checkResourceFilter(\n\tidentity: string,\n\trequestedSurfaces: readonly CompositionSurface[],\n\tfilter: CompositionResourceFilter,\n): CompositionConflict[] {\n\tconst conflicts: CompositionConflict[] = [];\n\tfor (const surface of requestedSurfaces) {\n\t\tconst resource = resourceForSurface(surface);\n\t\tif (filter[resource]) continue;\n\t\tconflicts.push({\n\t\t\tkind: \"resource-filter-blocked\",\n\t\t\tsurface,\n\t\t\treason: `${identity} requested ${surface}, but ${resource} resources are disabled`,\n\t\t});\n\t}\n\treturn conflicts;\n}\n\nfunction resourceForSurface(surface: CompositionSurface): keyof CompositionResourceFilter {\n\treturn surface === \"theme\" ? \"themes\" : \"extensions\";\n}\n\nfunction canaryRequiredReasons(capabilities: readonly string[]): string[] {\n\tconst reasons: string[] = [];\n\tfor (const capability of capabilities) {\n\t\tif (SIDE_EFFECT_CAPABILITIES.has(capability)) {\n\t\t\treasons.push(`canary-required: ${capability}`);\n\t\t}\n\t}\n\treturn uniqueSorted(reasons);\n}\n\nfunction compositionReview(\n\tidentity: string,\n\tverdict: CompositionVerdict,\n\tallowedResources: CompositionResourceFilter,\n\tadmittedSurfaces: readonly CompositionSurface[],\n\tconflicts: readonly CompositionConflict[],\n\tdeferredReason: string | undefined,\n\trejectedReasons: readonly string[],\n): CompositionReview {\n\treturn {\n\t\tidentity,\n\t\tverdict,\n\t\tallowedResources,\n\t\tadmittedSurfaces: uniqueSorted(admittedSurfaces),\n\t\tconflicts: [...conflicts],\n\t\t...(deferredReason === undefined ? {} : { deferredReason }),\n\t\trejectedReasons: uniqueSorted(rejectedReasons),\n\t};\n}\n\nfunction assertPromotable(review: CompositionReview): void {\n\tif (review.verdict !== \"admit\") {\n\t\tthrow new Error(`Package composition verdict ${review.verdict} cannot be promoted`);\n\t}\n}\n\nfunction isAllResourcesEnabled(filter: CompositionResourceFilter): boolean {\n\treturn filter.extensions && filter.skills && filter.prompts && filter.themes;\n}\n\nfunction packageIdentityKey(identity: string): string {\n\tif (!identity.startsWith(\"npm:\")) return identity;\n\tconst spec = identity.slice(\"npm:\".length);\n\tconst at = spec.lastIndexOf(\"@\");\n\tif (at <= 0) return identity;\n\tif (spec.startsWith(\"@\")) {\n\t\tconst scopedVersionAt = spec.indexOf(\"@\", spec.indexOf(\"/\") + 1);\n\t\treturn scopedVersionAt > 0 ? `npm:${spec.slice(0, scopedVersionAt)}` : identity;\n\t}\n\treturn `npm:${spec.slice(0, at)}`;\n}\n\nfunction uniqueSorted<T extends string>(values: readonly T[]): T[] {\n\treturn [...new Set(values)].sort();\n}\n\nfunction redactSource(source: string): string {\n\treturn source\n\t\t.replace(/(https?:\\/\\/)([^\\s/@]+@)/gi, \"$1<redacted>@\")\n\t\t.replace(/([?&](?:access_token|auth|key|password|token)=)[^&#]+/gi, \"$1<redacted>\");\n}\n"]}