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 +0,0 @@
1
- {"version":3,"file":"policy-overlays-runtime.js","sourceRoot":"","sources":["../../src/core/policy-overlays-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { resolve } from \"node:path\";\nimport type {\n\tTraceContentTier,\n\tTraceEnvironment,\n\tTraceJsonObject,\n\tTraceJsonValue,\n\tTraceSink,\n} from \"./observability-trace.ts\";\nimport { sanitizeTraceData } from \"./observability-trace.ts\";\nimport type { DeferredReason, ExportPolicyOverlay, PolicyOverlay } from \"./package-procurement.ts\";\n\n// ---------------------------------------------------------------------------\n// Shared types\n// ---------------------------------------------------------------------------\n\nexport type PolicyDomain = \"observability\" | \"memory\" | \"advisor\" | \"simplify\" | \"todo\" | \"cache-optimizer\";\n\nexport type PolicyDecision =\n\t| { kind: \"allow\"; rule: string; reason: string }\n\t| { kind: \"deny\"; rule: string; reason: string }\n\t| { kind: \"defer\"; rule: string; reason: string; deferredReason: DeferredReason };\n\nexport type PolicyTraceContentTier = TraceContentTier | \"full\";\n\nexport interface ObservabilityExportRequest {\n\tsink: TraceSink;\n\tcontentTier: PolicyTraceContentTier;\n\tenv: TraceEnvironment;\n\tdata: TraceJsonObject;\n}\n\nexport type MemoryStore = \"memory\" | \"supermemory\";\nexport type MemoryOperation = \"read\" | \"write\" | \"replay\";\nexport type MemoryWriteSource =\n\t| \"user-explicit\"\n\t| \"compaction-summary\"\n\t| \"branch-summary\"\n\t| \"session-digest\"\n\t| \"harness-control\"\n\t| \"extension\";\nexport type MemoryContentTier = \"metadata\" | \"summary\" | \"evidence\" | \"raw\";\nexport type MemoryLaneAuthority = \"none\" | \"read\" | \"write-sanitized\" | \"write-global\";\nexport type MemoryNamespaceScope = \"project\" | \"session\" | \"goal\" | \"lane\" | \"user\";\nexport type MemorySanitizerCategory = \"secret\" | \"auth\" | \"pii\" | \"path\" | \"rawTool\" | \"rawPrompt\" | \"binary\";\n\nexport interface MemoryNamespaceRequest {\n\tscope: MemoryNamespaceScope;\n\tprojectRoot?: string;\n\tsessionId?: string;\n\tgoalId?: string;\n\tlaneId?: string;\n\ttopic?: string;\n}\n\nexport interface MemoryPolicyContext {\n\tcwd: string;\n\tsessionId?: string;\n\tgoalId?: string;\n\tlaneId?: string;\n\tuserId?: string;\n\tlaneAuthority: MemoryLaneAuthority;\n\toffline?: boolean;\n}\n\nexport interface MemoryAccessRequest {\n\tkind: MemoryOperation;\n\tstore: MemoryStore;\n\tkey?: string;\n\tnamespace?: MemoryNamespaceRequest;\n\tsource?: MemoryWriteSource;\n\tcontentTier?: MemoryContentTier;\n\tpayload?: unknown;\n}\n\nexport interface SanitizerOptions {\n\tsource: MemoryWriteSource;\n\tcontentTier: MemoryContentTier;\n\tmaxChars: number;\n\texternal: boolean;\n}\n\nexport interface SanitizerFindingSummary {\n\tsanitized: boolean;\n\tdenied: boolean;\n\tcategories: Partial<Record<MemorySanitizerCategory, number>>;\n\tredactionCount: number;\n\toriginalChars: number;\n\tkeptChars: number;\n\tdigest: string;\n}\n\nexport interface MemorySanitizerResult {\n\tpayload: TraceJsonValue;\n\tfindings: SanitizerFindingSummary;\n\treason?: string;\n}\n\nexport type MemoryNamespaceDecision =\n\t| { kind: \"allow\"; rule: string; reason: string; namespace: string; topic?: string }\n\t| { kind: \"deny\"; rule: string; reason: string }\n\t| { kind: \"defer\"; rule: string; reason: string; missing: string[] };\n\nexport type MemoryPolicyDecision =\n\t| {\n\t\t\tkind: \"allow\";\n\t\t\trule: string;\n\t\t\treason: string;\n\t\t\tnamespace: string;\n\t\t\tsanitizedPayload?: TraceJsonValue;\n\t\t\tfindings: SanitizerFindingSummary;\n\t }\n\t| { kind: \"deny\"; rule: string; reason: string; findings: SanitizerFindingSummary }\n\t| { kind: \"defer\"; rule: string; reason: string; missing: string[]; findings: SanitizerFindingSummary };\n\nexport interface ToolInvocationRequest {\n\tsource: \"advisor\" | \"simplify\" | \"harness-control\" | \"verification\" | \"package-manager\";\n\ttoolName: string;\n\ttoolCategory: \"read\" | \"write\" | \"shell\" | \"memory\" | \"other\";\n}\n\nexport interface TodoOverlayRequest {\n\ttext: string;\n\tsource: \"compaction-summary\" | \"user-explicit\";\n}\n\nexport interface CacheOptimizerRequest {\n\tmetrics: string[];\n\tgateDecision?: \"control\" | \"treatment\" | \"deferred\";\n}\n\n// ---------------------------------------------------------------------------\n// Observability export enforcer\n// ---------------------------------------------------------------------------\n\nconst TIER_RANK: Record<PolicyTraceContentTier, number> = {\n\tmetadata: 0,\n\tsummary: 1,\n\tfull: 2,\n};\n\nexport function enforceObservabilityExport(\n\tpolicy: ExportPolicyOverlay | undefined,\n\trequest: ObservabilityExportRequest,\n): PolicyDecision {\n\tif (policy === undefined || policy.defaultOff === true) {\n\t\tif (request.sink === \"braintrust\") {\n\t\t\treturn {\n\t\t\t\tkind: \"deny\",\n\t\t\t\trule: \"export.default_off\",\n\t\t\t\treason: \"External trace export disabled by default.\",\n\t\t\t};\n\t\t}\n\t}\n\tif (request.env.offline === true) {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"export.offline\",\n\t\t\treason: \"Offline mode disables external trace export.\",\n\t\t};\n\t}\n\tif (request.sink !== \"braintrust\") {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"export.local_sink\",\n\t\t\treason: \"Local sink does not export externally.\",\n\t\t};\n\t}\n\tif (policy?.payloadTier !== undefined && TIER_RANK[request.contentTier] > TIER_RANK[policy.payloadTier]) {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"export.tier_exceeded\",\n\t\t\treason: \"Requested content tier exceeds policy.\",\n\t\t};\n\t}\n\treturn {\n\t\tkind: \"allow\",\n\t\trule: \"export.allowed\",\n\t\treason: \"External trace export permitted by policy.\",\n\t};\n}\n\n// ---------------------------------------------------------------------------\n// Trace sanitization enforcer\n// ---------------------------------------------------------------------------\n\nconst PROMPT_KEY_PATTERN = /(?:prompt|completion|response)/i;\nconst TOOL_KEY_PATTERN = /tool[_-]?(?:output|input|call|result)|toolCall|toolResult/i;\n\nfunction dropKeys(value: TraceJsonValue, patterns: readonly RegExp[]): TraceJsonValue {\n\tif (value === null || typeof value !== \"object\") {\n\t\treturn value;\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.map((entry) => dropKeys(entry, patterns));\n\t}\n\tconst result: TraceJsonObject = {};\n\tfor (const [key, entry] of Object.entries(value)) {\n\t\tif (patterns.some((pattern) => pattern.test(key))) {\n\t\t\tcontinue;\n\t\t}\n\t\tresult[key] = dropKeys(entry, patterns);\n\t}\n\treturn result;\n}\n\nexport function sanitizeForExportPolicy(\n\tpolicy: ExportPolicyOverlay | undefined,\n\tdata: TraceJsonObject,\n): TraceJsonObject {\n\tconst patterns: RegExp[] = [];\n\tif (policy?.denyRawPrompt === true) {\n\t\tpatterns.push(PROMPT_KEY_PATTERN);\n\t}\n\tif (policy?.denyRawToolOutput === true) {\n\t\tpatterns.push(TOOL_KEY_PATTERN);\n\t}\n\tconst base = sanitizeTraceData(data);\n\tif (patterns.length === 0) {\n\t\treturn base;\n\t}\n\treturn dropKeys(base, patterns) as TraceJsonObject;\n}\n\n// ---------------------------------------------------------------------------\n// Memory namespace / sanitizer / access enforcer\n// ---------------------------------------------------------------------------\n\nconst MEMORY_REDACTED = \"[redacted]\";\nconst MEMORY_BINARY_REDACTED = \"[redacted:binary]\";\nconst MEMORY_TRUNCATION_MARKER = \"…[omk-memory:truncated]…\";\nconst MAX_MEMORY_SANITIZER_DEPTH = 6;\nconst MAX_MEMORY_OBJECT_KEYS = 80;\nconst MAX_MEMORY_ARRAY_ITEMS = 80;\nconst LOCAL_MEMORY_MAX_CHARS = 8_000;\nconst EXTERNAL_MEMORY_MAX_CHARS = 4_000;\nconst OMITTED_MEMORY_VALUE = Symbol(\"omitted-memory-value\");\nconst NAMESPACE_COMPONENT_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,120}$/;\nconst TOPIC_PATTERN = /^[a-z0-9][a-z0-9._/-]{0,120}$/;\nconst SENSITIVE_MEMORY_KEY_PATTERN =\n\t/(?:secret|token|api[_-]?key|authorization|password|credential|private[_-]?key|cookie|session|refresh[_-]?token|access[_-]?token)/i;\nconst AUTH_MEMORY_KEY_PATTERN = /(?:authorization|cookie|session|refresh[_-]?token|access[_-]?token|token)/i;\nconst PRIVATE_KEY_PATTERN = /-----BEGIN [^-]+PRIVATE KEY-----[\\s\\S]*?-----END [^-]+PRIVATE KEY-----/g;\nconst SSH_PRIVATE_KEY_PATTERN = /-----BEGIN OPENSSH PRIVATE KEY-----[\\s\\S]*?-----END OPENSSH PRIVATE KEY-----/g;\nconst BEARER_PATTERN = /Bearer\\s+[A-Za-z0-9._~+/=-]{8,}/gi;\nconst JWT_PATTERN = /\\beyJ[A-Za-z0-9_-]{5,}\\.[A-Za-z0-9_-]{5,}\\.[A-Za-z0-9_-]{5,}\\b/g;\nconst PROVIDER_TOKEN_PATTERN = /\\bsk-(?:proj-|ant-)?[A-Za-z0-9_-]{16,}\\b/g;\nconst SERVICE_TOKEN_PATTERN =\n\t/\\b(?:ghp|gho|ghu|ghs|ghr|github_pat|npm|xox[baprs]|rk_live|sk_live)_[A-Za-z0-9_=-]{16,}\\b/g;\nconst AWS_ACCESS_KEY_PATTERN = /\\bAKIA[0-9A-Z]{16}\\b/g;\nconst ENV_SECRET_ASSIGNMENT_PATTERN =\n\t/(^|\\n)([A-Z0-9_]*(?:SECRET|TOKEN|API[_-]?KEY|PASSWORD|CREDENTIAL|PRIVATE[_-]?KEY)[A-Z0-9_]*\\s*=\\s*)([^\\s]+)/gi;\nconst SECRET_KEY_VALUE_PATTERN =\n\t/(^|[\\s,;{[(])([A-Z0-9_.-]*(?:SECRET|TOKEN|API[_-]?KEY|APIKEY|AUTHORIZATION|PASSWORD|CREDENTIAL|PRIVATE[_-]?KEY|COOKIE|SESSION|REFRESH[_-]?TOKEN|ACCESS[_-]?TOKEN)[A-Z0-9_.-]*\\s*[:=]\\s*)(?:\"([^\"\\r\\n]*)\"|'([^'\\r\\n]*)'|([^\\s,;}\\])]+))/gi;\nconst EMAIL_PATTERN = /\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}\\b/gi;\nconst PHONE_PATTERN = /\\b\\+?\\d[\\d\\s().-]{7,}\\d\\b/g;\nconst SSN_PATTERN = /\\b\\d{3}-\\d{2}-\\d{4}\\b/g;\nconst CREDIT_CARD_PATTERN = /\\b(?:\\d[ -]*?){13,19}\\b/g;\nconst HOME_PATH_PATTERN = /(?:\\/home|\\/Users)\\/[^/\\s:]+/g;\nconst GENERIC_HIGH_ENTROPY_PATTERN = /\\b(?=[A-Za-z0-9+/=_-]{32,}\\b)(?=.*[A-Za-z])(?=.*\\d)[A-Za-z0-9+/=_-]+\\b/g;\n\ntype SanitizedMemoryValue = TraceJsonValue | typeof OMITTED_MEMORY_VALUE;\n\ninterface MutableSanitizerState {\n\tcategories: Partial<Record<MemorySanitizerCategory, number>>;\n\tredactionCount: number;\n\tprivateKeyBlocked: boolean;\n\ttruncated: boolean;\n}\n\nfunction sha256Text(value: string): string {\n\treturn createHash(\"sha256\").update(value).digest(\"hex\");\n}\n\nfunction canonicalMemoryJson(value: TraceJsonValue): string {\n\tif (value === null) return \"null\";\n\tif (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n\t\treturn JSON.stringify(value);\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn `[${value.map((entry) => canonicalMemoryJson(entry)).join(\",\")}]`;\n\t}\n\treturn `{${Object.keys(value)\n\t\t.sort()\n\t\t.map((key) => `${JSON.stringify(key)}:${canonicalMemoryJson(value[key] ?? null)}`)\n\t\t.join(\",\")}}`;\n}\n\nfunction createEmptyMemoryFindings(originalChars = 0): SanitizerFindingSummary {\n\treturn {\n\t\tsanitized: false,\n\t\tdenied: false,\n\t\tcategories: {},\n\t\tredactionCount: 0,\n\t\toriginalChars,\n\t\tkeptChars: 0,\n\t\tdigest: sha256Text(\"null\"),\n\t};\n}\n\nfunction recordMemoryFinding(state: MutableSanitizerState, category: MemorySanitizerCategory, count = 1): void {\n\tstate.categories[category] = (state.categories[category] ?? 0) + count;\n\tstate.redactionCount += count;\n}\n\nfunction measureUnknownChars(value: unknown): number {\n\ttry {\n\t\tconst serialized = JSON.stringify(value);\n\t\treturn serialized?.length ?? String(value).length;\n\t} catch {\n\t\treturn String(value).length;\n\t}\n}\n\nfunction boundMemoryString(value: string, maxChars: number): { text: string; truncated: boolean } {\n\tconst budget = Number.isFinite(maxChars) ? Math.max(0, Math.floor(maxChars)) : 0;\n\tif (budget <= 0) return { text: \"\", truncated: value.length > 0 };\n\tif (value.length <= budget) return { text: value, truncated: false };\n\tconst marker = MEMORY_TRUNCATION_MARKER.length < budget ? MEMORY_TRUNCATION_MARKER : budget >= 3 ? \"…\" : \"\";\n\tconst contentBudget = Math.max(0, budget - marker.length);\n\tconst headBudget = Math.floor(contentBudget / 2);\n\tconst tailBudget = Math.max(0, contentBudget - headBudget);\n\treturn {\n\t\ttext: `${value.slice(0, headBudget)}${marker}${value.slice(Math.max(0, value.length - tailBudget))}`,\n\t\ttruncated: true,\n\t};\n}\n\nfunction redactMemoryString(value: string, state: MutableSanitizerState, maxChars: number): string {\n\tlet redacted = value;\n\tredacted = redacted.replace(PRIVATE_KEY_PATTERN, () => {\n\t\tstate.privateKeyBlocked = true;\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(SSH_PRIVATE_KEY_PATTERN, () => {\n\t\tstate.privateKeyBlocked = true;\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(ENV_SECRET_ASSIGNMENT_PATTERN, (_match: string, prefix: string, assignment: string) => {\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn `${prefix}${assignment}${MEMORY_REDACTED}`;\n\t});\n\tredacted = redacted.replace(BEARER_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"auth\");\n\t\treturn `Bearer ${MEMORY_REDACTED}`;\n\t});\n\tredacted = redacted.replace(JWT_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"auth\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(PROVIDER_TOKEN_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(SERVICE_TOKEN_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(AWS_ACCESS_KEY_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(\n\t\tSECRET_KEY_VALUE_PATTERN,\n\t\t(\n\t\t\tmatch: string,\n\t\t\tprefix: string,\n\t\t\tassignment: string,\n\t\t\tdoubleQuoted: string | undefined,\n\t\t\tsingleQuoted: string | undefined,\n\t\t\tbare: string | undefined,\n\t\t) => {\n\t\t\tconst value = doubleQuoted ?? singleQuoted ?? bare ?? \"\";\n\t\t\tif (value.includes(MEMORY_REDACTED) || value.includes(\"[redacted\")) return match;\n\t\t\trecordMemoryFinding(state, categoryForSensitiveKey(assignment));\n\t\t\tif (doubleQuoted !== undefined) return `${prefix}${assignment}\"${MEMORY_REDACTED}\"`;\n\t\t\tif (singleQuoted !== undefined) return `${prefix}${assignment}'${MEMORY_REDACTED}'`;\n\t\t\treturn `${prefix}${assignment}${MEMORY_REDACTED}`;\n\t\t},\n\t);\n\tredacted = redacted.replace(EMAIL_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"pii\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(SSN_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"pii\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(CREDIT_CARD_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"pii\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(PHONE_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"pii\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tredacted = redacted.replace(HOME_PATH_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"path\");\n\t\treturn \"~\";\n\t});\n\tredacted = redacted.replace(GENERIC_HIGH_ENTROPY_PATTERN, () => {\n\t\trecordMemoryFinding(state, \"secret\");\n\t\treturn MEMORY_REDACTED;\n\t});\n\tconst bounded = boundMemoryString(redacted, maxChars);\n\tif (bounded.truncated) state.truncated = true;\n\treturn bounded.text;\n}\n\nfunction isSessionDerivedMemorySource(source: MemoryWriteSource): boolean {\n\treturn source !== \"user-explicit\";\n}\n\nfunction categoryForSensitiveKey(key: string): MemorySanitizerCategory {\n\treturn AUTH_MEMORY_KEY_PATTERN.test(key) ? \"auth\" : \"secret\";\n}\n\nfunction isPlainObject(value: object): value is Record<string, unknown> {\n\treturn Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null;\n}\n\nfunction sanitizeMemoryValue(\n\tvalue: unknown,\n\toptions: SanitizerOptions,\n\tstate: MutableSanitizerState,\n\tdepth: number,\n\tseen: WeakSet<object>,\n): SanitizedMemoryValue {\n\tif (value === null) return null;\n\tif (typeof value === \"string\") return redactMemoryString(value, state, options.maxChars);\n\tif (typeof value === \"number\") return Number.isFinite(value) ? value : String(value);\n\tif (typeof value === \"boolean\") return value;\n\tif (typeof value === \"bigint\") return value.toString();\n\tif (typeof value === \"undefined\") return \"\";\n\tif (typeof value === \"function\" || typeof value === \"symbol\") return String(value);\n\tif (depth >= MAX_MEMORY_SANITIZER_DEPTH) return \"[max-depth]\";\n\n\tif (value instanceof ArrayBuffer || ArrayBuffer.isView(value)) {\n\t\trecordMemoryFinding(state, \"binary\");\n\t\treturn MEMORY_BINARY_REDACTED;\n\t}\n\tif (value instanceof Date) return value.toISOString();\n\tif (value instanceof Error) {\n\t\treturn {\n\t\t\tname: redactMemoryString(value.name, state, options.maxChars),\n\t\t\tmessage: redactMemoryString(value.message, state, options.maxChars),\n\t\t};\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.slice(0, MAX_MEMORY_ARRAY_ITEMS).map((entry) => {\n\t\t\tconst sanitized = sanitizeMemoryValue(entry, options, state, depth + 1, seen);\n\t\t\treturn sanitized === OMITTED_MEMORY_VALUE ? MEMORY_REDACTED : sanitized;\n\t\t});\n\t}\n\tif (typeof value === \"object\") {\n\t\tif (seen.has(value)) return \"[circular]\";\n\t\tseen.add(value);\n\t\tconst entries = isPlainObject(value)\n\t\t\t? Object.entries(value)\n\t\t\t: Object.entries(value).slice(0, MAX_MEMORY_OBJECT_KEYS);\n\t\tconst result: TraceJsonObject = {};\n\t\tfor (const [key, entry] of entries.slice(0, MAX_MEMORY_OBJECT_KEYS)) {\n\t\t\tif (SENSITIVE_MEMORY_KEY_PATTERN.test(key)) {\n\t\t\t\tif (/private[_-]?key/i.test(key)) state.privateKeyBlocked = true;\n\t\t\t\trecordMemoryFinding(state, categoryForSensitiveKey(key));\n\t\t\t\tresult[key] = MEMORY_REDACTED;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (isSessionDerivedMemorySource(options.source) && options.contentTier !== \"evidence\") {\n\t\t\t\tif (PROMPT_KEY_PATTERN.test(key)) {\n\t\t\t\t\trecordMemoryFinding(state, \"rawPrompt\");\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (TOOL_KEY_PATTERN.test(key)) {\n\t\t\t\t\trecordMemoryFinding(state, \"rawTool\");\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst sanitized = sanitizeMemoryValue(entry, options, state, depth + 1, seen);\n\t\t\tif (sanitized !== OMITTED_MEMORY_VALUE) result[key] = sanitized;\n\t\t}\n\t\tseen.delete(value);\n\t\treturn result;\n\t}\n\treturn String(value);\n}\n\nfunction boundSanitizedPayload(value: TraceJsonValue, maxChars: number, state: MutableSanitizerState): TraceJsonValue {\n\tconst canonical = canonicalMemoryJson(value);\n\tif (canonical.length <= maxChars) return value;\n\tconst bounded = boundMemoryString(canonical, maxChars);\n\tif (bounded.truncated) state.truncated = true;\n\treturn bounded.text;\n}\n\nfunction isEmptyMemoryPayload(value: TraceJsonValue): boolean {\n\tif (value === null) return true;\n\tif (typeof value === \"string\") return value.trim().length === 0;\n\tif (Array.isArray(value)) return value.length === 0;\n\tif (typeof value === \"object\") return Object.keys(value).length === 0;\n\treturn false;\n}\n\nfunction sanitizerDenyReason(\n\tpayload: TraceJsonValue,\n\toptions: SanitizerOptions,\n\tstate: MutableSanitizerState,\n): string | undefined {\n\tif (state.privateKeyBlocked) return \"memory.sanitizer.private_key\";\n\tconst sensitiveCount = (state.categories.secret ?? 0) + (state.categories.auth ?? 0);\n\tif (sensitiveCount >= 3 && sensitiveCount * 2 >= Math.max(1, state.redactionCount)) {\n\t\treturn \"memory.sanitizer.high_secret_density\";\n\t}\n\tif (options.contentTier !== \"metadata\" && isEmptyMemoryPayload(payload)) return \"memory.sanitizer.empty_payload\";\n\treturn undefined;\n}\n\nexport function sanitizeMemoryPayload(payload: unknown, options: SanitizerOptions): MemorySanitizerResult {\n\tconst originalChars = measureUnknownChars(payload);\n\tconst state: MutableSanitizerState = {\n\t\tcategories: {},\n\t\tredactionCount: 0,\n\t\tprivateKeyBlocked: false,\n\t\ttruncated: false,\n\t};\n\tconst sanitizedValue = sanitizeMemoryValue(payload, options, state, 0, new WeakSet<object>());\n\tconst sanitizedPayload = sanitizedValue === OMITTED_MEMORY_VALUE ? null : sanitizedValue;\n\tconst boundedPayload = boundSanitizedPayload(sanitizedPayload, options.maxChars, state);\n\tconst canonicalPayload = canonicalMemoryJson(boundedPayload);\n\tconst reason = sanitizerDenyReason(boundedPayload, options, state);\n\treturn {\n\t\tpayload: boundedPayload,\n\t\tfindings: {\n\t\t\tsanitized: state.redactionCount > 0 || state.truncated,\n\t\t\tdenied: reason !== undefined,\n\t\t\tcategories: state.categories,\n\t\t\tredactionCount: state.redactionCount,\n\t\t\toriginalChars,\n\t\t\tkeptChars: canonicalPayload.length,\n\t\t\tdigest: sha256Text(canonicalPayload),\n\t\t},\n\t\treason,\n\t};\n}\n\nfunction canonicalProjectHash(root: string): string {\n\treturn sha256Text(resolve(root).replace(/\\\\/g, \"/\")).slice(0, 16);\n}\n\nfunction normalizeResolvedProjectPath(path: string): string {\n\tconst normalized = resolve(path).replace(/\\\\/g, \"/\");\n\tif (normalized.length > 1 && normalized.endsWith(\"/\")) return normalized.replace(/\\/+$/, \"\");\n\treturn normalized;\n}\n\nfunction isSameOrAncestorProjectRoot(projectRoot: string, cwd: string): boolean {\n\tconst root = normalizeResolvedProjectPath(projectRoot);\n\tconst current = normalizeResolvedProjectPath(cwd);\n\treturn current === root || current.startsWith(`${root}/`);\n}\n\nfunction resolveMemoryProjectRoot(\n\tcontext: MemoryPolicyContext,\n\trequest: MemoryNamespaceRequest,\n): MemoryNamespaceDecision | { kind: \"allow\"; projectRoot: string } {\n\tif (request.projectRoot === undefined) return { kind: \"allow\", projectRoot: context.cwd };\n\tif (isSameOrAncestorProjectRoot(request.projectRoot, context.cwd)) {\n\t\treturn { kind: \"allow\", projectRoot: request.projectRoot };\n\t}\n\treturn {\n\t\tkind: \"deny\",\n\t\trule: \"memory.namespace.project_root_mismatch\",\n\t\treason: \"Memory namespace project root must contain the active workspace.\",\n\t};\n}\n\nfunction validateNamespaceComponent(name: string, value: string): MemoryNamespaceDecision | undefined {\n\tif (NAMESPACE_COMPONENT_PATTERN.test(value)) return undefined;\n\treturn {\n\t\tkind: \"deny\",\n\t\trule: \"memory.namespace.invalid_component\",\n\t\treason: `${name} contains unsupported namespace characters.`,\n\t};\n}\n\nfunction normalizeMemoryTopic(topic: string | undefined): MemoryNamespaceDecision | { kind: \"allow\"; topic?: string } {\n\tif (topic === undefined) return { kind: \"allow\" };\n\tconst normalized = topic.trim().toLowerCase();\n\tif (\n\t\tnormalized.length === 0 ||\n\t\tnormalized.includes(\"..\") ||\n\t\tnormalized.startsWith(\"/\") ||\n\t\tnormalized.includes(\"\\\\\") ||\n\t\t/^[a-z][a-z0-9+.-]*:/.test(normalized) ||\n\t\t/[\\x00-\\x1f\\x7f]/.test(normalized) ||\n\t\t!TOPIC_PATTERN.test(normalized)\n\t) {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"memory.namespace.invalid_topic\",\n\t\t\treason: \"Memory namespace topic is not a safe relative suffix.\",\n\t\t};\n\t}\n\treturn { kind: \"allow\", topic: normalized };\n}\n\nfunction missingNamespaceDecision(missing: string[]): MemoryNamespaceDecision {\n\treturn {\n\t\tkind: \"defer\",\n\t\trule: \"memory.namespace.missing_context\",\n\t\treason: \"Memory namespace requires additional context.\",\n\t\tmissing,\n\t};\n}\n\nfunction appendMemoryTopic(namespace: string, topic: string | undefined): string {\n\treturn topic === undefined ? namespace : `${namespace}:${topic}`;\n}\n\nexport function deriveMemoryNamespace(\n\tcontext: MemoryPolicyContext,\n\trequest: MemoryNamespaceRequest,\n): MemoryNamespaceDecision {\n\tconst topic = normalizeMemoryTopic(request.topic);\n\tif (topic.kind !== \"allow\") return topic;\n\tconst projectRoot = resolveMemoryProjectRoot(context, request);\n\tif (!(\"projectRoot\" in projectRoot)) return projectRoot;\n\tconst projectHash = canonicalProjectHash(projectRoot.projectRoot);\n\tconst projectNamespace = `omk:project:${projectHash}`;\n\tif (request.scope === \"project\")\n\t\treturn {\n\t\t\tkind: \"allow\",\n\t\t\trule: \"memory.namespace.project\",\n\t\t\treason: \"Project namespace derived.\",\n\t\t\tnamespace: appendMemoryTopic(projectNamespace, topic.topic),\n\t\t\ttopic: topic.topic,\n\t\t};\n\n\tif (request.scope === \"session\") {\n\t\tconst sessionId = request.sessionId ?? context.sessionId;\n\t\tif (sessionId === undefined) return missingNamespaceDecision([\"sessionId\"]);\n\t\tconst invalid = validateNamespaceComponent(\"sessionId\", sessionId);\n\t\tif (invalid) return invalid;\n\t\treturn {\n\t\t\tkind: \"allow\",\n\t\t\trule: \"memory.namespace.session\",\n\t\t\treason: \"Session namespace derived.\",\n\t\t\tnamespace: appendMemoryTopic(`${projectNamespace}:session:${sessionId}`, topic.topic),\n\t\t\ttopic: topic.topic,\n\t\t};\n\t}\n\n\tif (request.scope === \"goal\") {\n\t\tconst goalId = request.goalId ?? context.goalId;\n\t\tif (goalId === undefined) return missingNamespaceDecision([\"goalId\"]);\n\t\tconst invalid = validateNamespaceComponent(\"goalId\", goalId);\n\t\tif (invalid) return invalid;\n\t\treturn {\n\t\t\tkind: \"allow\",\n\t\t\trule: \"memory.namespace.goal\",\n\t\t\treason: \"Goal namespace derived.\",\n\t\t\tnamespace: appendMemoryTopic(`${projectNamespace}:goal:${goalId}`, topic.topic),\n\t\t\ttopic: topic.topic,\n\t\t};\n\t}\n\n\tif (request.scope === \"lane\") {\n\t\tconst goalId = request.goalId ?? context.goalId;\n\t\tconst laneId = request.laneId ?? context.laneId;\n\t\tif (goalId === undefined || laneId === undefined) {\n\t\t\tconst missing = [\n\t\t\t\tgoalId === undefined ? \"goalId\" : undefined,\n\t\t\t\tlaneId === undefined ? \"laneId\" : undefined,\n\t\t\t].filter((entry): entry is string => entry !== undefined);\n\t\t\treturn missingNamespaceDecision(missing);\n\t\t}\n\t\tconst invalidGoal = validateNamespaceComponent(\"goalId\", goalId);\n\t\tif (invalidGoal) return invalidGoal;\n\t\tconst invalidLane = validateNamespaceComponent(\"laneId\", laneId);\n\t\tif (invalidLane) return invalidLane;\n\t\treturn {\n\t\t\tkind: \"allow\",\n\t\t\trule: \"memory.namespace.lane\",\n\t\t\treason: \"Lane namespace derived.\",\n\t\t\tnamespace: appendMemoryTopic(`${projectNamespace}:goal:${goalId}:lane:${laneId}`, topic.topic),\n\t\t\ttopic: topic.topic,\n\t\t};\n\t}\n\n\tconst userId = context.userId;\n\tif (userId === undefined) return missingNamespaceDecision([\"userId\"]);\n\treturn {\n\t\tkind: \"allow\",\n\t\trule: \"memory.namespace.user\",\n\t\treason: \"User namespace derived.\",\n\t\tnamespace: appendMemoryTopic(`omk:user:${sha256Text(userId).slice(0, 16)}`, topic.topic),\n\t\ttopic: topic.topic,\n\t};\n}\n\nfunction canReadMemory(authority: MemoryLaneAuthority): boolean {\n\treturn authority === \"read\" || authority === \"write-sanitized\" || authority === \"write-global\";\n}\n\nfunction canWriteMemory(authority: MemoryLaneAuthority): boolean {\n\treturn authority === \"write-sanitized\" || authority === \"write-global\";\n}\n\nfunction defaultMemoryContext(\n\toverlay: PolicyOverlay | undefined,\n\trequest: MemoryAccessRequest,\n\tcontext: MemoryPolicyContext | undefined,\n): MemoryPolicyContext {\n\treturn {\n\t\tcwd: context?.cwd ?? process.cwd(),\n\t\tsessionId: context?.sessionId,\n\t\tgoalId: context?.goalId,\n\t\tlaneId: context?.laneId,\n\t\tuserId: context?.userId,\n\t\tlaneAuthority:\n\t\t\tcontext?.laneAuthority ?? (overlay?.declaredUse === \"memory\" && request.kind === \"read\" ? \"read\" : \"none\"),\n\t\toffline: context?.offline,\n\t};\n}\n\nfunction denyMemory(rule: string, reason: string, findings = createEmptyMemoryFindings()): MemoryPolicyDecision {\n\treturn { kind: \"deny\", rule, reason, findings };\n}\n\nfunction deferMemory(\n\trule: string,\n\treason: string,\n\tmissing: string[],\n\tfindings = createEmptyMemoryFindings(),\n): MemoryPolicyDecision {\n\treturn { kind: \"defer\", rule, reason, missing, findings };\n}\n\nfunction namespaceToPolicyDecision(\n\tdecision: Exclude<MemoryNamespaceDecision, { kind: \"allow\" }>,\n): MemoryPolicyDecision {\n\tif (decision.kind === \"deny\") return denyMemory(decision.rule, decision.reason);\n\treturn deferMemory(decision.rule, decision.reason, decision.missing);\n}\n\nfunction missingRequestFields(request: MemoryAccessRequest): string[] {\n\treturn [\n\t\trequest.source === undefined ? \"source\" : undefined,\n\t\trequest.contentTier === undefined ? \"contentTier\" : undefined,\n\t].filter((entry): entry is string => entry !== undefined);\n}\n\nfunction memoryMaxChars(store: MemoryStore): number {\n\treturn store === \"supermemory\" ? EXTERNAL_MEMORY_MAX_CHARS : LOCAL_MEMORY_MAX_CHARS;\n}\n\nexport function enforceMemoryAccess(\n\toverlay: PolicyOverlay | undefined,\n\trequest: MemoryAccessRequest,\n\tcontext?: MemoryPolicyContext,\n): MemoryPolicyDecision {\n\tconst effectiveContext = defaultMemoryContext(overlay, request, context);\n\tconst namespaceDecision = deriveMemoryNamespace(effectiveContext, request.namespace ?? { scope: \"project\" });\n\tif (namespaceDecision.kind !== \"allow\") return namespaceToPolicyDecision(namespaceDecision);\n\n\tif (request.kind === \"read\") {\n\t\tif (!canReadMemory(effectiveContext.laneAuthority)) {\n\t\t\treturn denyMemory(\"memory.authority_denied\", \"Memory read requires lane memory authority.\");\n\t\t}\n\t\treturn {\n\t\t\tkind: \"allow\",\n\t\t\trule: \"memory.read_allowed\",\n\t\t\treason: \"Memory read permitted.\",\n\t\t\tnamespace: namespaceDecision.namespace,\n\t\t\tfindings: createEmptyMemoryFindings(),\n\t\t};\n\t}\n\n\tif (request.store === \"supermemory\" && request.contentTier === \"raw\") {\n\t\treturn denyMemory(\"memory.supermemory_raw_denied\", \"Supermemory does not accept raw memory payloads.\");\n\t}\n\tif (overlay?.declaredUse !== \"memory\") {\n\t\treturn denyMemory(\"memory.not_a_memory_lane\", \"Write/replay requested outside a memory lane.\");\n\t}\n\tif (overlay.advisoryOnly === true) {\n\t\treturn denyMemory(\"memory.advisory_only\", \"Memory lane is advisory-only; writes denied.\");\n\t}\n\tif (!canWriteMemory(effectiveContext.laneAuthority)) {\n\t\treturn denyMemory(\"memory.authority_denied\", \"Memory write requires sanitized-write lane authority.\");\n\t}\n\tif (request.kind === \"replay\" && overlay.replayInput !== true) {\n\t\treturn denyMemory(\"memory.no_replay\", \"Memory replay requires an explicit replayInput overlay.\");\n\t}\n\tif (effectiveContext.offline === true && request.store === \"supermemory\") {\n\t\treturn deferMemory(\"memory.supermemory_offline\", \"Supermemory writes are deferred while offline.\", [\"online\"]);\n\t}\n\tconst source = request.source;\n\tconst contentTier = request.contentTier;\n\tif (source === undefined || contentTier === undefined) {\n\t\tconst missing = missingRequestFields(request);\n\t\treturn deferMemory(\"memory.request.missing_context\", \"Memory write requires source and content tier.\", missing);\n\t}\n\tif (request.namespace?.scope === \"user\") {\n\t\tif (effectiveContext.laneAuthority !== \"write-global\" || source !== \"user-explicit\") {\n\t\t\treturn denyMemory(\n\t\t\t\t\"memory.global_authority_denied\",\n\t\t\t\t\"User/global memory writes require explicit global authority.\",\n\t\t\t);\n\t\t}\n\t}\n\tif (contentTier === \"raw\") {\n\t\tif (\n\t\t\trequest.store !== \"memory\" ||\n\t\t\tsource !== \"user-explicit\" ||\n\t\t\teffectiveContext.laneAuthority !== \"write-global\"\n\t\t) {\n\t\t\treturn denyMemory(\n\t\t\t\t\"memory.raw_denied\",\n\t\t\t\t\"Raw memory writes require explicit user-global local memory authority.\",\n\t\t\t);\n\t\t}\n\t}\n\n\tconst sanitized = sanitizeMemoryPayload(request.payload ?? null, {\n\t\tsource,\n\t\tcontentTier,\n\t\tmaxChars: memoryMaxChars(request.store),\n\t\texternal: request.store === \"supermemory\",\n\t});\n\tif (sanitized.findings.denied) {\n\t\treturn denyMemory(\n\t\t\tsanitized.reason ?? \"memory.sanitizer.denied\",\n\t\t\t\"Memory payload sanitizer denied persistence.\",\n\t\t\tsanitized.findings,\n\t\t);\n\t}\n\tif (contentTier === \"raw\" && sanitized.findings.redactionCount > 0) {\n\t\treturn denyMemory(\n\t\t\t\"memory.raw_sensitive_denied\",\n\t\t\t\"Raw memory payload contains sanitizer findings.\",\n\t\t\tsanitized.findings,\n\t\t);\n\t}\n\treturn {\n\t\tkind: \"allow\",\n\t\trule: request.kind === \"replay\" ? \"memory.replay_sanitized\" : \"memory.write_sanitized\",\n\t\treason: \"Memory payload permitted after sanitization.\",\n\t\tnamespace: namespaceDecision.namespace,\n\t\tsanitizedPayload: sanitized.payload,\n\t\tfindings: sanitized.findings,\n\t};\n}\n\n// ---------------------------------------------------------------------------\n// Advisor / simplify report-only tool enforcer\n// ---------------------------------------------------------------------------\n\nexport function enforceReportOnlyToolInvocation(\n\toverlay: PolicyOverlay | undefined,\n\trequest: ToolInvocationRequest,\n): PolicyDecision {\n\tif (request.source !== \"advisor\" && request.source !== \"simplify\") {\n\t\treturn {\n\t\t\tkind: \"allow\",\n\t\t\trule: \"source.not_advisor\",\n\t\t\treason: \"Source is not advisor/simplify.\",\n\t\t};\n\t}\n\tconst declaredUse = overlay?.declaredUse;\n\tconst hasReportOverlay =\n\t\toverlay?.mutationMode === \"report-only\" || declaredUse === \"advisor\" || declaredUse === \"quality\";\n\tif (!hasReportOverlay) {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"advisor.missing_overlay\",\n\t\t\treason: \"Advisor/simplify source requires a report-only overlay.\",\n\t\t};\n\t}\n\tif (request.toolCategory === \"write\" || request.toolCategory === \"shell\") {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"advisor.mutation_denied\",\n\t\t\treason: \"Advisor/simplify tools are report-only.\",\n\t\t};\n\t}\n\treturn {\n\t\tkind: \"allow\",\n\t\trule: \"advisor.read_allowed\",\n\t\treason: \"Read-only advisor/simplify tool permitted.\",\n\t};\n}\n\n// ---------------------------------------------------------------------------\n// Todo overlay classifier\n// ---------------------------------------------------------------------------\n\nfunction sanitizeStatusText(text: string): string {\n\treturn text.replace(/[\\x00-\\x08\\x0b-\\x1f\\x7f]/g, \"\").trim();\n}\n\nexport type TodoOverlayClassification =\n\t| { authoritative: false; display: string }\n\t| { authoritative: true; source: \"user-explicit\" };\n\nexport function classifyTodoOverlay(request: TodoOverlayRequest): TodoOverlayClassification {\n\tif (request.source === \"compaction-summary\") {\n\t\treturn { authoritative: false, display: sanitizeStatusText(request.text) };\n\t}\n\treturn { authoritative: true, source: \"user-explicit\" };\n}\n\n// ---------------------------------------------------------------------------\n// Cache optimizer A/B measurement gate\n// ---------------------------------------------------------------------------\n\nexport function enforceCacheOptimizerGate(\n\toverlay: PolicyOverlay | undefined,\n\trequest: CacheOptimizerRequest,\n): PolicyDecision {\n\tif (overlay?.declaredUse !== \"cache-perf\") {\n\t\treturn {\n\t\t\tkind: \"deny\",\n\t\t\trule: \"cache.not_a_cache_optimizer\",\n\t\t\treason: \"Cache optimizer gate requested for non-cache lane.\",\n\t\t};\n\t}\n\tif (request.metrics.length === 0) {\n\t\treturn {\n\t\t\tkind: \"defer\",\n\t\t\trule: \"pending-measurement-plan\",\n\t\t\treason: \"Cache optimizer requires metrics array.\",\n\t\t\tdeferredReason: \"pending-measurement-plan\",\n\t\t};\n\t}\n\tif (request.gateDecision !== \"treatment\") {\n\t\treturn {\n\t\t\tkind: \"defer\",\n\t\t\trule: \"pending-measurement-plan\",\n\t\t\treason: \"Cache optimizer awaiting A/B treatment decision.\",\n\t\t\tdeferredReason: \"pending-measurement-plan\",\n\t\t};\n\t}\n\treturn {\n\t\tkind: \"allow\",\n\t\trule: \"cache.treatment_allowed\",\n\t\treason: \"Cache optimizer treatment permitted.\",\n\t};\n}\n"]}
@@ -1,27 +0,0 @@
1
- import type { ReadAnchor } from "./read-anchors.ts";
2
- export interface ReadAnchorRegistryEntry {
3
- readonly anchor: ReadAnchor;
4
- readonly content: string;
5
- }
6
- export interface ReadAnchorRegistry {
7
- /** Store an anchor and the newline-normalized full-file content it was derived from. */
8
- register(anchor: ReadAnchor, normalizedContent: string): void;
9
- /** Look up a registered anchor and its stored content by readId. */
10
- get(readId: string): ReadAnchorRegistryEntry | undefined;
11
- /** Return all registered anchors for a path, newest first by registration time. */
12
- getByPath(path: string): ReadAnchor[];
13
- /** Evict every entry associated with a path. */
14
- invalidatePath(path: string): void;
15
- /** Evict every entry. */
16
- clear(): void;
17
- /** Number of currently stored anchors. */
18
- readonly size: number;
19
- }
20
- /** Create a factory that yields deterministic, sortable, unique read ids. */
21
- export declare function createMonotonicReadIdFactory(): () => string;
22
- /**
23
- * Create a per-session registry that maps read ids to anchors and supports
24
- * path-indexed invalidation and deterministic LRU eviction.
25
- */
26
- export declare function createReadAnchorRegistry(maxEntries?: number): ReadAnchorRegistry;
27
- //# sourceMappingURL=read-anchor-registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-anchor-registry.d.ts","sourceRoot":"","sources":["../../src/core/read-anchor-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IAClC,wFAAwF;IACxF,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,oEAAoE;IACpE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAAC;IACzD,mFAAmF;IACnF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IACtC,gDAAgD;IAChD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,yBAAyB;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAWD,6EAA6E;AAC7E,wBAAgB,4BAA4B,IAAI,MAAM,MAAM,CAM3D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,SAA+B,GAAG,kBAAkB,CAqFtG","sourcesContent":["import type { ReadAnchor } from \"./read-anchors.ts\";\n\nexport interface ReadAnchorRegistryEntry {\n\treadonly anchor: ReadAnchor;\n\treadonly content: string;\n}\n\nexport interface ReadAnchorRegistry {\n\t/** Store an anchor and the newline-normalized full-file content it was derived from. */\n\tregister(anchor: ReadAnchor, normalizedContent: string): void;\n\t/** Look up a registered anchor and its stored content by readId. */\n\tget(readId: string): ReadAnchorRegistryEntry | undefined;\n\t/** Return all registered anchors for a path, newest first by registration time. */\n\tgetByPath(path: string): ReadAnchor[];\n\t/** Evict every entry associated with a path. */\n\tinvalidatePath(path: string): void;\n\t/** Evict every entry. */\n\tclear(): void;\n\t/** Number of currently stored anchors. */\n\treadonly size: number;\n}\n\ninterface Entry extends ReadAnchorRegistryEntry {\n\t/** Monotonic registration order; determines \"newest first\" for path queries. */\n\treadonly registeredAt: number;\n\t/** Monotonic last-access counter; drives deterministic LRU eviction. */\n\tlastAccess: number;\n}\n\nconst DEFAULT_MAX_REGISTRY_ENTRIES = 1000;\n\n/** Create a factory that yields deterministic, sortable, unique read ids. */\nexport function createMonotonicReadIdFactory(): () => string {\n\tlet counter = 0;\n\treturn () => {\n\t\tcounter += 1;\n\t\treturn `ra-${counter.toString(36).padStart(12, \"0\")}`;\n\t};\n}\n\n/**\n * Create a per-session registry that maps read ids to anchors and supports\n * path-indexed invalidation and deterministic LRU eviction.\n */\nexport function createReadAnchorRegistry(maxEntries = DEFAULT_MAX_REGISTRY_ENTRIES): ReadAnchorRegistry {\n\tlet accessCounter = 0;\n\tconst byId = new Map<string, Entry>();\n\tconst byPath = new Map<string, Set<string>>();\n\n\tfunction touch(entry: Entry): Entry {\n\t\taccessCounter += 1;\n\t\treturn { ...entry, lastAccess: accessCounter };\n\t}\n\n\tfunction evictIfNeeded(): void {\n\t\tif (byId.size <= maxEntries) return;\n\t\tlet oldest: Entry | undefined;\n\t\tfor (const entry of byId.values()) {\n\t\t\tif (oldest === undefined || entry.lastAccess < oldest.lastAccess) {\n\t\t\t\toldest = entry;\n\t\t\t}\n\t\t}\n\t\tif (oldest === undefined) return;\n\t\tbyId.delete(oldest.anchor.readId);\n\t\tconst pathSet = byPath.get(oldest.anchor.path);\n\t\tif (pathSet) {\n\t\t\tpathSet.delete(oldest.anchor.readId);\n\t\t\tif (pathSet.size === 0) {\n\t\t\t\tbyPath.delete(oldest.anchor.path);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tregister(anchor, normalizedContent) {\n\t\t\taccessCounter += 1;\n\t\t\tconst entry: Entry = {\n\t\t\t\tanchor,\n\t\t\t\tcontent: normalizedContent,\n\t\t\t\tregisteredAt: accessCounter,\n\t\t\t\tlastAccess: accessCounter,\n\t\t\t};\n\t\t\tbyId.set(anchor.readId, entry);\n\t\t\tlet pathSet = byPath.get(anchor.path);\n\t\t\tif (!pathSet) {\n\t\t\t\tpathSet = new Set<string>();\n\t\t\t\tbyPath.set(anchor.path, pathSet);\n\t\t\t}\n\t\t\tpathSet.add(anchor.readId);\n\t\t\tevictIfNeeded();\n\t\t},\n\t\tget(readId) {\n\t\t\tconst entry = byId.get(readId);\n\t\t\tif (entry === undefined) return undefined;\n\t\t\tconst touched = touch(entry);\n\t\t\tbyId.set(readId, touched);\n\t\t\treturn { anchor: touched.anchor, content: touched.content };\n\t\t},\n\t\tgetByPath(path) {\n\t\t\tconst pathSet = byPath.get(path);\n\t\t\tif (pathSet === undefined) return [];\n\t\t\tconst anchors: ReadAnchor[] = [];\n\t\t\tfor (const readId of pathSet) {\n\t\t\t\tconst entry = byId.get(readId);\n\t\t\t\tif (entry === undefined) continue;\n\t\t\t\tconst touched = touch(entry);\n\t\t\t\tbyId.set(readId, touched);\n\t\t\t\tanchors.push(touched.anchor);\n\t\t\t}\n\t\t\tanchors.sort((a, b) => byId.get(b.readId)!.registeredAt - byId.get(a.readId)!.registeredAt);\n\t\t\treturn anchors;\n\t\t},\n\t\tinvalidatePath(path) {\n\t\t\tconst pathSet = byPath.get(path);\n\t\t\tif (pathSet === undefined) return;\n\t\t\tfor (const readId of pathSet) {\n\t\t\t\tbyId.delete(readId);\n\t\t\t}\n\t\t\tbyPath.delete(path);\n\t\t},\n\t\tclear() {\n\t\t\tbyId.clear();\n\t\t\tbyPath.clear();\n\t\t\taccessCounter = 0;\n\t\t},\n\t\tget size() {\n\t\t\treturn byId.size;\n\t\t},\n\t};\n}\n"]}
@@ -1,103 +0,0 @@
1
- const DEFAULT_MAX_REGISTRY_ENTRIES = 1000;
2
- /** Create a factory that yields deterministic, sortable, unique read ids. */
3
- export function createMonotonicReadIdFactory() {
4
- let counter = 0;
5
- return () => {
6
- counter += 1;
7
- return `ra-${counter.toString(36).padStart(12, "0")}`;
8
- };
9
- }
10
- /**
11
- * Create a per-session registry that maps read ids to anchors and supports
12
- * path-indexed invalidation and deterministic LRU eviction.
13
- */
14
- export function createReadAnchorRegistry(maxEntries = DEFAULT_MAX_REGISTRY_ENTRIES) {
15
- let accessCounter = 0;
16
- const byId = new Map();
17
- const byPath = new Map();
18
- function touch(entry) {
19
- accessCounter += 1;
20
- return { ...entry, lastAccess: accessCounter };
21
- }
22
- function evictIfNeeded() {
23
- if (byId.size <= maxEntries)
24
- return;
25
- let oldest;
26
- for (const entry of byId.values()) {
27
- if (oldest === undefined || entry.lastAccess < oldest.lastAccess) {
28
- oldest = entry;
29
- }
30
- }
31
- if (oldest === undefined)
32
- return;
33
- byId.delete(oldest.anchor.readId);
34
- const pathSet = byPath.get(oldest.anchor.path);
35
- if (pathSet) {
36
- pathSet.delete(oldest.anchor.readId);
37
- if (pathSet.size === 0) {
38
- byPath.delete(oldest.anchor.path);
39
- }
40
- }
41
- }
42
- return {
43
- register(anchor, normalizedContent) {
44
- accessCounter += 1;
45
- const entry = {
46
- anchor,
47
- content: normalizedContent,
48
- registeredAt: accessCounter,
49
- lastAccess: accessCounter,
50
- };
51
- byId.set(anchor.readId, entry);
52
- let pathSet = byPath.get(anchor.path);
53
- if (!pathSet) {
54
- pathSet = new Set();
55
- byPath.set(anchor.path, pathSet);
56
- }
57
- pathSet.add(anchor.readId);
58
- evictIfNeeded();
59
- },
60
- get(readId) {
61
- const entry = byId.get(readId);
62
- if (entry === undefined)
63
- return undefined;
64
- const touched = touch(entry);
65
- byId.set(readId, touched);
66
- return { anchor: touched.anchor, content: touched.content };
67
- },
68
- getByPath(path) {
69
- const pathSet = byPath.get(path);
70
- if (pathSet === undefined)
71
- return [];
72
- const anchors = [];
73
- for (const readId of pathSet) {
74
- const entry = byId.get(readId);
75
- if (entry === undefined)
76
- continue;
77
- const touched = touch(entry);
78
- byId.set(readId, touched);
79
- anchors.push(touched.anchor);
80
- }
81
- anchors.sort((a, b) => byId.get(b.readId).registeredAt - byId.get(a.readId).registeredAt);
82
- return anchors;
83
- },
84
- invalidatePath(path) {
85
- const pathSet = byPath.get(path);
86
- if (pathSet === undefined)
87
- return;
88
- for (const readId of pathSet) {
89
- byId.delete(readId);
90
- }
91
- byPath.delete(path);
92
- },
93
- clear() {
94
- byId.clear();
95
- byPath.clear();
96
- accessCounter = 0;
97
- },
98
- get size() {
99
- return byId.size;
100
- },
101
- };
102
- }
103
- //# sourceMappingURL=read-anchor-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-anchor-registry.js","sourceRoot":"","sources":["../../src/core/read-anchor-registry.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReadAnchor } from \"./read-anchors.ts\";\n\nexport interface ReadAnchorRegistryEntry {\n\treadonly anchor: ReadAnchor;\n\treadonly content: string;\n}\n\nexport interface ReadAnchorRegistry {\n\t/** Store an anchor and the newline-normalized full-file content it was derived from. */\n\tregister(anchor: ReadAnchor, normalizedContent: string): void;\n\t/** Look up a registered anchor and its stored content by readId. */\n\tget(readId: string): ReadAnchorRegistryEntry | undefined;\n\t/** Return all registered anchors for a path, newest first by registration time. */\n\tgetByPath(path: string): ReadAnchor[];\n\t/** Evict every entry associated with a path. */\n\tinvalidatePath(path: string): void;\n\t/** Evict every entry. */\n\tclear(): void;\n\t/** Number of currently stored anchors. */\n\treadonly size: number;\n}\n\ninterface Entry extends ReadAnchorRegistryEntry {\n\t/** Monotonic registration order; determines \"newest first\" for path queries. */\n\treadonly registeredAt: number;\n\t/** Monotonic last-access counter; drives deterministic LRU eviction. */\n\tlastAccess: number;\n}\n\nconst DEFAULT_MAX_REGISTRY_ENTRIES = 1000;\n\n/** Create a factory that yields deterministic, sortable, unique read ids. */\nexport function createMonotonicReadIdFactory(): () => string {\n\tlet counter = 0;\n\treturn () => {\n\t\tcounter += 1;\n\t\treturn `ra-${counter.toString(36).padStart(12, \"0\")}`;\n\t};\n}\n\n/**\n * Create a per-session registry that maps read ids to anchors and supports\n * path-indexed invalidation and deterministic LRU eviction.\n */\nexport function createReadAnchorRegistry(maxEntries = DEFAULT_MAX_REGISTRY_ENTRIES): ReadAnchorRegistry {\n\tlet accessCounter = 0;\n\tconst byId = new Map<string, Entry>();\n\tconst byPath = new Map<string, Set<string>>();\n\n\tfunction touch(entry: Entry): Entry {\n\t\taccessCounter += 1;\n\t\treturn { ...entry, lastAccess: accessCounter };\n\t}\n\n\tfunction evictIfNeeded(): void {\n\t\tif (byId.size <= maxEntries) return;\n\t\tlet oldest: Entry | undefined;\n\t\tfor (const entry of byId.values()) {\n\t\t\tif (oldest === undefined || entry.lastAccess < oldest.lastAccess) {\n\t\t\t\toldest = entry;\n\t\t\t}\n\t\t}\n\t\tif (oldest === undefined) return;\n\t\tbyId.delete(oldest.anchor.readId);\n\t\tconst pathSet = byPath.get(oldest.anchor.path);\n\t\tif (pathSet) {\n\t\t\tpathSet.delete(oldest.anchor.readId);\n\t\t\tif (pathSet.size === 0) {\n\t\t\t\tbyPath.delete(oldest.anchor.path);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tregister(anchor, normalizedContent) {\n\t\t\taccessCounter += 1;\n\t\t\tconst entry: Entry = {\n\t\t\t\tanchor,\n\t\t\t\tcontent: normalizedContent,\n\t\t\t\tregisteredAt: accessCounter,\n\t\t\t\tlastAccess: accessCounter,\n\t\t\t};\n\t\t\tbyId.set(anchor.readId, entry);\n\t\t\tlet pathSet = byPath.get(anchor.path);\n\t\t\tif (!pathSet) {\n\t\t\t\tpathSet = new Set<string>();\n\t\t\t\tbyPath.set(anchor.path, pathSet);\n\t\t\t}\n\t\t\tpathSet.add(anchor.readId);\n\t\t\tevictIfNeeded();\n\t\t},\n\t\tget(readId) {\n\t\t\tconst entry = byId.get(readId);\n\t\t\tif (entry === undefined) return undefined;\n\t\t\tconst touched = touch(entry);\n\t\t\tbyId.set(readId, touched);\n\t\t\treturn { anchor: touched.anchor, content: touched.content };\n\t\t},\n\t\tgetByPath(path) {\n\t\t\tconst pathSet = byPath.get(path);\n\t\t\tif (pathSet === undefined) return [];\n\t\t\tconst anchors: ReadAnchor[] = [];\n\t\t\tfor (const readId of pathSet) {\n\t\t\t\tconst entry = byId.get(readId);\n\t\t\t\tif (entry === undefined) continue;\n\t\t\t\tconst touched = touch(entry);\n\t\t\t\tbyId.set(readId, touched);\n\t\t\t\tanchors.push(touched.anchor);\n\t\t\t}\n\t\t\tanchors.sort((a, b) => byId.get(b.readId)!.registeredAt - byId.get(a.readId)!.registeredAt);\n\t\t\treturn anchors;\n\t\t},\n\t\tinvalidatePath(path) {\n\t\t\tconst pathSet = byPath.get(path);\n\t\t\tif (pathSet === undefined) return;\n\t\t\tfor (const readId of pathSet) {\n\t\t\t\tbyId.delete(readId);\n\t\t\t}\n\t\t\tbyPath.delete(path);\n\t\t},\n\t\tclear() {\n\t\t\tbyId.clear();\n\t\t\tbyPath.clear();\n\t\t\taccessCounter = 0;\n\t\t},\n\t\tget size() {\n\t\t\treturn byId.size;\n\t\t},\n\t};\n}\n"]}
@@ -1,22 +0,0 @@
1
- export interface ReadContentCache {
2
- /** Retrieve newline-normalized content by its file SHA-256. */
3
- get(fileSha256: string): string | undefined;
4
- /**
5
- * Store newline-normalized content keyed by file SHA-256. The path is
6
- * recorded so all hashes for a path can be evicted together when the file
7
- * is edited.
8
- */
9
- set(fileSha256: string, normalizedContent: string, path: string): void;
10
- /** Evict every cached hash that originated from the given path. */
11
- invalidatePath(path: string): void;
12
- /** Evict every entry. */
13
- clear(): void;
14
- /** Number of currently stored entries. */
15
- readonly size: number;
16
- }
17
- /**
18
- * Create a per-session content cache that avoids repeated disk reads and
19
- * newline-normalization for files whose bytes have not changed.
20
- */
21
- export declare function createReadContentCache(maxEntries?: number): ReadContentCache;
22
- //# sourceMappingURL=read-content-cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-content-cache.d.ts","sourceRoot":"","sources":["../../src/core/read-content-cache.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAChC,+DAA+D;IAC/D,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C;;;;OAIG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACvE,mEAAmE;IACnE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,yBAAyB;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAYD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,SAA4B,GAAG,gBAAgB,CAuE/F","sourcesContent":["export interface ReadContentCache {\n\t/** Retrieve newline-normalized content by its file SHA-256. */\n\tget(fileSha256: string): string | undefined;\n\t/**\n\t * Store newline-normalized content keyed by file SHA-256. The path is\n\t * recorded so all hashes for a path can be evicted together when the file\n\t * is edited.\n\t */\n\tset(fileSha256: string, normalizedContent: string, path: string): void;\n\t/** Evict every cached hash that originated from the given path. */\n\tinvalidatePath(path: string): void;\n\t/** Evict every entry. */\n\tclear(): void;\n\t/** Number of currently stored entries. */\n\treadonly size: number;\n}\n\ninterface CacheEntry {\n\treadonly fileSha256: string;\n\treadonly content: string;\n\treadonly path: string;\n\t/** Monotonic last-access counter; drives deterministic LRU eviction. */\n\tlastAccess: number;\n}\n\nconst DEFAULT_MAX_CACHE_ENTRIES = 64;\n\n/**\n * Create a per-session content cache that avoids repeated disk reads and\n * newline-normalization for files whose bytes have not changed.\n */\nexport function createReadContentCache(maxEntries = DEFAULT_MAX_CACHE_ENTRIES): ReadContentCache {\n\tlet accessCounter = 0;\n\tconst byHash = new Map<string, CacheEntry>();\n\tconst byPath = new Map<string, Set<string>>();\n\n\tfunction touch(entry: CacheEntry): CacheEntry {\n\t\taccessCounter += 1;\n\t\treturn { ...entry, lastAccess: accessCounter };\n\t}\n\n\tfunction evictIfNeeded(): void {\n\t\tif (byHash.size <= maxEntries) return;\n\t\tlet oldest: CacheEntry | undefined;\n\t\tfor (const entry of byHash.values()) {\n\t\t\tif (oldest === undefined || entry.lastAccess < oldest.lastAccess) {\n\t\t\t\toldest = entry;\n\t\t\t}\n\t\t}\n\t\tif (oldest === undefined) return;\n\t\tbyHash.delete(oldest.fileSha256);\n\t\tconst pathSet = byPath.get(oldest.path);\n\t\tif (pathSet) {\n\t\t\tpathSet.delete(oldest.fileSha256);\n\t\t\tif (pathSet.size === 0) {\n\t\t\t\tbyPath.delete(oldest.path);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tget(fileSha256) {\n\t\t\tconst entry = byHash.get(fileSha256);\n\t\t\tif (entry === undefined) return undefined;\n\t\t\tconst touched = touch(entry);\n\t\t\tbyHash.set(fileSha256, touched);\n\t\t\treturn touched.content;\n\t\t},\n\t\tset(fileSha256, normalizedContent, path) {\n\t\t\taccessCounter += 1;\n\t\t\tconst entry: CacheEntry = {\n\t\t\t\tfileSha256,\n\t\t\t\tcontent: normalizedContent,\n\t\t\t\tpath,\n\t\t\t\tlastAccess: accessCounter,\n\t\t\t};\n\t\t\tbyHash.set(fileSha256, entry);\n\t\t\tlet pathSet = byPath.get(path);\n\t\t\tif (!pathSet) {\n\t\t\t\tpathSet = new Set<string>();\n\t\t\t\tbyPath.set(path, pathSet);\n\t\t\t}\n\t\t\tpathSet.add(fileSha256);\n\t\t\tevictIfNeeded();\n\t\t},\n\t\tinvalidatePath(path) {\n\t\t\tconst pathSet = byPath.get(path);\n\t\t\tif (pathSet === undefined) return;\n\t\t\tfor (const fileSha256 of pathSet) {\n\t\t\t\tbyHash.delete(fileSha256);\n\t\t\t}\n\t\t\tbyPath.delete(path);\n\t\t},\n\t\tclear() {\n\t\t\tbyHash.clear();\n\t\t\tbyPath.clear();\n\t\t\taccessCounter = 0;\n\t\t},\n\t\tget size() {\n\t\t\treturn byHash.size;\n\t\t},\n\t};\n}\n"]}
@@ -1,79 +0,0 @@
1
- const DEFAULT_MAX_CACHE_ENTRIES = 64;
2
- /**
3
- * Create a per-session content cache that avoids repeated disk reads and
4
- * newline-normalization for files whose bytes have not changed.
5
- */
6
- export function createReadContentCache(maxEntries = DEFAULT_MAX_CACHE_ENTRIES) {
7
- let accessCounter = 0;
8
- const byHash = new Map();
9
- const byPath = new Map();
10
- function touch(entry) {
11
- accessCounter += 1;
12
- return { ...entry, lastAccess: accessCounter };
13
- }
14
- function evictIfNeeded() {
15
- if (byHash.size <= maxEntries)
16
- return;
17
- let oldest;
18
- for (const entry of byHash.values()) {
19
- if (oldest === undefined || entry.lastAccess < oldest.lastAccess) {
20
- oldest = entry;
21
- }
22
- }
23
- if (oldest === undefined)
24
- return;
25
- byHash.delete(oldest.fileSha256);
26
- const pathSet = byPath.get(oldest.path);
27
- if (pathSet) {
28
- pathSet.delete(oldest.fileSha256);
29
- if (pathSet.size === 0) {
30
- byPath.delete(oldest.path);
31
- }
32
- }
33
- }
34
- return {
35
- get(fileSha256) {
36
- const entry = byHash.get(fileSha256);
37
- if (entry === undefined)
38
- return undefined;
39
- const touched = touch(entry);
40
- byHash.set(fileSha256, touched);
41
- return touched.content;
42
- },
43
- set(fileSha256, normalizedContent, path) {
44
- accessCounter += 1;
45
- const entry = {
46
- fileSha256,
47
- content: normalizedContent,
48
- path,
49
- lastAccess: accessCounter,
50
- };
51
- byHash.set(fileSha256, entry);
52
- let pathSet = byPath.get(path);
53
- if (!pathSet) {
54
- pathSet = new Set();
55
- byPath.set(path, pathSet);
56
- }
57
- pathSet.add(fileSha256);
58
- evictIfNeeded();
59
- },
60
- invalidatePath(path) {
61
- const pathSet = byPath.get(path);
62
- if (pathSet === undefined)
63
- return;
64
- for (const fileSha256 of pathSet) {
65
- byHash.delete(fileSha256);
66
- }
67
- byPath.delete(path);
68
- },
69
- clear() {
70
- byHash.clear();
71
- byPath.clear();
72
- accessCounter = 0;
73
- },
74
- get size() {
75
- return byHash.size;
76
- },
77
- };
78
- }
79
- //# sourceMappingURL=read-content-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-content-cache.js","sourceRoot":"","sources":["../../src/core/read-content-cache.ts"],"names":[],"mappings":"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","sourcesContent":["export interface ReadContentCache {\n\t/** Retrieve newline-normalized content by its file SHA-256. */\n\tget(fileSha256: string): string | undefined;\n\t/**\n\t * Store newline-normalized content keyed by file SHA-256. The path is\n\t * recorded so all hashes for a path can be evicted together when the file\n\t * is edited.\n\t */\n\tset(fileSha256: string, normalizedContent: string, path: string): void;\n\t/** Evict every cached hash that originated from the given path. */\n\tinvalidatePath(path: string): void;\n\t/** Evict every entry. */\n\tclear(): void;\n\t/** Number of currently stored entries. */\n\treadonly size: number;\n}\n\ninterface CacheEntry {\n\treadonly fileSha256: string;\n\treadonly content: string;\n\treadonly path: string;\n\t/** Monotonic last-access counter; drives deterministic LRU eviction. */\n\tlastAccess: number;\n}\n\nconst DEFAULT_MAX_CACHE_ENTRIES = 64;\n\n/**\n * Create a per-session content cache that avoids repeated disk reads and\n * newline-normalization for files whose bytes have not changed.\n */\nexport function createReadContentCache(maxEntries = DEFAULT_MAX_CACHE_ENTRIES): ReadContentCache {\n\tlet accessCounter = 0;\n\tconst byHash = new Map<string, CacheEntry>();\n\tconst byPath = new Map<string, Set<string>>();\n\n\tfunction touch(entry: CacheEntry): CacheEntry {\n\t\taccessCounter += 1;\n\t\treturn { ...entry, lastAccess: accessCounter };\n\t}\n\n\tfunction evictIfNeeded(): void {\n\t\tif (byHash.size <= maxEntries) return;\n\t\tlet oldest: CacheEntry | undefined;\n\t\tfor (const entry of byHash.values()) {\n\t\t\tif (oldest === undefined || entry.lastAccess < oldest.lastAccess) {\n\t\t\t\toldest = entry;\n\t\t\t}\n\t\t}\n\t\tif (oldest === undefined) return;\n\t\tbyHash.delete(oldest.fileSha256);\n\t\tconst pathSet = byPath.get(oldest.path);\n\t\tif (pathSet) {\n\t\t\tpathSet.delete(oldest.fileSha256);\n\t\t\tif (pathSet.size === 0) {\n\t\t\t\tbyPath.delete(oldest.path);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tget(fileSha256) {\n\t\t\tconst entry = byHash.get(fileSha256);\n\t\t\tif (entry === undefined) return undefined;\n\t\t\tconst touched = touch(entry);\n\t\t\tbyHash.set(fileSha256, touched);\n\t\t\treturn touched.content;\n\t\t},\n\t\tset(fileSha256, normalizedContent, path) {\n\t\t\taccessCounter += 1;\n\t\t\tconst entry: CacheEntry = {\n\t\t\t\tfileSha256,\n\t\t\t\tcontent: normalizedContent,\n\t\t\t\tpath,\n\t\t\t\tlastAccess: accessCounter,\n\t\t\t};\n\t\t\tbyHash.set(fileSha256, entry);\n\t\t\tlet pathSet = byPath.get(path);\n\t\t\tif (!pathSet) {\n\t\t\t\tpathSet = new Set<string>();\n\t\t\t\tbyPath.set(path, pathSet);\n\t\t\t}\n\t\t\tpathSet.add(fileSha256);\n\t\t\tevictIfNeeded();\n\t\t},\n\t\tinvalidatePath(path) {\n\t\t\tconst pathSet = byPath.get(path);\n\t\t\tif (pathSet === undefined) return;\n\t\t\tfor (const fileSha256 of pathSet) {\n\t\t\t\tbyHash.delete(fileSha256);\n\t\t\t}\n\t\t\tbyPath.delete(path);\n\t\t},\n\t\tclear() {\n\t\t\tbyHash.clear();\n\t\t\tbyPath.clear();\n\t\t\taccessCounter = 0;\n\t\t},\n\t\tget size() {\n\t\t\treturn byHash.size;\n\t\t},\n\t};\n}\n"]}
@@ -1,57 +0,0 @@
1
- import { type SanitizerFindingSummary } from "./policy-overlays-runtime.ts";
2
- export interface BoundedDigestOptions {
3
- /** Hard ceiling on output character length. */
4
- maxChars: number;
5
- /** Fraction of retained content reserved for the beginning of the stream. */
6
- headRatio?: number;
7
- /** Separator inserted between pushed segments. */
8
- separator?: string;
9
- /** Marker inserted between retained head and tail when content is omitted. */
10
- marker?: string;
11
- /** Redact memory-sensitive text before it enters the digest. Defaults to true for runtime session paths. */
12
- sanitize?: boolean;
13
- }
14
- export interface BoundedDigestResult {
15
- text: string;
16
- truncated: boolean;
17
- originalChars: number;
18
- keptChars: number;
19
- }
20
- export declare const DEFAULT_SESSION_DIGEST_MAX_CHARS = 16000;
21
- export declare const DEFAULT_SESSION_FIRST_MESSAGE_MAX_CHARS = 2000;
22
- export declare const DEFAULT_DIGEST_HEAD_RATIO = 0.6;
23
- export declare const DEFAULT_DIGEST_MARKER = " \u2026[omk-digest:truncated]\u2026 ";
24
- export declare class BoundedDigestAccumulator {
25
- private readonly options;
26
- private head;
27
- private tail;
28
- private originalChars;
29
- private wroteAny;
30
- private overflowed;
31
- constructor(options: BoundedDigestOptions);
32
- push(segment: string): void;
33
- result(): BoundedDigestResult;
34
- private appendToHead;
35
- private appendToTail;
36
- }
37
- export declare function buildBoundedDigest(segments: readonly string[], options: BoundedDigestOptions): BoundedDigestResult;
38
- export declare function boundConversationTextForSummary(text: string, maxChars: number): string;
39
- export declare function boundSessionFirstMessage(text: string, maxChars?: number, sanitize?: boolean): string;
40
- export interface SanitizedDigestResult extends BoundedDigestResult {
41
- findings: SanitizerFindingSummary;
42
- }
43
- /**
44
- * Bound a digest of session-derived text segments while redacting secrets, auth
45
- * tokens, PII-like values, and home paths via the shared memory sanitizer.
46
- *
47
- * Sanitization (redaction) is applied per segment with a generous budget so only
48
- * redaction happens; the configured maxChars ceiling is then enforced by the
49
- * BoundedDigestAccumulator, preserving head/tail retention semantics.
50
- */
51
- export declare function boundAndSanitizeSessionDigest(segments: readonly string[], options: BoundedDigestOptions): SanitizedDigestResult;
52
- /**
53
- * Bound the first session message while redacting sanitizer-sensitive values.
54
- * Mirrors boundSessionFirstMessage() but sanitizes the source first.
55
- */
56
- export declare function boundAndSanitizeFirstMessage(text: string, maxChars?: number): SanitizedDigestResult;
57
- //# sourceMappingURL=session-digest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-digest.d.ts","sourceRoot":"","sources":["../../src/core/session-digest.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,uBAAuB,EAE5B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,oBAAoB;IACpC,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,gCAAgC,QAAS,CAAC;AACvD,eAAO,MAAM,uCAAuC,OAAQ,CAAC;AAC7D,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,qBAAqB,yCAA+B,CAAC;AAyClE,qBAAa,wBAAwB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAE3B,YAAY,OAAO,EAAE,oBAAoB,EAExC;IAED,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAW1B;IAED,MAAM,IAAI,mBAAmB,CAa5B;IAED,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,YAAY;CAYpB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,mBAAmB,CAMlH;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKtF;AAED,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAgD,EAC1D,QAAQ,UAAO,GACb,MAAM,CAOR;AAYD,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IACjE,QAAQ,EAAE,uBAAuB,CAAC;CAClC;AAaD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC5C,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,EAAE,oBAAoB,GAC3B,qBAAqB,CAgCvB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAgD,GACxD,qBAAqB,CAgBvB","sourcesContent":["import { createHash } from \"node:crypto\";\nimport {\n\ttype MemorySanitizerCategory,\n\ttype SanitizerFindingSummary,\n\tsanitizeMemoryPayload,\n} from \"./policy-overlays-runtime.ts\";\n\nexport interface BoundedDigestOptions {\n\t/** Hard ceiling on output character length. */\n\tmaxChars: number;\n\t/** Fraction of retained content reserved for the beginning of the stream. */\n\theadRatio?: number;\n\t/** Separator inserted between pushed segments. */\n\tseparator?: string;\n\t/** Marker inserted between retained head and tail when content is omitted. */\n\tmarker?: string;\n\t/** Redact memory-sensitive text before it enters the digest. Defaults to true for runtime session paths. */\n\tsanitize?: boolean;\n}\n\nexport interface BoundedDigestResult {\n\ttext: string;\n\ttruncated: boolean;\n\toriginalChars: number;\n\tkeptChars: number;\n}\n\nexport const DEFAULT_SESSION_DIGEST_MAX_CHARS = 16_000;\nexport const DEFAULT_SESSION_FIRST_MESSAGE_MAX_CHARS = 2_000;\nexport const DEFAULT_DIGEST_HEAD_RATIO = 0.6;\nexport const DEFAULT_DIGEST_MARKER = \" …[omk-digest:truncated]… \";\nconst FIRST_MESSAGE_TRUNCATION_MARKER = \" …[omk-first-message:truncated]\";\n\ninterface NormalizedDigestOptions {\n\tmaxChars: number;\n\theadRatio: number;\n\theadBudget: number;\n\ttailBudget: number;\n\tseparator: string;\n\tmarker: string;\n\tsanitize: boolean;\n}\n\nfunction fitTruncationMarker(marker: string, maxChars: number): string {\n\tif (maxChars <= 0) return \"\";\n\tif (marker.length < maxChars) return marker;\n\treturn maxChars >= 3 ? \"…\" : \"\";\n}\n\nfunction normalizeDigestOptions(options: BoundedDigestOptions): NormalizedDigestOptions {\n\tconst maxChars = Number.isFinite(options.maxChars) ? Math.max(0, Math.floor(options.maxChars)) : 0;\n\tconst ratioValue = options.headRatio ?? DEFAULT_DIGEST_HEAD_RATIO;\n\tconst headRatio = Number.isFinite(ratioValue) ? Math.min(1, Math.max(0, ratioValue)) : DEFAULT_DIGEST_HEAD_RATIO;\n\tconst separator = options.separator ?? \" \";\n\tconst marker = fitTruncationMarker(options.marker ?? DEFAULT_DIGEST_MARKER, maxChars);\n\tconst sanitize = options.sanitize ?? true;\n\tconst headBudget = Math.floor(maxChars * headRatio);\n\tconst tailBudget = Math.max(0, maxChars - headBudget);\n\treturn { maxChars, headRatio, headBudget, tailBudget, separator, marker, sanitize };\n}\n\nfunction sanitizeSessionDigestText(text: string): string {\n\tconst sanitized = sanitizeMemoryPayload(text, {\n\t\tsource: \"session-digest\",\n\t\tcontentTier: \"summary\",\n\t\tmaxChars: DIGEST_SANITIZER_MAX_CHARS,\n\t\texternal: false,\n\t});\n\treturn typeof sanitized.payload === \"string\" ? sanitized.payload : \"\";\n}\n\nexport class BoundedDigestAccumulator {\n\tprivate readonly options: NormalizedDigestOptions;\n\tprivate head = \"\";\n\tprivate tail = \"\";\n\tprivate originalChars = 0;\n\tprivate wroteAny = false;\n\tprivate overflowed = false;\n\n\tconstructor(options: BoundedDigestOptions) {\n\t\tthis.options = normalizeDigestOptions(options);\n\t}\n\n\tpush(segment: string): void {\n\t\tif (segment.length === 0 || this.options.maxChars <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst safeSegment = this.options.sanitize ? sanitizeSessionDigestText(segment) : segment;\n\t\tif (safeSegment.length === 0) return;\n\t\tconst piece = this.wroteAny ? `${this.options.separator}${safeSegment}` : safeSegment;\n\t\tthis.wroteAny = true;\n\t\tthis.originalChars += piece.length;\n\t\tthis.appendToHead(piece);\n\t}\n\n\tresult(): BoundedDigestResult {\n\t\tif (!this.overflowed) {\n\t\t\tconst text = this.head + this.tail;\n\t\t\treturn { text, truncated: false, originalChars: this.originalChars, keptChars: text.length };\n\t\t}\n\n\t\tconst contentBudget = Math.max(0, this.options.maxChars - this.options.marker.length);\n\t\tconst headBudget = Math.floor(contentBudget * this.options.headRatio);\n\t\tconst tailBudget = Math.max(0, contentBudget - headBudget);\n\t\tconst text = `${this.head.slice(0, headBudget)}${this.options.marker}${this.tail.slice(\n\t\t\tMath.max(0, this.tail.length - tailBudget),\n\t\t)}`;\n\t\treturn { text, truncated: true, originalChars: this.originalChars, keptChars: text.length };\n\t}\n\n\tprivate appendToHead(piece: string): void {\n\t\tconst headRemaining = this.options.headBudget - this.head.length;\n\t\tif (headRemaining > 0) {\n\t\t\tconst headPiece = piece.slice(0, headRemaining);\n\t\t\tthis.head += headPiece;\n\t\t\tconst rest = piece.slice(headPiece.length);\n\t\t\tif (rest.length > 0) {\n\t\t\t\tthis.appendToTail(rest);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthis.appendToTail(piece);\n\t}\n\n\tprivate appendToTail(piece: string): void {\n\t\tif (this.options.tailBudget <= 0) {\n\t\t\tthis.overflowed = true;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.tail += piece;\n\t\tif (this.tail.length > this.options.tailBudget) {\n\t\t\tthis.tail = this.tail.slice(this.tail.length - this.options.tailBudget);\n\t\t\tthis.overflowed = true;\n\t\t}\n\t}\n}\n\nexport function buildBoundedDigest(segments: readonly string[], options: BoundedDigestOptions): BoundedDigestResult {\n\tconst accumulator = new BoundedDigestAccumulator(options);\n\tfor (const segment of segments) {\n\t\taccumulator.push(segment);\n\t}\n\treturn accumulator.result();\n}\n\nexport function boundConversationTextForSummary(text: string, maxChars: number): string {\n\tif (!Number.isFinite(maxChars) || maxChars <= 0 || text.length <= maxChars) {\n\t\treturn text;\n\t}\n\treturn buildBoundedDigest([text], { maxChars, headRatio: 0.5 }).text;\n}\n\nexport function boundSessionFirstMessage(\n\ttext: string,\n\tmaxChars: number = DEFAULT_SESSION_FIRST_MESSAGE_MAX_CHARS,\n\tsanitize = true,\n): string {\n\tif (!Number.isFinite(maxChars) || maxChars <= 0) return \"\";\n\tconst safeText = sanitize ? sanitizeSessionDigestText(text) : text;\n\tif (safeText.length <= maxChars) return safeText;\n\tconst marker = fitTruncationMarker(FIRST_MESSAGE_TRUNCATION_MARKER, maxChars);\n\tconst contentBudget = Math.max(0, maxChars - marker.length);\n\treturn `${safeText.slice(0, contentBudget)}${marker}`;\n}\n\n// ---------------------------------------------------------------------------\n// Sanitized digest helpers (memory-policy runtime wiring)\n// ---------------------------------------------------------------------------\n\n/**\n * Generous per-segment sanitizer budget: redaction only, never truncates.\n * The real output budget is enforced by BoundedDigestAccumulator afterwards.\n */\nconst DIGEST_SANITIZER_MAX_CHARS = 2_000_000;\n\nexport interface SanitizedDigestResult extends BoundedDigestResult {\n\tfindings: SanitizerFindingSummary;\n}\n\nfunction mergeMemoryCategories(\n\ttarget: Partial<Record<MemorySanitizerCategory, number>>,\n\tsource: Partial<Record<MemorySanitizerCategory, number>>,\n): void {\n\tfor (const category of Object.keys(source) as MemorySanitizerCategory[]) {\n\t\tconst count = source[category];\n\t\tif (count === undefined) continue;\n\t\ttarget[category] = (target[category] ?? 0) + count;\n\t}\n}\n\n/**\n * Bound a digest of session-derived text segments while redacting secrets, auth\n * tokens, PII-like values, and home paths via the shared memory sanitizer.\n *\n * Sanitization (redaction) is applied per segment with a generous budget so only\n * redaction happens; the configured maxChars ceiling is then enforced by the\n * BoundedDigestAccumulator, preserving head/tail retention semantics.\n */\nexport function boundAndSanitizeSessionDigest(\n\tsegments: readonly string[],\n\toptions: BoundedDigestOptions,\n): SanitizedDigestResult {\n\tconst accumulator = new BoundedDigestAccumulator({ ...options, sanitize: false });\n\tconst categories: Partial<Record<MemorySanitizerCategory, number>> = {};\n\tlet redactionCount = 0;\n\tlet originalInputChars = 0;\n\n\tfor (const segment of segments) {\n\t\tif (segment.length === 0) continue;\n\t\toriginalInputChars += segment.length;\n\t\tconst sanitized = sanitizeMemoryPayload(segment, {\n\t\t\tsource: \"session-digest\",\n\t\t\tcontentTier: \"summary\",\n\t\t\tmaxChars: DIGEST_SANITIZER_MAX_CHARS,\n\t\t\texternal: false,\n\t\t});\n\t\tmergeMemoryCategories(categories, sanitized.findings.categories);\n\t\tredactionCount += sanitized.findings.redactionCount;\n\t\tconst payload = typeof sanitized.payload === \"string\" ? sanitized.payload : \"\";\n\t\taccumulator.push(payload);\n\t}\n\n\tconst result = accumulator.result();\n\tconst findings: SanitizerFindingSummary = {\n\t\tsanitized: redactionCount > 0,\n\t\tdenied: false,\n\t\tcategories,\n\t\tredactionCount,\n\t\toriginalChars: originalInputChars,\n\t\tkeptChars: result.keptChars,\n\t\tdigest: createHash(\"sha256\").update(result.text).digest(\"hex\"),\n\t};\n\treturn { ...result, findings };\n}\n\n/**\n * Bound the first session message while redacting sanitizer-sensitive values.\n * Mirrors boundSessionFirstMessage() but sanitizes the source first.\n */\nexport function boundAndSanitizeFirstMessage(\n\ttext: string,\n\tmaxChars: number = DEFAULT_SESSION_FIRST_MESSAGE_MAX_CHARS,\n): SanitizedDigestResult {\n\tconst sanitized = sanitizeMemoryPayload(text, {\n\t\tsource: \"session-digest\",\n\t\tcontentTier: \"summary\",\n\t\tmaxChars: DIGEST_SANITIZER_MAX_CHARS,\n\t\texternal: false,\n\t});\n\tconst payload = typeof sanitized.payload === \"string\" ? sanitized.payload : \"\";\n\tconst bounded = boundSessionFirstMessage(payload, maxChars, false);\n\treturn {\n\t\ttext: bounded,\n\t\ttruncated: bounded.length < payload.length,\n\t\toriginalChars: text.length,\n\t\tkeptChars: bounded.length,\n\t\tfindings: { ...sanitized.findings, keptChars: bounded.length },\n\t};\n}\n"]}