open-multi-agent-kit 0.80.7 → 0.80.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1470) hide show
  1. package/CHANGELOG.md +4 -30
  2. package/README.md +80 -38
  3. package/dist/agents/jailbreak/index.d.ts +7 -0
  4. package/dist/agents/jailbreak/index.d.ts.map +1 -0
  5. package/dist/agents/jailbreak/index.js +7 -0
  6. package/dist/agents/jailbreak/index.js.map +1 -0
  7. package/dist/agents/jailbreak/subagent-f.d.ts +44 -0
  8. package/dist/agents/jailbreak/subagent-f.d.ts.map +1 -0
  9. package/dist/agents/jailbreak/subagent-f.js +60 -0
  10. package/dist/agents/jailbreak/subagent-f.js.map +1 -0
  11. package/dist/bun/register-bedrock.d.ts.map +1 -1
  12. package/dist/bun/register-bedrock.js +2 -2
  13. package/dist/bun/register-bedrock.js.map +1 -1
  14. package/dist/ci/verify-reporter.d.ts +22 -0
  15. package/dist/ci/verify-reporter.d.ts.map +1 -0
  16. package/dist/ci/verify-reporter.js +50 -0
  17. package/dist/ci/verify-reporter.js.map +1 -0
  18. package/dist/cli/args.d.ts +4 -1
  19. package/dist/cli/args.d.ts.map +1 -1
  20. package/dist/cli/args.js +7 -0
  21. package/dist/cli/args.js.map +1 -1
  22. package/dist/cli/config-selector.d.ts.map +1 -1
  23. package/dist/cli/config-selector.js +1 -1
  24. package/dist/cli/config-selector.js.map +1 -1
  25. package/dist/cli/file-processor.d.ts +1 -1
  26. package/dist/cli/file-processor.d.ts.map +1 -1
  27. package/dist/cli/file-processor.js.map +1 -1
  28. package/dist/cli/initial-message.d.ts +1 -1
  29. package/dist/cli/initial-message.d.ts.map +1 -1
  30. package/dist/cli/initial-message.js.map +1 -1
  31. package/dist/cli/jailbreak-args.d.ts +26 -0
  32. package/dist/cli/jailbreak-args.d.ts.map +1 -0
  33. package/dist/cli/jailbreak-args.js +86 -0
  34. package/dist/cli/jailbreak-args.js.map +1 -0
  35. package/dist/cli/list-models.d.ts.map +1 -1
  36. package/dist/cli/list-models.js +1 -1
  37. package/dist/cli/list-models.js.map +1 -1
  38. package/dist/cli/session-picker.d.ts.map +1 -1
  39. package/dist/cli/session-picker.js +1 -1
  40. package/dist/cli/session-picker.js.map +1 -1
  41. package/dist/commands/doctor-provider.d.ts +19 -0
  42. package/dist/commands/doctor-provider.d.ts.map +1 -0
  43. package/dist/commands/doctor-provider.js +123 -0
  44. package/dist/commands/doctor-provider.js.map +1 -0
  45. package/dist/commands/jailbreak.d.ts +49 -0
  46. package/dist/commands/jailbreak.d.ts.map +1 -0
  47. package/dist/commands/jailbreak.js +201 -0
  48. package/dist/commands/jailbreak.js.map +1 -0
  49. package/dist/config.d.ts +9 -5
  50. package/dist/config.d.ts.map +1 -1
  51. package/dist/config.js +33 -52
  52. package/dist/config.js.map +1 -1
  53. package/dist/core/agent-session-services.d.ts +2 -2
  54. package/dist/core/agent-session-services.d.ts.map +1 -1
  55. package/dist/core/agent-session-services.js.map +1 -1
  56. package/dist/core/agent-session.d.ts +16 -27
  57. package/dist/core/agent-session.d.ts.map +1 -1
  58. package/dist/core/agent-session.js +185 -89
  59. package/dist/core/agent-session.js.map +1 -1
  60. package/dist/core/auth-storage.d.ts +3 -6
  61. package/dist/core/auth-storage.d.ts.map +1 -1
  62. package/dist/core/auth-storage.js +7 -7
  63. package/dist/core/auth-storage.js.map +1 -1
  64. package/dist/core/bash-executor.d.ts +1 -0
  65. package/dist/core/bash-executor.d.ts.map +1 -1
  66. package/dist/core/bash-executor.js +1 -0
  67. package/dist/core/bash-executor.js.map +1 -1
  68. package/dist/core/browser-use.d.ts +45 -0
  69. package/dist/core/browser-use.d.ts.map +1 -0
  70. package/dist/core/browser-use.js +70 -0
  71. package/dist/core/browser-use.js.map +1 -0
  72. package/dist/core/command-safety-parser.d.ts +77 -0
  73. package/dist/core/command-safety-parser.d.ts.map +1 -0
  74. package/dist/core/command-safety-parser.js +763 -0
  75. package/dist/core/command-safety-parser.js.map +1 -0
  76. package/dist/core/command-safety.d.ts.map +1 -1
  77. package/dist/core/command-safety.js +106 -3
  78. package/dist/core/command-safety.js.map +1 -1
  79. package/dist/core/compaction/branch-summarization.d.ts +2 -2
  80. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  81. package/dist/core/compaction/branch-summarization.js +5 -21
  82. package/dist/core/compaction/branch-summarization.js.map +1 -1
  83. package/dist/core/compaction/compaction.d.ts +3 -101
  84. package/dist/core/compaction/compaction.d.ts.map +1 -1
  85. package/dist/core/compaction/compaction.js +21 -656
  86. package/dist/core/compaction/compaction.js.map +1 -1
  87. package/dist/core/compaction/utils.d.ts +2 -2
  88. package/dist/core/compaction/utils.d.ts.map +1 -1
  89. package/dist/core/compaction/utils.js.map +1 -1
  90. package/dist/core/compactor.d.ts +42 -0
  91. package/dist/core/compactor.d.ts.map +1 -0
  92. package/dist/core/compactor.js +131 -0
  93. package/dist/core/compactor.js.map +1 -0
  94. package/dist/core/context-budget-compressors.d.ts +50 -0
  95. package/dist/core/context-budget-compressors.d.ts.map +1 -0
  96. package/dist/core/context-budget-compressors.js +166 -0
  97. package/dist/core/context-budget-compressors.js.map +1 -0
  98. package/dist/core/context-budget-governor-v2.d.ts +7 -0
  99. package/dist/core/context-budget-governor-v2.d.ts.map +1 -0
  100. package/dist/core/context-budget-governor-v2.js +7 -0
  101. package/dist/core/context-budget-governor-v2.js.map +1 -0
  102. package/dist/core/context-budget-governor.d.ts +67 -0
  103. package/dist/core/context-budget-governor.d.ts.map +1 -0
  104. package/dist/core/context-budget-governor.js +224 -0
  105. package/dist/core/context-budget-governor.js.map +1 -0
  106. package/dist/core/context-budget-headroom-candidates.d.ts +3 -0
  107. package/dist/core/context-budget-headroom-candidates.d.ts.map +1 -0
  108. package/dist/core/context-budget-headroom-candidates.js +85 -0
  109. package/dist/core/context-budget-headroom-candidates.js.map +1 -0
  110. package/dist/core/context-budget-headroom-types.d.ts +67 -0
  111. package/dist/core/context-budget-headroom-types.d.ts.map +1 -0
  112. package/dist/core/context-budget-headroom-types.js +46 -0
  113. package/dist/core/context-budget-headroom-types.js.map +1 -0
  114. package/dist/core/context-budget-headroom.d.ts +5 -0
  115. package/dist/core/context-budget-headroom.d.ts.map +1 -0
  116. package/dist/core/context-budget-headroom.js +123 -0
  117. package/dist/core/context-budget-headroom.js.map +1 -0
  118. package/dist/core/context-budget-relevance.d.ts +46 -0
  119. package/dist/core/context-budget-relevance.d.ts.map +1 -0
  120. package/dist/core/context-budget-relevance.js +329 -0
  121. package/dist/core/context-budget-relevance.js.map +1 -0
  122. package/dist/core/context-budget-system-prompt-items.d.ts +19 -0
  123. package/dist/core/context-budget-system-prompt-items.d.ts.map +1 -0
  124. package/dist/core/context-budget-system-prompt-items.js +143 -0
  125. package/dist/core/context-budget-system-prompt-items.js.map +1 -0
  126. package/dist/core/context-budget-system-prompt.d.ts +31 -0
  127. package/dist/core/context-budget-system-prompt.d.ts.map +1 -0
  128. package/dist/core/context-budget-system-prompt.js +87 -0
  129. package/dist/core/context-budget-system-prompt.js.map +1 -0
  130. package/dist/core/context-budget-token-counter.d.ts +34 -0
  131. package/dist/core/context-budget-token-counter.d.ts.map +1 -0
  132. package/dist/core/context-budget-token-counter.js +315 -0
  133. package/dist/core/context-budget-token-counter.js.map +1 -0
  134. package/dist/core/context-budget-v2-coverage.d.ts +5 -0
  135. package/dist/core/context-budget-v2-coverage.d.ts.map +1 -0
  136. package/dist/core/context-budget-v2-coverage.js +58 -0
  137. package/dist/core/context-budget-v2-coverage.js.map +1 -0
  138. package/dist/core/context-budget-v2-plan-hash.d.ts +12 -0
  139. package/dist/core/context-budget-v2-plan-hash.d.ts.map +1 -0
  140. package/dist/core/context-budget-v2-plan-hash.js +38 -0
  141. package/dist/core/context-budget-v2-plan-hash.js.map +1 -0
  142. package/dist/core/context-budget-v2-planner.d.ts +3 -0
  143. package/dist/core/context-budget-v2-planner.d.ts.map +1 -0
  144. package/dist/core/context-budget-v2-planner.js +143 -0
  145. package/dist/core/context-budget-v2-planner.js.map +1 -0
  146. package/dist/core/context-budget-v2-scoring.d.ts +14 -0
  147. package/dist/core/context-budget-v2-scoring.d.ts.map +1 -0
  148. package/dist/core/context-budget-v2-scoring.js +114 -0
  149. package/dist/core/context-budget-v2-scoring.js.map +1 -0
  150. package/dist/core/context-budget-v2-selection.d.ts +32 -0
  151. package/dist/core/context-budget-v2-selection.d.ts.map +1 -0
  152. package/dist/core/context-budget-v2-selection.js +158 -0
  153. package/dist/core/context-budget-v2-selection.js.map +1 -0
  154. package/dist/core/context-budget-v2-tiers.d.ts +15 -0
  155. package/dist/core/context-budget-v2-tiers.d.ts.map +1 -0
  156. package/dist/core/context-budget-v2-tiers.js +68 -0
  157. package/dist/core/context-budget-v2-tiers.js.map +1 -0
  158. package/dist/core/context-budget-v2-types.d.ts +92 -0
  159. package/dist/core/context-budget-v2-types.d.ts.map +1 -0
  160. package/dist/core/context-budget-v2-types.js +24 -0
  161. package/dist/core/context-budget-v2-types.js.map +1 -0
  162. package/dist/core/defaults.d.ts +1 -1
  163. package/dist/core/defaults.d.ts.map +1 -1
  164. package/dist/core/defaults.js.map +1 -1
  165. package/dist/core/diagnostics.d.ts +4 -0
  166. package/dist/core/diagnostics.d.ts.map +1 -1
  167. package/dist/core/diagnostics.js.map +1 -1
  168. package/dist/core/domain-confidence.d.ts +9 -0
  169. package/dist/core/domain-confidence.d.ts.map +1 -0
  170. package/dist/core/domain-confidence.js +39 -0
  171. package/dist/core/domain-confidence.js.map +1 -0
  172. package/dist/core/domain-dispatch.d.ts +44 -0
  173. package/dist/core/domain-dispatch.d.ts.map +1 -0
  174. package/dist/core/domain-dispatch.js +118 -0
  175. package/dist/core/domain-dispatch.js.map +1 -0
  176. package/dist/core/domain-loadouts.d.ts +76 -0
  177. package/dist/core/domain-loadouts.d.ts.map +1 -0
  178. package/dist/core/domain-loadouts.js +981 -0
  179. package/dist/core/domain-loadouts.js.map +1 -0
  180. package/dist/core/domain-registry.d.ts +7 -0
  181. package/dist/core/domain-registry.d.ts.map +1 -0
  182. package/dist/core/domain-registry.js +11 -0
  183. package/dist/core/domain-registry.js.map +1 -0
  184. package/dist/core/domain-router.d.ts +16 -0
  185. package/dist/core/domain-router.d.ts.map +1 -0
  186. package/dist/core/domain-router.js +24 -0
  187. package/dist/core/domain-router.js.map +1 -0
  188. package/dist/core/domain-score.d.ts +13 -0
  189. package/dist/core/domain-score.d.ts.map +1 -0
  190. package/dist/core/domain-score.js +48 -0
  191. package/dist/core/domain-score.js.map +1 -0
  192. package/dist/core/domain-trigger-match.d.ts +14 -0
  193. package/dist/core/domain-trigger-match.d.ts.map +1 -0
  194. package/dist/core/domain-trigger-match.js +51 -0
  195. package/dist/core/domain-trigger-match.js.map +1 -0
  196. package/dist/core/domain-types.d.ts +30 -0
  197. package/dist/core/domain-types.d.ts.map +1 -0
  198. package/dist/core/domain-types.js +2 -0
  199. package/dist/core/domain-types.js.map +1 -0
  200. package/dist/core/exact-cache-policy.d.ts +8 -0
  201. package/dist/core/exact-cache-policy.d.ts.map +1 -1
  202. package/dist/core/exact-cache-policy.js +9 -0
  203. package/dist/core/exact-cache-policy.js.map +1 -1
  204. package/dist/core/exec.d.ts +0 -2
  205. package/dist/core/exec.d.ts.map +1 -1
  206. package/dist/core/exec.js +0 -1
  207. package/dist/core/exec.js.map +1 -1
  208. package/dist/core/export-html/index.d.ts +1 -1
  209. package/dist/core/export-html/index.d.ts.map +1 -1
  210. package/dist/core/export-html/index.js.map +1 -1
  211. package/dist/core/export-html/template.js +1 -3
  212. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  213. package/dist/core/export-html/tool-renderer.js.map +1 -1
  214. package/dist/core/extensions/builtin/command-safety-gate.d.ts +3 -0
  215. package/dist/core/extensions/builtin/command-safety-gate.d.ts.map +1 -1
  216. package/dist/core/extensions/builtin/command-safety-gate.js +15 -3
  217. package/dist/core/extensions/builtin/command-safety-gate.js.map +1 -1
  218. package/dist/core/extensions/builtin/todo-checklist.d.ts +20 -0
  219. package/dist/core/extensions/builtin/todo-checklist.d.ts.map +1 -0
  220. package/dist/core/extensions/builtin/todo-checklist.js +70 -0
  221. package/dist/core/extensions/builtin/todo-checklist.js.map +1 -0
  222. package/dist/core/extensions/loader.d.ts +4 -4
  223. package/dist/core/extensions/loader.d.ts.map +1 -1
  224. package/dist/core/extensions/loader.js +57 -92
  225. package/dist/core/extensions/loader.js.map +1 -1
  226. package/dist/core/extensions/runner.d.ts +3 -3
  227. package/dist/core/extensions/runner.d.ts.map +1 -1
  228. package/dist/core/extensions/runner.js +1 -1
  229. package/dist/core/extensions/runner.js.map +1 -1
  230. package/dist/core/extensions/types.d.ts +7 -35
  231. package/dist/core/extensions/types.d.ts.map +1 -1
  232. package/dist/core/extensions/types.js.map +1 -1
  233. package/dist/core/extensions/wrapper.d.ts +1 -1
  234. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  235. package/dist/core/extensions/wrapper.js.map +1 -1
  236. package/dist/core/headroom.d.ts +45 -0
  237. package/dist/core/headroom.d.ts.map +1 -0
  238. package/dist/core/headroom.js +171 -0
  239. package/dist/core/headroom.js.map +1 -0
  240. package/dist/core/hook-inventory.d.ts +4 -2
  241. package/dist/core/hook-inventory.d.ts.map +1 -1
  242. package/dist/core/hook-inventory.js +80 -11
  243. package/dist/core/hook-inventory.js.map +1 -1
  244. package/dist/core/hooks/fail-closed.d.ts +4 -1
  245. package/dist/core/hooks/fail-closed.d.ts.map +1 -1
  246. package/dist/core/hooks/fail-closed.js +79 -5
  247. package/dist/core/hooks/fail-closed.js.map +1 -1
  248. package/dist/core/hooks/index.d.ts +2 -2
  249. package/dist/core/hooks/index.d.ts.map +1 -1
  250. package/dist/core/hooks/index.js +1 -1
  251. package/dist/core/hooks/index.js.map +1 -1
  252. package/dist/core/hooks/types.d.ts +9 -0
  253. package/dist/core/hooks/types.d.ts.map +1 -1
  254. package/dist/core/hooks/types.js.map +1 -1
  255. package/dist/core/keybindings.d.ts +2 -14
  256. package/dist/core/keybindings.d.ts.map +1 -1
  257. package/dist/core/keybindings.js +1 -31
  258. package/dist/core/keybindings.js.map +1 -1
  259. package/dist/core/lean-ctx.d.ts +99 -0
  260. package/dist/core/lean-ctx.d.ts.map +1 -0
  261. package/dist/core/lean-ctx.js +225 -0
  262. package/dist/core/lean-ctx.js.map +1 -0
  263. package/dist/core/loadout-compose.d.ts +53 -0
  264. package/dist/core/loadout-compose.d.ts.map +1 -0
  265. package/dist/core/loadout-compose.js +172 -0
  266. package/dist/core/loadout-compose.js.map +1 -0
  267. package/dist/core/loadout-policy-bridge.d.ts +22 -0
  268. package/dist/core/loadout-policy-bridge.d.ts.map +1 -0
  269. package/dist/core/loadout-policy-bridge.js +52 -0
  270. package/dist/core/loadout-policy-bridge.js.map +1 -0
  271. package/dist/core/loadout-runtime.d.ts +22 -0
  272. package/dist/core/loadout-runtime.d.ts.map +1 -1
  273. package/dist/core/loadout-runtime.js +41 -5
  274. package/dist/core/loadout-runtime.js.map +1 -1
  275. package/dist/core/loadout-safety.d.ts +55 -0
  276. package/dist/core/loadout-safety.d.ts.map +1 -0
  277. package/dist/core/loadout-safety.js +213 -0
  278. package/dist/core/loadout-safety.js.map +1 -0
  279. package/dist/core/loadouts.d.ts +4 -2
  280. package/dist/core/loadouts.d.ts.map +1 -1
  281. package/dist/core/loadouts.js +116 -5
  282. package/dist/core/loadouts.js.map +1 -1
  283. package/dist/core/loop-gates.d.ts +48 -0
  284. package/dist/core/loop-gates.d.ts.map +1 -0
  285. package/dist/core/loop-gates.js +352 -0
  286. package/dist/core/loop-gates.js.map +1 -0
  287. package/dist/core/loop-registry.d.ts +77 -0
  288. package/dist/core/loop-registry.d.ts.map +1 -0
  289. package/dist/core/loop-registry.js +831 -0
  290. package/dist/core/loop-registry.js.map +1 -0
  291. package/dist/core/loop-types.d.ts +194 -0
  292. package/dist/core/loop-types.d.ts.map +1 -0
  293. package/dist/core/loop-types.js +2 -0
  294. package/dist/core/loop-types.js.map +1 -0
  295. package/dist/core/mcp-inventory.d.ts +7 -0
  296. package/dist/core/mcp-inventory.d.ts.map +1 -1
  297. package/dist/core/mcp-inventory.js +5 -1
  298. package/dist/core/mcp-inventory.js.map +1 -1
  299. package/dist/core/mcp-presets.d.ts +43 -2
  300. package/dist/core/mcp-presets.d.ts.map +1 -1
  301. package/dist/core/mcp-presets.js +298 -2
  302. package/dist/core/mcp-presets.js.map +1 -1
  303. package/dist/core/messages.d.ts +3 -3
  304. package/dist/core/messages.d.ts.map +1 -1
  305. package/dist/core/messages.js.map +1 -1
  306. package/dist/core/metrics-sampler.d.ts +11 -0
  307. package/dist/core/metrics-sampler.d.ts.map +1 -1
  308. package/dist/core/metrics-sampler.js +52 -13
  309. package/dist/core/metrics-sampler.js.map +1 -1
  310. package/dist/core/model-registry.d.ts +1 -2
  311. package/dist/core/model-registry.d.ts.map +1 -1
  312. package/dist/core/model-registry.js +18 -41
  313. package/dist/core/model-registry.js.map +1 -1
  314. package/dist/core/model-resolver.d.ts +2 -2
  315. package/dist/core/model-resolver.d.ts.map +1 -1
  316. package/dist/core/model-resolver.js +1 -2
  317. package/dist/core/model-resolver.js.map +1 -1
  318. package/dist/core/package-gallery-identity.d.ts +7 -0
  319. package/dist/core/package-gallery-identity.d.ts.map +1 -0
  320. package/dist/core/package-gallery-identity.js +31 -0
  321. package/dist/core/package-gallery-identity.js.map +1 -0
  322. package/dist/core/package-gallery-install.d.ts +6 -0
  323. package/dist/core/package-gallery-install.d.ts.map +1 -0
  324. package/dist/core/package-gallery-install.js +59 -0
  325. package/dist/core/package-gallery-install.js.map +1 -0
  326. package/dist/core/package-gallery-manifest.d.ts +13 -0
  327. package/dist/core/package-gallery-manifest.d.ts.map +1 -0
  328. package/dist/core/package-gallery-manifest.js +183 -0
  329. package/dist/core/package-gallery-manifest.js.map +1 -0
  330. package/dist/core/package-gallery-trial.d.ts +4 -0
  331. package/dist/core/package-gallery-trial.d.ts.map +1 -0
  332. package/dist/core/package-gallery-trial.js +55 -0
  333. package/dist/core/package-gallery-trial.js.map +1 -0
  334. package/dist/core/package-gallery-types.d.ts +71 -0
  335. package/dist/core/package-gallery-types.d.ts.map +1 -0
  336. package/dist/core/package-gallery-types.js +2 -0
  337. package/dist/core/package-gallery-types.js.map +1 -0
  338. package/dist/core/package-gallery.d.ts +5 -123
  339. package/dist/core/package-gallery.d.ts.map +1 -1
  340. package/dist/core/package-gallery.js +5 -391
  341. package/dist/core/package-gallery.js.map +1 -1
  342. package/dist/core/package-manager.d.ts +0 -69
  343. package/dist/core/package-manager.d.ts.map +1 -1
  344. package/dist/core/package-manager.js +69 -367
  345. package/dist/core/package-manager.js.map +1 -1
  346. package/dist/core/package-procurement.d.ts +4 -4
  347. package/dist/core/package-procurement.d.ts.map +1 -1
  348. package/dist/core/package-procurement.js +29 -17
  349. package/dist/core/package-procurement.js.map +1 -1
  350. package/dist/core/provider-attribution.d.ts +1 -1
  351. package/dist/core/provider-attribution.d.ts.map +1 -1
  352. package/dist/core/provider-attribution.js.map +1 -1
  353. package/dist/core/read-anchors.d.ts +1 -1
  354. package/dist/core/read-anchors.d.ts.map +1 -1
  355. package/dist/core/read-anchors.js +1 -1
  356. package/dist/core/read-anchors.js.map +1 -1
  357. package/dist/core/recovery-checkpoint.d.ts +2 -2
  358. package/dist/core/recovery-checkpoint.d.ts.map +1 -1
  359. package/dist/core/recovery-checkpoint.js +2 -2
  360. package/dist/core/recovery-checkpoint.js.map +1 -1
  361. package/dist/core/resolve-config-value.d.ts +1 -1
  362. package/dist/core/resolve-config-value.d.ts.map +1 -1
  363. package/dist/core/resolve-config-value.js +2 -30
  364. package/dist/core/resolve-config-value.js.map +1 -1
  365. package/dist/core/resource-loader.d.ts +12 -20
  366. package/dist/core/resource-loader.d.ts.map +1 -1
  367. package/dist/core/resource-loader.js +66 -90
  368. package/dist/core/resource-loader.js.map +1 -1
  369. package/dist/core/sandbox-policy-v2.d.ts +49 -0
  370. package/dist/core/sandbox-policy-v2.d.ts.map +1 -0
  371. package/dist/core/sandbox-policy-v2.js +368 -0
  372. package/dist/core/sandbox-policy-v2.js.map +1 -0
  373. package/dist/core/sdk.d.ts +10 -78
  374. package/dist/core/sdk.d.ts.map +1 -1
  375. package/dist/core/sdk.js +97 -139
  376. package/dist/core/sdk.js.map +1 -1
  377. package/dist/core/semantic-cache-policy.d.ts +7 -1
  378. package/dist/core/semantic-cache-policy.d.ts.map +1 -1
  379. package/dist/core/semantic-cache-policy.js +8 -0
  380. package/dist/core/semantic-cache-policy.js.map +1 -1
  381. package/dist/core/session-manager.d.ts +2 -4
  382. package/dist/core/session-manager.d.ts.map +1 -1
  383. package/dist/core/session-manager.js +5 -6
  384. package/dist/core/session-manager.js.map +1 -1
  385. package/dist/core/settings-manager.d.ts +1 -18
  386. package/dist/core/settings-manager.d.ts.map +1 -1
  387. package/dist/core/settings-manager.js +2 -48
  388. package/dist/core/settings-manager.js.map +1 -1
  389. package/dist/core/skills.d.ts +1 -0
  390. package/dist/core/skills.d.ts.map +1 -1
  391. package/dist/core/skills.js +46 -5
  392. package/dist/core/skills.js.map +1 -1
  393. package/dist/core/slash-commands.d.ts.map +1 -1
  394. package/dist/core/slash-commands.js +0 -2
  395. package/dist/core/slash-commands.js.map +1 -1
  396. package/dist/core/subagent-orchestration.d.ts +73 -0
  397. package/dist/core/subagent-orchestration.d.ts.map +1 -0
  398. package/dist/core/subagent-orchestration.js +408 -0
  399. package/dist/core/subagent-orchestration.js.map +1 -0
  400. package/dist/core/system-prompt.d.ts +5 -4
  401. package/dist/core/system-prompt.d.ts.map +1 -1
  402. package/dist/core/system-prompt.js +57 -36
  403. package/dist/core/system-prompt.js.map +1 -1
  404. package/dist/core/timings.d.ts +0 -4
  405. package/dist/core/timings.d.ts.map +1 -1
  406. package/dist/core/timings.js +0 -4
  407. package/dist/core/timings.js.map +1 -1
  408. package/dist/core/todo-state.d.ts +53 -0
  409. package/dist/core/todo-state.d.ts.map +1 -0
  410. package/dist/core/todo-state.js +87 -0
  411. package/dist/core/todo-state.js.map +1 -0
  412. package/dist/core/token-optimizer.d.ts +58 -0
  413. package/dist/core/token-optimizer.d.ts.map +1 -0
  414. package/dist/core/token-optimizer.js +179 -0
  415. package/dist/core/token-optimizer.js.map +1 -0
  416. package/dist/core/tools/bash.d.ts +8 -9
  417. package/dist/core/tools/bash.d.ts.map +1 -1
  418. package/dist/core/tools/bash.js +9 -8
  419. package/dist/core/tools/bash.js.map +1 -1
  420. package/dist/core/tools/edit.d.ts +3 -14
  421. package/dist/core/tools/edit.d.ts.map +1 -1
  422. package/dist/core/tools/edit.js +4 -25
  423. package/dist/core/tools/edit.js.map +1 -1
  424. package/dist/core/tools/find.d.ts +1 -4
  425. package/dist/core/tools/find.d.ts.map +1 -1
  426. package/dist/core/tools/find.js +1 -4
  427. package/dist/core/tools/find.js.map +1 -1
  428. package/dist/core/tools/grep.d.ts +1 -4
  429. package/dist/core/tools/grep.d.ts.map +1 -1
  430. package/dist/core/tools/grep.js +2 -5
  431. package/dist/core/tools/grep.js.map +1 -1
  432. package/dist/core/tools/index.d.ts +2 -2
  433. package/dist/core/tools/index.d.ts.map +1 -1
  434. package/dist/core/tools/index.js.map +1 -1
  435. package/dist/core/tools/ls.d.ts +1 -4
  436. package/dist/core/tools/ls.d.ts.map +1 -1
  437. package/dist/core/tools/ls.js +1 -4
  438. package/dist/core/tools/ls.js.map +1 -1
  439. package/dist/core/tools/read.d.ts +2 -14
  440. package/dist/core/tools/read.d.ts.map +1 -1
  441. package/dist/core/tools/read.js +4 -28
  442. package/dist/core/tools/read.js.map +1 -1
  443. package/dist/core/tools/render-utils.d.ts +1 -1
  444. package/dist/core/tools/render-utils.d.ts.map +1 -1
  445. package/dist/core/tools/render-utils.js +1 -1
  446. package/dist/core/tools/render-utils.js.map +1 -1
  447. package/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
  448. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  449. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  450. package/dist/core/tools/write.d.ts +2 -4
  451. package/dist/core/tools/write.d.ts.map +1 -1
  452. package/dist/core/tools/write.js +4 -4
  453. package/dist/core/tools/write.js.map +1 -1
  454. package/dist/encoding/index.d.ts +6 -0
  455. package/dist/encoding/index.d.ts.map +1 -0
  456. package/dist/encoding/index.js +6 -0
  457. package/dist/encoding/index.js.map +1 -0
  458. package/dist/encoding/l4-encoder.d.ts +96 -0
  459. package/dist/encoding/l4-encoder.d.ts.map +1 -0
  460. package/dist/encoding/l4-encoder.js +474 -0
  461. package/dist/encoding/l4-encoder.js.map +1 -0
  462. package/dist/fuzzing/index.d.ts +6 -0
  463. package/dist/fuzzing/index.d.ts.map +1 -0
  464. package/dist/fuzzing/index.js +6 -0
  465. package/dist/fuzzing/index.js.map +1 -0
  466. package/dist/fuzzing/mutation-engine.d.ts +93 -0
  467. package/dist/fuzzing/mutation-engine.d.ts.map +1 -0
  468. package/dist/fuzzing/mutation-engine.js +244 -0
  469. package/dist/fuzzing/mutation-engine.js.map +1 -0
  470. package/dist/guardrails/audit-logger.d.ts +4 -0
  471. package/dist/guardrails/audit-logger.d.ts.map +1 -0
  472. package/dist/guardrails/audit-logger.js +28 -0
  473. package/dist/guardrails/audit-logger.js.map +1 -0
  474. package/dist/guardrails/evidence-system.d.ts +61 -0
  475. package/dist/guardrails/evidence-system.d.ts.map +1 -0
  476. package/dist/guardrails/evidence-system.js +302 -0
  477. package/dist/guardrails/evidence-system.js.map +1 -0
  478. package/dist/guardrails/freedomd-adapter.d.ts +16 -0
  479. package/dist/guardrails/freedomd-adapter.d.ts.map +1 -0
  480. package/dist/guardrails/freedomd-adapter.js +87 -0
  481. package/dist/guardrails/freedomd-adapter.js.map +1 -0
  482. package/dist/index.d.ts +4 -19
  483. package/dist/index.d.ts.map +1 -1
  484. package/dist/index.js +2 -17
  485. package/dist/index.js.map +1 -1
  486. package/dist/jailbreak-extension.d.ts +48 -0
  487. package/dist/jailbreak-extension.d.ts.map +1 -0
  488. package/dist/jailbreak-extension.js +47 -0
  489. package/dist/jailbreak-extension.js.map +1 -0
  490. package/dist/main.d.ts.map +1 -1
  491. package/dist/main.js +2 -2
  492. package/dist/main.js.map +1 -1
  493. package/dist/migrations.d.ts +0 -37
  494. package/dist/migrations.d.ts.map +1 -1
  495. package/dist/migrations.js +6 -414
  496. package/dist/migrations.js.map +1 -1
  497. package/dist/modes/interactive/components/armin.d.ts +1 -1
  498. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  499. package/dist/modes/interactive/components/armin.js.map +1 -1
  500. package/dist/modes/interactive/components/assistant-message.d.ts +2 -2
  501. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  502. package/dist/modes/interactive/components/assistant-message.js +1 -1
  503. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  504. package/dist/modes/interactive/components/bash-execution.d.ts +1 -1
  505. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  506. package/dist/modes/interactive/components/bash-execution.js +1 -1
  507. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  508. package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
  509. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  510. package/dist/modes/interactive/components/bordered-loader.js +1 -1
  511. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  512. package/dist/modes/interactive/components/branch-summary-message.d.ts +1 -1
  513. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  514. package/dist/modes/interactive/components/branch-summary-message.js +1 -1
  515. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  516. package/dist/modes/interactive/components/compaction-summary-message.d.ts +1 -1
  517. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  518. package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
  519. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  520. package/dist/modes/interactive/components/config-selector.d.ts +1 -1
  521. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  522. package/dist/modes/interactive/components/config-selector.js +1 -1
  523. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  524. package/dist/modes/interactive/components/control-panel-box.d.ts +15 -0
  525. package/dist/modes/interactive/components/control-panel-box.d.ts.map +1 -0
  526. package/dist/modes/interactive/components/control-panel-box.js +55 -0
  527. package/dist/modes/interactive/components/control-panel-box.js.map +1 -0
  528. package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts.map +1 -1
  529. package/dist/modes/interactive/components/control-panel-gradient-motion.js +2 -36
  530. package/dist/modes/interactive/components/control-panel-gradient-motion.js.map +1 -1
  531. package/dist/modes/interactive/components/control-panel-gradient.d.ts +1 -0
  532. package/dist/modes/interactive/components/control-panel-gradient.d.ts.map +1 -1
  533. package/dist/modes/interactive/components/control-panel-gradient.js +6 -5
  534. package/dist/modes/interactive/components/control-panel-gradient.js.map +1 -1
  535. package/dist/modes/interactive/components/control-panel-layout.d.ts +23 -0
  536. package/dist/modes/interactive/components/control-panel-layout.d.ts.map +1 -0
  537. package/dist/modes/interactive/components/control-panel-layout.js +165 -0
  538. package/dist/modes/interactive/components/control-panel-layout.js.map +1 -0
  539. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts +5 -0
  540. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts.map +1 -0
  541. package/dist/modes/interactive/components/control-panel-runtime-status.js +20 -0
  542. package/dist/modes/interactive/components/control-panel-runtime-status.js.map +1 -0
  543. package/dist/modes/interactive/components/control-panel.d.ts +8 -31
  544. package/dist/modes/interactive/components/control-panel.d.ts.map +1 -1
  545. package/dist/modes/interactive/components/control-panel.js +38 -169
  546. package/dist/modes/interactive/components/control-panel.js.map +1 -1
  547. package/dist/modes/interactive/components/countdown-timer.d.ts +1 -1
  548. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  549. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  550. package/dist/modes/interactive/components/custom-editor.d.ts +1 -1
  551. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  552. package/dist/modes/interactive/components/custom-editor.js +14 -22
  553. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  554. package/dist/modes/interactive/components/custom-message.d.ts +1 -1
  555. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  556. package/dist/modes/interactive/components/custom-message.js +1 -1
  557. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  558. package/dist/modes/interactive/components/daxnuts.d.ts +1 -1
  559. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  560. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  561. package/dist/modes/interactive/components/dynamic-border.d.ts +1 -1
  562. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  563. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  564. package/dist/modes/interactive/components/earendil-announcement.d.ts +1 -1
  565. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  566. package/dist/modes/interactive/components/earendil-announcement.js +1 -1
  567. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  568. package/dist/modes/interactive/components/extension-editor.d.ts +1 -1
  569. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  570. package/dist/modes/interactive/components/extension-editor.js +1 -1
  571. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  572. package/dist/modes/interactive/components/extension-input.d.ts +1 -1
  573. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  574. package/dist/modes/interactive/components/extension-input.js +1 -1
  575. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  576. package/dist/modes/interactive/components/extension-selector.d.ts +1 -1
  577. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  578. package/dist/modes/interactive/components/extension-selector.js +1 -1
  579. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  580. package/dist/modes/interactive/components/footer.d.ts +1 -1
  581. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  582. package/dist/modes/interactive/components/footer.js +1 -9
  583. package/dist/modes/interactive/components/footer.js.map +1 -1
  584. package/dist/modes/interactive/components/index.d.ts +0 -2
  585. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  586. package/dist/modes/interactive/components/index.js +0 -2
  587. package/dist/modes/interactive/components/index.js.map +1 -1
  588. package/dist/modes/interactive/components/keybinding-hints.d.ts +1 -1
  589. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  590. package/dist/modes/interactive/components/keybinding-hints.js +1 -1
  591. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  592. package/dist/modes/interactive/components/login-dialog.d.ts +2 -2
  593. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  594. package/dist/modes/interactive/components/login-dialog.js +2 -2
  595. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  596. package/dist/modes/interactive/components/model-selector.d.ts +13 -47
  597. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  598. package/dist/modes/interactive/components/model-selector.js +118 -193
  599. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  600. package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
  601. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  602. package/dist/modes/interactive/components/oauth-selector.js +1 -1
  603. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  604. package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
  605. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  606. package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
  607. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  608. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  609. package/dist/modes/interactive/components/session-selector-search.js +1 -1
  610. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  611. package/dist/modes/interactive/components/session-selector.d.ts +1 -1
  612. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  613. package/dist/modes/interactive/components/session-selector.js +1 -1
  614. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  615. package/dist/modes/interactive/components/settings-selector.d.ts +3 -3
  616. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  617. package/dist/modes/interactive/components/settings-selector.js +1 -1
  618. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  619. package/dist/modes/interactive/components/show-images-selector.d.ts +1 -1
  620. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  621. package/dist/modes/interactive/components/show-images-selector.js +1 -1
  622. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  623. package/dist/modes/interactive/components/skill-invocation-message.d.ts +1 -1
  624. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  625. package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
  626. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  627. package/dist/modes/interactive/components/theme-selector.d.ts +1 -2
  628. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  629. package/dist/modes/interactive/components/theme-selector.js +2 -11
  630. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  631. package/dist/modes/interactive/components/thinking-selector.d.ts +8 -7
  632. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  633. package/dist/modes/interactive/components/thinking-selector.js +48 -7
  634. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  635. package/dist/modes/interactive/components/todo-checklist.d.ts +31 -0
  636. package/dist/modes/interactive/components/todo-checklist.d.ts.map +1 -0
  637. package/dist/modes/interactive/components/todo-checklist.js +121 -0
  638. package/dist/modes/interactive/components/todo-checklist.js.map +1 -0
  639. package/dist/modes/interactive/components/tool-execution.d.ts +1 -1
  640. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  641. package/dist/modes/interactive/components/tool-execution.js +1 -1
  642. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  643. package/dist/modes/interactive/components/tree-selector.d.ts +1 -1
  644. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  645. package/dist/modes/interactive/components/tree-selector.js +1 -1
  646. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  647. package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
  648. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  649. package/dist/modes/interactive/components/user-message-selector.js +1 -1
  650. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  651. package/dist/modes/interactive/components/user-message.d.ts +1 -1
  652. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  653. package/dist/modes/interactive/components/user-message.js +1 -1
  654. package/dist/modes/interactive/components/user-message.js.map +1 -1
  655. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  656. package/dist/modes/interactive/components/visual-truncate.js +1 -1
  657. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  658. package/dist/modes/interactive/interactive-mode.d.ts +3 -8
  659. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  660. package/dist/modes/interactive/interactive-mode.js +74 -232
  661. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  662. package/dist/modes/interactive/theme/omk-control-grid-dark.json +65 -77
  663. package/dist/modes/interactive/theme/omk-neon-control.json +90 -0
  664. package/dist/modes/interactive/theme/rust-forge.json +14 -24
  665. package/dist/modes/interactive/theme/theme.d.ts +1 -1
  666. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  667. package/dist/modes/interactive/theme/theme.js +22 -45
  668. package/dist/modes/interactive/theme/theme.js.map +1 -1
  669. package/dist/modes/print-mode.d.ts +1 -1
  670. package/dist/modes/print-mode.d.ts.map +1 -1
  671. package/dist/modes/print-mode.js.map +1 -1
  672. package/dist/modes/rpc/rpc-client.d.ts +2 -2
  673. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  674. package/dist/modes/rpc/rpc-client.js.map +1 -1
  675. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  676. package/dist/modes/rpc/rpc-mode.js +0 -4
  677. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  678. package/dist/modes/rpc/rpc-types.d.ts +2 -2
  679. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  680. package/dist/modes/rpc/rpc-types.js.map +1 -1
  681. package/dist/modules/index.d.ts +8 -0
  682. package/dist/modules/index.d.ts.map +1 -0
  683. package/dist/modules/index.js +7 -0
  684. package/dist/modules/index.js.map +1 -0
  685. package/dist/modules/lrl-bypass.d.ts +40 -0
  686. package/dist/modules/lrl-bypass.d.ts.map +1 -0
  687. package/dist/modules/lrl-bypass.js +84 -0
  688. package/dist/modules/lrl-bypass.js.map +1 -0
  689. package/dist/modules/lrl-deps.d.ts +38 -0
  690. package/dist/modules/lrl-deps.d.ts.map +1 -0
  691. package/dist/modules/lrl-deps.js +128 -0
  692. package/dist/modules/lrl-deps.js.map +1 -0
  693. package/dist/multiturn/easl-chain.d.ts +113 -0
  694. package/dist/multiturn/easl-chain.d.ts.map +1 -0
  695. package/dist/multiturn/easl-chain.js +351 -0
  696. package/dist/multiturn/easl-chain.js.map +1 -0
  697. package/dist/multiturn/index.d.ts +6 -0
  698. package/dist/multiturn/index.d.ts.map +1 -0
  699. package/dist/multiturn/index.js +6 -0
  700. package/dist/multiturn/index.js.map +1 -0
  701. package/dist/orchestration/lane-grant-auditor.d.ts +4 -0
  702. package/dist/orchestration/lane-grant-auditor.d.ts.map +1 -0
  703. package/dist/orchestration/lane-grant-auditor.js +87 -0
  704. package/dist/orchestration/lane-grant-auditor.js.map +1 -0
  705. package/dist/package-manager-cli.d.ts.map +1 -1
  706. package/dist/package-manager-cli.js +48 -113
  707. package/dist/package-manager-cli.js.map +1 -1
  708. package/dist/routing/fallback-router.d.ts +123 -0
  709. package/dist/routing/fallback-router.d.ts.map +1 -0
  710. package/dist/routing/fallback-router.js +355 -0
  711. package/dist/routing/fallback-router.js.map +1 -0
  712. package/dist/routing/index.d.ts +6 -0
  713. package/dist/routing/index.d.ts.map +1 -0
  714. package/dist/routing/index.js +6 -0
  715. package/dist/routing/index.js.map +1 -0
  716. package/dist/types/evidence.d.ts +117 -0
  717. package/dist/types/evidence.d.ts.map +1 -0
  718. package/dist/types/evidence.js +8 -0
  719. package/dist/types/evidence.js.map +1 -0
  720. package/dist/types/guardrails.d.ts +61 -0
  721. package/dist/types/guardrails.d.ts.map +1 -0
  722. package/dist/types/guardrails.js +9 -0
  723. package/dist/types/guardrails.js.map +1 -0
  724. package/dist/types/jailbreak.d.ts +246 -0
  725. package/dist/types/jailbreak.d.ts.map +1 -0
  726. package/dist/types/jailbreak.js +8 -0
  727. package/dist/types/jailbreak.js.map +1 -0
  728. package/dist/types/lane-grant.d.ts +58 -0
  729. package/dist/types/lane-grant.d.ts.map +1 -0
  730. package/dist/types/lane-grant.js +9 -0
  731. package/dist/types/lane-grant.js.map +1 -0
  732. package/dist/utils/jailbreak/common.d.ts +63 -0
  733. package/dist/utils/jailbreak/common.d.ts.map +1 -0
  734. package/dist/utils/jailbreak/common.js +130 -0
  735. package/dist/utils/jailbreak/common.js.map +1 -0
  736. package/dist/utils/jailbreak/index.d.ts +7 -0
  737. package/dist/utils/jailbreak/index.d.ts.map +1 -0
  738. package/dist/utils/jailbreak/index.js +7 -0
  739. package/dist/utils/jailbreak/index.js.map +1 -0
  740. package/dist/utils/windows-self-update.d.ts.map +1 -1
  741. package/dist/utils/windows-self-update.js +1 -1
  742. package/dist/utils/windows-self-update.js.map +1 -1
  743. package/docs/compaction.md +8 -21
  744. package/docs/custom-provider.md +2 -2
  745. package/docs/development.md +1 -1
  746. package/docs/extensions.md +11 -11
  747. package/docs/loadout-domains/README.md +70 -0
  748. package/docs/loadout-domains/ai-agent-ops.md +94 -0
  749. package/docs/loadout-domains/backend-api.md +116 -0
  750. package/docs/loadout-domains/data-science.md +100 -0
  751. package/docs/loadout-domains/devops-infra.md +85 -0
  752. package/docs/loadout-domains/docs-writing.md +92 -0
  753. package/docs/loadout-domains/frontend-ui.md +128 -0
  754. package/docs/loadout-domains/general.md +62 -0
  755. package/docs/loadout-domains/mobile.md +84 -0
  756. package/docs/loadout-domains/qa-testing.md +87 -0
  757. package/docs/loadout-domains/research.md +80 -0
  758. package/docs/loadout-domains/security-audit.md +97 -0
  759. package/docs/packages.md +7 -48
  760. package/docs/prompt-templates.md +0 -2
  761. package/docs/sdk.md +3 -3
  762. package/docs/security.md +145 -0
  763. package/docs/session-format.md +1 -1
  764. package/docs/themes.md +8 -7
  765. package/docs/tui.md +14 -14
  766. package/docs/usage.md +6 -16
  767. package/examples/extensions/README.md +2 -2
  768. package/examples/extensions/aside-computer-use/README.md +114 -0
  769. package/examples/extensions/aside-computer-use/action-scoring.ts +122 -0
  770. package/examples/extensions/aside-computer-use/assertions.ts +380 -0
  771. package/examples/extensions/aside-computer-use/controller.ts +491 -0
  772. package/examples/extensions/aside-computer-use/evidence.ts +229 -0
  773. package/examples/extensions/aside-computer-use/golden-trace.ts +141 -0
  774. package/examples/extensions/aside-computer-use/index.ts +76 -0
  775. package/examples/extensions/aside-computer-use/mcp-client.ts +381 -0
  776. package/examples/extensions/aside-computer-use/observation-snapshot.ts +121 -0
  777. package/examples/extensions/aside-computer-use/package.json +16 -0
  778. package/examples/extensions/aside-computer-use/policy.ts +257 -0
  779. package/examples/extensions/aside-computer-use/risk-authorize.ts +200 -0
  780. package/examples/extensions/aside-computer-use/risk-classifier.ts +205 -0
  781. package/examples/extensions/aside-computer-use/schema-fingerprint.ts +80 -0
  782. package/examples/extensions/aside-computer-use/session-binding.ts +161 -0
  783. package/examples/extensions/aside-computer-use/tools.ts +449 -0
  784. package/examples/extensions/aside-computer-use/types.ts +217 -0
  785. package/examples/extensions/aside-computer-use/url-origin.ts +132 -0
  786. package/examples/extensions/bash-spawn-hook.ts +1 -1
  787. package/examples/extensions/border-status-editor.ts +2 -2
  788. package/examples/extensions/built-in-tool-renderer.ts +1 -1
  789. package/examples/extensions/custom-compaction.ts +1 -1
  790. package/examples/extensions/custom-footer.ts +2 -2
  791. package/examples/extensions/custom-header.ts +8 -8
  792. package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
  793. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  794. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  795. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  796. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  797. package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
  798. package/examples/extensions/doom-overlay/README.md +1 -2
  799. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  800. package/examples/extensions/doom-overlay/doom/build.sh +4 -4
  801. package/examples/extensions/doom-overlay/doom/doomgeneric_omk.c +72 -0
  802. package/examples/extensions/doom-overlay/doom-component.ts +2 -2
  803. package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
  804. package/examples/extensions/git-merge-and-resolve.ts +1 -1
  805. package/examples/extensions/github-issue-autocomplete.ts +1 -6
  806. package/examples/extensions/gondolin/index.ts +1 -1
  807. package/examples/extensions/gondolin/package-lock.json +2 -2
  808. package/examples/extensions/gondolin/package.json +1 -1
  809. package/examples/extensions/handoff.ts +2 -2
  810. package/examples/extensions/hello.ts +1 -1
  811. package/examples/extensions/inline-bash.ts +1 -1
  812. package/examples/extensions/input-transform-streaming.ts +1 -1
  813. package/examples/extensions/input-transform.ts +2 -2
  814. package/examples/extensions/mac-system-theme.ts +1 -1
  815. package/examples/extensions/message-renderer.ts +1 -1
  816. package/examples/extensions/minimal-mode.ts +1 -1
  817. package/examples/extensions/modal-editor.ts +1 -1
  818. package/examples/extensions/overlay-qa-tests.ts +7 -7
  819. package/examples/extensions/overlay-test.ts +1 -1
  820. package/examples/extensions/plan-mode/index.ts +3 -3
  821. package/examples/extensions/preset.ts +4 -4
  822. package/examples/extensions/provider-payload.ts +6 -3
  823. package/examples/extensions/qna.ts +1 -1
  824. package/examples/extensions/question.ts +1 -1
  825. package/examples/extensions/questionnaire.ts +1 -1
  826. package/examples/extensions/rpc-demo.ts +1 -1
  827. package/examples/extensions/sandbox/index.ts +2 -2
  828. package/examples/extensions/sandbox/package-lock.json +2 -2
  829. package/examples/extensions/sandbox/package.json +1 -1
  830. package/examples/extensions/shutdown-command.ts +5 -5
  831. package/examples/extensions/snake.ts +1 -1
  832. package/examples/extensions/space-invaders.ts +1 -1
  833. package/examples/extensions/structured-output.ts +1 -1
  834. package/examples/extensions/subagent/agents.ts +2 -2
  835. package/examples/extensions/subagent/index.ts +19 -51
  836. package/examples/extensions/summarize.ts +2 -2
  837. package/examples/extensions/tic-tac-toe.ts +2 -2
  838. package/examples/extensions/todo.ts +2 -2
  839. package/examples/extensions/tool-override.ts +1 -1
  840. package/examples/extensions/tools.ts +1 -1
  841. package/examples/extensions/truncated-tool.ts +1 -1
  842. package/examples/extensions/with-deps/package-lock.json +2 -2
  843. package/examples/extensions/with-deps/package.json +1 -1
  844. package/examples/extensions/working-indicator.ts +3 -3
  845. package/examples/rpc-extension-ui.ts +1 -9
  846. package/examples/sdk/02-custom-model.ts +1 -1
  847. package/examples/sdk/07-context-files.ts +0 -2
  848. package/examples/sdk/12-full-control.ts +1 -1
  849. package/examples/sdk/README.md +1 -1
  850. package/npm-shrinkwrap.json +1805 -0
  851. package/package.json +10 -32
  852. package/dist/core/compaction/pruner-policy.d.ts +0 -84
  853. package/dist/core/compaction/pruner-policy.d.ts.map +0 -1
  854. package/dist/core/compaction/pruner-policy.js +0 -273
  855. package/dist/core/compaction/pruner-policy.js.map +0 -1
  856. package/dist/core/context-graph-identity-resolution.d.ts +0 -114
  857. package/dist/core/context-graph-identity-resolution.d.ts.map +0 -1
  858. package/dist/core/context-graph-identity-resolution.js +0 -127
  859. package/dist/core/context-graph-identity-resolution.js.map +0 -1
  860. package/dist/core/context-graph-memory-store.d.ts +0 -153
  861. package/dist/core/context-graph-memory-store.d.ts.map +0 -1
  862. package/dist/core/context-graph-memory-store.js +0 -377
  863. package/dist/core/context-graph-memory-store.js.map +0 -1
  864. package/dist/core/context-graph-ontology-generation.d.ts +0 -104
  865. package/dist/core/context-graph-ontology-generation.d.ts.map +0 -1
  866. package/dist/core/context-graph-ontology-generation.js +0 -135
  867. package/dist/core/context-graph-ontology-generation.js.map +0 -1
  868. package/dist/core/context-graph-ontology-registry.d.ts +0 -766
  869. package/dist/core/context-graph-ontology-registry.d.ts.map +0 -1
  870. package/dist/core/context-graph-ontology-registry.js +0 -1133
  871. package/dist/core/context-graph-ontology-registry.js.map +0 -1
  872. package/dist/core/context-graph-policy.d.ts +0 -68
  873. package/dist/core/context-graph-policy.d.ts.map +0 -1
  874. package/dist/core/context-graph-policy.js +0 -221
  875. package/dist/core/context-graph-policy.js.map +0 -1
  876. package/dist/core/context-graph-reasoning.d.ts +0 -130
  877. package/dist/core/context-graph-reasoning.d.ts.map +0 -1
  878. package/dist/core/context-graph-reasoning.js +0 -442
  879. package/dist/core/context-graph-reasoning.js.map +0 -1
  880. package/dist/core/context-graph-retrieval.d.ts +0 -120
  881. package/dist/core/context-graph-retrieval.d.ts.map +0 -1
  882. package/dist/core/context-graph-retrieval.js +0 -288
  883. package/dist/core/context-graph-retrieval.js.map +0 -1
  884. package/dist/core/contract-verification.d.ts +0 -78
  885. package/dist/core/contract-verification.d.ts.map +0 -1
  886. package/dist/core/contract-verification.js +0 -110
  887. package/dist/core/contract-verification.js.map +0 -1
  888. package/dist/core/freedom/banner.d.ts +0 -14
  889. package/dist/core/freedom/banner.d.ts.map +0 -1
  890. package/dist/core/freedom/banner.js +0 -22
  891. package/dist/core/freedom/banner.js.map +0 -1
  892. package/dist/core/freedom/config.d.ts +0 -27
  893. package/dist/core/freedom/config.d.ts.map +0 -1
  894. package/dist/core/freedom/config.js +0 -216
  895. package/dist/core/freedom/config.js.map +0 -1
  896. package/dist/core/freedom/index.d.ts +0 -23
  897. package/dist/core/freedom/index.d.ts.map +0 -1
  898. package/dist/core/freedom/index.js +0 -19
  899. package/dist/core/freedom/index.js.map +0 -1
  900. package/dist/core/freedom/policy.d.ts +0 -42
  901. package/dist/core/freedom/policy.d.ts.map +0 -1
  902. package/dist/core/freedom/policy.js +0 -47
  903. package/dist/core/freedom/policy.js.map +0 -1
  904. package/dist/core/freedom/safety-floor.d.ts +0 -73
  905. package/dist/core/freedom/safety-floor.d.ts.map +0 -1
  906. package/dist/core/freedom/safety-floor.js +0 -275
  907. package/dist/core/freedom/safety-floor.js.map +0 -1
  908. package/dist/core/harness-control-events.d.ts +0 -91
  909. package/dist/core/harness-control-events.d.ts.map +0 -1
  910. package/dist/core/harness-control-events.js +0 -514
  911. package/dist/core/harness-control-events.js.map +0 -1
  912. package/dist/core/harness-control-replay.d.ts +0 -31
  913. package/dist/core/harness-control-replay.d.ts.map +0 -1
  914. package/dist/core/harness-control-replay.js +0 -187
  915. package/dist/core/harness-control-replay.js.map +0 -1
  916. package/dist/core/headroom-middleware.d.ts +0 -35
  917. package/dist/core/headroom-middleware.d.ts.map +0 -1
  918. package/dist/core/headroom-middleware.js +0 -166
  919. package/dist/core/headroom-middleware.js.map +0 -1
  920. package/dist/core/lean-context-middleware.d.ts +0 -12
  921. package/dist/core/lean-context-middleware.d.ts.map +0 -1
  922. package/dist/core/lean-context-middleware.js +0 -87
  923. package/dist/core/lean-context-middleware.js.map +0 -1
  924. package/dist/core/lean-context-policy.d.ts +0 -45
  925. package/dist/core/lean-context-policy.d.ts.map +0 -1
  926. package/dist/core/lean-context-policy.js +0 -108
  927. package/dist/core/lean-context-policy.js.map +0 -1
  928. package/dist/core/native-adoption-benchmark.d.ts +0 -166
  929. package/dist/core/native-adoption-benchmark.d.ts.map +0 -1
  930. package/dist/core/native-adoption-benchmark.js +0 -624
  931. package/dist/core/native-adoption-benchmark.js.map +0 -1
  932. package/dist/core/observability-trace.d.ts +0 -80
  933. package/dist/core/observability-trace.d.ts.map +0 -1
  934. package/dist/core/observability-trace.js +0 -140
  935. package/dist/core/observability-trace.js.map +0 -1
  936. package/dist/core/orchestration/checkpoint.d.ts +0 -83
  937. package/dist/core/orchestration/checkpoint.d.ts.map +0 -1
  938. package/dist/core/orchestration/checkpoint.js +0 -152
  939. package/dist/core/orchestration/checkpoint.js.map +0 -1
  940. package/dist/core/orchestration/errors.d.ts +0 -74
  941. package/dist/core/orchestration/errors.d.ts.map +0 -1
  942. package/dist/core/orchestration/errors.js +0 -52
  943. package/dist/core/orchestration/errors.js.map +0 -1
  944. package/dist/core/orchestration/merge-queue.d.ts +0 -121
  945. package/dist/core/orchestration/merge-queue.d.ts.map +0 -1
  946. package/dist/core/orchestration/merge-queue.js +0 -149
  947. package/dist/core/orchestration/merge-queue.js.map +0 -1
  948. package/dist/core/orchestration/recovery.d.ts +0 -106
  949. package/dist/core/orchestration/recovery.d.ts.map +0 -1
  950. package/dist/core/orchestration/recovery.js +0 -110
  951. package/dist/core/orchestration/recovery.js.map +0 -1
  952. package/dist/core/orchestration/replay-ledger.d.ts +0 -76
  953. package/dist/core/orchestration/replay-ledger.d.ts.map +0 -1
  954. package/dist/core/orchestration/replay-ledger.js +0 -395
  955. package/dist/core/orchestration/replay-ledger.js.map +0 -1
  956. package/dist/core/orchestration/scheduler-state.d.ts +0 -78
  957. package/dist/core/orchestration/scheduler-state.d.ts.map +0 -1
  958. package/dist/core/orchestration/scheduler-state.js +0 -185
  959. package/dist/core/orchestration/scheduler-state.js.map +0 -1
  960. package/dist/core/orchestration/scheduler-store.d.ts +0 -309
  961. package/dist/core/orchestration/scheduler-store.d.ts.map +0 -1
  962. package/dist/core/orchestration/scheduler-store.js +0 -368
  963. package/dist/core/orchestration/scheduler-store.js.map +0 -1
  964. package/dist/core/orchestration/sqlite-scheduler-store.d.ts +0 -57
  965. package/dist/core/orchestration/sqlite-scheduler-store.d.ts.map +0 -1
  966. package/dist/core/orchestration/sqlite-scheduler-store.js +0 -528
  967. package/dist/core/orchestration/sqlite-scheduler-store.js.map +0 -1
  968. package/dist/core/orchestration/transaction-coordinator.d.ts +0 -217
  969. package/dist/core/orchestration/transaction-coordinator.d.ts.map +0 -1
  970. package/dist/core/orchestration/transaction-coordinator.js +0 -281
  971. package/dist/core/orchestration/transaction-coordinator.js.map +0 -1
  972. package/dist/core/orchestration/verification-contract.d.ts +0 -197
  973. package/dist/core/orchestration/verification-contract.d.ts.map +0 -1
  974. package/dist/core/orchestration/verification-contract.js +0 -145
  975. package/dist/core/orchestration/verification-contract.js.map +0 -1
  976. package/dist/core/package-composition.d.ts +0 -68
  977. package/dist/core/package-composition.d.ts.map +0 -1
  978. package/dist/core/package-composition.js +0 -304
  979. package/dist/core/package-composition.js.map +0 -1
  980. package/dist/core/package-trial-runtime.d.ts +0 -75
  981. package/dist/core/package-trial-runtime.d.ts.map +0 -1
  982. package/dist/core/package-trial-runtime.js +0 -73
  983. package/dist/core/package-trial-runtime.js.map +0 -1
  984. package/dist/core/package-trial-sandbox.d.ts +0 -27
  985. package/dist/core/package-trial-sandbox.d.ts.map +0 -1
  986. package/dist/core/package-trial-sandbox.js +0 -102
  987. package/dist/core/package-trial-sandbox.js.map +0 -1
  988. package/dist/core/policy-overlays-runtime.d.ts +0 -141
  989. package/dist/core/policy-overlays-runtime.d.ts.map +0 -1
  990. package/dist/core/policy-overlays-runtime.js +0 -720
  991. package/dist/core/policy-overlays-runtime.js.map +0 -1
  992. package/dist/core/read-anchor-registry.d.ts +0 -27
  993. package/dist/core/read-anchor-registry.d.ts.map +0 -1
  994. package/dist/core/read-anchor-registry.js +0 -103
  995. package/dist/core/read-anchor-registry.js.map +0 -1
  996. package/dist/core/read-content-cache.d.ts +0 -22
  997. package/dist/core/read-content-cache.d.ts.map +0 -1
  998. package/dist/core/read-content-cache.js +0 -79
  999. package/dist/core/read-content-cache.js.map +0 -1
  1000. package/dist/core/session-digest.d.ts +0 -57
  1001. package/dist/core/session-digest.d.ts.map +0 -1
  1002. package/dist/core/session-digest.js +0 -193
  1003. package/dist/core/session-digest.js.map +0 -1
  1004. package/dist/core/spec-kit/compiler.d.ts +0 -67
  1005. package/dist/core/spec-kit/compiler.d.ts.map +0 -1
  1006. package/dist/core/spec-kit/compiler.js +0 -268
  1007. package/dist/core/spec-kit/compiler.js.map +0 -1
  1008. package/dist/core/transaction-coordinator.d.ts +0 -30
  1009. package/dist/core/transaction-coordinator.d.ts.map +0 -1
  1010. package/dist/core/transaction-coordinator.js +0 -173
  1011. package/dist/core/transaction-coordinator.js.map +0 -1
  1012. package/dist/modes/interactive/components/mcp-selector.d.ts +0 -30
  1013. package/dist/modes/interactive/components/mcp-selector.d.ts.map +0 -1
  1014. package/dist/modes/interactive/components/mcp-selector.js +0 -155
  1015. package/dist/modes/interactive/components/mcp-selector.js.map +0 -1
  1016. package/dist/modes/interactive/components/model-selector-state.d.ts +0 -101
  1017. package/dist/modes/interactive/components/model-selector-state.d.ts.map +0 -1
  1018. package/dist/modes/interactive/components/model-selector-state.js +0 -261
  1019. package/dist/modes/interactive/components/model-selector-state.js.map +0 -1
  1020. package/dist/modes/interactive/components/skills-selector.d.ts +0 -32
  1021. package/dist/modes/interactive/components/skills-selector.d.ts.map +0 -1
  1022. package/dist/modes/interactive/components/skills-selector.js +0 -130
  1023. package/dist/modes/interactive/components/skills-selector.js.map +0 -1
  1024. package/dist/modes/interactive/theme/omk-blackboard.json +0 -91
  1025. package/dist/modes/interactive/theme/omk-freedom-grid.json +0 -91
  1026. package/dist/modes/interactive/theme/omk-neon-ops.json +0 -90
  1027. package/dist/modes/interactive/theme/omk-slate-light.json +0 -91
  1028. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -72
  1029. package/node_modules/@earendil-works/omk-agent-core/README.md +0 -488
  1030. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts +0 -24
  1031. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts.map +0 -1
  1032. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js +0 -553
  1033. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js.map +0 -1
  1034. package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts +0 -118
  1035. package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts.map +0 -1
  1036. package/node_modules/@earendil-works/omk-agent-core/dist/agent.js +0 -402
  1037. package/node_modules/@earendil-works/omk-agent-core/dist/agent.js.map +0 -1
  1038. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts +0 -95
  1039. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts.map +0 -1
  1040. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js +0 -996
  1041. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js.map +0 -1
  1042. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts +0 -53
  1043. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +0 -1
  1044. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js +0 -175
  1045. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js.map +0 -1
  1046. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts +0 -117
  1047. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts.map +0 -1
  1048. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js +0 -568
  1049. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js.map +0 -1
  1050. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts +0 -25
  1051. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts.map +0 -1
  1052. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js +0 -131
  1053. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js.map +0 -1
  1054. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts +0 -51
  1055. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts.map +0 -1
  1056. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js +0 -510
  1057. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js.map +0 -1
  1058. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts +0 -51
  1059. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts.map +0 -1
  1060. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js +0 -102
  1061. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js.map +0 -1
  1062. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts +0 -48
  1063. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts.map +0 -1
  1064. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js +0 -230
  1065. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js.map +0 -1
  1066. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts +0 -26
  1067. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts.map +0 -1
  1068. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js +0 -101
  1069. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js.map +0 -1
  1070. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts +0 -36
  1071. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts.map +0 -1
  1072. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js +0 -273
  1073. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js.map +0 -1
  1074. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts +0 -18
  1075. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts.map +0 -1
  1076. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js +0 -42
  1077. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js.map +0 -1
  1078. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts +0 -25
  1079. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts.map +0 -1
  1080. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js +0 -114
  1081. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js.map +0 -1
  1082. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts +0 -11
  1083. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts.map +0 -1
  1084. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js +0 -39
  1085. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js.map +0 -1
  1086. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts +0 -33
  1087. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts.map +0 -1
  1088. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js +0 -210
  1089. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js.map +0 -1
  1090. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts +0 -2
  1091. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts.map +0 -1
  1092. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js +0 -50
  1093. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js.map +0 -1
  1094. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts +0 -44
  1095. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts.map +0 -1
  1096. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js +0 -311
  1097. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js.map +0 -1
  1098. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts +0 -3
  1099. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts.map +0 -1
  1100. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js +0 -30
  1101. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js.map +0 -1
  1102. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts +0 -616
  1103. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts.map +0 -1
  1104. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js +0 -94
  1105. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js.map +0 -1
  1106. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts +0 -14
  1107. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts.map +0 -1
  1108. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js +0 -126
  1109. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js.map +0 -1
  1110. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts +0 -70
  1111. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts.map +0 -1
  1112. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js +0 -297
  1113. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js.map +0 -1
  1114. package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts +0 -20
  1115. package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts.map +0 -1
  1116. package/node_modules/@earendil-works/omk-agent-core/dist/index.js +0 -25
  1117. package/node_modules/@earendil-works/omk-agent-core/dist/index.js.map +0 -1
  1118. package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts +0 -3
  1119. package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts.map +0 -1
  1120. package/node_modules/@earendil-works/omk-agent-core/dist/node.js +0 -3
  1121. package/node_modules/@earendil-works/omk-agent-core/dist/node.js.map +0 -1
  1122. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts +0 -69
  1123. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts.map +0 -1
  1124. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js +0 -278
  1125. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js.map +0 -1
  1126. package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts +0 -393
  1127. package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts.map +0 -1
  1128. package/node_modules/@earendil-works/omk-agent-core/dist/types.js +0 -2
  1129. package/node_modules/@earendil-works/omk-agent-core/dist/types.js.map +0 -1
  1130. package/node_modules/@earendil-works/omk-agent-core/package.json +0 -60
  1131. package/node_modules/@earendil-works/omk-ai/README.md +0 -1389
  1132. package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts +0 -20
  1133. package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts.map +0 -1
  1134. package/node_modules/@earendil-works/omk-ai/dist/api-registry.js +0 -44
  1135. package/node_modules/@earendil-works/omk-ai/dist/api-registry.js.map +0 -1
  1136. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts +0 -5
  1137. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts.map +0 -1
  1138. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js +0 -6
  1139. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js.map +0 -1
  1140. package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts +0 -3
  1141. package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts.map +0 -1
  1142. package/node_modules/@earendil-works/omk-ai/dist/cli.js +0 -130
  1143. package/node_modules/@earendil-works/omk-ai/dist/cli.js.map +0 -1
  1144. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts +0 -20
  1145. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts.map +0 -1
  1146. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js +0 -199
  1147. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js.map +0 -1
  1148. package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts +0 -10
  1149. package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts.map +0 -1
  1150. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts +0 -515
  1151. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts.map +0 -1
  1152. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js +0 -517
  1153. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js.map +0 -1
  1154. package/node_modules/@earendil-works/omk-ai/dist/image-models.js +0 -23
  1155. package/node_modules/@earendil-works/omk-ai/dist/image-models.js.map +0 -1
  1156. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts +0 -14
  1157. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts.map +0 -1
  1158. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js +0 -22
  1159. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js.map +0 -1
  1160. package/node_modules/@earendil-works/omk-ai/dist/images.d.ts +0 -4
  1161. package/node_modules/@earendil-works/omk-ai/dist/images.d.ts.map +0 -1
  1162. package/node_modules/@earendil-works/omk-ai/dist/images.js +0 -16
  1163. package/node_modules/@earendil-works/omk-ai/dist/images.js.map +0 -1
  1164. package/node_modules/@earendil-works/omk-ai/dist/index.d.ts +0 -33
  1165. package/node_modules/@earendil-works/omk-ai/dist/index.d.ts.map +0 -1
  1166. package/node_modules/@earendil-works/omk-ai/dist/index.js +0 -21
  1167. package/node_modules/@earendil-works/omk-ai/dist/index.js.map +0 -1
  1168. package/node_modules/@earendil-works/omk-ai/dist/models.d.ts +0 -18
  1169. package/node_modules/@earendil-works/omk-ai/dist/models.d.ts.map +0 -1
  1170. package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts +0 -18762
  1171. package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts.map +0 -1
  1172. package/node_modules/@earendil-works/omk-ai/dist/models.generated.js +0 -17197
  1173. package/node_modules/@earendil-works/omk-ai/dist/models.generated.js.map +0 -1
  1174. package/node_modules/@earendil-works/omk-ai/dist/models.js +0 -78
  1175. package/node_modules/@earendil-works/omk-ai/dist/models.js.map +0 -1
  1176. package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts +0 -2
  1177. package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts.map +0 -1
  1178. package/node_modules/@earendil-works/omk-ai/dist/oauth.js +0 -2
  1179. package/node_modules/@earendil-works/omk-ai/dist/oauth.js.map +0 -1
  1180. package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts +0 -39
  1181. package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts.map +0 -1
  1182. package/node_modules/@earendil-works/omk-ai/dist/provider-network.js +0 -170
  1183. package/node_modules/@earendil-works/omk-ai/dist/provider-network.js.map +0 -1
  1184. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts +0 -38
  1185. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts.map +0 -1
  1186. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js +0 -826
  1187. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js.map +0 -1
  1188. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts +0 -77
  1189. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts.map +0 -1
  1190. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js +0 -1123
  1191. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js.map +0 -1
  1192. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts +0 -15
  1193. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts.map +0 -1
  1194. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js +0 -221
  1195. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js.map +0 -1
  1196. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts +0 -13
  1197. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts.map +0 -1
  1198. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js +0 -26
  1199. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js.map +0 -1
  1200. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts +0 -56
  1201. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts.map +0 -1
  1202. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js +0 -368
  1203. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js.map +0 -1
  1204. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts +0 -8
  1205. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts.map +0 -1
  1206. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js +0 -29
  1207. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js.map +0 -1
  1208. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts +0 -70
  1209. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts.map +0 -1
  1210. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js +0 -331
  1211. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js.map +0 -1
  1212. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts +0 -15
  1213. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts.map +0 -1
  1214. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js +0 -442
  1215. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js.map +0 -1
  1216. package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts +0 -13
  1217. package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts.map +0 -1
  1218. package/node_modules/@earendil-works/omk-ai/dist/providers/google.js +0 -402
  1219. package/node_modules/@earendil-works/omk-ai/dist/providers/google.js.map +0 -1
  1220. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts +0 -3
  1221. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts.map +0 -1
  1222. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js +0 -128
  1223. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js.map +0 -1
  1224. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts +0 -4
  1225. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts.map +0 -1
  1226. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js +0 -34
  1227. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js.map +0 -1
  1228. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts +0 -25
  1229. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts.map +0 -1
  1230. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js +0 -534
  1231. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js.map +0 -1
  1232. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts +0 -30
  1233. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts.map +0 -1
  1234. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js +0 -1171
  1235. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js.map +0 -1
  1236. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts +0 -19
  1237. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts.map +0 -1
  1238. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js +0 -977
  1239. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js.map +0 -1
  1240. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts +0 -11
  1241. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts.map +0 -1
  1242. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js +0 -22
  1243. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js.map +0 -1
  1244. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts +0 -18
  1245. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts.map +0 -1
  1246. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js +0 -496
  1247. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js.map +0 -1
  1248. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts +0 -13
  1249. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts.map +0 -1
  1250. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js +0 -233
  1251. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js.map +0 -1
  1252. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts +0 -35
  1253. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts.map +0 -1
  1254. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js +0 -254
  1255. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js.map +0 -1
  1256. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts +0 -8
  1257. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts.map +0 -1
  1258. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js +0 -42
  1259. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js.map +0 -1
  1260. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts +0 -13
  1261. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts.map +0 -1
  1262. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js +0 -82
  1263. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js.map +0 -1
  1264. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts +0 -8
  1265. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts.map +0 -1
  1266. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js +0 -184
  1267. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js.map +0 -1
  1268. package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts +0 -4
  1269. package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts.map +0 -1
  1270. package/node_modules/@earendil-works/omk-ai/dist/session-resources.js +0 -22
  1271. package/node_modules/@earendil-works/omk-ai/dist/session-resources.js.map +0 -1
  1272. package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts +0 -8
  1273. package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts.map +0 -1
  1274. package/node_modules/@earendil-works/omk-ai/dist/stream.js +0 -77
  1275. package/node_modules/@earendil-works/omk-ai/dist/stream.js.map +0 -1
  1276. package/node_modules/@earendil-works/omk-ai/dist/types.d.ts +0 -570
  1277. package/node_modules/@earendil-works/omk-ai/dist/types.d.ts.map +0 -1
  1278. package/node_modules/@earendil-works/omk-ai/dist/types.js +0 -2
  1279. package/node_modules/@earendil-works/omk-ai/dist/types.js.map +0 -1
  1280. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts +0 -6
  1281. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts.map +0 -1
  1282. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js +0 -34
  1283. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js.map +0 -1
  1284. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts +0 -19
  1285. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts.map +0 -1
  1286. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js +0 -25
  1287. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js.map +0 -1
  1288. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts +0 -21
  1289. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts.map +0 -1
  1290. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js +0 -81
  1291. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js.map +0 -1
  1292. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts +0 -3
  1293. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts.map +0 -1
  1294. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js +0 -14
  1295. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js.map +0 -1
  1296. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts +0 -2
  1297. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts.map +0 -1
  1298. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js +0 -8
  1299. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js.map +0 -1
  1300. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts +0 -16
  1301. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts.map +0 -1
  1302. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js +0 -113
  1303. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js.map +0 -1
  1304. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts +0 -10
  1305. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts.map +0 -1
  1306. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js +0 -97
  1307. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js.map +0 -1
  1308. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts +0 -25
  1309. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts.map +0 -1
  1310. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js +0 -335
  1311. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js.map +0 -1
  1312. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts +0 -21
  1313. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts.map +0 -1
  1314. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js +0 -56
  1315. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js.map +0 -1
  1316. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts +0 -30
  1317. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts.map +0 -1
  1318. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js +0 -280
  1319. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js.map +0 -1
  1320. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts +0 -58
  1321. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts.map +0 -1
  1322. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js +0 -122
  1323. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js.map +0 -1
  1324. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts +0 -3
  1325. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts.map +0 -1
  1326. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js +0 -105
  1327. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js.map +0 -1
  1328. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts +0 -43
  1329. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts.map +0 -1
  1330. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js +0 -487
  1331. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js.map +0 -1
  1332. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts +0 -13
  1333. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts.map +0 -1
  1334. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js +0 -31
  1335. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js.map +0 -1
  1336. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts +0 -64
  1337. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts.map +0 -1
  1338. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js +0 -2
  1339. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js.map +0 -1
  1340. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts +0 -57
  1341. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts.map +0 -1
  1342. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js +0 -154
  1343. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js.map +0 -1
  1344. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts +0 -22
  1345. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts.map +0 -1
  1346. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js +0 -26
  1347. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js.map +0 -1
  1348. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts +0 -17
  1349. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts.map +0 -1
  1350. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js +0 -21
  1351. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js.map +0 -1
  1352. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts +0 -18
  1353. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts.map +0 -1
  1354. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js +0 -281
  1355. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js.map +0 -1
  1356. package/node_modules/@earendil-works/omk-ai/package.json +0 -106
  1357. package/node_modules/@earendil-works/omk-tui/README.md +0 -791
  1358. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts +0 -54
  1359. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts.map +0 -1
  1360. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js +0 -632
  1361. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js.map +0 -1
  1362. package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts +0 -22
  1363. package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts.map +0 -1
  1364. package/node_modules/@earendil-works/omk-tui/dist/components/box.js +0 -104
  1365. package/node_modules/@earendil-works/omk-tui/dist/components/box.js.map +0 -1
  1366. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts +0 -22
  1367. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts.map +0 -1
  1368. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js +0 -35
  1369. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js.map +0 -1
  1370. package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts +0 -249
  1371. package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts.map +0 -1
  1372. package/node_modules/@earendil-works/omk-tui/dist/components/editor.js +0 -1857
  1373. package/node_modules/@earendil-works/omk-tui/dist/components/editor.js.map +0 -1
  1374. package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts +0 -28
  1375. package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts.map +0 -1
  1376. package/node_modules/@earendil-works/omk-tui/dist/components/image.js +0 -89
  1377. package/node_modules/@earendil-works/omk-tui/dist/components/image.js.map +0 -1
  1378. package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts +0 -37
  1379. package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts.map +0 -1
  1380. package/node_modules/@earendil-works/omk-tui/dist/components/input.js +0 -378
  1381. package/node_modules/@earendil-works/omk-tui/dist/components/input.js.map +0 -1
  1382. package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts +0 -31
  1383. package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts.map +0 -1
  1384. package/node_modules/@earendil-works/omk-tui/dist/components/loader.js +0 -69
  1385. package/node_modules/@earendil-works/omk-tui/dist/components/loader.js.map +0 -1
  1386. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts +0 -96
  1387. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts.map +0 -1
  1388. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js +0 -644
  1389. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js.map +0 -1
  1390. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts +0 -50
  1391. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts.map +0 -1
  1392. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js +0 -159
  1393. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js.map +0 -1
  1394. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts +0 -50
  1395. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts.map +0 -1
  1396. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js +0 -185
  1397. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js.map +0 -1
  1398. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts +0 -12
  1399. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts.map +0 -1
  1400. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js +0 -23
  1401. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js.map +0 -1
  1402. package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts +0 -19
  1403. package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts.map +0 -1
  1404. package/node_modules/@earendil-works/omk-tui/dist/components/text.js +0 -89
  1405. package/node_modules/@earendil-works/omk-tui/dist/components/text.js.map +0 -1
  1406. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts +0 -13
  1407. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts.map +0 -1
  1408. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js +0 -51
  1409. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js.map +0 -1
  1410. package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts +0 -39
  1411. package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts.map +0 -1
  1412. package/node_modules/@earendil-works/omk-tui/dist/editor-component.js +0 -2
  1413. package/node_modules/@earendil-works/omk-tui/dist/editor-component.js.map +0 -1
  1414. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts +0 -16
  1415. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts.map +0 -1
  1416. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js +0 -110
  1417. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js.map +0 -1
  1418. package/node_modules/@earendil-works/omk-tui/dist/index.d.ts +0 -23
  1419. package/node_modules/@earendil-works/omk-tui/dist/index.d.ts.map +0 -1
  1420. package/node_modules/@earendil-works/omk-tui/dist/index.js +0 -32
  1421. package/node_modules/@earendil-works/omk-tui/dist/index.js.map +0 -1
  1422. package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts +0 -212
  1423. package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts.map +0 -1
  1424. package/node_modules/@earendil-works/omk-tui/dist/keybindings.js +0 -252
  1425. package/node_modules/@earendil-works/omk-tui/dist/keybindings.js.map +0 -1
  1426. package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts +0 -184
  1427. package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts.map +0 -1
  1428. package/node_modules/@earendil-works/omk-tui/dist/keys.js +0 -1173
  1429. package/node_modules/@earendil-works/omk-tui/dist/keys.js.map +0 -1
  1430. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts +0 -28
  1431. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts.map +0 -1
  1432. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js +0 -44
  1433. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js.map +0 -1
  1434. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts +0 -3
  1435. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts.map +0 -1
  1436. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js +0 -53
  1437. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js.map +0 -1
  1438. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts +0 -50
  1439. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts.map +0 -1
  1440. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js +0 -361
  1441. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js.map +0 -1
  1442. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts +0 -90
  1443. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts.map +0 -1
  1444. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js +0 -366
  1445. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js.map +0 -1
  1446. package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts +0 -113
  1447. package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts.map +0 -1
  1448. package/node_modules/@earendil-works/omk-tui/dist/terminal.js +0 -472
  1449. package/node_modules/@earendil-works/omk-tui/dist/terminal.js.map +0 -1
  1450. package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts +0 -242
  1451. package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts.map +0 -1
  1452. package/node_modules/@earendil-works/omk-tui/dist/tui.js +0 -1221
  1453. package/node_modules/@earendil-works/omk-tui/dist/tui.js.map +0 -1
  1454. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts +0 -17
  1455. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts.map +0 -1
  1456. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js +0 -25
  1457. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js.map +0 -1
  1458. package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts +0 -84
  1459. package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts.map +0 -1
  1460. package/node_modules/@earendil-works/omk-tui/dist/utils.js +0 -1032
  1461. package/node_modules/@earendil-works/omk-tui/dist/utils.js.map +0 -1
  1462. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts +0 -25
  1463. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts.map +0 -1
  1464. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js +0 -96
  1465. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js.map +0 -1
  1466. package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  1467. package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  1468. package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  1469. package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
  1470. package/node_modules/@earendil-works/omk-tui/package.json +0 -47
