open-multi-agent-kit 0.80.7 → 0.90.0

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