open-multi-agent-kit 0.80.7 → 0.80.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1470) hide show
  1. package/CHANGELOG.md +4 -30
  2. package/README.md +80 -38
  3. package/dist/agents/jailbreak/index.d.ts +7 -0
  4. package/dist/agents/jailbreak/index.d.ts.map +1 -0
  5. package/dist/agents/jailbreak/index.js +7 -0
  6. package/dist/agents/jailbreak/index.js.map +1 -0
  7. package/dist/agents/jailbreak/subagent-f.d.ts +44 -0
  8. package/dist/agents/jailbreak/subagent-f.d.ts.map +1 -0
  9. package/dist/agents/jailbreak/subagent-f.js +60 -0
  10. package/dist/agents/jailbreak/subagent-f.js.map +1 -0
  11. package/dist/bun/register-bedrock.d.ts.map +1 -1
  12. package/dist/bun/register-bedrock.js +2 -2
  13. package/dist/bun/register-bedrock.js.map +1 -1
  14. package/dist/ci/verify-reporter.d.ts +22 -0
  15. package/dist/ci/verify-reporter.d.ts.map +1 -0
  16. package/dist/ci/verify-reporter.js +50 -0
  17. package/dist/ci/verify-reporter.js.map +1 -0
  18. package/dist/cli/args.d.ts +4 -1
  19. package/dist/cli/args.d.ts.map +1 -1
  20. package/dist/cli/args.js +7 -0
  21. package/dist/cli/args.js.map +1 -1
  22. package/dist/cli/config-selector.d.ts.map +1 -1
  23. package/dist/cli/config-selector.js +1 -1
  24. package/dist/cli/config-selector.js.map +1 -1
  25. package/dist/cli/file-processor.d.ts +1 -1
  26. package/dist/cli/file-processor.d.ts.map +1 -1
  27. package/dist/cli/file-processor.js.map +1 -1
  28. package/dist/cli/initial-message.d.ts +1 -1
  29. package/dist/cli/initial-message.d.ts.map +1 -1
  30. package/dist/cli/initial-message.js.map +1 -1
  31. package/dist/cli/jailbreak-args.d.ts +26 -0
  32. package/dist/cli/jailbreak-args.d.ts.map +1 -0
  33. package/dist/cli/jailbreak-args.js +86 -0
  34. package/dist/cli/jailbreak-args.js.map +1 -0
  35. package/dist/cli/list-models.d.ts.map +1 -1
  36. package/dist/cli/list-models.js +1 -1
  37. package/dist/cli/list-models.js.map +1 -1
  38. package/dist/cli/session-picker.d.ts.map +1 -1
  39. package/dist/cli/session-picker.js +1 -1
  40. package/dist/cli/session-picker.js.map +1 -1
  41. package/dist/commands/doctor-provider.d.ts +19 -0
  42. package/dist/commands/doctor-provider.d.ts.map +1 -0
  43. package/dist/commands/doctor-provider.js +123 -0
  44. package/dist/commands/doctor-provider.js.map +1 -0
  45. package/dist/commands/jailbreak.d.ts +49 -0
  46. package/dist/commands/jailbreak.d.ts.map +1 -0
  47. package/dist/commands/jailbreak.js +201 -0
  48. package/dist/commands/jailbreak.js.map +1 -0
  49. package/dist/config.d.ts +9 -5
  50. package/dist/config.d.ts.map +1 -1
  51. package/dist/config.js +33 -52
  52. package/dist/config.js.map +1 -1
  53. package/dist/core/agent-session-services.d.ts +2 -2
  54. package/dist/core/agent-session-services.d.ts.map +1 -1
  55. package/dist/core/agent-session-services.js.map +1 -1
  56. package/dist/core/agent-session.d.ts +16 -27
  57. package/dist/core/agent-session.d.ts.map +1 -1
  58. package/dist/core/agent-session.js +185 -89
  59. package/dist/core/agent-session.js.map +1 -1
  60. package/dist/core/auth-storage.d.ts +3 -6
  61. package/dist/core/auth-storage.d.ts.map +1 -1
  62. package/dist/core/auth-storage.js +7 -7
  63. package/dist/core/auth-storage.js.map +1 -1
  64. package/dist/core/bash-executor.d.ts +1 -0
  65. package/dist/core/bash-executor.d.ts.map +1 -1
  66. package/dist/core/bash-executor.js +1 -0
  67. package/dist/core/bash-executor.js.map +1 -1
  68. package/dist/core/browser-use.d.ts +45 -0
  69. package/dist/core/browser-use.d.ts.map +1 -0
  70. package/dist/core/browser-use.js +70 -0
  71. package/dist/core/browser-use.js.map +1 -0
  72. package/dist/core/command-safety-parser.d.ts +77 -0
  73. package/dist/core/command-safety-parser.d.ts.map +1 -0
  74. package/dist/core/command-safety-parser.js +763 -0
  75. package/dist/core/command-safety-parser.js.map +1 -0
  76. package/dist/core/command-safety.d.ts.map +1 -1
  77. package/dist/core/command-safety.js +106 -3
  78. package/dist/core/command-safety.js.map +1 -1
  79. package/dist/core/compaction/branch-summarization.d.ts +2 -2
  80. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  81. package/dist/core/compaction/branch-summarization.js +5 -21
  82. package/dist/core/compaction/branch-summarization.js.map +1 -1
  83. package/dist/core/compaction/compaction.d.ts +3 -101
  84. package/dist/core/compaction/compaction.d.ts.map +1 -1
  85. package/dist/core/compaction/compaction.js +21 -656
  86. package/dist/core/compaction/compaction.js.map +1 -1
  87. package/dist/core/compaction/utils.d.ts +2 -2
  88. package/dist/core/compaction/utils.d.ts.map +1 -1
  89. package/dist/core/compaction/utils.js.map +1 -1
  90. package/dist/core/compactor.d.ts +42 -0
  91. package/dist/core/compactor.d.ts.map +1 -0
  92. package/dist/core/compactor.js +131 -0
  93. package/dist/core/compactor.js.map +1 -0
  94. package/dist/core/context-budget-compressors.d.ts +50 -0
  95. package/dist/core/context-budget-compressors.d.ts.map +1 -0
  96. package/dist/core/context-budget-compressors.js +166 -0
  97. package/dist/core/context-budget-compressors.js.map +1 -0
  98. package/dist/core/context-budget-governor-v2.d.ts +7 -0
  99. package/dist/core/context-budget-governor-v2.d.ts.map +1 -0
  100. package/dist/core/context-budget-governor-v2.js +7 -0
  101. package/dist/core/context-budget-governor-v2.js.map +1 -0
  102. package/dist/core/context-budget-governor.d.ts +67 -0
  103. package/dist/core/context-budget-governor.d.ts.map +1 -0
  104. package/dist/core/context-budget-governor.js +224 -0
  105. package/dist/core/context-budget-governor.js.map +1 -0
  106. package/dist/core/context-budget-headroom-candidates.d.ts +3 -0
  107. package/dist/core/context-budget-headroom-candidates.d.ts.map +1 -0
  108. package/dist/core/context-budget-headroom-candidates.js +85 -0
  109. package/dist/core/context-budget-headroom-candidates.js.map +1 -0
  110. package/dist/core/context-budget-headroom-types.d.ts +67 -0
  111. package/dist/core/context-budget-headroom-types.d.ts.map +1 -0
  112. package/dist/core/context-budget-headroom-types.js +46 -0
  113. package/dist/core/context-budget-headroom-types.js.map +1 -0
  114. package/dist/core/context-budget-headroom.d.ts +5 -0
  115. package/dist/core/context-budget-headroom.d.ts.map +1 -0
  116. package/dist/core/context-budget-headroom.js +123 -0
  117. package/dist/core/context-budget-headroom.js.map +1 -0
  118. package/dist/core/context-budget-relevance.d.ts +46 -0
  119. package/dist/core/context-budget-relevance.d.ts.map +1 -0
  120. package/dist/core/context-budget-relevance.js +329 -0
  121. package/dist/core/context-budget-relevance.js.map +1 -0
  122. package/dist/core/context-budget-system-prompt-items.d.ts +19 -0
  123. package/dist/core/context-budget-system-prompt-items.d.ts.map +1 -0
  124. package/dist/core/context-budget-system-prompt-items.js +143 -0
  125. package/dist/core/context-budget-system-prompt-items.js.map +1 -0
  126. package/dist/core/context-budget-system-prompt.d.ts +31 -0
  127. package/dist/core/context-budget-system-prompt.d.ts.map +1 -0
  128. package/dist/core/context-budget-system-prompt.js +87 -0
  129. package/dist/core/context-budget-system-prompt.js.map +1 -0
  130. package/dist/core/context-budget-token-counter.d.ts +34 -0
  131. package/dist/core/context-budget-token-counter.d.ts.map +1 -0
  132. package/dist/core/context-budget-token-counter.js +315 -0
  133. package/dist/core/context-budget-token-counter.js.map +1 -0
  134. package/dist/core/context-budget-v2-coverage.d.ts +5 -0
  135. package/dist/core/context-budget-v2-coverage.d.ts.map +1 -0
  136. package/dist/core/context-budget-v2-coverage.js +58 -0
  137. package/dist/core/context-budget-v2-coverage.js.map +1 -0
  138. package/dist/core/context-budget-v2-plan-hash.d.ts +12 -0
  139. package/dist/core/context-budget-v2-plan-hash.d.ts.map +1 -0
  140. package/dist/core/context-budget-v2-plan-hash.js +38 -0
  141. package/dist/core/context-budget-v2-plan-hash.js.map +1 -0
  142. package/dist/core/context-budget-v2-planner.d.ts +3 -0
  143. package/dist/core/context-budget-v2-planner.d.ts.map +1 -0
  144. package/dist/core/context-budget-v2-planner.js +143 -0
  145. package/dist/core/context-budget-v2-planner.js.map +1 -0
  146. package/dist/core/context-budget-v2-scoring.d.ts +14 -0
  147. package/dist/core/context-budget-v2-scoring.d.ts.map +1 -0
  148. package/dist/core/context-budget-v2-scoring.js +114 -0
  149. package/dist/core/context-budget-v2-scoring.js.map +1 -0
  150. package/dist/core/context-budget-v2-selection.d.ts +32 -0
  151. package/dist/core/context-budget-v2-selection.d.ts.map +1 -0
  152. package/dist/core/context-budget-v2-selection.js +158 -0
  153. package/dist/core/context-budget-v2-selection.js.map +1 -0
  154. package/dist/core/context-budget-v2-tiers.d.ts +15 -0
  155. package/dist/core/context-budget-v2-tiers.d.ts.map +1 -0
  156. package/dist/core/context-budget-v2-tiers.js +68 -0
  157. package/dist/core/context-budget-v2-tiers.js.map +1 -0
  158. package/dist/core/context-budget-v2-types.d.ts +92 -0
  159. package/dist/core/context-budget-v2-types.d.ts.map +1 -0
  160. package/dist/core/context-budget-v2-types.js +24 -0
  161. package/dist/core/context-budget-v2-types.js.map +1 -0
  162. package/dist/core/defaults.d.ts +1 -1
  163. package/dist/core/defaults.d.ts.map +1 -1
  164. package/dist/core/defaults.js.map +1 -1
  165. package/dist/core/diagnostics.d.ts +4 -0
  166. package/dist/core/diagnostics.d.ts.map +1 -1
  167. package/dist/core/diagnostics.js.map +1 -1
  168. package/dist/core/domain-confidence.d.ts +9 -0
  169. package/dist/core/domain-confidence.d.ts.map +1 -0
  170. package/dist/core/domain-confidence.js +39 -0
  171. package/dist/core/domain-confidence.js.map +1 -0
  172. package/dist/core/domain-dispatch.d.ts +44 -0
  173. package/dist/core/domain-dispatch.d.ts.map +1 -0
  174. package/dist/core/domain-dispatch.js +118 -0
  175. package/dist/core/domain-dispatch.js.map +1 -0
  176. package/dist/core/domain-loadouts.d.ts +76 -0
  177. package/dist/core/domain-loadouts.d.ts.map +1 -0
  178. package/dist/core/domain-loadouts.js +981 -0
  179. package/dist/core/domain-loadouts.js.map +1 -0
  180. package/dist/core/domain-registry.d.ts +7 -0
  181. package/dist/core/domain-registry.d.ts.map +1 -0
  182. package/dist/core/domain-registry.js +11 -0
  183. package/dist/core/domain-registry.js.map +1 -0
  184. package/dist/core/domain-router.d.ts +16 -0
  185. package/dist/core/domain-router.d.ts.map +1 -0
  186. package/dist/core/domain-router.js +24 -0
  187. package/dist/core/domain-router.js.map +1 -0
  188. package/dist/core/domain-score.d.ts +13 -0
  189. package/dist/core/domain-score.d.ts.map +1 -0
  190. package/dist/core/domain-score.js +48 -0
  191. package/dist/core/domain-score.js.map +1 -0
  192. package/dist/core/domain-trigger-match.d.ts +14 -0
  193. package/dist/core/domain-trigger-match.d.ts.map +1 -0
  194. package/dist/core/domain-trigger-match.js +51 -0
  195. package/dist/core/domain-trigger-match.js.map +1 -0
  196. package/dist/core/domain-types.d.ts +30 -0
  197. package/dist/core/domain-types.d.ts.map +1 -0
  198. package/dist/core/domain-types.js +2 -0
  199. package/dist/core/domain-types.js.map +1 -0
  200. package/dist/core/exact-cache-policy.d.ts +8 -0
  201. package/dist/core/exact-cache-policy.d.ts.map +1 -1
  202. package/dist/core/exact-cache-policy.js +9 -0
  203. package/dist/core/exact-cache-policy.js.map +1 -1
  204. package/dist/core/exec.d.ts +0 -2
  205. package/dist/core/exec.d.ts.map +1 -1
  206. package/dist/core/exec.js +0 -1
  207. package/dist/core/exec.js.map +1 -1
  208. package/dist/core/export-html/index.d.ts +1 -1
  209. package/dist/core/export-html/index.d.ts.map +1 -1
  210. package/dist/core/export-html/index.js.map +1 -1
  211. package/dist/core/export-html/template.js +1 -3
  212. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  213. package/dist/core/export-html/tool-renderer.js.map +1 -1
  214. package/dist/core/extensions/builtin/command-safety-gate.d.ts +3 -0
  215. package/dist/core/extensions/builtin/command-safety-gate.d.ts.map +1 -1
  216. package/dist/core/extensions/builtin/command-safety-gate.js +15 -3
  217. package/dist/core/extensions/builtin/command-safety-gate.js.map +1 -1
  218. package/dist/core/extensions/builtin/todo-checklist.d.ts +20 -0
  219. package/dist/core/extensions/builtin/todo-checklist.d.ts.map +1 -0
  220. package/dist/core/extensions/builtin/todo-checklist.js +70 -0
  221. package/dist/core/extensions/builtin/todo-checklist.js.map +1 -0
  222. package/dist/core/extensions/loader.d.ts +4 -4
  223. package/dist/core/extensions/loader.d.ts.map +1 -1
  224. package/dist/core/extensions/loader.js +57 -92
  225. package/dist/core/extensions/loader.js.map +1 -1
  226. package/dist/core/extensions/runner.d.ts +3 -3
  227. package/dist/core/extensions/runner.d.ts.map +1 -1
  228. package/dist/core/extensions/runner.js +1 -1
  229. package/dist/core/extensions/runner.js.map +1 -1
  230. package/dist/core/extensions/types.d.ts +7 -35
  231. package/dist/core/extensions/types.d.ts.map +1 -1
  232. package/dist/core/extensions/types.js.map +1 -1
  233. package/dist/core/extensions/wrapper.d.ts +1 -1
  234. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  235. package/dist/core/extensions/wrapper.js.map +1 -1
  236. package/dist/core/headroom.d.ts +45 -0
  237. package/dist/core/headroom.d.ts.map +1 -0
  238. package/dist/core/headroom.js +171 -0
  239. package/dist/core/headroom.js.map +1 -0
  240. package/dist/core/hook-inventory.d.ts +4 -2
  241. package/dist/core/hook-inventory.d.ts.map +1 -1
  242. package/dist/core/hook-inventory.js +80 -11
  243. package/dist/core/hook-inventory.js.map +1 -1
  244. package/dist/core/hooks/fail-closed.d.ts +4 -1
  245. package/dist/core/hooks/fail-closed.d.ts.map +1 -1
  246. package/dist/core/hooks/fail-closed.js +79 -5
  247. package/dist/core/hooks/fail-closed.js.map +1 -1
  248. package/dist/core/hooks/index.d.ts +2 -2
  249. package/dist/core/hooks/index.d.ts.map +1 -1
  250. package/dist/core/hooks/index.js +1 -1
  251. package/dist/core/hooks/index.js.map +1 -1
  252. package/dist/core/hooks/types.d.ts +9 -0
  253. package/dist/core/hooks/types.d.ts.map +1 -1
  254. package/dist/core/hooks/types.js.map +1 -1
  255. package/dist/core/keybindings.d.ts +2 -14
  256. package/dist/core/keybindings.d.ts.map +1 -1
  257. package/dist/core/keybindings.js +1 -31
  258. package/dist/core/keybindings.js.map +1 -1
  259. package/dist/core/lean-ctx.d.ts +99 -0
  260. package/dist/core/lean-ctx.d.ts.map +1 -0
  261. package/dist/core/lean-ctx.js +225 -0
  262. package/dist/core/lean-ctx.js.map +1 -0
  263. package/dist/core/loadout-compose.d.ts +53 -0
  264. package/dist/core/loadout-compose.d.ts.map +1 -0
  265. package/dist/core/loadout-compose.js +172 -0
  266. package/dist/core/loadout-compose.js.map +1 -0
  267. package/dist/core/loadout-policy-bridge.d.ts +22 -0
  268. package/dist/core/loadout-policy-bridge.d.ts.map +1 -0
  269. package/dist/core/loadout-policy-bridge.js +52 -0
  270. package/dist/core/loadout-policy-bridge.js.map +1 -0
  271. package/dist/core/loadout-runtime.d.ts +22 -0
  272. package/dist/core/loadout-runtime.d.ts.map +1 -1
  273. package/dist/core/loadout-runtime.js +41 -5
  274. package/dist/core/loadout-runtime.js.map +1 -1
  275. package/dist/core/loadout-safety.d.ts +55 -0
  276. package/dist/core/loadout-safety.d.ts.map +1 -0
  277. package/dist/core/loadout-safety.js +213 -0
  278. package/dist/core/loadout-safety.js.map +1 -0
  279. package/dist/core/loadouts.d.ts +4 -2
  280. package/dist/core/loadouts.d.ts.map +1 -1
  281. package/dist/core/loadouts.js +116 -5
  282. package/dist/core/loadouts.js.map +1 -1
  283. package/dist/core/loop-gates.d.ts +48 -0
  284. package/dist/core/loop-gates.d.ts.map +1 -0
  285. package/dist/core/loop-gates.js +352 -0
  286. package/dist/core/loop-gates.js.map +1 -0
  287. package/dist/core/loop-registry.d.ts +77 -0
  288. package/dist/core/loop-registry.d.ts.map +1 -0
  289. package/dist/core/loop-registry.js +831 -0
  290. package/dist/core/loop-registry.js.map +1 -0
  291. package/dist/core/loop-types.d.ts +194 -0
  292. package/dist/core/loop-types.d.ts.map +1 -0
  293. package/dist/core/loop-types.js +2 -0
  294. package/dist/core/loop-types.js.map +1 -0
  295. package/dist/core/mcp-inventory.d.ts +7 -0
  296. package/dist/core/mcp-inventory.d.ts.map +1 -1
  297. package/dist/core/mcp-inventory.js +5 -1
  298. package/dist/core/mcp-inventory.js.map +1 -1
  299. package/dist/core/mcp-presets.d.ts +43 -2
  300. package/dist/core/mcp-presets.d.ts.map +1 -1
  301. package/dist/core/mcp-presets.js +298 -2
  302. package/dist/core/mcp-presets.js.map +1 -1
  303. package/dist/core/messages.d.ts +3 -3
  304. package/dist/core/messages.d.ts.map +1 -1
  305. package/dist/core/messages.js.map +1 -1
  306. package/dist/core/metrics-sampler.d.ts +11 -0
  307. package/dist/core/metrics-sampler.d.ts.map +1 -1
  308. package/dist/core/metrics-sampler.js +52 -13
  309. package/dist/core/metrics-sampler.js.map +1 -1
  310. package/dist/core/model-registry.d.ts +1 -2
  311. package/dist/core/model-registry.d.ts.map +1 -1
  312. package/dist/core/model-registry.js +18 -41
  313. package/dist/core/model-registry.js.map +1 -1
  314. package/dist/core/model-resolver.d.ts +2 -2
  315. package/dist/core/model-resolver.d.ts.map +1 -1
  316. package/dist/core/model-resolver.js +1 -2
  317. package/dist/core/model-resolver.js.map +1 -1
  318. package/dist/core/package-gallery-identity.d.ts +7 -0
  319. package/dist/core/package-gallery-identity.d.ts.map +1 -0
  320. package/dist/core/package-gallery-identity.js +31 -0
  321. package/dist/core/package-gallery-identity.js.map +1 -0
  322. package/dist/core/package-gallery-install.d.ts +6 -0
  323. package/dist/core/package-gallery-install.d.ts.map +1 -0
  324. package/dist/core/package-gallery-install.js +59 -0
  325. package/dist/core/package-gallery-install.js.map +1 -0
  326. package/dist/core/package-gallery-manifest.d.ts +13 -0
  327. package/dist/core/package-gallery-manifest.d.ts.map +1 -0
  328. package/dist/core/package-gallery-manifest.js +183 -0
  329. package/dist/core/package-gallery-manifest.js.map +1 -0
  330. package/dist/core/package-gallery-trial.d.ts +4 -0
  331. package/dist/core/package-gallery-trial.d.ts.map +1 -0
  332. package/dist/core/package-gallery-trial.js +55 -0
  333. package/dist/core/package-gallery-trial.js.map +1 -0
  334. package/dist/core/package-gallery-types.d.ts +71 -0
  335. package/dist/core/package-gallery-types.d.ts.map +1 -0
  336. package/dist/core/package-gallery-types.js +2 -0
  337. package/dist/core/package-gallery-types.js.map +1 -0
  338. package/dist/core/package-gallery.d.ts +5 -123
  339. package/dist/core/package-gallery.d.ts.map +1 -1
  340. package/dist/core/package-gallery.js +5 -391
  341. package/dist/core/package-gallery.js.map +1 -1
  342. package/dist/core/package-manager.d.ts +0 -69
  343. package/dist/core/package-manager.d.ts.map +1 -1
  344. package/dist/core/package-manager.js +69 -367
  345. package/dist/core/package-manager.js.map +1 -1
  346. package/dist/core/package-procurement.d.ts +4 -4
  347. package/dist/core/package-procurement.d.ts.map +1 -1
  348. package/dist/core/package-procurement.js +29 -17
  349. package/dist/core/package-procurement.js.map +1 -1
  350. package/dist/core/provider-attribution.d.ts +1 -1
  351. package/dist/core/provider-attribution.d.ts.map +1 -1
  352. package/dist/core/provider-attribution.js.map +1 -1
  353. package/dist/core/read-anchors.d.ts +1 -1
  354. package/dist/core/read-anchors.d.ts.map +1 -1
  355. package/dist/core/read-anchors.js +1 -1
  356. package/dist/core/read-anchors.js.map +1 -1
  357. package/dist/core/recovery-checkpoint.d.ts +2 -2
  358. package/dist/core/recovery-checkpoint.d.ts.map +1 -1
  359. package/dist/core/recovery-checkpoint.js +2 -2
  360. package/dist/core/recovery-checkpoint.js.map +1 -1
  361. package/dist/core/resolve-config-value.d.ts +1 -1
  362. package/dist/core/resolve-config-value.d.ts.map +1 -1
  363. package/dist/core/resolve-config-value.js +2 -30
  364. package/dist/core/resolve-config-value.js.map +1 -1
  365. package/dist/core/resource-loader.d.ts +12 -20
  366. package/dist/core/resource-loader.d.ts.map +1 -1
  367. package/dist/core/resource-loader.js +66 -90
  368. package/dist/core/resource-loader.js.map +1 -1
  369. package/dist/core/sandbox-policy-v2.d.ts +49 -0
  370. package/dist/core/sandbox-policy-v2.d.ts.map +1 -0
  371. package/dist/core/sandbox-policy-v2.js +368 -0
  372. package/dist/core/sandbox-policy-v2.js.map +1 -0
  373. package/dist/core/sdk.d.ts +10 -78
  374. package/dist/core/sdk.d.ts.map +1 -1
  375. package/dist/core/sdk.js +97 -139
  376. package/dist/core/sdk.js.map +1 -1
  377. package/dist/core/semantic-cache-policy.d.ts +7 -1
  378. package/dist/core/semantic-cache-policy.d.ts.map +1 -1
  379. package/dist/core/semantic-cache-policy.js +8 -0
  380. package/dist/core/semantic-cache-policy.js.map +1 -1
  381. package/dist/core/session-manager.d.ts +2 -4
  382. package/dist/core/session-manager.d.ts.map +1 -1
  383. package/dist/core/session-manager.js +5 -6
  384. package/dist/core/session-manager.js.map +1 -1
  385. package/dist/core/settings-manager.d.ts +1 -18
  386. package/dist/core/settings-manager.d.ts.map +1 -1
  387. package/dist/core/settings-manager.js +2 -48
  388. package/dist/core/settings-manager.js.map +1 -1
  389. package/dist/core/skills.d.ts +1 -0
  390. package/dist/core/skills.d.ts.map +1 -1
  391. package/dist/core/skills.js +46 -5
  392. package/dist/core/skills.js.map +1 -1
  393. package/dist/core/slash-commands.d.ts.map +1 -1
  394. package/dist/core/slash-commands.js +0 -2
  395. package/dist/core/slash-commands.js.map +1 -1
  396. package/dist/core/subagent-orchestration.d.ts +73 -0
  397. package/dist/core/subagent-orchestration.d.ts.map +1 -0
  398. package/dist/core/subagent-orchestration.js +408 -0
  399. package/dist/core/subagent-orchestration.js.map +1 -0
  400. package/dist/core/system-prompt.d.ts +5 -4
  401. package/dist/core/system-prompt.d.ts.map +1 -1
  402. package/dist/core/system-prompt.js +57 -36
  403. package/dist/core/system-prompt.js.map +1 -1
  404. package/dist/core/timings.d.ts +0 -4
  405. package/dist/core/timings.d.ts.map +1 -1
  406. package/dist/core/timings.js +0 -4
  407. package/dist/core/timings.js.map +1 -1
  408. package/dist/core/todo-state.d.ts +53 -0
  409. package/dist/core/todo-state.d.ts.map +1 -0
  410. package/dist/core/todo-state.js +87 -0
  411. package/dist/core/todo-state.js.map +1 -0
  412. package/dist/core/token-optimizer.d.ts +58 -0
  413. package/dist/core/token-optimizer.d.ts.map +1 -0
  414. package/dist/core/token-optimizer.js +179 -0
  415. package/dist/core/token-optimizer.js.map +1 -0
  416. package/dist/core/tools/bash.d.ts +8 -9
  417. package/dist/core/tools/bash.d.ts.map +1 -1
  418. package/dist/core/tools/bash.js +9 -8
  419. package/dist/core/tools/bash.js.map +1 -1
  420. package/dist/core/tools/edit.d.ts +3 -14
  421. package/dist/core/tools/edit.d.ts.map +1 -1
  422. package/dist/core/tools/edit.js +4 -25
  423. package/dist/core/tools/edit.js.map +1 -1
  424. package/dist/core/tools/find.d.ts +1 -4
  425. package/dist/core/tools/find.d.ts.map +1 -1
  426. package/dist/core/tools/find.js +1 -4
  427. package/dist/core/tools/find.js.map +1 -1
  428. package/dist/core/tools/grep.d.ts +1 -4
  429. package/dist/core/tools/grep.d.ts.map +1 -1
  430. package/dist/core/tools/grep.js +2 -5
  431. package/dist/core/tools/grep.js.map +1 -1
  432. package/dist/core/tools/index.d.ts +2 -2
  433. package/dist/core/tools/index.d.ts.map +1 -1
  434. package/dist/core/tools/index.js.map +1 -1
  435. package/dist/core/tools/ls.d.ts +1 -4
  436. package/dist/core/tools/ls.d.ts.map +1 -1
  437. package/dist/core/tools/ls.js +1 -4
  438. package/dist/core/tools/ls.js.map +1 -1
  439. package/dist/core/tools/read.d.ts +2 -14
  440. package/dist/core/tools/read.d.ts.map +1 -1
  441. package/dist/core/tools/read.js +4 -28
  442. package/dist/core/tools/read.js.map +1 -1
  443. package/dist/core/tools/render-utils.d.ts +1 -1
  444. package/dist/core/tools/render-utils.d.ts.map +1 -1
  445. package/dist/core/tools/render-utils.js +1 -1
  446. package/dist/core/tools/render-utils.js.map +1 -1
  447. package/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
  448. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  449. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  450. package/dist/core/tools/write.d.ts +2 -4
  451. package/dist/core/tools/write.d.ts.map +1 -1
  452. package/dist/core/tools/write.js +4 -4
  453. package/dist/core/tools/write.js.map +1 -1
  454. package/dist/encoding/index.d.ts +6 -0
  455. package/dist/encoding/index.d.ts.map +1 -0
  456. package/dist/encoding/index.js +6 -0
  457. package/dist/encoding/index.js.map +1 -0
  458. package/dist/encoding/l4-encoder.d.ts +96 -0
  459. package/dist/encoding/l4-encoder.d.ts.map +1 -0
  460. package/dist/encoding/l4-encoder.js +474 -0
  461. package/dist/encoding/l4-encoder.js.map +1 -0
  462. package/dist/fuzzing/index.d.ts +6 -0
  463. package/dist/fuzzing/index.d.ts.map +1 -0
  464. package/dist/fuzzing/index.js +6 -0
  465. package/dist/fuzzing/index.js.map +1 -0
  466. package/dist/fuzzing/mutation-engine.d.ts +93 -0
  467. package/dist/fuzzing/mutation-engine.d.ts.map +1 -0
  468. package/dist/fuzzing/mutation-engine.js +244 -0
  469. package/dist/fuzzing/mutation-engine.js.map +1 -0
  470. package/dist/guardrails/audit-logger.d.ts +4 -0
  471. package/dist/guardrails/audit-logger.d.ts.map +1 -0
  472. package/dist/guardrails/audit-logger.js +28 -0
  473. package/dist/guardrails/audit-logger.js.map +1 -0
  474. package/dist/guardrails/evidence-system.d.ts +61 -0
  475. package/dist/guardrails/evidence-system.d.ts.map +1 -0
  476. package/dist/guardrails/evidence-system.js +302 -0
  477. package/dist/guardrails/evidence-system.js.map +1 -0
  478. package/dist/guardrails/freedomd-adapter.d.ts +16 -0
  479. package/dist/guardrails/freedomd-adapter.d.ts.map +1 -0
  480. package/dist/guardrails/freedomd-adapter.js +87 -0
  481. package/dist/guardrails/freedomd-adapter.js.map +1 -0
  482. package/dist/index.d.ts +4 -19
  483. package/dist/index.d.ts.map +1 -1
  484. package/dist/index.js +2 -17
  485. package/dist/index.js.map +1 -1
  486. package/dist/jailbreak-extension.d.ts +48 -0
  487. package/dist/jailbreak-extension.d.ts.map +1 -0
  488. package/dist/jailbreak-extension.js +47 -0
  489. package/dist/jailbreak-extension.js.map +1 -0
  490. package/dist/main.d.ts.map +1 -1
  491. package/dist/main.js +2 -2
  492. package/dist/main.js.map +1 -1
  493. package/dist/migrations.d.ts +0 -37
  494. package/dist/migrations.d.ts.map +1 -1
  495. package/dist/migrations.js +6 -414
  496. package/dist/migrations.js.map +1 -1
  497. package/dist/modes/interactive/components/armin.d.ts +1 -1
  498. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  499. package/dist/modes/interactive/components/armin.js.map +1 -1
  500. package/dist/modes/interactive/components/assistant-message.d.ts +2 -2
  501. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  502. package/dist/modes/interactive/components/assistant-message.js +1 -1
  503. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  504. package/dist/modes/interactive/components/bash-execution.d.ts +1 -1
  505. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  506. package/dist/modes/interactive/components/bash-execution.js +1 -1
  507. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  508. package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
  509. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  510. package/dist/modes/interactive/components/bordered-loader.js +1 -1
  511. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  512. package/dist/modes/interactive/components/branch-summary-message.d.ts +1 -1
  513. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  514. package/dist/modes/interactive/components/branch-summary-message.js +1 -1
  515. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  516. package/dist/modes/interactive/components/compaction-summary-message.d.ts +1 -1
  517. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  518. package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
  519. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  520. package/dist/modes/interactive/components/config-selector.d.ts +1 -1
  521. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  522. package/dist/modes/interactive/components/config-selector.js +1 -1
  523. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  524. package/dist/modes/interactive/components/control-panel-box.d.ts +15 -0
  525. package/dist/modes/interactive/components/control-panel-box.d.ts.map +1 -0
  526. package/dist/modes/interactive/components/control-panel-box.js +55 -0
  527. package/dist/modes/interactive/components/control-panel-box.js.map +1 -0
  528. package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts.map +1 -1
  529. package/dist/modes/interactive/components/control-panel-gradient-motion.js +2 -36
  530. package/dist/modes/interactive/components/control-panel-gradient-motion.js.map +1 -1
  531. package/dist/modes/interactive/components/control-panel-gradient.d.ts +1 -0
  532. package/dist/modes/interactive/components/control-panel-gradient.d.ts.map +1 -1
  533. package/dist/modes/interactive/components/control-panel-gradient.js +6 -5
  534. package/dist/modes/interactive/components/control-panel-gradient.js.map +1 -1
  535. package/dist/modes/interactive/components/control-panel-layout.d.ts +23 -0
  536. package/dist/modes/interactive/components/control-panel-layout.d.ts.map +1 -0
  537. package/dist/modes/interactive/components/control-panel-layout.js +165 -0
  538. package/dist/modes/interactive/components/control-panel-layout.js.map +1 -0
  539. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts +5 -0
  540. package/dist/modes/interactive/components/control-panel-runtime-status.d.ts.map +1 -0
  541. package/dist/modes/interactive/components/control-panel-runtime-status.js +20 -0
  542. package/dist/modes/interactive/components/control-panel-runtime-status.js.map +1 -0
  543. package/dist/modes/interactive/components/control-panel.d.ts +8 -31
  544. package/dist/modes/interactive/components/control-panel.d.ts.map +1 -1
  545. package/dist/modes/interactive/components/control-panel.js +38 -169
  546. package/dist/modes/interactive/components/control-panel.js.map +1 -1
  547. package/dist/modes/interactive/components/countdown-timer.d.ts +1 -1
  548. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  549. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  550. package/dist/modes/interactive/components/custom-editor.d.ts +1 -1
  551. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  552. package/dist/modes/interactive/components/custom-editor.js +14 -22
  553. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  554. package/dist/modes/interactive/components/custom-message.d.ts +1 -1
  555. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  556. package/dist/modes/interactive/components/custom-message.js +1 -1
  557. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  558. package/dist/modes/interactive/components/daxnuts.d.ts +1 -1
  559. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  560. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  561. package/dist/modes/interactive/components/dynamic-border.d.ts +1 -1
  562. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  563. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  564. package/dist/modes/interactive/components/earendil-announcement.d.ts +1 -1
  565. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  566. package/dist/modes/interactive/components/earendil-announcement.js +1 -1
  567. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  568. package/dist/modes/interactive/components/extension-editor.d.ts +1 -1
  569. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  570. package/dist/modes/interactive/components/extension-editor.js +1 -1
  571. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  572. package/dist/modes/interactive/components/extension-input.d.ts +1 -1
  573. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  574. package/dist/modes/interactive/components/extension-input.js +1 -1
  575. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  576. package/dist/modes/interactive/components/extension-selector.d.ts +1 -1
  577. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  578. package/dist/modes/interactive/components/extension-selector.js +1 -1
  579. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  580. package/dist/modes/interactive/components/footer.d.ts +1 -1
  581. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  582. package/dist/modes/interactive/components/footer.js +1 -9
  583. package/dist/modes/interactive/components/footer.js.map +1 -1
  584. package/dist/modes/interactive/components/index.d.ts +0 -2
  585. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  586. package/dist/modes/interactive/components/index.js +0 -2
  587. package/dist/modes/interactive/components/index.js.map +1 -1
  588. package/dist/modes/interactive/components/keybinding-hints.d.ts +1 -1
  589. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  590. package/dist/modes/interactive/components/keybinding-hints.js +1 -1
  591. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  592. package/dist/modes/interactive/components/login-dialog.d.ts +2 -2
  593. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  594. package/dist/modes/interactive/components/login-dialog.js +2 -2
  595. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  596. package/dist/modes/interactive/components/model-selector.d.ts +13 -47
  597. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  598. package/dist/modes/interactive/components/model-selector.js +118 -193
  599. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  600. package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
  601. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  602. package/dist/modes/interactive/components/oauth-selector.js +1 -1
  603. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  604. package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
  605. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  606. package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
  607. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  608. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  609. package/dist/modes/interactive/components/session-selector-search.js +1 -1
  610. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  611. package/dist/modes/interactive/components/session-selector.d.ts +1 -1
  612. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  613. package/dist/modes/interactive/components/session-selector.js +1 -1
  614. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  615. package/dist/modes/interactive/components/settings-selector.d.ts +3 -3
  616. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  617. package/dist/modes/interactive/components/settings-selector.js +1 -1
  618. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  619. package/dist/modes/interactive/components/show-images-selector.d.ts +1 -1
  620. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  621. package/dist/modes/interactive/components/show-images-selector.js +1 -1
  622. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  623. package/dist/modes/interactive/components/skill-invocation-message.d.ts +1 -1
  624. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  625. package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
  626. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  627. package/dist/modes/interactive/components/theme-selector.d.ts +1 -2
  628. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  629. package/dist/modes/interactive/components/theme-selector.js +2 -11
  630. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  631. package/dist/modes/interactive/components/thinking-selector.d.ts +8 -7
  632. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  633. package/dist/modes/interactive/components/thinking-selector.js +48 -7
  634. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  635. package/dist/modes/interactive/components/todo-checklist.d.ts +31 -0
  636. package/dist/modes/interactive/components/todo-checklist.d.ts.map +1 -0
  637. package/dist/modes/interactive/components/todo-checklist.js +121 -0
  638. package/dist/modes/interactive/components/todo-checklist.js.map +1 -0
  639. package/dist/modes/interactive/components/tool-execution.d.ts +1 -1
  640. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  641. package/dist/modes/interactive/components/tool-execution.js +1 -1
  642. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  643. package/dist/modes/interactive/components/tree-selector.d.ts +1 -1
  644. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  645. package/dist/modes/interactive/components/tree-selector.js +1 -1
  646. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  647. package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
  648. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  649. package/dist/modes/interactive/components/user-message-selector.js +1 -1
  650. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  651. package/dist/modes/interactive/components/user-message.d.ts +1 -1
  652. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  653. package/dist/modes/interactive/components/user-message.js +1 -1
  654. package/dist/modes/interactive/components/user-message.js.map +1 -1
  655. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  656. package/dist/modes/interactive/components/visual-truncate.js +1 -1
  657. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  658. package/dist/modes/interactive/interactive-mode.d.ts +3 -8
  659. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  660. package/dist/modes/interactive/interactive-mode.js +74 -232
  661. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  662. package/dist/modes/interactive/theme/omk-control-grid-dark.json +65 -77
  663. package/dist/modes/interactive/theme/omk-neon-control.json +90 -0
  664. package/dist/modes/interactive/theme/rust-forge.json +14 -24
  665. package/dist/modes/interactive/theme/theme.d.ts +1 -1
  666. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  667. package/dist/modes/interactive/theme/theme.js +22 -45
  668. package/dist/modes/interactive/theme/theme.js.map +1 -1
  669. package/dist/modes/print-mode.d.ts +1 -1
  670. package/dist/modes/print-mode.d.ts.map +1 -1
  671. package/dist/modes/print-mode.js.map +1 -1
  672. package/dist/modes/rpc/rpc-client.d.ts +2 -2
  673. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  674. package/dist/modes/rpc/rpc-client.js.map +1 -1
  675. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  676. package/dist/modes/rpc/rpc-mode.js +0 -4
  677. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  678. package/dist/modes/rpc/rpc-types.d.ts +2 -2
  679. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  680. package/dist/modes/rpc/rpc-types.js.map +1 -1
  681. package/dist/modules/index.d.ts +8 -0
  682. package/dist/modules/index.d.ts.map +1 -0
  683. package/dist/modules/index.js +7 -0
  684. package/dist/modules/index.js.map +1 -0
  685. package/dist/modules/lrl-bypass.d.ts +40 -0
  686. package/dist/modules/lrl-bypass.d.ts.map +1 -0
  687. package/dist/modules/lrl-bypass.js +84 -0
  688. package/dist/modules/lrl-bypass.js.map +1 -0
  689. package/dist/modules/lrl-deps.d.ts +38 -0
  690. package/dist/modules/lrl-deps.d.ts.map +1 -0
  691. package/dist/modules/lrl-deps.js +128 -0
  692. package/dist/modules/lrl-deps.js.map +1 -0
  693. package/dist/multiturn/easl-chain.d.ts +113 -0
  694. package/dist/multiturn/easl-chain.d.ts.map +1 -0
  695. package/dist/multiturn/easl-chain.js +351 -0
  696. package/dist/multiturn/easl-chain.js.map +1 -0
  697. package/dist/multiturn/index.d.ts +6 -0
  698. package/dist/multiturn/index.d.ts.map +1 -0
  699. package/dist/multiturn/index.js +6 -0
  700. package/dist/multiturn/index.js.map +1 -0
  701. package/dist/orchestration/lane-grant-auditor.d.ts +4 -0
  702. package/dist/orchestration/lane-grant-auditor.d.ts.map +1 -0
  703. package/dist/orchestration/lane-grant-auditor.js +87 -0
  704. package/dist/orchestration/lane-grant-auditor.js.map +1 -0
  705. package/dist/package-manager-cli.d.ts.map +1 -1
  706. package/dist/package-manager-cli.js +48 -113
  707. package/dist/package-manager-cli.js.map +1 -1
  708. package/dist/routing/fallback-router.d.ts +123 -0
  709. package/dist/routing/fallback-router.d.ts.map +1 -0
  710. package/dist/routing/fallback-router.js +355 -0
  711. package/dist/routing/fallback-router.js.map +1 -0
  712. package/dist/routing/index.d.ts +6 -0
  713. package/dist/routing/index.d.ts.map +1 -0
  714. package/dist/routing/index.js +6 -0
  715. package/dist/routing/index.js.map +1 -0
  716. package/dist/types/evidence.d.ts +117 -0
  717. package/dist/types/evidence.d.ts.map +1 -0
  718. package/dist/types/evidence.js +8 -0
  719. package/dist/types/evidence.js.map +1 -0
  720. package/dist/types/guardrails.d.ts +61 -0
  721. package/dist/types/guardrails.d.ts.map +1 -0
  722. package/dist/types/guardrails.js +9 -0
  723. package/dist/types/guardrails.js.map +1 -0
  724. package/dist/types/jailbreak.d.ts +246 -0
  725. package/dist/types/jailbreak.d.ts.map +1 -0
  726. package/dist/types/jailbreak.js +8 -0
  727. package/dist/types/jailbreak.js.map +1 -0
  728. package/dist/types/lane-grant.d.ts +58 -0
  729. package/dist/types/lane-grant.d.ts.map +1 -0
  730. package/dist/types/lane-grant.js +9 -0
  731. package/dist/types/lane-grant.js.map +1 -0
  732. package/dist/utils/jailbreak/common.d.ts +63 -0
  733. package/dist/utils/jailbreak/common.d.ts.map +1 -0
  734. package/dist/utils/jailbreak/common.js +130 -0
  735. package/dist/utils/jailbreak/common.js.map +1 -0
  736. package/dist/utils/jailbreak/index.d.ts +7 -0
  737. package/dist/utils/jailbreak/index.d.ts.map +1 -0
  738. package/dist/utils/jailbreak/index.js +7 -0
  739. package/dist/utils/jailbreak/index.js.map +1 -0
  740. package/dist/utils/windows-self-update.d.ts.map +1 -1
  741. package/dist/utils/windows-self-update.js +1 -1
  742. package/dist/utils/windows-self-update.js.map +1 -1
  743. package/docs/compaction.md +8 -21
  744. package/docs/custom-provider.md +2 -2
  745. package/docs/development.md +1 -1
  746. package/docs/extensions.md +11 -11
  747. package/docs/loadout-domains/README.md +70 -0
  748. package/docs/loadout-domains/ai-agent-ops.md +94 -0
  749. package/docs/loadout-domains/backend-api.md +116 -0
  750. package/docs/loadout-domains/data-science.md +100 -0
  751. package/docs/loadout-domains/devops-infra.md +85 -0
  752. package/docs/loadout-domains/docs-writing.md +92 -0
  753. package/docs/loadout-domains/frontend-ui.md +128 -0
  754. package/docs/loadout-domains/general.md +62 -0
  755. package/docs/loadout-domains/mobile.md +84 -0
  756. package/docs/loadout-domains/qa-testing.md +87 -0
  757. package/docs/loadout-domains/research.md +80 -0
  758. package/docs/loadout-domains/security-audit.md +97 -0
  759. package/docs/packages.md +7 -48
  760. package/docs/prompt-templates.md +0 -2
  761. package/docs/sdk.md +3 -3
  762. package/docs/security.md +145 -0
  763. package/docs/session-format.md +1 -1
  764. package/docs/themes.md +8 -7
  765. package/docs/tui.md +14 -14
  766. package/docs/usage.md +6 -16
  767. package/examples/extensions/README.md +2 -2
  768. package/examples/extensions/aside-computer-use/README.md +114 -0
  769. package/examples/extensions/aside-computer-use/action-scoring.ts +122 -0
  770. package/examples/extensions/aside-computer-use/assertions.ts +380 -0
  771. package/examples/extensions/aside-computer-use/controller.ts +491 -0
  772. package/examples/extensions/aside-computer-use/evidence.ts +229 -0
  773. package/examples/extensions/aside-computer-use/golden-trace.ts +141 -0
  774. package/examples/extensions/aside-computer-use/index.ts +76 -0
  775. package/examples/extensions/aside-computer-use/mcp-client.ts +381 -0
  776. package/examples/extensions/aside-computer-use/observation-snapshot.ts +121 -0
  777. package/examples/extensions/aside-computer-use/package.json +16 -0
  778. package/examples/extensions/aside-computer-use/policy.ts +257 -0
  779. package/examples/extensions/aside-computer-use/risk-authorize.ts +200 -0
  780. package/examples/extensions/aside-computer-use/risk-classifier.ts +205 -0
  781. package/examples/extensions/aside-computer-use/schema-fingerprint.ts +80 -0
  782. package/examples/extensions/aside-computer-use/session-binding.ts +161 -0
  783. package/examples/extensions/aside-computer-use/tools.ts +449 -0
  784. package/examples/extensions/aside-computer-use/types.ts +217 -0
  785. package/examples/extensions/aside-computer-use/url-origin.ts +132 -0
  786. package/examples/extensions/bash-spawn-hook.ts +1 -1
  787. package/examples/extensions/border-status-editor.ts +2 -2
  788. package/examples/extensions/built-in-tool-renderer.ts +1 -1
  789. package/examples/extensions/custom-compaction.ts +1 -1
  790. package/examples/extensions/custom-footer.ts +2 -2
  791. package/examples/extensions/custom-header.ts +8 -8
  792. package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
  793. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  794. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  795. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  796. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  797. package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
  798. package/examples/extensions/doom-overlay/README.md +1 -2
  799. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  800. package/examples/extensions/doom-overlay/doom/build.sh +4 -4
  801. package/examples/extensions/doom-overlay/doom/doomgeneric_omk.c +72 -0
  802. package/examples/extensions/doom-overlay/doom-component.ts +2 -2
  803. package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
  804. package/examples/extensions/git-merge-and-resolve.ts +1 -1
  805. package/examples/extensions/github-issue-autocomplete.ts +1 -6
  806. package/examples/extensions/gondolin/index.ts +1 -1
  807. package/examples/extensions/gondolin/package-lock.json +2 -2
  808. package/examples/extensions/gondolin/package.json +1 -1
  809. package/examples/extensions/handoff.ts +2 -2
  810. package/examples/extensions/hello.ts +1 -1
  811. package/examples/extensions/inline-bash.ts +1 -1
  812. package/examples/extensions/input-transform-streaming.ts +1 -1
  813. package/examples/extensions/input-transform.ts +2 -2
  814. package/examples/extensions/mac-system-theme.ts +1 -1
  815. package/examples/extensions/message-renderer.ts +1 -1
  816. package/examples/extensions/minimal-mode.ts +1 -1
  817. package/examples/extensions/modal-editor.ts +1 -1
  818. package/examples/extensions/overlay-qa-tests.ts +7 -7
  819. package/examples/extensions/overlay-test.ts +1 -1
  820. package/examples/extensions/plan-mode/index.ts +3 -3
  821. package/examples/extensions/preset.ts +4 -4
  822. package/examples/extensions/provider-payload.ts +6 -3
  823. package/examples/extensions/qna.ts +1 -1
  824. package/examples/extensions/question.ts +1 -1
  825. package/examples/extensions/questionnaire.ts +1 -1
  826. package/examples/extensions/rpc-demo.ts +1 -1
  827. package/examples/extensions/sandbox/index.ts +2 -2
  828. package/examples/extensions/sandbox/package-lock.json +2 -2
  829. package/examples/extensions/sandbox/package.json +1 -1
  830. package/examples/extensions/shutdown-command.ts +5 -5
  831. package/examples/extensions/snake.ts +1 -1
  832. package/examples/extensions/space-invaders.ts +1 -1
  833. package/examples/extensions/structured-output.ts +1 -1
  834. package/examples/extensions/subagent/agents.ts +2 -2
  835. package/examples/extensions/subagent/index.ts +19 -51
  836. package/examples/extensions/summarize.ts +2 -2
  837. package/examples/extensions/tic-tac-toe.ts +2 -2
  838. package/examples/extensions/todo.ts +2 -2
  839. package/examples/extensions/tool-override.ts +1 -1
  840. package/examples/extensions/tools.ts +1 -1
  841. package/examples/extensions/truncated-tool.ts +1 -1
  842. package/examples/extensions/with-deps/package-lock.json +2 -2
  843. package/examples/extensions/with-deps/package.json +1 -1
  844. package/examples/extensions/working-indicator.ts +3 -3
  845. package/examples/rpc-extension-ui.ts +1 -9
  846. package/examples/sdk/02-custom-model.ts +1 -1
  847. package/examples/sdk/07-context-files.ts +0 -2
  848. package/examples/sdk/12-full-control.ts +1 -1
  849. package/examples/sdk/README.md +1 -1
  850. package/npm-shrinkwrap.json +1805 -0
  851. package/package.json +10 -32
  852. package/dist/core/compaction/pruner-policy.d.ts +0 -84
  853. package/dist/core/compaction/pruner-policy.d.ts.map +0 -1
  854. package/dist/core/compaction/pruner-policy.js +0 -273
  855. package/dist/core/compaction/pruner-policy.js.map +0 -1
  856. package/dist/core/context-graph-identity-resolution.d.ts +0 -114
  857. package/dist/core/context-graph-identity-resolution.d.ts.map +0 -1
  858. package/dist/core/context-graph-identity-resolution.js +0 -127
  859. package/dist/core/context-graph-identity-resolution.js.map +0 -1
  860. package/dist/core/context-graph-memory-store.d.ts +0 -153
  861. package/dist/core/context-graph-memory-store.d.ts.map +0 -1
  862. package/dist/core/context-graph-memory-store.js +0 -377
  863. package/dist/core/context-graph-memory-store.js.map +0 -1
  864. package/dist/core/context-graph-ontology-generation.d.ts +0 -104
  865. package/dist/core/context-graph-ontology-generation.d.ts.map +0 -1
  866. package/dist/core/context-graph-ontology-generation.js +0 -135
  867. package/dist/core/context-graph-ontology-generation.js.map +0 -1
  868. package/dist/core/context-graph-ontology-registry.d.ts +0 -766
  869. package/dist/core/context-graph-ontology-registry.d.ts.map +0 -1
  870. package/dist/core/context-graph-ontology-registry.js +0 -1133
  871. package/dist/core/context-graph-ontology-registry.js.map +0 -1
  872. package/dist/core/context-graph-policy.d.ts +0 -68
  873. package/dist/core/context-graph-policy.d.ts.map +0 -1
  874. package/dist/core/context-graph-policy.js +0 -221
  875. package/dist/core/context-graph-policy.js.map +0 -1
  876. package/dist/core/context-graph-reasoning.d.ts +0 -130
  877. package/dist/core/context-graph-reasoning.d.ts.map +0 -1
  878. package/dist/core/context-graph-reasoning.js +0 -442
  879. package/dist/core/context-graph-reasoning.js.map +0 -1
  880. package/dist/core/context-graph-retrieval.d.ts +0 -120
  881. package/dist/core/context-graph-retrieval.d.ts.map +0 -1
  882. package/dist/core/context-graph-retrieval.js +0 -288
  883. package/dist/core/context-graph-retrieval.js.map +0 -1
  884. package/dist/core/contract-verification.d.ts +0 -78
  885. package/dist/core/contract-verification.d.ts.map +0 -1
  886. package/dist/core/contract-verification.js +0 -110
  887. package/dist/core/contract-verification.js.map +0 -1
  888. package/dist/core/freedom/banner.d.ts +0 -14
  889. package/dist/core/freedom/banner.d.ts.map +0 -1
  890. package/dist/core/freedom/banner.js +0 -22
  891. package/dist/core/freedom/banner.js.map +0 -1
  892. package/dist/core/freedom/config.d.ts +0 -27
  893. package/dist/core/freedom/config.d.ts.map +0 -1
  894. package/dist/core/freedom/config.js +0 -216
  895. package/dist/core/freedom/config.js.map +0 -1
  896. package/dist/core/freedom/index.d.ts +0 -23
  897. package/dist/core/freedom/index.d.ts.map +0 -1
  898. package/dist/core/freedom/index.js +0 -19
  899. package/dist/core/freedom/index.js.map +0 -1
  900. package/dist/core/freedom/policy.d.ts +0 -42
  901. package/dist/core/freedom/policy.d.ts.map +0 -1
  902. package/dist/core/freedom/policy.js +0 -47
  903. package/dist/core/freedom/policy.js.map +0 -1
  904. package/dist/core/freedom/safety-floor.d.ts +0 -73
  905. package/dist/core/freedom/safety-floor.d.ts.map +0 -1
  906. package/dist/core/freedom/safety-floor.js +0 -275
  907. package/dist/core/freedom/safety-floor.js.map +0 -1
  908. package/dist/core/harness-control-events.d.ts +0 -91
  909. package/dist/core/harness-control-events.d.ts.map +0 -1
  910. package/dist/core/harness-control-events.js +0 -514
  911. package/dist/core/harness-control-events.js.map +0 -1
  912. package/dist/core/harness-control-replay.d.ts +0 -31
  913. package/dist/core/harness-control-replay.d.ts.map +0 -1
  914. package/dist/core/harness-control-replay.js +0 -187
  915. package/dist/core/harness-control-replay.js.map +0 -1
  916. package/dist/core/headroom-middleware.d.ts +0 -35
  917. package/dist/core/headroom-middleware.d.ts.map +0 -1
  918. package/dist/core/headroom-middleware.js +0 -166
  919. package/dist/core/headroom-middleware.js.map +0 -1
  920. package/dist/core/lean-context-middleware.d.ts +0 -12
  921. package/dist/core/lean-context-middleware.d.ts.map +0 -1
  922. package/dist/core/lean-context-middleware.js +0 -87
  923. package/dist/core/lean-context-middleware.js.map +0 -1
  924. package/dist/core/lean-context-policy.d.ts +0 -45
  925. package/dist/core/lean-context-policy.d.ts.map +0 -1
  926. package/dist/core/lean-context-policy.js +0 -108
  927. package/dist/core/lean-context-policy.js.map +0 -1
  928. package/dist/core/native-adoption-benchmark.d.ts +0 -166
  929. package/dist/core/native-adoption-benchmark.d.ts.map +0 -1
  930. package/dist/core/native-adoption-benchmark.js +0 -624
  931. package/dist/core/native-adoption-benchmark.js.map +0 -1
  932. package/dist/core/observability-trace.d.ts +0 -80
  933. package/dist/core/observability-trace.d.ts.map +0 -1
  934. package/dist/core/observability-trace.js +0 -140
  935. package/dist/core/observability-trace.js.map +0 -1
  936. package/dist/core/orchestration/checkpoint.d.ts +0 -83
  937. package/dist/core/orchestration/checkpoint.d.ts.map +0 -1
  938. package/dist/core/orchestration/checkpoint.js +0 -152
  939. package/dist/core/orchestration/checkpoint.js.map +0 -1
  940. package/dist/core/orchestration/errors.d.ts +0 -74
  941. package/dist/core/orchestration/errors.d.ts.map +0 -1
  942. package/dist/core/orchestration/errors.js +0 -52
  943. package/dist/core/orchestration/errors.js.map +0 -1
  944. package/dist/core/orchestration/merge-queue.d.ts +0 -121
  945. package/dist/core/orchestration/merge-queue.d.ts.map +0 -1
  946. package/dist/core/orchestration/merge-queue.js +0 -149
  947. package/dist/core/orchestration/merge-queue.js.map +0 -1
  948. package/dist/core/orchestration/recovery.d.ts +0 -106
  949. package/dist/core/orchestration/recovery.d.ts.map +0 -1
  950. package/dist/core/orchestration/recovery.js +0 -110
  951. package/dist/core/orchestration/recovery.js.map +0 -1
  952. package/dist/core/orchestration/replay-ledger.d.ts +0 -76
  953. package/dist/core/orchestration/replay-ledger.d.ts.map +0 -1
  954. package/dist/core/orchestration/replay-ledger.js +0 -395
  955. package/dist/core/orchestration/replay-ledger.js.map +0 -1
  956. package/dist/core/orchestration/scheduler-state.d.ts +0 -78
  957. package/dist/core/orchestration/scheduler-state.d.ts.map +0 -1
  958. package/dist/core/orchestration/scheduler-state.js +0 -185
  959. package/dist/core/orchestration/scheduler-state.js.map +0 -1
  960. package/dist/core/orchestration/scheduler-store.d.ts +0 -309
  961. package/dist/core/orchestration/scheduler-store.d.ts.map +0 -1
  962. package/dist/core/orchestration/scheduler-store.js +0 -368
  963. package/dist/core/orchestration/scheduler-store.js.map +0 -1
  964. package/dist/core/orchestration/sqlite-scheduler-store.d.ts +0 -57
  965. package/dist/core/orchestration/sqlite-scheduler-store.d.ts.map +0 -1
  966. package/dist/core/orchestration/sqlite-scheduler-store.js +0 -528
  967. package/dist/core/orchestration/sqlite-scheduler-store.js.map +0 -1
  968. package/dist/core/orchestration/transaction-coordinator.d.ts +0 -217
  969. package/dist/core/orchestration/transaction-coordinator.d.ts.map +0 -1
  970. package/dist/core/orchestration/transaction-coordinator.js +0 -281
  971. package/dist/core/orchestration/transaction-coordinator.js.map +0 -1
  972. package/dist/core/orchestration/verification-contract.d.ts +0 -197
  973. package/dist/core/orchestration/verification-contract.d.ts.map +0 -1
  974. package/dist/core/orchestration/verification-contract.js +0 -145
  975. package/dist/core/orchestration/verification-contract.js.map +0 -1
  976. package/dist/core/package-composition.d.ts +0 -68
  977. package/dist/core/package-composition.d.ts.map +0 -1
  978. package/dist/core/package-composition.js +0 -304
  979. package/dist/core/package-composition.js.map +0 -1
  980. package/dist/core/package-trial-runtime.d.ts +0 -75
  981. package/dist/core/package-trial-runtime.d.ts.map +0 -1
  982. package/dist/core/package-trial-runtime.js +0 -73
  983. package/dist/core/package-trial-runtime.js.map +0 -1
  984. package/dist/core/package-trial-sandbox.d.ts +0 -27
  985. package/dist/core/package-trial-sandbox.d.ts.map +0 -1
  986. package/dist/core/package-trial-sandbox.js +0 -102
  987. package/dist/core/package-trial-sandbox.js.map +0 -1
  988. package/dist/core/policy-overlays-runtime.d.ts +0 -141
  989. package/dist/core/policy-overlays-runtime.d.ts.map +0 -1
  990. package/dist/core/policy-overlays-runtime.js +0 -720
  991. package/dist/core/policy-overlays-runtime.js.map +0 -1
  992. package/dist/core/read-anchor-registry.d.ts +0 -27
  993. package/dist/core/read-anchor-registry.d.ts.map +0 -1
  994. package/dist/core/read-anchor-registry.js +0 -103
  995. package/dist/core/read-anchor-registry.js.map +0 -1
  996. package/dist/core/read-content-cache.d.ts +0 -22
  997. package/dist/core/read-content-cache.d.ts.map +0 -1
  998. package/dist/core/read-content-cache.js +0 -79
  999. package/dist/core/read-content-cache.js.map +0 -1
  1000. package/dist/core/session-digest.d.ts +0 -57
  1001. package/dist/core/session-digest.d.ts.map +0 -1
  1002. package/dist/core/session-digest.js +0 -193
  1003. package/dist/core/session-digest.js.map +0 -1
  1004. package/dist/core/spec-kit/compiler.d.ts +0 -67
  1005. package/dist/core/spec-kit/compiler.d.ts.map +0 -1
  1006. package/dist/core/spec-kit/compiler.js +0 -268
  1007. package/dist/core/spec-kit/compiler.js.map +0 -1
  1008. package/dist/core/transaction-coordinator.d.ts +0 -30
  1009. package/dist/core/transaction-coordinator.d.ts.map +0 -1
  1010. package/dist/core/transaction-coordinator.js +0 -173
  1011. package/dist/core/transaction-coordinator.js.map +0 -1
  1012. package/dist/modes/interactive/components/mcp-selector.d.ts +0 -30
  1013. package/dist/modes/interactive/components/mcp-selector.d.ts.map +0 -1
  1014. package/dist/modes/interactive/components/mcp-selector.js +0 -155
  1015. package/dist/modes/interactive/components/mcp-selector.js.map +0 -1
  1016. package/dist/modes/interactive/components/model-selector-state.d.ts +0 -101
  1017. package/dist/modes/interactive/components/model-selector-state.d.ts.map +0 -1
  1018. package/dist/modes/interactive/components/model-selector-state.js +0 -261
  1019. package/dist/modes/interactive/components/model-selector-state.js.map +0 -1
  1020. package/dist/modes/interactive/components/skills-selector.d.ts +0 -32
  1021. package/dist/modes/interactive/components/skills-selector.d.ts.map +0 -1
  1022. package/dist/modes/interactive/components/skills-selector.js +0 -130
  1023. package/dist/modes/interactive/components/skills-selector.js.map +0 -1
  1024. package/dist/modes/interactive/theme/omk-blackboard.json +0 -91
  1025. package/dist/modes/interactive/theme/omk-freedom-grid.json +0 -91
  1026. package/dist/modes/interactive/theme/omk-neon-ops.json +0 -90
  1027. package/dist/modes/interactive/theme/omk-slate-light.json +0 -91
  1028. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -72
  1029. package/node_modules/@earendil-works/omk-agent-core/README.md +0 -488
  1030. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts +0 -24
  1031. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts.map +0 -1
  1032. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js +0 -553
  1033. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js.map +0 -1
  1034. package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts +0 -118
  1035. package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts.map +0 -1
  1036. package/node_modules/@earendil-works/omk-agent-core/dist/agent.js +0 -402
  1037. package/node_modules/@earendil-works/omk-agent-core/dist/agent.js.map +0 -1
  1038. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts +0 -95
  1039. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts.map +0 -1
  1040. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js +0 -996
  1041. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js.map +0 -1
  1042. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts +0 -53
  1043. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +0 -1
  1044. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js +0 -175
  1045. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js.map +0 -1
  1046. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts +0 -117
  1047. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts.map +0 -1
  1048. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js +0 -568
  1049. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js.map +0 -1
  1050. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts +0 -25
  1051. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts.map +0 -1
  1052. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js +0 -131
  1053. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js.map +0 -1
  1054. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts +0 -51
  1055. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts.map +0 -1
  1056. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js +0 -510
  1057. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js.map +0 -1
  1058. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts +0 -51
  1059. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts.map +0 -1
  1060. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js +0 -102
  1061. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js.map +0 -1
  1062. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts +0 -48
  1063. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts.map +0 -1
  1064. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js +0 -230
  1065. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js.map +0 -1
  1066. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts +0 -26
  1067. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts.map +0 -1
  1068. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js +0 -101
  1069. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js.map +0 -1
  1070. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts +0 -36
  1071. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts.map +0 -1
  1072. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js +0 -273
  1073. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js.map +0 -1
  1074. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts +0 -18
  1075. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts.map +0 -1
  1076. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js +0 -42
  1077. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js.map +0 -1
  1078. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts +0 -25
  1079. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts.map +0 -1
  1080. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js +0 -114
  1081. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js.map +0 -1
  1082. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts +0 -11
  1083. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts.map +0 -1
  1084. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js +0 -39
  1085. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js.map +0 -1
  1086. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts +0 -33
  1087. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts.map +0 -1
  1088. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js +0 -210
  1089. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js.map +0 -1
  1090. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts +0 -2
  1091. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts.map +0 -1
  1092. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js +0 -50
  1093. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js.map +0 -1
  1094. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts +0 -44
  1095. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts.map +0 -1
  1096. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js +0 -311
  1097. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js.map +0 -1
  1098. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts +0 -3
  1099. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts.map +0 -1
  1100. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js +0 -30
  1101. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js.map +0 -1
  1102. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts +0 -616
  1103. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts.map +0 -1
  1104. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js +0 -94
  1105. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js.map +0 -1
  1106. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts +0 -14
  1107. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts.map +0 -1
  1108. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js +0 -126
  1109. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js.map +0 -1
  1110. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts +0 -70
  1111. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts.map +0 -1
  1112. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js +0 -297
  1113. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js.map +0 -1
  1114. package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts +0 -20
  1115. package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts.map +0 -1
  1116. package/node_modules/@earendil-works/omk-agent-core/dist/index.js +0 -25
  1117. package/node_modules/@earendil-works/omk-agent-core/dist/index.js.map +0 -1
  1118. package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts +0 -3
  1119. package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts.map +0 -1
  1120. package/node_modules/@earendil-works/omk-agent-core/dist/node.js +0 -3
  1121. package/node_modules/@earendil-works/omk-agent-core/dist/node.js.map +0 -1
  1122. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts +0 -69
  1123. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts.map +0 -1
  1124. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js +0 -278
  1125. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js.map +0 -1
  1126. package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts +0 -393
  1127. package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts.map +0 -1
  1128. package/node_modules/@earendil-works/omk-agent-core/dist/types.js +0 -2
  1129. package/node_modules/@earendil-works/omk-agent-core/dist/types.js.map +0 -1
  1130. package/node_modules/@earendil-works/omk-agent-core/package.json +0 -60
  1131. package/node_modules/@earendil-works/omk-ai/README.md +0 -1389
  1132. package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts +0 -20
  1133. package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts.map +0 -1
  1134. package/node_modules/@earendil-works/omk-ai/dist/api-registry.js +0 -44
  1135. package/node_modules/@earendil-works/omk-ai/dist/api-registry.js.map +0 -1
  1136. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts +0 -5
  1137. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts.map +0 -1
  1138. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js +0 -6
  1139. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js.map +0 -1
  1140. package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts +0 -3
  1141. package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts.map +0 -1
  1142. package/node_modules/@earendil-works/omk-ai/dist/cli.js +0 -130
  1143. package/node_modules/@earendil-works/omk-ai/dist/cli.js.map +0 -1
  1144. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts +0 -20
  1145. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts.map +0 -1
  1146. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js +0 -199
  1147. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js.map +0 -1
  1148. package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts +0 -10
  1149. package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts.map +0 -1
  1150. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts +0 -515
  1151. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts.map +0 -1
  1152. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js +0 -517
  1153. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js.map +0 -1
  1154. package/node_modules/@earendil-works/omk-ai/dist/image-models.js +0 -23
  1155. package/node_modules/@earendil-works/omk-ai/dist/image-models.js.map +0 -1
  1156. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts +0 -14
  1157. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts.map +0 -1
  1158. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js +0 -22
  1159. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js.map +0 -1
  1160. package/node_modules/@earendil-works/omk-ai/dist/images.d.ts +0 -4
  1161. package/node_modules/@earendil-works/omk-ai/dist/images.d.ts.map +0 -1
  1162. package/node_modules/@earendil-works/omk-ai/dist/images.js +0 -16
  1163. package/node_modules/@earendil-works/omk-ai/dist/images.js.map +0 -1
  1164. package/node_modules/@earendil-works/omk-ai/dist/index.d.ts +0 -33
  1165. package/node_modules/@earendil-works/omk-ai/dist/index.d.ts.map +0 -1
  1166. package/node_modules/@earendil-works/omk-ai/dist/index.js +0 -21
  1167. package/node_modules/@earendil-works/omk-ai/dist/index.js.map +0 -1
  1168. package/node_modules/@earendil-works/omk-ai/dist/models.d.ts +0 -18
  1169. package/node_modules/@earendil-works/omk-ai/dist/models.d.ts.map +0 -1
  1170. package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts +0 -18762
  1171. package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts.map +0 -1
  1172. package/node_modules/@earendil-works/omk-ai/dist/models.generated.js +0 -17197
  1173. package/node_modules/@earendil-works/omk-ai/dist/models.generated.js.map +0 -1
  1174. package/node_modules/@earendil-works/omk-ai/dist/models.js +0 -78
  1175. package/node_modules/@earendil-works/omk-ai/dist/models.js.map +0 -1
  1176. package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts +0 -2
  1177. package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts.map +0 -1
  1178. package/node_modules/@earendil-works/omk-ai/dist/oauth.js +0 -2
  1179. package/node_modules/@earendil-works/omk-ai/dist/oauth.js.map +0 -1
  1180. package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts +0 -39
  1181. package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts.map +0 -1
  1182. package/node_modules/@earendil-works/omk-ai/dist/provider-network.js +0 -170
  1183. package/node_modules/@earendil-works/omk-ai/dist/provider-network.js.map +0 -1
  1184. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts +0 -38
  1185. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts.map +0 -1
  1186. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js +0 -826
  1187. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js.map +0 -1
  1188. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts +0 -77
  1189. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts.map +0 -1
  1190. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js +0 -1123
  1191. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js.map +0 -1
  1192. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts +0 -15
  1193. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts.map +0 -1
  1194. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js +0 -221
  1195. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js.map +0 -1
  1196. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts +0 -13
  1197. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts.map +0 -1
  1198. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js +0 -26
  1199. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js.map +0 -1
  1200. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts +0 -56
  1201. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts.map +0 -1
  1202. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js +0 -368
  1203. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js.map +0 -1
  1204. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts +0 -8
  1205. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts.map +0 -1
  1206. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js +0 -29
  1207. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js.map +0 -1
  1208. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts +0 -70
  1209. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts.map +0 -1
  1210. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js +0 -331
  1211. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js.map +0 -1
  1212. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts +0 -15
  1213. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts.map +0 -1
  1214. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js +0 -442
  1215. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js.map +0 -1
  1216. package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts +0 -13
  1217. package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts.map +0 -1
  1218. package/node_modules/@earendil-works/omk-ai/dist/providers/google.js +0 -402
  1219. package/node_modules/@earendil-works/omk-ai/dist/providers/google.js.map +0 -1
  1220. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts +0 -3
  1221. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts.map +0 -1
  1222. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js +0 -128
  1223. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js.map +0 -1
  1224. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts +0 -4
  1225. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts.map +0 -1
  1226. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js +0 -34
  1227. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js.map +0 -1
  1228. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts +0 -25
  1229. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts.map +0 -1
  1230. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js +0 -534
  1231. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js.map +0 -1
  1232. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts +0 -30
  1233. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts.map +0 -1
  1234. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js +0 -1171
  1235. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js.map +0 -1
  1236. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts +0 -19
  1237. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts.map +0 -1
  1238. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js +0 -977
  1239. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js.map +0 -1
  1240. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts +0 -11
  1241. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts.map +0 -1
  1242. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js +0 -22
  1243. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js.map +0 -1
  1244. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts +0 -18
  1245. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts.map +0 -1
  1246. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js +0 -496
  1247. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js.map +0 -1
  1248. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts +0 -13
  1249. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts.map +0 -1
  1250. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js +0 -233
  1251. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js.map +0 -1
  1252. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts +0 -35
  1253. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts.map +0 -1
  1254. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js +0 -254
  1255. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js.map +0 -1
  1256. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts +0 -8
  1257. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts.map +0 -1
  1258. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js +0 -42
  1259. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js.map +0 -1
  1260. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts +0 -13
  1261. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts.map +0 -1
  1262. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js +0 -82
  1263. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js.map +0 -1
  1264. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts +0 -8
  1265. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts.map +0 -1
  1266. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js +0 -184
  1267. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js.map +0 -1
  1268. package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts +0 -4
  1269. package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts.map +0 -1
  1270. package/node_modules/@earendil-works/omk-ai/dist/session-resources.js +0 -22
  1271. package/node_modules/@earendil-works/omk-ai/dist/session-resources.js.map +0 -1
  1272. package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts +0 -8
  1273. package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts.map +0 -1
  1274. package/node_modules/@earendil-works/omk-ai/dist/stream.js +0 -77
  1275. package/node_modules/@earendil-works/omk-ai/dist/stream.js.map +0 -1
  1276. package/node_modules/@earendil-works/omk-ai/dist/types.d.ts +0 -570
  1277. package/node_modules/@earendil-works/omk-ai/dist/types.d.ts.map +0 -1
  1278. package/node_modules/@earendil-works/omk-ai/dist/types.js +0 -2
  1279. package/node_modules/@earendil-works/omk-ai/dist/types.js.map +0 -1
  1280. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts +0 -6
  1281. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts.map +0 -1
  1282. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js +0 -34
  1283. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js.map +0 -1
  1284. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts +0 -19
  1285. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts.map +0 -1
  1286. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js +0 -25
  1287. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js.map +0 -1
  1288. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts +0 -21
  1289. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts.map +0 -1
  1290. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js +0 -81
  1291. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js.map +0 -1
  1292. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts +0 -3
  1293. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts.map +0 -1
  1294. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js +0 -14
  1295. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js.map +0 -1
  1296. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts +0 -2
  1297. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts.map +0 -1
  1298. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js +0 -8
  1299. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js.map +0 -1
  1300. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts +0 -16
  1301. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts.map +0 -1
  1302. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js +0 -113
  1303. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js.map +0 -1
  1304. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts +0 -10
  1305. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts.map +0 -1
  1306. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js +0 -97
  1307. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js.map +0 -1
  1308. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts +0 -25
  1309. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts.map +0 -1
  1310. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js +0 -335
  1311. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js.map +0 -1
  1312. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts +0 -21
  1313. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts.map +0 -1
  1314. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js +0 -56
  1315. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js.map +0 -1
  1316. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts +0 -30
  1317. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts.map +0 -1
  1318. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js +0 -280
  1319. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js.map +0 -1
  1320. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts +0 -58
  1321. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts.map +0 -1
  1322. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js +0 -122
  1323. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js.map +0 -1
  1324. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts +0 -3
  1325. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts.map +0 -1
  1326. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js +0 -105
  1327. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js.map +0 -1
  1328. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts +0 -43
  1329. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts.map +0 -1
  1330. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js +0 -487
  1331. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js.map +0 -1
  1332. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts +0 -13
  1333. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts.map +0 -1
  1334. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js +0 -31
  1335. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js.map +0 -1
  1336. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts +0 -64
  1337. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts.map +0 -1
  1338. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js +0 -2
  1339. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js.map +0 -1
  1340. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts +0 -57
  1341. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts.map +0 -1
  1342. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js +0 -154
  1343. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js.map +0 -1
  1344. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts +0 -22
  1345. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts.map +0 -1
  1346. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js +0 -26
  1347. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js.map +0 -1
  1348. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts +0 -17
  1349. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts.map +0 -1
  1350. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js +0 -21
  1351. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js.map +0 -1
  1352. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts +0 -18
  1353. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts.map +0 -1
  1354. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js +0 -281
  1355. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js.map +0 -1
  1356. package/node_modules/@earendil-works/omk-ai/package.json +0 -106
  1357. package/node_modules/@earendil-works/omk-tui/README.md +0 -791
  1358. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts +0 -54
  1359. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts.map +0 -1
  1360. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js +0 -632
  1361. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js.map +0 -1
  1362. package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts +0 -22
  1363. package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts.map +0 -1
  1364. package/node_modules/@earendil-works/omk-tui/dist/components/box.js +0 -104
  1365. package/node_modules/@earendil-works/omk-tui/dist/components/box.js.map +0 -1
  1366. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts +0 -22
  1367. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts.map +0 -1
  1368. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js +0 -35
  1369. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js.map +0 -1
  1370. package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts +0 -249
  1371. package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts.map +0 -1
  1372. package/node_modules/@earendil-works/omk-tui/dist/components/editor.js +0 -1857
  1373. package/node_modules/@earendil-works/omk-tui/dist/components/editor.js.map +0 -1
  1374. package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts +0 -28
  1375. package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts.map +0 -1
  1376. package/node_modules/@earendil-works/omk-tui/dist/components/image.js +0 -89
  1377. package/node_modules/@earendil-works/omk-tui/dist/components/image.js.map +0 -1
  1378. package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts +0 -37
  1379. package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts.map +0 -1
  1380. package/node_modules/@earendil-works/omk-tui/dist/components/input.js +0 -378
  1381. package/node_modules/@earendil-works/omk-tui/dist/components/input.js.map +0 -1
  1382. package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts +0 -31
  1383. package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts.map +0 -1
  1384. package/node_modules/@earendil-works/omk-tui/dist/components/loader.js +0 -69
  1385. package/node_modules/@earendil-works/omk-tui/dist/components/loader.js.map +0 -1
  1386. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts +0 -96
  1387. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts.map +0 -1
  1388. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js +0 -644
  1389. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js.map +0 -1
  1390. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts +0 -50
  1391. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts.map +0 -1
  1392. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js +0 -159
  1393. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js.map +0 -1
  1394. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts +0 -50
  1395. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts.map +0 -1
  1396. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js +0 -185
  1397. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js.map +0 -1
  1398. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts +0 -12
  1399. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts.map +0 -1
  1400. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js +0 -23
  1401. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js.map +0 -1
  1402. package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts +0 -19
  1403. package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts.map +0 -1
  1404. package/node_modules/@earendil-works/omk-tui/dist/components/text.js +0 -89
  1405. package/node_modules/@earendil-works/omk-tui/dist/components/text.js.map +0 -1
  1406. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts +0 -13
  1407. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts.map +0 -1
  1408. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js +0 -51
  1409. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js.map +0 -1
  1410. package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts +0 -39
  1411. package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts.map +0 -1
  1412. package/node_modules/@earendil-works/omk-tui/dist/editor-component.js +0 -2
  1413. package/node_modules/@earendil-works/omk-tui/dist/editor-component.js.map +0 -1
  1414. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts +0 -16
  1415. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts.map +0 -1
  1416. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js +0 -110
  1417. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js.map +0 -1
  1418. package/node_modules/@earendil-works/omk-tui/dist/index.d.ts +0 -23
  1419. package/node_modules/@earendil-works/omk-tui/dist/index.d.ts.map +0 -1
  1420. package/node_modules/@earendil-works/omk-tui/dist/index.js +0 -32
  1421. package/node_modules/@earendil-works/omk-tui/dist/index.js.map +0 -1
  1422. package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts +0 -212
  1423. package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts.map +0 -1
  1424. package/node_modules/@earendil-works/omk-tui/dist/keybindings.js +0 -252
  1425. package/node_modules/@earendil-works/omk-tui/dist/keybindings.js.map +0 -1
  1426. package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts +0 -184
  1427. package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts.map +0 -1
  1428. package/node_modules/@earendil-works/omk-tui/dist/keys.js +0 -1173
  1429. package/node_modules/@earendil-works/omk-tui/dist/keys.js.map +0 -1
  1430. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts +0 -28
  1431. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts.map +0 -1
  1432. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js +0 -44
  1433. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js.map +0 -1
  1434. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts +0 -3
  1435. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts.map +0 -1
  1436. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js +0 -53
  1437. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js.map +0 -1
  1438. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts +0 -50
  1439. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts.map +0 -1
  1440. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js +0 -361
  1441. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js.map +0 -1
  1442. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts +0 -90
  1443. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts.map +0 -1
  1444. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js +0 -366
  1445. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js.map +0 -1
  1446. package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts +0 -113
  1447. package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts.map +0 -1
  1448. package/node_modules/@earendil-works/omk-tui/dist/terminal.js +0 -472
  1449. package/node_modules/@earendil-works/omk-tui/dist/terminal.js.map +0 -1
  1450. package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts +0 -242
  1451. package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts.map +0 -1
  1452. package/node_modules/@earendil-works/omk-tui/dist/tui.js +0 -1221
  1453. package/node_modules/@earendil-works/omk-tui/dist/tui.js.map +0 -1
  1454. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts +0 -17
  1455. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts.map +0 -1
  1456. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js +0 -25
  1457. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js.map +0 -1
  1458. package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts +0 -84
  1459. package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts.map +0 -1
  1460. package/node_modules/@earendil-works/omk-tui/dist/utils.js +0 -1032
  1461. package/node_modules/@earendil-works/omk-tui/dist/utils.js.map +0 -1
  1462. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts +0 -25
  1463. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts.map +0 -1
  1464. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js +0 -96
  1465. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js.map +0 -1
  1466. package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  1467. package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  1468. package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  1469. package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
  1470. package/node_modules/@earendil-works/omk-tui/package.json +0 -47