@@ -1,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":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,MAAM,kBAAkB,GAC3B,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,oBAAoB,GACpB,QAAQ,GACR,YAAY,GACZ,kBAAkB,GAClB,gBAAgB,GAChB,SAAS,CAAC;AAEb,MAAM,MAAM,cAAc,GACvB,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,aAAa,GACb,SAAS,GACT,WAAW,CAAC;AAEf,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEzE,MAAM,WAAW,yBAAyB;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IACpD,QAAQ,CAAC,gBAAgB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACvD,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;IACxF,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACvF,QAAQ,CAAC,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,iBAAiB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EACD,yBAAyB,GACzB,qBAAqB,GACrB,oBAAoB,GACpB,6BAA6B,GAC7B,yBAAyB,CAAC;IAC7B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IAC1C,aAAa,EAAE,sCAAsC,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,QAAQ,GAAG,mBAAmB,CAAC;CAC3C;AAwBD,wBAAgB,8BAA8B,IAAI,wBAAwB,CAqDzE;AAED,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,SAAS,kBAAkB,EAAE,EAChD,cAAc,EAAE,SAAS,gBAAgB,EAAE,GACzC,mBAAmB,EAAE,CAevB;AAED,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,MAAM,EAAE,wBAAwB,GAC9B,mBAAmB,EAAE,CAcvB;AAED,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,SAAS,kBAAkB,EAAE,EAChD,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,MAAM,EAAE,wBAAwB,GAC9B,mBAAmB,EAAE,CAgBvB;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,GAAG,yBAAyB,CAGnH;AAED,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,wBAAwB,GAC9B,kBAAkB,EAAE,CAWtB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,wBAAwB,GAAG,iBAAiB,CAkG3G;AAED,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,SAAS,gBAAgB,EAAE,EACnC,UAAU,EAAE,wBAAwB,GAClC,iBAAiB,EAAE,CAiBrB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,aAAa,CAYxE;AAED,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,QAAQ,GAAG,mBAAmB,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CAAO,GACvE,0BAA0B,CAY5B","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"]}