@@ -4,8 +4,8 @@
4
4
  * When navigating to a different point in the session tree, this generates
5
5
  * a summary of the branch being left so context isn't lost.
6
6
  */
7
- import type { AgentMessage, StreamFn } from "@earendil-works/omk-agent-core";
8
- import type { Model } from "@earendil-works/omk-ai";
7
+ import type { AgentMessage, StreamFn } from "omk-agent-core";
8
+ import type { Model } from "omk-ai";
9
9
  import type { ReadonlySessionManager, SessionEntry } from "../session-manager.ts";
10
10
  import { type FileOperations } from "./utils.ts";
11
11
  export interface BranchSummaryResult {
@@ -1 +1 @@
1
- {"version":3,"file":"branch-summarization.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/branch-summarization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,KAAK,EAAuB,MAAM,wBAAwB,CAAC;AASzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAIN,KAAK,cAAc,EAInB,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,mBAAmB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qEAAqE;AACrE,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IACjC,mEAAmE;IACnE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,gDAAgD;IAChD,OAAO,EAAE,cAAc,CAAC;IACxB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACpC,mDAAmD;IACnD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC5C,qCAAqC;IACrC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oCAAoC;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wFAAwF;IACxF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACpB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,QAAQ,EAAE,MAAM,GACd,oBAAoB,CAkCtB;AAoCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,WAAW,GAAE,MAAU,GAAG,iBAAiB,CAoDxG;AAuDD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAkF9B","sourcesContent":["/**\n * Branch summarization for tree navigation.\n *\n * When navigating to a different point in the session tree, this generates\n * a summary of the branch being left so context isn't lost.\n */\n\nimport type { AgentMessage, StreamFn } from \"@earendil-works/omk-agent-core\";\nimport type { Model, SimpleStreamOptions } from \"@earendil-works/omk-ai\";\nimport { completeSimple } from \"@earendil-works/omk-ai\";\nimport {\n\tconvertToLlm,\n\tcreateBranchSummaryMessage,\n\tcreateCompactionSummaryMessage,\n\tcreateCustomMessage,\n} from \"../messages.ts\";\nimport { sanitizeMemoryPayload } from \"../policy-overlays-runtime.ts\";\nimport type { ReadonlySessionManager, SessionEntry } from \"../session-manager.ts\";\nimport { estimateTokens } from \"./compaction.ts\";\nimport {\n\tcomputeFileLists,\n\tcreateFileOps,\n\textractFileOpsFromMessage,\n\ttype FileOperations,\n\tformatFileOperations,\n\tSUMMARIZATION_SYSTEM_PROMPT,\n\tserializeConversation,\n} from \"./utils.ts\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface BranchSummaryResult {\n\tsummary?: string;\n\treadFiles?: string[];\n\tmodifiedFiles?: string[];\n\taborted?: boolean;\n\terror?: string;\n}\n\n/** Details stored in BranchSummaryEntry.details for file tracking */\nexport interface BranchSummaryDetails {\n\treadFiles: string[];\n\tmodifiedFiles: string[];\n}\n\nexport type { FileOperations } from \"./utils.ts\";\n\nexport interface BranchPreparation {\n\t/** Messages extracted for summarization, in chronological order */\n\tmessages: AgentMessage[];\n\t/** File operations extracted from tool calls */\n\tfileOps: FileOperations;\n\t/** Total estimated tokens in messages */\n\ttotalTokens: number;\n}\n\nexport interface CollectEntriesResult {\n\t/** Entries to summarize, in chronological order */\n\tentries: SessionEntry[];\n\t/** Common ancestor between old and new position, if any */\n\tcommonAncestorId: string | null;\n}\n\nexport interface GenerateBranchSummaryOptions {\n\t/** Model to use for summarization */\n\tmodel: Model<any>;\n\t/** API key for the model */\n\tapiKey: string;\n\t/** Request headers for the model */\n\theaders?: Record<string, string>;\n\t/** Abort signal for cancellation */\n\tsignal: AbortSignal;\n\t/** Optional custom instructions for summarization */\n\tcustomInstructions?: string;\n\t/** If true, customInstructions replaces the default prompt instead of being appended */\n\treplaceInstructions?: boolean;\n\t/** Tokens reserved for prompt + LLM response (default 16384) */\n\treserveTokens?: number;\n\t/** Optional session stream function. Used to preserve SDK request behavior without mutating agent state. */\n\tstreamFn?: StreamFn;\n}\n\n// ============================================================================\n// Entry Collection\n// ============================================================================\n\n/**\n * Collect entries that should be summarized when navigating from one position to another.\n *\n * Walks from oldLeafId back to the common ancestor with targetId, collecting entries\n * along the way. Does NOT stop at compaction boundaries - those are included and their\n * summaries become context.\n *\n * @param session - Session manager (read-only access)\n * @param oldLeafId - Current position (where we're navigating from)\n * @param targetId - Target position (where we're navigating to)\n * @returns Entries to summarize and the common ancestor\n */\nexport function collectEntriesForBranchSummary(\n\tsession: ReadonlySessionManager,\n\toldLeafId: string | null,\n\ttargetId: string,\n): CollectEntriesResult {\n\t// If no old position, nothing to summarize\n\tif (!oldLeafId) {\n\t\treturn { entries: [], commonAncestorId: null };\n\t}\n\n\t// Find common ancestor (deepest node that's on both paths)\n\tconst oldPath = new Set(session.getBranch(oldLeafId).map((e) => e.id));\n\tconst targetPath = session.getBranch(targetId);\n\n\t// targetPath is root-first, so iterate backwards to find deepest common ancestor\n\tlet commonAncestorId: string | null = null;\n\tfor (let i = targetPath.length - 1; i >= 0; i--) {\n\t\tif (oldPath.has(targetPath[i].id)) {\n\t\t\tcommonAncestorId = targetPath[i].id;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Collect entries from old leaf back to common ancestor\n\tconst entries: SessionEntry[] = [];\n\tlet current: string | null = oldLeafId;\n\n\twhile (current && current !== commonAncestorId) {\n\t\tconst entry = session.getEntry(current);\n\t\tif (!entry) break;\n\t\tentries.push(entry);\n\t\tcurrent = entry.parentId;\n\t}\n\n\t// Reverse to get chronological order\n\tentries.reverse();\n\n\treturn { entries, commonAncestorId };\n}\n\n// ============================================================================\n// Entry to Message Conversion\n// ============================================================================\n\n/**\n * Extract AgentMessage from a session entry.\n * Similar to getMessageFromEntry in compaction.ts but also handles compaction entries.\n */\nfunction getMessageFromEntry(entry: SessionEntry): AgentMessage | undefined {\n\tswitch (entry.type) {\n\t\tcase \"message\":\n\t\t\t// Skip tool results - context is in assistant's tool call\n\t\t\tif (entry.message.role === \"toolResult\") return undefined;\n\t\t\treturn entry.message;\n\n\t\tcase \"custom_message\":\n\t\t\treturn createCustomMessage(entry.customType, entry.content, entry.display, entry.details, entry.timestamp);\n\n\t\tcase \"branch_summary\":\n\t\t\treturn createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp);\n\n\t\tcase \"compaction\":\n\t\t\treturn createCompactionSummaryMessage(entry.summary, entry.tokensBefore, entry.timestamp);\n\n\t\t// These don't contribute to conversation content\n\t\tcase \"thinking_level_change\":\n\t\tcase \"model_change\":\n\t\tcase \"custom\":\n\t\tcase \"label\":\n\t\tcase \"session_info\":\n\t\t\treturn undefined;\n\t}\n}\n\n/**\n * Prepare entries for summarization with token budget.\n *\n * Walks entries from NEWEST to OLDEST, adding messages until we hit the token budget.\n * This ensures we keep the most recent context when the branch is too long.\n *\n * Also collects file operations from:\n * - Tool calls in assistant messages\n * - Existing branch_summary entries' details (for cumulative tracking)\n *\n * @param entries - Entries in chronological order\n * @param tokenBudget - Maximum tokens to include (0 = no limit)\n */\nexport function prepareBranchEntries(entries: SessionEntry[], tokenBudget: number = 0): BranchPreparation {\n\tconst messages: AgentMessage[] = [];\n\tconst fileOps = createFileOps();\n\tlet totalTokens = 0;\n\n\t// First pass: collect file ops from ALL entries (even if they don't fit in token budget)\n\t// This ensures we capture cumulative file tracking from nested branch summaries\n\t// Only extract from omk-generated summaries (fromHook !== true), not extension-generated ones\n\tfor (const entry of entries) {\n\t\tif (entry.type === \"branch_summary\" && !entry.fromHook && entry.details) {\n\t\t\tconst details = entry.details as BranchSummaryDetails;\n\t\t\tif (Array.isArray(details.readFiles)) {\n\t\t\t\tfor (const f of details.readFiles) fileOps.read.add(f);\n\t\t\t}\n\t\t\tif (Array.isArray(details.modifiedFiles)) {\n\t\t\t\t// Modified files go into both edited and written for proper deduplication\n\t\t\t\tfor (const f of details.modifiedFiles) {\n\t\t\t\t\tfileOps.edited.add(f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Second pass: walk from newest to oldest, adding messages until token budget\n\tfor (let i = entries.length - 1; i >= 0; i--) {\n\t\tconst entry = entries[i];\n\t\tconst message = getMessageFromEntry(entry);\n\t\tif (!message) continue;\n\n\t\t// Extract file ops from assistant messages (tool calls)\n\t\textractFileOpsFromMessage(message, fileOps);\n\n\t\tconst tokens = estimateTokens(message);\n\n\t\t// Check budget before adding\n\t\tif (tokenBudget > 0 && totalTokens + tokens > tokenBudget) {\n\t\t\t// If this is a summary entry, try to fit it anyway as it's important context\n\t\t\tif (entry.type === \"compaction\" || entry.type === \"branch_summary\") {\n\t\t\t\tif (totalTokens < tokenBudget * 0.9) {\n\t\t\t\t\tmessages.unshift(message);\n\t\t\t\t\ttotalTokens += tokens;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Stop - we've hit the budget\n\t\t\tbreak;\n\t\t}\n\n\t\tmessages.unshift(message);\n\t\ttotalTokens += tokens;\n\t}\n\n\treturn { messages, fileOps, totalTokens };\n}\n\n// ============================================================================\n// Summary Generation\n// ============================================================================\n\nconst BRANCH_SUMMARY_PREAMBLE = `The user explored a different conversation branch before returning here.\nSummary of that exploration:\n\n`;\n\nconst BRANCH_SUMMARY_PROMPT = `Create a structured summary of this conversation branch for context when returning later.\n\nUse this EXACT format:\n\n## Goal\n[What was the user trying to accomplish in this branch?]\n\n## Constraints & Preferences\n- [Any constraints, preferences, or requirements mentioned]\n- [Or \"(none)\" if none were mentioned]\n\n## Progress\n### Done\n- [x] [Completed tasks/changes]\n\n### In Progress\n- [ ] [Work that was started but not finished]\n\n### Blocked\n- [Issues preventing progress, if any]\n\n## Key Decisions\n- **[Decision]**: [Brief rationale]\n\n## Next Steps\n1. [What should happen next to continue this work]\n\n## Resume Handoff\n- **First action**: [Single concrete next action when returning to this branch]\n- **Re-check before editing**: [Workspace state, files, or commands to verify first; use \"(none)\" if not needed]\n- **Evidence status**: [Checks/tests already run and results, or \"(not run)\"]\n\nKeep each section concise. Preserve exact file paths, function names, command results, and error messages.`;\n\nfunction sanitizeBranchSummaryText(text: string): string {\n\tconst sanitized = sanitizeMemoryPayload(text, {\n\t\tsource: \"branch-summary\",\n\t\tcontentTier: \"summary\",\n\t\tmaxChars: 10_000_000,\n\t\texternal: false,\n\t});\n\treturn typeof sanitized.payload === \"string\" ? sanitized.payload : \"\";\n}\n\n/**\n * Generate a summary of abandoned branch entries.\n *\n * @param entries - Session entries to summarize (chronological order)\n * @param options - Generation options\n */\nexport async function generateBranchSummary(\n\tentries: SessionEntry[],\n\toptions: GenerateBranchSummaryOptions,\n): Promise<BranchSummaryResult> {\n\tconst {\n\t\tmodel,\n\t\tapiKey,\n\t\theaders,\n\t\tsignal,\n\t\tcustomInstructions,\n\t\treplaceInstructions,\n\t\treserveTokens = 16384,\n\t\tstreamFn,\n\t} = options;\n\n\t// Token budget = context window minus reserved space for prompt + response\n\tconst contextWindow = model.contextWindow || 128000;\n\tconst tokenBudget = contextWindow - reserveTokens;\n\n\tconst { messages, fileOps } = prepareBranchEntries(entries, tokenBudget);\n\n\tif (messages.length === 0) {\n\t\treturn { summary: \"No content to summarize\" };\n\t}\n\n\t// Transform to LLM-compatible messages, then serialize to text\n\t// Serialization prevents the model from treating it as a conversation to continue\n\tconst llmMessages = convertToLlm(messages);\n\tconst conversationText = sanitizeBranchSummaryText(serializeConversation(llmMessages));\n\n\t// Build prompt\n\tlet instructions: string;\n\tif (replaceInstructions && customInstructions) {\n\t\tinstructions = customInstructions;\n\t} else if (customInstructions) {\n\t\tinstructions = `${BRANCH_SUMMARY_PROMPT}\\n\\nAdditional focus: ${customInstructions}`;\n\t} else {\n\t\tinstructions = BRANCH_SUMMARY_PROMPT;\n\t}\n\tconst promptText = `<conversation>\\n${conversationText}\\n</conversation>\\n\\n${instructions}`;\n\n\tconst summarizationMessages = [\n\t\t{\n\t\t\trole: \"user\" as const,\n\t\t\tcontent: [{ type: \"text\" as const, text: promptText }],\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t];\n\n\t// Call LLM for summarization. Prefer the session stream function so SDK\n\t// request behavior (timeouts, retries, attribution headers) stays consistent\n\t// without running through agent state/events.\n\tconst context = { systemPrompt: SUMMARIZATION_SYSTEM_PROMPT, messages: summarizationMessages };\n\tconst requestOptions: SimpleStreamOptions = { apiKey, headers, signal, maxTokens: 2048 };\n\tconst response = streamFn\n\t\t? await (await streamFn(model, context, requestOptions)).result()\n\t\t: await completeSimple(model, context, requestOptions);\n\n\t// Check if aborted or errored\n\tif (response.stopReason === \"aborted\") {\n\t\treturn { aborted: true };\n\t}\n\tif (response.stopReason === \"error\") {\n\t\treturn { error: response.errorMessage || \"Summarization failed\" };\n\t}\n\n\tlet summary = sanitizeBranchSummaryText(\n\t\tresponse.content\n\t\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t\t.map((c) => c.text)\n\t\t\t.join(\"\\n\"),\n\t);\n\n\t// Prepend preamble to provide context about the branch summary\n\tsummary = BRANCH_SUMMARY_PREAMBLE + summary;\n\n\t// Compute file lists and append to summary\n\tconst { readFiles, modifiedFiles } = computeFileLists(fileOps);\n\tsummary += formatFileOperations(readFiles, modifiedFiles);\n\n\treturn {\n\t\tsummary: summary || \"No summary generated\",\n\t\treadFiles,\n\t\tmodifiedFiles,\n\t};\n}\n"]}
1
+ {"version":3,"file":"branch-summarization.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/branch-summarization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAuB,MAAM,QAAQ,CAAC;AAQzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAIN,KAAK,cAAc,EAInB,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,mBAAmB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qEAAqE;AACrE,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IACjC,mEAAmE;IACnE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,gDAAgD;IAChD,OAAO,EAAE,cAAc,CAAC;IACxB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACpC,mDAAmD;IACnD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC5C,qCAAqC;IACrC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oCAAoC;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wFAAwF;IACxF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACpB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,QAAQ,EAAE,MAAM,GACd,oBAAoB,CAkCtB;AAoCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,WAAW,GAAE,MAAU,GAAG,iBAAiB,CAmDxG;AAwCD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAgF9B","sourcesContent":["/**\n * Branch summarization for tree navigation.\n *\n * When navigating to a different point in the session tree, this generates\n * a summary of the branch being left so context isn't lost.\n */\n\nimport type { AgentMessage, StreamFn } from \"omk-agent-core\";\nimport type { Model, SimpleStreamOptions } from \"omk-ai\";\nimport { completeSimple } from \"omk-ai\";\nimport {\n\tconvertToLlm,\n\tcreateBranchSummaryMessage,\n\tcreateCompactionSummaryMessage,\n\tcreateCustomMessage,\n} from \"../messages.ts\";\nimport type { ReadonlySessionManager, SessionEntry } from \"../session-manager.ts\";\nimport { estimateTokens } from \"./compaction.ts\";\nimport {\n\tcomputeFileLists,\n\tcreateFileOps,\n\textractFileOpsFromMessage,\n\ttype FileOperations,\n\tformatFileOperations,\n\tSUMMARIZATION_SYSTEM_PROMPT,\n\tserializeConversation,\n} from \"./utils.ts\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface BranchSummaryResult {\n\tsummary?: string;\n\treadFiles?: string[];\n\tmodifiedFiles?: string[];\n\taborted?: boolean;\n\terror?: string;\n}\n\n/** Details stored in BranchSummaryEntry.details for file tracking */\nexport interface BranchSummaryDetails {\n\treadFiles: string[];\n\tmodifiedFiles: string[];\n}\n\nexport type { FileOperations } from \"./utils.ts\";\n\nexport interface BranchPreparation {\n\t/** Messages extracted for summarization, in chronological order */\n\tmessages: AgentMessage[];\n\t/** File operations extracted from tool calls */\n\tfileOps: FileOperations;\n\t/** Total estimated tokens in messages */\n\ttotalTokens: number;\n}\n\nexport interface CollectEntriesResult {\n\t/** Entries to summarize, in chronological order */\n\tentries: SessionEntry[];\n\t/** Common ancestor between old and new position, if any */\n\tcommonAncestorId: string | null;\n}\n\nexport interface GenerateBranchSummaryOptions {\n\t/** Model to use for summarization */\n\tmodel: Model<any>;\n\t/** API key for the model */\n\tapiKey: string;\n\t/** Request headers for the model */\n\theaders?: Record<string, string>;\n\t/** Abort signal for cancellation */\n\tsignal: AbortSignal;\n\t/** Optional custom instructions for summarization */\n\tcustomInstructions?: string;\n\t/** If true, customInstructions replaces the default prompt instead of being appended */\n\treplaceInstructions?: boolean;\n\t/** Tokens reserved for prompt + LLM response (default 16384) */\n\treserveTokens?: number;\n\t/** Optional session stream function. Used to preserve SDK request behavior without mutating agent state. */\n\tstreamFn?: StreamFn;\n}\n\n// ============================================================================\n// Entry Collection\n// ============================================================================\n\n/**\n * Collect entries that should be summarized when navigating from one position to another.\n *\n * Walks from oldLeafId back to the common ancestor with targetId, collecting entries\n * along the way. Does NOT stop at compaction boundaries - those are included and their\n * summaries become context.\n *\n * @param session - Session manager (read-only access)\n * @param oldLeafId - Current position (where we're navigating from)\n * @param targetId - Target position (where we're navigating to)\n * @returns Entries to summarize and the common ancestor\n */\nexport function collectEntriesForBranchSummary(\n\tsession: ReadonlySessionManager,\n\toldLeafId: string | null,\n\ttargetId: string,\n): CollectEntriesResult {\n\t// If no old position, nothing to summarize\n\tif (!oldLeafId) {\n\t\treturn { entries: [], commonAncestorId: null };\n\t}\n\n\t// Find common ancestor (deepest node that's on both paths)\n\tconst oldPath = new Set(session.getBranch(oldLeafId).map((e) => e.id));\n\tconst targetPath = session.getBranch(targetId);\n\n\t// targetPath is root-first, so iterate backwards to find deepest common ancestor\n\tlet commonAncestorId: string | null = null;\n\tfor (let i = targetPath.length - 1; i >= 0; i--) {\n\t\tif (oldPath.has(targetPath[i].id)) {\n\t\t\tcommonAncestorId = targetPath[i].id;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Collect entries from old leaf back to common ancestor\n\tconst entries: SessionEntry[] = [];\n\tlet current: string | null = oldLeafId;\n\n\twhile (current && current !== commonAncestorId) {\n\t\tconst entry = session.getEntry(current);\n\t\tif (!entry) break;\n\t\tentries.push(entry);\n\t\tcurrent = entry.parentId;\n\t}\n\n\t// Reverse to get chronological order\n\tentries.reverse();\n\n\treturn { entries, commonAncestorId };\n}\n\n// ============================================================================\n// Entry to Message Conversion\n// ============================================================================\n\n/**\n * Extract AgentMessage from a session entry.\n * Similar to getMessageFromEntry in compaction.ts but also handles compaction entries.\n */\nfunction getMessageFromEntry(entry: SessionEntry): AgentMessage | undefined {\n\tswitch (entry.type) {\n\t\tcase \"message\":\n\t\t\t// Skip tool results - context is in assistant's tool call\n\t\t\tif (entry.message.role === \"toolResult\") return undefined;\n\t\t\treturn entry.message;\n\n\t\tcase \"custom_message\":\n\t\t\treturn createCustomMessage(entry.customType, entry.content, entry.display, entry.details, entry.timestamp);\n\n\t\tcase \"branch_summary\":\n\t\t\treturn createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp);\n\n\t\tcase \"compaction\":\n\t\t\treturn createCompactionSummaryMessage(entry.summary, entry.tokensBefore, entry.timestamp);\n\n\t\t// These don't contribute to conversation content\n\t\tcase \"thinking_level_change\":\n\t\tcase \"model_change\":\n\t\tcase \"custom\":\n\t\tcase \"label\":\n\t\tcase \"session_info\":\n\t\t\treturn undefined;\n\t}\n}\n\n/**\n * Prepare entries for summarization with token budget.\n *\n * Walks entries from NEWEST to OLDEST, adding messages until we hit the token budget.\n * This ensures we keep the most recent context when the branch is too long.\n *\n * Also collects file operations from:\n * - Tool calls in assistant messages\n * - Existing branch_summary entries' details (for cumulative tracking)\n *\n * @param entries - Entries in chronological order\n * @param tokenBudget - Maximum tokens to include (0 = no limit)\n */\nexport function prepareBranchEntries(entries: SessionEntry[], tokenBudget: number = 0): BranchPreparation {\n\tconst messages: AgentMessage[] = [];\n\tconst fileOps = createFileOps();\n\tlet totalTokens = 0;\n\n\t// First pass: collect file ops from ALL entries (even if they don't fit in token budget)\n\t// This ensures we capture cumulative file tracking from nested branch summaries\n\tfor (const entry of entries) {\n\t\tif (entry.type === \"branch_summary\" && !entry.fromHook && entry.details) {\n\t\t\tconst details = entry.details as BranchSummaryDetails;\n\t\t\tif (Array.isArray(details.readFiles)) {\n\t\t\t\tfor (const f of details.readFiles) fileOps.read.add(f);\n\t\t\t}\n\t\t\tif (Array.isArray(details.modifiedFiles)) {\n\t\t\t\t// Modified files go into both edited and written for proper deduplication\n\t\t\t\tfor (const f of details.modifiedFiles) {\n\t\t\t\t\tfileOps.edited.add(f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Second pass: walk from newest to oldest, adding messages until token budget\n\tfor (let i = entries.length - 1; i >= 0; i--) {\n\t\tconst entry = entries[i];\n\t\tconst message = getMessageFromEntry(entry);\n\t\tif (!message) continue;\n\n\t\t// Extract file ops from assistant messages (tool calls)\n\t\textractFileOpsFromMessage(message, fileOps);\n\n\t\tconst tokens = estimateTokens(message);\n\n\t\t// Check budget before adding\n\t\tif (tokenBudget > 0 && totalTokens + tokens > tokenBudget) {\n\t\t\t// If this is a summary entry, try to fit it anyway as it's important context\n\t\t\tif (entry.type === \"compaction\" || entry.type === \"branch_summary\") {\n\t\t\t\tif (totalTokens < tokenBudget * 0.9) {\n\t\t\t\t\tmessages.unshift(message);\n\t\t\t\t\ttotalTokens += tokens;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Stop - we've hit the budget\n\t\t\tbreak;\n\t\t}\n\n\t\tmessages.unshift(message);\n\t\ttotalTokens += tokens;\n\t}\n\n\treturn { messages, fileOps, totalTokens };\n}\n\n// ============================================================================\n// Summary Generation\n// ============================================================================\n\nconst BRANCH_SUMMARY_PREAMBLE = `The user explored a different conversation branch before returning here.\nSummary of that exploration:\n\n`;\n\nconst BRANCH_SUMMARY_PROMPT = `Create a structured summary of this conversation branch for context when returning later.\n\nUse this EXACT format:\n\n## Goal\n[What was the user trying to accomplish in this branch?]\n\n## Constraints & Preferences\n- [Any constraints, preferences, or requirements mentioned]\n- [Or \"(none)\" if none were mentioned]\n\n## Progress\n### Done\n- [x] [Completed tasks/changes]\n\n### In Progress\n- [ ] [Work that was started but not finished]\n\n### Blocked\n- [Issues preventing progress, if any]\n\n## Key Decisions\n- **[Decision]**: [Brief rationale]\n\n## Next Steps\n1. [What should happen next to continue this work]\n\nKeep each section concise. Preserve exact file paths, function names, and error messages.`;\n\n/**\n * Generate a summary of abandoned branch entries.\n *\n * @param entries - Session entries to summarize (chronological order)\n * @param options - Generation options\n */\nexport async function generateBranchSummary(\n\tentries: SessionEntry[],\n\toptions: GenerateBranchSummaryOptions,\n): Promise<BranchSummaryResult> {\n\tconst {\n\t\tmodel,\n\t\tapiKey,\n\t\theaders,\n\t\tsignal,\n\t\tcustomInstructions,\n\t\treplaceInstructions,\n\t\treserveTokens = 16384,\n\t\tstreamFn,\n\t} = options;\n\n\t// Token budget = context window minus reserved space for prompt + response\n\tconst contextWindow = model.contextWindow || 128000;\n\tconst tokenBudget = contextWindow - reserveTokens;\n\n\tconst { messages, fileOps } = prepareBranchEntries(entries, tokenBudget);\n\n\tif (messages.length === 0) {\n\t\treturn { summary: \"No content to summarize\" };\n\t}\n\n\t// Transform to LLM-compatible messages, then serialize to text\n\t// Serialization prevents the model from treating it as a conversation to continue\n\tconst llmMessages = convertToLlm(messages);\n\tconst conversationText = serializeConversation(llmMessages);\n\n\t// Build prompt\n\tlet instructions: string;\n\tif (replaceInstructions && customInstructions) {\n\t\tinstructions = customInstructions;\n\t} else if (customInstructions) {\n\t\tinstructions = `${BRANCH_SUMMARY_PROMPT}\\n\\nAdditional focus: ${customInstructions}`;\n\t} else {\n\t\tinstructions = BRANCH_SUMMARY_PROMPT;\n\t}\n\tconst promptText = `<conversation>\\n${conversationText}\\n</conversation>\\n\\n${instructions}`;\n\n\tconst summarizationMessages = [\n\t\t{\n\t\t\trole: \"user\" as const,\n\t\t\tcontent: [{ type: \"text\" as const, text: promptText }],\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t];\n\n\t// Call LLM for summarization. Prefer the session stream function so SDK\n\t// request behavior (timeouts, retries, attribution headers) stays consistent\n\t// without running through agent state/events.\n\tconst context = { systemPrompt: SUMMARIZATION_SYSTEM_PROMPT, messages: summarizationMessages };\n\tconst requestOptions: SimpleStreamOptions = { apiKey, headers, signal, maxTokens: 2048 };\n\tconst response = streamFn\n\t\t? await (await streamFn(model, context, requestOptions)).result()\n\t\t: await completeSimple(model, context, requestOptions);\n\n\t// Check if aborted or errored\n\tif (response.stopReason === \"aborted\") {\n\t\treturn { aborted: true };\n\t}\n\tif (response.stopReason === \"error\") {\n\t\treturn { error: response.errorMessage || \"Summarization failed\" };\n\t}\n\n\tlet summary = response.content\n\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t.map((c) => c.text)\n\t\t.join(\"\\n\");\n\n\t// Prepend preamble to provide context about the branch summary\n\tsummary = BRANCH_SUMMARY_PREAMBLE + summary;\n\n\t// Compute file lists and append to summary\n\tconst { readFiles, modifiedFiles } = computeFileLists(fileOps);\n\tsummary += formatFileOperations(readFiles, modifiedFiles);\n\n\treturn {\n\t\tsummary: summary || \"No summary generated\",\n\t\treadFiles,\n\t\tmodifiedFiles,\n\t};\n}\n"]}
@@ -4,9 +4,8 @@
4
4
  * When navigating to a different point in the session tree, this generates
5
5
  * a summary of the branch being left so context isn't lost.
6
6
  */
7
- import { completeSimple } from "@earendil-works/omk-ai";
7
+ import { completeSimple } from "omk-ai";
8
8
  import { convertToLlm, createBranchSummaryMessage, createCompactionSummaryMessage, createCustomMessage, } from "../messages.js";
9
- import { sanitizeMemoryPayload } from "../policy-overlays-runtime.js";
10
9
  import { estimateTokens } from "./compaction.js";
11
10
  import { computeFileLists, createFileOps, extractFileOpsFromMessage, formatFileOperations, SUMMARIZATION_SYSTEM_PROMPT, serializeConversation, } from "./utils.js";
12
11
  // ============================================================================
@@ -102,7 +101,6 @@ export function prepareBranchEntries(entries, tokenBudget = 0) {
102
101
  let totalTokens = 0;
103
102
  // First pass: collect file ops from ALL entries (even if they don't fit in token budget)
104
103
  // This ensures we capture cumulative file tracking from nested branch summaries
105
- // Only extract from omk-generated summaries (fromHook !== true), not extension-generated ones
106
104
  for (const entry of entries) {
107
105
  if (entry.type === "branch_summary" && !entry.fromHook && entry.details) {
108
106
  const details = entry.details;
@@ -178,21 +176,7 @@ Use this EXACT format:
178
176
  ## Next Steps
179
177
  1. [What should happen next to continue this work]
180
178
 
181
- ## Resume Handoff
182
- - **First action**: [Single concrete next action when returning to this branch]
183
- - **Re-check before editing**: [Workspace state, files, or commands to verify first; use "(none)" if not needed]
184
- - **Evidence status**: [Checks/tests already run and results, or "(not run)"]
185
-
186
- Keep each section concise. Preserve exact file paths, function names, command results, and error messages.`;
187
- function sanitizeBranchSummaryText(text) {
188
- const sanitized = sanitizeMemoryPayload(text, {
189
- source: "branch-summary",
190
- contentTier: "summary",
191
- maxChars: 10_000_000,
192
- external: false,
193
- });
194
- return typeof sanitized.payload === "string" ? sanitized.payload : "";
195
- }
179
+ Keep each section concise. Preserve exact file paths, function names, and error messages.`;
196
180
  /**
197
181
  * Generate a summary of abandoned branch entries.
198
182
  *
@@ -211,7 +195,7 @@ export async function generateBranchSummary(entries, options) {
211
195
  // Transform to LLM-compatible messages, then serialize to text
212
196
  // Serialization prevents the model from treating it as a conversation to continue
213
197
  const llmMessages = convertToLlm(messages);
214
- const conversationText = sanitizeBranchSummaryText(serializeConversation(llmMessages));
198
+ const conversationText = serializeConversation(llmMessages);
215
199
  // Build prompt
216
200
  let instructions;
217
201
  if (replaceInstructions && customInstructions) {
@@ -246,10 +230,10 @@ export async function generateBranchSummary(entries, options) {
246
230
  if (response.stopReason === "error") {
247
231
  return { error: response.errorMessage || "Summarization failed" };
248
232
  }
249
- let summary = sanitizeBranchSummaryText(response.content
233
+ let summary = response.content
250
234
  .filter((c) => c.type === "text")
251
235
  .map((c) => c.text)
252
- .join("\n"));
236
+ .join("\n");
253
237
  // Prepend preamble to provide context about the branch summary
254
238
  summary = BRANCH_SUMMARY_PREAMBLE + summary;
255
239
  // Compute file lists and append to summary
@@ -1 +1 @@
1
- {"version":3,"file":"branch-summarization.js","sourceRoot":"","sources":["../../../src/core/compaction/branch-summarization.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Branch summarization for tree navigation.\n *\n * When navigating to a different point in the session tree, this generates\n * a summary of the branch being left so context isn't lost.\n */\n\nimport type { AgentMessage, StreamFn } from \"@earendil-works/omk-agent-core\";\nimport type { Model, SimpleStreamOptions } from \"@earendil-works/omk-ai\";\nimport { completeSimple } from \"@earendil-works/omk-ai\";\nimport {\n\tconvertToLlm,\n\tcreateBranchSummaryMessage,\n\tcreateCompactionSummaryMessage,\n\tcreateCustomMessage,\n} from \"../messages.ts\";\nimport { sanitizeMemoryPayload } from \"../policy-overlays-runtime.ts\";\nimport type { ReadonlySessionManager, SessionEntry } from \"../session-manager.ts\";\nimport { estimateTokens } from \"./compaction.ts\";\nimport {\n\tcomputeFileLists,\n\tcreateFileOps,\n\textractFileOpsFromMessage,\n\ttype FileOperations,\n\tformatFileOperations,\n\tSUMMARIZATION_SYSTEM_PROMPT,\n\tserializeConversation,\n} from \"./utils.ts\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface BranchSummaryResult {\n\tsummary?: string;\n\treadFiles?: string[];\n\tmodifiedFiles?: string[];\n\taborted?: boolean;\n\terror?: string;\n}\n\n/** Details stored in BranchSummaryEntry.details for file tracking */\nexport interface BranchSummaryDetails {\n\treadFiles: string[];\n\tmodifiedFiles: string[];\n}\n\nexport type { FileOperations } from \"./utils.ts\";\n\nexport interface BranchPreparation {\n\t/** Messages extracted for summarization, in chronological order */\n\tmessages: AgentMessage[];\n\t/** File operations extracted from tool calls */\n\tfileOps: FileOperations;\n\t/** Total estimated tokens in messages */\n\ttotalTokens: number;\n}\n\nexport interface CollectEntriesResult {\n\t/** Entries to summarize, in chronological order */\n\tentries: SessionEntry[];\n\t/** Common ancestor between old and new position, if any */\n\tcommonAncestorId: string | null;\n}\n\nexport interface GenerateBranchSummaryOptions {\n\t/** Model to use for summarization */\n\tmodel: Model<any>;\n\t/** API key for the model */\n\tapiKey: string;\n\t/** Request headers for the model */\n\theaders?: Record<string, string>;\n\t/** Abort signal for cancellation */\n\tsignal: AbortSignal;\n\t/** Optional custom instructions for summarization */\n\tcustomInstructions?: string;\n\t/** If true, customInstructions replaces the default prompt instead of being appended */\n\treplaceInstructions?: boolean;\n\t/** Tokens reserved for prompt + LLM response (default 16384) */\n\treserveTokens?: number;\n\t/** Optional session stream function. Used to preserve SDK request behavior without mutating agent state. */\n\tstreamFn?: StreamFn;\n}\n\n// ============================================================================\n// Entry Collection\n// ============================================================================\n\n/**\n * Collect entries that should be summarized when navigating from one position to another.\n *\n * Walks from oldLeafId back to the common ancestor with targetId, collecting entries\n * along the way. Does NOT stop at compaction boundaries - those are included and their\n * summaries become context.\n *\n * @param session - Session manager (read-only access)\n * @param oldLeafId - Current position (where we're navigating from)\n * @param targetId - Target position (where we're navigating to)\n * @returns Entries to summarize and the common ancestor\n */\nexport function collectEntriesForBranchSummary(\n\tsession: ReadonlySessionManager,\n\toldLeafId: string | null,\n\ttargetId: string,\n): CollectEntriesResult {\n\t// If no old position, nothing to summarize\n\tif (!oldLeafId) {\n\t\treturn { entries: [], commonAncestorId: null };\n\t}\n\n\t// Find common ancestor (deepest node that's on both paths)\n\tconst oldPath = new Set(session.getBranch(oldLeafId).map((e) => e.id));\n\tconst targetPath = session.getBranch(targetId);\n\n\t// targetPath is root-first, so iterate backwards to find deepest common ancestor\n\tlet commonAncestorId: string | null = null;\n\tfor (let i = targetPath.length - 1; i >= 0; i--) {\n\t\tif (oldPath.has(targetPath[i].id)) {\n\t\t\tcommonAncestorId = targetPath[i].id;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Collect entries from old leaf back to common ancestor\n\tconst entries: SessionEntry[] = [];\n\tlet current: string | null = oldLeafId;\n\n\twhile (current && current !== commonAncestorId) {\n\t\tconst entry = session.getEntry(current);\n\t\tif (!entry) break;\n\t\tentries.push(entry);\n\t\tcurrent = entry.parentId;\n\t}\n\n\t// Reverse to get chronological order\n\tentries.reverse();\n\n\treturn { entries, commonAncestorId };\n}\n\n// ============================================================================\n// Entry to Message Conversion\n// ============================================================================\n\n/**\n * Extract AgentMessage from a session entry.\n * Similar to getMessageFromEntry in compaction.ts but also handles compaction entries.\n */\nfunction getMessageFromEntry(entry: SessionEntry): AgentMessage | undefined {\n\tswitch (entry.type) {\n\t\tcase \"message\":\n\t\t\t// Skip tool results - context is in assistant's tool call\n\t\t\tif (entry.message.role === \"toolResult\") return undefined;\n\t\t\treturn entry.message;\n\n\t\tcase \"custom_message\":\n\t\t\treturn createCustomMessage(entry.customType, entry.content, entry.display, entry.details, entry.timestamp);\n\n\t\tcase \"branch_summary\":\n\t\t\treturn createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp);\n\n\t\tcase \"compaction\":\n\t\t\treturn createCompactionSummaryMessage(entry.summary, entry.tokensBefore, entry.timestamp);\n\n\t\t// These don't contribute to conversation content\n\t\tcase \"thinking_level_change\":\n\t\tcase \"model_change\":\n\t\tcase \"custom\":\n\t\tcase \"label\":\n\t\tcase \"session_info\":\n\t\t\treturn undefined;\n\t}\n}\n\n/**\n * Prepare entries for summarization with token budget.\n *\n * Walks entries from NEWEST to OLDEST, adding messages until we hit the token budget.\n * This ensures we keep the most recent context when the branch is too long.\n *\n * Also collects file operations from:\n * - Tool calls in assistant messages\n * - Existing branch_summary entries' details (for cumulative tracking)\n *\n * @param entries - Entries in chronological order\n * @param tokenBudget - Maximum tokens to include (0 = no limit)\n */\nexport function prepareBranchEntries(entries: SessionEntry[], tokenBudget: number = 0): BranchPreparation {\n\tconst messages: AgentMessage[] = [];\n\tconst fileOps = createFileOps();\n\tlet totalTokens = 0;\n\n\t// First pass: collect file ops from ALL entries (even if they don't fit in token budget)\n\t// This ensures we capture cumulative file tracking from nested branch summaries\n\t// Only extract from omk-generated summaries (fromHook !== true), not extension-generated ones\n\tfor (const entry of entries) {\n\t\tif (entry.type === \"branch_summary\" && !entry.fromHook && entry.details) {\n\t\t\tconst details = entry.details as BranchSummaryDetails;\n\t\t\tif (Array.isArray(details.readFiles)) {\n\t\t\t\tfor (const f of details.readFiles) fileOps.read.add(f);\n\t\t\t}\n\t\t\tif (Array.isArray(details.modifiedFiles)) {\n\t\t\t\t// Modified files go into both edited and written for proper deduplication\n\t\t\t\tfor (const f of details.modifiedFiles) {\n\t\t\t\t\tfileOps.edited.add(f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Second pass: walk from newest to oldest, adding messages until token budget\n\tfor (let i = entries.length - 1; i >= 0; i--) {\n\t\tconst entry = entries[i];\n\t\tconst message = getMessageFromEntry(entry);\n\t\tif (!message) continue;\n\n\t\t// Extract file ops from assistant messages (tool calls)\n\t\textractFileOpsFromMessage(message, fileOps);\n\n\t\tconst tokens = estimateTokens(message);\n\n\t\t// Check budget before adding\n\t\tif (tokenBudget > 0 && totalTokens + tokens > tokenBudget) {\n\t\t\t// If this is a summary entry, try to fit it anyway as it's important context\n\t\t\tif (entry.type === \"compaction\" || entry.type === \"branch_summary\") {\n\t\t\t\tif (totalTokens < tokenBudget * 0.9) {\n\t\t\t\t\tmessages.unshift(message);\n\t\t\t\t\ttotalTokens += tokens;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Stop - we've hit the budget\n\t\t\tbreak;\n\t\t}\n\n\t\tmessages.unshift(message);\n\t\ttotalTokens += tokens;\n\t}\n\n\treturn { messages, fileOps, totalTokens };\n}\n\n// ============================================================================\n// Summary Generation\n// ============================================================================\n\nconst BRANCH_SUMMARY_PREAMBLE = `The user explored a different conversation branch before returning here.\nSummary of that exploration:\n\n`;\n\nconst BRANCH_SUMMARY_PROMPT = `Create a structured summary of this conversation branch for context when returning later.\n\nUse this EXACT format:\n\n## Goal\n[What was the user trying to accomplish in this branch?]\n\n## Constraints & Preferences\n- [Any constraints, preferences, or requirements mentioned]\n- [Or \"(none)\" if none were mentioned]\n\n## Progress\n### Done\n- [x] [Completed tasks/changes]\n\n### In Progress\n- [ ] [Work that was started but not finished]\n\n### Blocked\n- [Issues preventing progress, if any]\n\n## Key Decisions\n- **[Decision]**: [Brief rationale]\n\n## Next Steps\n1. [What should happen next to continue this work]\n\n## Resume Handoff\n- **First action**: [Single concrete next action when returning to this branch]\n- **Re-check before editing**: [Workspace state, files, or commands to verify first; use \"(none)\" if not needed]\n- **Evidence status**: [Checks/tests already run and results, or \"(not run)\"]\n\nKeep each section concise. Preserve exact file paths, function names, command results, and error messages.`;\n\nfunction sanitizeBranchSummaryText(text: string): string {\n\tconst sanitized = sanitizeMemoryPayload(text, {\n\t\tsource: \"branch-summary\",\n\t\tcontentTier: \"summary\",\n\t\tmaxChars: 10_000_000,\n\t\texternal: false,\n\t});\n\treturn typeof sanitized.payload === \"string\" ? sanitized.payload : \"\";\n}\n\n/**\n * Generate a summary of abandoned branch entries.\n *\n * @param entries - Session entries to summarize (chronological order)\n * @param options - Generation options\n */\nexport async function generateBranchSummary(\n\tentries: SessionEntry[],\n\toptions: GenerateBranchSummaryOptions,\n): Promise<BranchSummaryResult> {\n\tconst {\n\t\tmodel,\n\t\tapiKey,\n\t\theaders,\n\t\tsignal,\n\t\tcustomInstructions,\n\t\treplaceInstructions,\n\t\treserveTokens = 16384,\n\t\tstreamFn,\n\t} = options;\n\n\t// Token budget = context window minus reserved space for prompt + response\n\tconst contextWindow = model.contextWindow || 128000;\n\tconst tokenBudget = contextWindow - reserveTokens;\n\n\tconst { messages, fileOps } = prepareBranchEntries(entries, tokenBudget);\n\n\tif (messages.length === 0) {\n\t\treturn { summary: \"No content to summarize\" };\n\t}\n\n\t// Transform to LLM-compatible messages, then serialize to text\n\t// Serialization prevents the model from treating it as a conversation to continue\n\tconst llmMessages = convertToLlm(messages);\n\tconst conversationText = sanitizeBranchSummaryText(serializeConversation(llmMessages));\n\n\t// Build prompt\n\tlet instructions: string;\n\tif (replaceInstructions && customInstructions) {\n\t\tinstructions = customInstructions;\n\t} else if (customInstructions) {\n\t\tinstructions = `${BRANCH_SUMMARY_PROMPT}\\n\\nAdditional focus: ${customInstructions}`;\n\t} else {\n\t\tinstructions = BRANCH_SUMMARY_PROMPT;\n\t}\n\tconst promptText = `<conversation>\\n${conversationText}\\n</conversation>\\n\\n${instructions}`;\n\n\tconst summarizationMessages = [\n\t\t{\n\t\t\trole: \"user\" as const,\n\t\t\tcontent: [{ type: \"text\" as const, text: promptText }],\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t];\n\n\t// Call LLM for summarization. Prefer the session stream function so SDK\n\t// request behavior (timeouts, retries, attribution headers) stays consistent\n\t// without running through agent state/events.\n\tconst context = { systemPrompt: SUMMARIZATION_SYSTEM_PROMPT, messages: summarizationMessages };\n\tconst requestOptions: SimpleStreamOptions = { apiKey, headers, signal, maxTokens: 2048 };\n\tconst response = streamFn\n\t\t? await (await streamFn(model, context, requestOptions)).result()\n\t\t: await completeSimple(model, context, requestOptions);\n\n\t// Check if aborted or errored\n\tif (response.stopReason === \"aborted\") {\n\t\treturn { aborted: true };\n\t}\n\tif (response.stopReason === \"error\") {\n\t\treturn { error: response.errorMessage || \"Summarization failed\" };\n\t}\n\n\tlet summary = sanitizeBranchSummaryText(\n\t\tresponse.content\n\t\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t\t.map((c) => c.text)\n\t\t\t.join(\"\\n\"),\n\t);\n\n\t// Prepend preamble to provide context about the branch summary\n\tsummary = BRANCH_SUMMARY_PREAMBLE + summary;\n\n\t// Compute file lists and append to summary\n\tconst { readFiles, modifiedFiles } = computeFileLists(fileOps);\n\tsummary += formatFileOperations(readFiles, modifiedFiles);\n\n\treturn {\n\t\tsummary: summary || \"No summary generated\",\n\t\treadFiles,\n\t\tmodifiedFiles,\n\t};\n}\n"]}
1
+ {"version":3,"file":"branch-summarization.js","sourceRoot":"","sources":["../../../src/core/compaction/branch-summarization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACN,YAAY,EACZ,0BAA0B,EAC1B,8BAA8B,EAC9B,mBAAmB,GACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACN,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EAEzB,oBAAoB,EACpB,2BAA2B,EAC3B,qBAAqB,GACrB,MAAM,YAAY,CAAC;AAyDpB,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,8BAA8B,CAC7C,OAA+B,EAC/B,SAAwB,EACxB,QAAgB,EACO;IACvB,2CAA2C;IAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,2DAA2D;IAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE/C,iFAAiF;IACjF,IAAI,gBAAgB,GAAkB,IAAI,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM;QACP,CAAC;IACF,CAAC;IAED,wDAAwD;IACxD,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,OAAO,GAAkB,SAAS,CAAC;IAEvC,OAAO,OAAO,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,MAAM;QAClB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAED,qCAAqC;IACrC,OAAO,CAAC,OAAO,EAAE,CAAC;IAElB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAAA,CACrC;AAED,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,mBAAmB,CAAC,KAAmB,EAA4B;IAC3E,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,SAAS;YACb,0DAA0D;YAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;gBAAE,OAAO,SAAS,CAAC;YAC1D,OAAO,KAAK,CAAC,OAAO,CAAC;QAEtB,KAAK,gBAAgB;YACpB,OAAO,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAE5G,KAAK,gBAAgB;YACpB,OAAO,0BAA0B,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAEjF,KAAK,YAAY;YAChB,OAAO,8BAA8B,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAE3F,iDAAiD;QACjD,KAAK,uBAAuB,CAAC;QAC7B,KAAK,cAAc,CAAC;QACpB,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,cAAc;YAClB,OAAO,SAAS,CAAC;IACnB,CAAC;AAAA,CACD;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAuB,EAAE,WAAW,GAAW,CAAC,EAAqB;IACzG,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,yFAAyF;IACzF,gFAAgF;IAChF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACzE,MAAM,OAAO,GAAG,KAAK,CAAC,OAA+B,CAAC;YACtD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,SAAS;oBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1C,0EAA0E;gBAC1E,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;oBACvC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvB,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,8EAA8E;IAC9E,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,wDAAwD;QACxD,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAEvC,6BAA6B;QAC7B,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC;YAC3D,6EAA6E;YAC7E,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACpE,IAAI,WAAW,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC;oBACrC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC1B,WAAW,IAAI,MAAM,CAAC;gBACvB,CAAC;YACF,CAAC;YACD,8BAA8B;YAC9B,MAAM;QACP,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,WAAW,IAAI,MAAM,CAAC;IACvB,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAAA,CAC1C;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,MAAM,uBAAuB,GAAG;;;CAG/B,CAAC;AAEF,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;0FA2B4D,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,OAAuB,EACvB,OAAqC,EACN;IAC/B,MAAM,EACL,KAAK,EACL,MAAM,EACN,OAAO,EACP,MAAM,EACN,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,GAAG,KAAK,EACrB,QAAQ,GACR,GAAG,OAAO,CAAC;IAEZ,2EAA2E;IAC3E,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC;IACpD,MAAM,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC;IAElD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAEzE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAC/C,CAAC;IAED,+DAA+D;IAC/D,kFAAkF;IAClF,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAE5D,eAAe;IACf,IAAI,YAAoB,CAAC;IACzB,IAAI,mBAAmB,IAAI,kBAAkB,EAAE,CAAC;QAC/C,YAAY,GAAG,kBAAkB,CAAC;IACnC,CAAC;SAAM,IAAI,kBAAkB,EAAE,CAAC;QAC/B,YAAY,GAAG,GAAG,qBAAqB,yBAAyB,kBAAkB,EAAE,CAAC;IACtF,CAAC;SAAM,CAAC;QACP,YAAY,GAAG,qBAAqB,CAAC;IACtC,CAAC;IACD,MAAM,UAAU,GAAG,mBAAmB,gBAAgB,wBAAwB,YAAY,EAAE,CAAC;IAE7F,MAAM,qBAAqB,GAAG;QAC7B;YACC,IAAI,EAAE,MAAe;YACrB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACtD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB;KACD,CAAC;IAEF,wEAAwE;IACxE,6EAA6E;IAC7E,8CAA8C;IAC9C,MAAM,OAAO,GAAG,EAAE,YAAY,EAAE,2BAA2B,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAC/F,MAAM,cAAc,GAAwB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACzF,MAAM,QAAQ,GAAG,QAAQ;QACxB,CAAC,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE;QACjE,CAAC,CAAC,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAExD,8BAA8B;IAC9B,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,IAAI,sBAAsB,EAAE,CAAC;IACnE,CAAC;IAED,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,+DAA+D;IAC/D,OAAO,GAAG,uBAAuB,GAAG,OAAO,CAAC;IAE5C,2CAA2C;IAC3C,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/D,OAAO,IAAI,oBAAoB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAE1D,OAAO;QACN,OAAO,EAAE,OAAO,IAAI,sBAAsB;QAC1C,SAAS;QACT,aAAa;KACb,CAAC;AAAA,CACF","sourcesContent":["/**\n * Branch summarization for tree navigation.\n *\n * When navigating to a different point in the session tree, this generates\n * a summary of the branch being left so context isn't lost.\n */\n\nimport type { AgentMessage, StreamFn } from \"omk-agent-core\";\nimport type { Model, SimpleStreamOptions } from \"omk-ai\";\nimport { completeSimple } from \"omk-ai\";\nimport {\n\tconvertToLlm,\n\tcreateBranchSummaryMessage,\n\tcreateCompactionSummaryMessage,\n\tcreateCustomMessage,\n} from \"../messages.ts\";\nimport type { ReadonlySessionManager, SessionEntry } from \"../session-manager.ts\";\nimport { estimateTokens } from \"./compaction.ts\";\nimport {\n\tcomputeFileLists,\n\tcreateFileOps,\n\textractFileOpsFromMessage,\n\ttype FileOperations,\n\tformatFileOperations,\n\tSUMMARIZATION_SYSTEM_PROMPT,\n\tserializeConversation,\n} from \"./utils.ts\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface BranchSummaryResult {\n\tsummary?: string;\n\treadFiles?: string[];\n\tmodifiedFiles?: string[];\n\taborted?: boolean;\n\terror?: string;\n}\n\n/** Details stored in BranchSummaryEntry.details for file tracking */\nexport interface BranchSummaryDetails {\n\treadFiles: string[];\n\tmodifiedFiles: string[];\n}\n\nexport type { FileOperations } from \"./utils.ts\";\n\nexport interface BranchPreparation {\n\t/** Messages extracted for summarization, in chronological order */\n\tmessages: AgentMessage[];\n\t/** File operations extracted from tool calls */\n\tfileOps: FileOperations;\n\t/** Total estimated tokens in messages */\n\ttotalTokens: number;\n}\n\nexport interface CollectEntriesResult {\n\t/** Entries to summarize, in chronological order */\n\tentries: SessionEntry[];\n\t/** Common ancestor between old and new position, if any */\n\tcommonAncestorId: string | null;\n}\n\nexport interface GenerateBranchSummaryOptions {\n\t/** Model to use for summarization */\n\tmodel: Model<any>;\n\t/** API key for the model */\n\tapiKey: string;\n\t/** Request headers for the model */\n\theaders?: Record<string, string>;\n\t/** Abort signal for cancellation */\n\tsignal: AbortSignal;\n\t/** Optional custom instructions for summarization */\n\tcustomInstructions?: string;\n\t/** If true, customInstructions replaces the default prompt instead of being appended */\n\treplaceInstructions?: boolean;\n\t/** Tokens reserved for prompt + LLM response (default 16384) */\n\treserveTokens?: number;\n\t/** Optional session stream function. Used to preserve SDK request behavior without mutating agent state. */\n\tstreamFn?: StreamFn;\n}\n\n// ============================================================================\n// Entry Collection\n// ============================================================================\n\n/**\n * Collect entries that should be summarized when navigating from one position to another.\n *\n * Walks from oldLeafId back to the common ancestor with targetId, collecting entries\n * along the way. Does NOT stop at compaction boundaries - those are included and their\n * summaries become context.\n *\n * @param session - Session manager (read-only access)\n * @param oldLeafId - Current position (where we're navigating from)\n * @param targetId - Target position (where we're navigating to)\n * @returns Entries to summarize and the common ancestor\n */\nexport function collectEntriesForBranchSummary(\n\tsession: ReadonlySessionManager,\n\toldLeafId: string | null,\n\ttargetId: string,\n): CollectEntriesResult {\n\t// If no old position, nothing to summarize\n\tif (!oldLeafId) {\n\t\treturn { entries: [], commonAncestorId: null };\n\t}\n\n\t// Find common ancestor (deepest node that's on both paths)\n\tconst oldPath = new Set(session.getBranch(oldLeafId).map((e) => e.id));\n\tconst targetPath = session.getBranch(targetId);\n\n\t// targetPath is root-first, so iterate backwards to find deepest common ancestor\n\tlet commonAncestorId: string | null = null;\n\tfor (let i = targetPath.length - 1; i >= 0; i--) {\n\t\tif (oldPath.has(targetPath[i].id)) {\n\t\t\tcommonAncestorId = targetPath[i].id;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Collect entries from old leaf back to common ancestor\n\tconst entries: SessionEntry[] = [];\n\tlet current: string | null = oldLeafId;\n\n\twhile (current && current !== commonAncestorId) {\n\t\tconst entry = session.getEntry(current);\n\t\tif (!entry) break;\n\t\tentries.push(entry);\n\t\tcurrent = entry.parentId;\n\t}\n\n\t// Reverse to get chronological order\n\tentries.reverse();\n\n\treturn { entries, commonAncestorId };\n}\n\n// ============================================================================\n// Entry to Message Conversion\n// ============================================================================\n\n/**\n * Extract AgentMessage from a session entry.\n * Similar to getMessageFromEntry in compaction.ts but also handles compaction entries.\n */\nfunction getMessageFromEntry(entry: SessionEntry): AgentMessage | undefined {\n\tswitch (entry.type) {\n\t\tcase \"message\":\n\t\t\t// Skip tool results - context is in assistant's tool call\n\t\t\tif (entry.message.role === \"toolResult\") return undefined;\n\t\t\treturn entry.message;\n\n\t\tcase \"custom_message\":\n\t\t\treturn createCustomMessage(entry.customType, entry.content, entry.display, entry.details, entry.timestamp);\n\n\t\tcase \"branch_summary\":\n\t\t\treturn createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp);\n\n\t\tcase \"compaction\":\n\t\t\treturn createCompactionSummaryMessage(entry.summary, entry.tokensBefore, entry.timestamp);\n\n\t\t// These don't contribute to conversation content\n\t\tcase \"thinking_level_change\":\n\t\tcase \"model_change\":\n\t\tcase \"custom\":\n\t\tcase \"label\":\n\t\tcase \"session_info\":\n\t\t\treturn undefined;\n\t}\n}\n\n/**\n * Prepare entries for summarization with token budget.\n *\n * Walks entries from NEWEST to OLDEST, adding messages until we hit the token budget.\n * This ensures we keep the most recent context when the branch is too long.\n *\n * Also collects file operations from:\n * - Tool calls in assistant messages\n * - Existing branch_summary entries' details (for cumulative tracking)\n *\n * @param entries - Entries in chronological order\n * @param tokenBudget - Maximum tokens to include (0 = no limit)\n */\nexport function prepareBranchEntries(entries: SessionEntry[], tokenBudget: number = 0): BranchPreparation {\n\tconst messages: AgentMessage[] = [];\n\tconst fileOps = createFileOps();\n\tlet totalTokens = 0;\n\n\t// First pass: collect file ops from ALL entries (even if they don't fit in token budget)\n\t// This ensures we capture cumulative file tracking from nested branch summaries\n\tfor (const entry of entries) {\n\t\tif (entry.type === \"branch_summary\" && !entry.fromHook && entry.details) {\n\t\t\tconst details = entry.details as BranchSummaryDetails;\n\t\t\tif (Array.isArray(details.readFiles)) {\n\t\t\t\tfor (const f of details.readFiles) fileOps.read.add(f);\n\t\t\t}\n\t\t\tif (Array.isArray(details.modifiedFiles)) {\n\t\t\t\t// Modified files go into both edited and written for proper deduplication\n\t\t\t\tfor (const f of details.modifiedFiles) {\n\t\t\t\t\tfileOps.edited.add(f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Second pass: walk from newest to oldest, adding messages until token budget\n\tfor (let i = entries.length - 1; i >= 0; i--) {\n\t\tconst entry = entries[i];\n\t\tconst message = getMessageFromEntry(entry);\n\t\tif (!message) continue;\n\n\t\t// Extract file ops from assistant messages (tool calls)\n\t\textractFileOpsFromMessage(message, fileOps);\n\n\t\tconst tokens = estimateTokens(message);\n\n\t\t// Check budget before adding\n\t\tif (tokenBudget > 0 && totalTokens + tokens > tokenBudget) {\n\t\t\t// If this is a summary entry, try to fit it anyway as it's important context\n\t\t\tif (entry.type === \"compaction\" || entry.type === \"branch_summary\") {\n\t\t\t\tif (totalTokens < tokenBudget * 0.9) {\n\t\t\t\t\tmessages.unshift(message);\n\t\t\t\t\ttotalTokens += tokens;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Stop - we've hit the budget\n\t\t\tbreak;\n\t\t}\n\n\t\tmessages.unshift(message);\n\t\ttotalTokens += tokens;\n\t}\n\n\treturn { messages, fileOps, totalTokens };\n}\n\n// ============================================================================\n// Summary Generation\n// ============================================================================\n\nconst BRANCH_SUMMARY_PREAMBLE = `The user explored a different conversation branch before returning here.\nSummary of that exploration:\n\n`;\n\nconst BRANCH_SUMMARY_PROMPT = `Create a structured summary of this conversation branch for context when returning later.\n\nUse this EXACT format:\n\n## Goal\n[What was the user trying to accomplish in this branch?]\n\n## Constraints & Preferences\n- [Any constraints, preferences, or requirements mentioned]\n- [Or \"(none)\" if none were mentioned]\n\n## Progress\n### Done\n- [x] [Completed tasks/changes]\n\n### In Progress\n- [ ] [Work that was started but not finished]\n\n### Blocked\n- [Issues preventing progress, if any]\n\n## Key Decisions\n- **[Decision]**: [Brief rationale]\n\n## Next Steps\n1. [What should happen next to continue this work]\n\nKeep each section concise. Preserve exact file paths, function names, and error messages.`;\n\n/**\n * Generate a summary of abandoned branch entries.\n *\n * @param entries - Session entries to summarize (chronological order)\n * @param options - Generation options\n */\nexport async function generateBranchSummary(\n\tentries: SessionEntry[],\n\toptions: GenerateBranchSummaryOptions,\n): Promise<BranchSummaryResult> {\n\tconst {\n\t\tmodel,\n\t\tapiKey,\n\t\theaders,\n\t\tsignal,\n\t\tcustomInstructions,\n\t\treplaceInstructions,\n\t\treserveTokens = 16384,\n\t\tstreamFn,\n\t} = options;\n\n\t// Token budget = context window minus reserved space for prompt + response\n\tconst contextWindow = model.contextWindow || 128000;\n\tconst tokenBudget = contextWindow - reserveTokens;\n\n\tconst { messages, fileOps } = prepareBranchEntries(entries, tokenBudget);\n\n\tif (messages.length === 0) {\n\t\treturn { summary: \"No content to summarize\" };\n\t}\n\n\t// Transform to LLM-compatible messages, then serialize to text\n\t// Serialization prevents the model from treating it as a conversation to continue\n\tconst llmMessages = convertToLlm(messages);\n\tconst conversationText = serializeConversation(llmMessages);\n\n\t// Build prompt\n\tlet instructions: string;\n\tif (replaceInstructions && customInstructions) {\n\t\tinstructions = customInstructions;\n\t} else if (customInstructions) {\n\t\tinstructions = `${BRANCH_SUMMARY_PROMPT}\\n\\nAdditional focus: ${customInstructions}`;\n\t} else {\n\t\tinstructions = BRANCH_SUMMARY_PROMPT;\n\t}\n\tconst promptText = `<conversation>\\n${conversationText}\\n</conversation>\\n\\n${instructions}`;\n\n\tconst summarizationMessages = [\n\t\t{\n\t\t\trole: \"user\" as const,\n\t\t\tcontent: [{ type: \"text\" as const, text: promptText }],\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t];\n\n\t// Call LLM for summarization. Prefer the session stream function so SDK\n\t// request behavior (timeouts, retries, attribution headers) stays consistent\n\t// without running through agent state/events.\n\tconst context = { systemPrompt: SUMMARIZATION_SYSTEM_PROMPT, messages: summarizationMessages };\n\tconst requestOptions: SimpleStreamOptions = { apiKey, headers, signal, maxTokens: 2048 };\n\tconst response = streamFn\n\t\t? await (await streamFn(model, context, requestOptions)).result()\n\t\t: await completeSimple(model, context, requestOptions);\n\n\t// Check if aborted or errored\n\tif (response.stopReason === \"aborted\") {\n\t\treturn { aborted: true };\n\t}\n\tif (response.stopReason === \"error\") {\n\t\treturn { error: response.errorMessage || \"Summarization failed\" };\n\t}\n\n\tlet summary = response.content\n\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t.map((c) => c.text)\n\t\t.join(\"\\n\");\n\n\t// Prepend preamble to provide context about the branch summary\n\tsummary = BRANCH_SUMMARY_PREAMBLE + summary;\n\n\t// Compute file lists and append to summary\n\tconst { readFiles, modifiedFiles } = computeFileLists(fileOps);\n\tsummary += formatFileOperations(readFiles, modifiedFiles);\n\n\treturn {\n\t\tsummary: summary || \"No summary generated\",\n\t\treadFiles,\n\t\tmodifiedFiles,\n\t};\n}\n"]}
@@ -4,9 +4,8 @@
4
4
  * Pure functions for compaction logic. The session manager handles I/O,
5
5
  * and after compaction the session is reloaded.
6
6
  */
7
- import type { AgentMessage, StreamFn, ThinkingLevel } from "@earendil-works/omk-agent-core";
8
- import type { Model, Usage } from "@earendil-works/omk-ai";
9
- import { type SanitizerFindingSummary } from "../policy-overlays-runtime.ts";
7
+ import type { AgentMessage, StreamFn, ThinkingLevel } from "omk-agent-core";
8
+ import type { Model, Usage } from "omk-ai";
10
9
  import { type SessionEntry } from "../session-manager.ts";
11
10
  import { type FileOperations } from "./utils.ts";
12
11
  /** Details stored in CompactionEntry.details for file tracking */
@@ -28,12 +27,8 @@ export interface CompactionSettings {
28
27
  keepRecentTokens: number;
29
28
  /** Maximum fraction of the context window to use before compaction. Default: 0.9. */
30
29
  maxUsageRatio?: number;
31
- /** Maximum serialized history tokens to send to the summarizer before extractive packing. */
32
- summaryInputTokens?: number;
33
30
  }
34
31
  export declare const DEFAULT_COMPACTION_MAX_USAGE_RATIO = 0.9;
35
- export declare const DEFAULT_COMPACTION_SUMMARY_INPUT_TOKENS = 80000;
36
- export declare const DEFAULT_COMPACTION_RAW_INPUT_CHAR_CEILING = 1200000;
37
32
  export declare const DEFAULT_COMPACTION_SETTINGS: CompactionSettings;
38
33
  /**
39
34
  * Calculate total context tokens from usage.
@@ -107,103 +102,11 @@ export interface CutPointResult {
107
102
  * Only considers entries between `startIndex` and `endIndex` (exclusive).
108
103
  */
109
104
  export declare function findCutPoint(entries: SessionEntry[], startIndex: number, endIndex: number, keepRecentTokens: number): CutPointResult;
110
- export interface SummaryInputPackingResult {
111
- text: string;
112
- originalTokens: number;
113
- packedTokens: number;
114
- omittedTokens: number;
115
- wasCompressed: boolean;
116
- }
117
- export interface SummaryInputTokenBudgetOptions {
118
- configuredSummaryInputTokens?: number;
119
- basePrompt?: string;
120
- customInstructions?: string;
121
- previousSummary?: string;
122
- systemPrompt?: string;
123
- wrapperText?: string;
124
- safetyMarginTokens?: number;
125
- }
126
- export interface SummaryInputTokenBudgetResolution {
127
- budgetTokens?: number;
128
- emergency: boolean;
129
- reason?: string;
130
- fixedPromptTokens: number;
131
- availableInputTokens?: number;
132
- }
133
- export declare function resolveSummaryInputTokenBudgetV3(model: Model<any>, maxOutputTokens: number, options?: number | SummaryInputTokenBudgetOptions): SummaryInputTokenBudgetResolution;
134
- export declare function resolveSummaryInputTokenBudget(model: Model<any>, maxOutputTokens: number, options?: number | SummaryInputTokenBudgetOptions): number | undefined;
135
- export type SummaryInputSemanticUnitKind = "heading" | "checklist" | "code" | "command" | "evidence" | "blocker" | "text";
136
- export type SummaryInputSemanticUnitStatus = "done" | "in_progress" | "blocked" | "failed" | "passed";
137
- export interface SummaryInputSemanticUnit {
138
- index: number;
139
- text: string;
140
- score: number;
141
- sectionPath: string[];
142
- kind: SummaryInputSemanticUnitKind;
143
- refs: string[];
144
- status?: SummaryInputSemanticUnitStatus;
145
- }
146
- export interface SummaryDependencyGraph {
147
- nodes: SummaryInputSemanticUnit[];
148
- edges: Array<{
149
- from: number;
150
- to: number;
151
- reason: string;
152
- }>;
153
- }
154
- export declare function splitSummaryInputSemanticUnits(text: string): SummaryInputSemanticUnit[];
155
- export declare function buildSummaryDependencyGraph(units: SummaryInputSemanticUnit[]): SummaryDependencyGraph;
156
- export declare function selectSummaryDependencyClosure(graph: SummaryDependencyGraph, seedIndexes: readonly number[], maxAdditionalNodes?: number): Set<number>;
157
- export declare function deduplicateSummaryFactsByNovelty(units: SummaryInputSemanticUnit[]): SummaryInputSemanticUnit[];
158
- /**
159
- * Sanitize serialized conversation text before it is packed for summarization.
160
- *
161
- * Removes secrets, auth tokens, PII-like values, and home paths from the raw
162
- * serialized transcript (assistant thinking, tool call args, tool results) so
163
- * they never reach the summarizer prompt or a downstream memory export. Only
164
- * redaction is applied; the real char/token budgets are enforced by the
165
- * caller. Safe content (file paths, command exit summaries, markers) is kept.
166
- */
167
- export interface SanitizedConversationText {
168
- text: string;
169
- findings: SanitizerFindingSummary;
170
- }
171
- export declare const COMPACTION_SANITIZER_MAX_CHARS = 10000000;
172
- export declare function sanitizeSerializedConversation(text: string): SanitizedConversationText;
173
- /**
174
- * Pack serialized conversation text under a token budget using a deterministic
175
- * extractive strategy: preserve the opening, recent tail, and high-signal
176
- * middle lines such as paths, commands, errors, and decisions.
177
- */
178
- export declare function packSummaryInputForTokenBudget(text: string, maxInputTokens: number | undefined, maxRawChars?: number): SummaryInputPackingResult;
179
- declare const REQUIRED_SUMMARY_SECTIONS: readonly ["## Goal", "## Constraints & Preferences", "## Progress", "### Done", "### In Progress", "### Blocked", "## Key Decisions", "## Next Steps", "## Critical Context", "## Resume Handoff"];
180
- export type CompactionSummarySection = (typeof REQUIRED_SUMMARY_SECTIONS)[number];
181
- export interface ParsedCompactionSummary {
182
- sections: Partial<Record<CompactionSummarySection, string>>;
183
- missingSections: CompactionSummarySection[];
184
- }
185
- export declare function parseCompactionSummary(summary: string): ParsedCompactionSummary;
186
- export interface CompactionSummaryValidationOptions {
187
- previousSummary?: string;
188
- fallbackFacts?: readonly string[];
189
- }
190
- export interface CompactionSummaryValidationResult {
191
- summary: string;
192
- wasRepaired: boolean;
193
- missingSections: string[];
194
- }
195
- export declare function createEmergencyCompactionHandoff(options: {
196
- reason: string;
197
- conversationText: string;
198
- previousSummary?: string;
199
- fallbackFacts?: readonly string[];
200
- }): string;
201
- export declare function validateCompactionSummaryContract(summary: string, options?: CompactionSummaryValidationOptions): CompactionSummaryValidationResult;
202
105
  /**
203
106
  * Generate a summary of the conversation using the LLM.
204
107
  * If previousSummary is provided, uses the update prompt to merge.
205
108
  */
206
- export declare function generateSummary(currentMessages: AgentMessage[], model: Model<any>, reserveTokens: number, apiKey: string | undefined, headers?: Record<string, string>, signal?: AbortSignal, customInstructions?: string, previousSummary?: string, thinkingLevel?: ThinkingLevel, streamFn?: StreamFn, summaryInputTokens?: number): Promise<string>;
109
+ export declare function generateSummary(currentMessages: AgentMessage[], model: Model<any>, reserveTokens: number, apiKey: string | undefined, headers?: Record<string, string>, signal?: AbortSignal, customInstructions?: string, previousSummary?: string, thinkingLevel?: ThinkingLevel, streamFn?: StreamFn): Promise<string>;
207
110
  export interface CompactionPreparation {
208
111
  /** UUID of first entry to keep */
209
112
  firstKeptEntryId: string;
@@ -230,5 +133,4 @@ export declare function prepareCompaction(pathEntries: SessionEntry[], settings:
230
133
  * @param customInstructions - Optional custom focus for the summary
231
134
  */
232
135
  export declare function compact(preparation: CompactionPreparation, model: Model<any>, apiKey: string | undefined, headers?: Record<string, string>, customInstructions?: string, signal?: AbortSignal, thinkingLevel?: ThinkingLevel, streamFn?: StreamFn): Promise<CompactionResult>;
233
- export {};
234
136
  //# sourceMappingURL=compaction.d.ts.map