@cuylabs/agent-core 4.9.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (658) hide show
  1. package/README.md +11 -12
  2. package/dist/agent/chat-loop/commit-batch.d.ts +10 -0
  3. package/dist/agent/chat-loop/commit-batch.d.ts.map +1 -0
  4. package/dist/agent/chat-loop/context-recovery.d.ts +33 -0
  5. package/dist/agent/chat-loop/context-recovery.d.ts.map +1 -0
  6. package/dist/agent/chat-loop/finalize-turn.d.ts +19 -0
  7. package/dist/agent/chat-loop/finalize-turn.d.ts.map +1 -0
  8. package/dist/agent/chat-loop/index.d.ts +7 -0
  9. package/dist/agent/chat-loop/index.d.ts.map +1 -0
  10. package/dist/agent/chat-loop/loop.d.ts +8 -0
  11. package/dist/agent/chat-loop/loop.d.ts.map +1 -0
  12. package/dist/agent/chat-loop/model-step-runner.d.ts +26 -0
  13. package/dist/agent/chat-loop/model-step-runner.d.ts.map +1 -0
  14. package/dist/agent/chat-loop/model-step-snapshot.d.ts +49 -0
  15. package/dist/agent/chat-loop/model-step-snapshot.d.ts.map +1 -0
  16. package/dist/agent/chat-loop/turn-tools.d.ts +19 -0
  17. package/dist/agent/chat-loop/turn-tools.d.ts.map +1 -0
  18. package/dist/agent/chat-loop/types.d.ts +60 -0
  19. package/dist/agent/chat-loop/types.d.ts.map +1 -0
  20. package/dist/agent/defaults.d.ts +69 -0
  21. package/dist/agent/defaults.d.ts.map +1 -0
  22. package/dist/agent/event-printer.d.ts +94 -0
  23. package/dist/agent/event-printer.d.ts.map +1 -0
  24. package/dist/agent/fork.d.ts +59 -0
  25. package/dist/agent/fork.d.ts.map +1 -0
  26. package/dist/agent/index.d.ts +17 -0
  27. package/dist/agent/index.d.ts.map +1 -0
  28. package/dist/agent/instance/context-management.d.ts +42 -0
  29. package/dist/agent/instance/context-management.d.ts.map +1 -0
  30. package/dist/agent/instance/forking.d.ts +26 -0
  31. package/dist/agent/instance/forking.d.ts.map +1 -0
  32. package/dist/agent/instance/index.d.ts +182 -0
  33. package/dist/agent/instance/index.d.ts.map +1 -0
  34. package/dist/agent/instance/interventions.d.ts +10 -0
  35. package/dist/agent/instance/interventions.d.ts.map +1 -0
  36. package/dist/agent/instance/mcp.d.ts +21 -0
  37. package/dist/agent/instance/mcp.d.ts.map +1 -0
  38. package/dist/agent/instance/sessions.d.ts +8 -0
  39. package/dist/agent/instance/sessions.d.ts.map +1 -0
  40. package/dist/agent/instance/tools.d.ts +16 -0
  41. package/dist/agent/instance/tools.d.ts.map +1 -0
  42. package/dist/agent/instance/turn-lifecycle.d.ts +61 -0
  43. package/dist/agent/instance/turn-lifecycle.d.ts.map +1 -0
  44. package/dist/agent/session.d.ts +16 -0
  45. package/dist/agent/session.d.ts.map +1 -0
  46. package/dist/agent/setup/config.d.ts +8 -0
  47. package/dist/agent/setup/config.d.ts.map +1 -0
  48. package/dist/agent/setup/context-window.d.ts +4 -0
  49. package/dist/agent/setup/context-window.d.ts.map +1 -0
  50. package/dist/agent/setup/environment.d.ts +5 -0
  51. package/dist/agent/setup/environment.d.ts.map +1 -0
  52. package/dist/agent/setup/middleware.d.ts +9 -0
  53. package/dist/agent/setup/middleware.d.ts.map +1 -0
  54. package/dist/agent/setup/runtime-config.d.ts +9 -0
  55. package/dist/agent/setup/runtime-config.d.ts.map +1 -0
  56. package/dist/agent/setup/state.d.ts +4 -0
  57. package/dist/agent/setup/state.d.ts.map +1 -0
  58. package/dist/agent/setup/tools.d.ts +8 -0
  59. package/dist/agent/setup/tools.d.ts.map +1 -0
  60. package/dist/agent/setup.d.ts +47 -0
  61. package/dist/agent/setup.d.ts.map +1 -0
  62. package/dist/agent/stream-provider.d.ts +27 -0
  63. package/dist/agent/stream-provider.d.ts.map +1 -0
  64. package/dist/agent/turn-context/compaction/agent-context.d.ts +76 -0
  65. package/dist/agent/turn-context/compaction/agent-context.d.ts.map +1 -0
  66. package/dist/agent/turn-context/compaction/budget.d.ts +4 -0
  67. package/dist/agent/turn-context/compaction/budget.d.ts.map +1 -0
  68. package/dist/agent/turn-context/compaction/check.d.ts +45 -0
  69. package/dist/agent/turn-context/compaction/check.d.ts.map +1 -0
  70. package/dist/agent/turn-context/compaction/fragments.d.ts +4 -0
  71. package/dist/agent/turn-context/compaction/fragments.d.ts.map +1 -0
  72. package/dist/agent/turn-context/compaction/index.d.ts +5 -0
  73. package/dist/agent/turn-context/compaction/index.d.ts.map +1 -0
  74. package/dist/agent/turn-context/compaction/memory.d.ts +18 -0
  75. package/dist/agent/turn-context/compaction/memory.d.ts.map +1 -0
  76. package/dist/agent/turn-context/compaction/results.d.ts +25 -0
  77. package/dist/agent/turn-context/compaction/results.d.ts.map +1 -0
  78. package/dist/agent/turn-context/compaction/summary.d.ts +3 -0
  79. package/dist/agent/turn-context/compaction/summary.d.ts.map +1 -0
  80. package/dist/agent/turn-context/compaction/types.d.ts +30 -0
  81. package/dist/agent/turn-context/compaction/types.d.ts.map +1 -0
  82. package/dist/agent/turn-context/fit-model-context.d.ts +29 -0
  83. package/dist/agent/turn-context/fit-model-context.d.ts.map +1 -0
  84. package/dist/agent/turn-context/index.d.ts +5 -0
  85. package/dist/agent/turn-context/index.d.ts.map +1 -0
  86. package/dist/agent/turn-context/system-prompts.d.ts +12 -0
  87. package/dist/agent/turn-context/system-prompts.d.ts.map +1 -0
  88. package/dist/agent/types/config.d.ts +206 -0
  89. package/dist/agent/types/config.d.ts.map +1 -0
  90. package/dist/agent/types/index.d.ts +11 -0
  91. package/dist/agent/types/index.d.ts.map +1 -0
  92. package/dist/agent/types/state.d.ts +16 -0
  93. package/dist/agent/types/state.d.ts.map +1 -0
  94. package/dist/agent/types/tracing.d.ts +12 -0
  95. package/dist/agent/types/tracing.d.ts.map +1 -0
  96. package/dist/{chunk-KYLPMBHD.js → chunk-336EDIBL.js} +1 -1
  97. package/dist/chunk-346FIYKT.js +960 -0
  98. package/dist/{chunk-HSUPTXNV.js → chunk-556CPZ3J.js} +13 -10
  99. package/dist/chunk-AHDCR7SX.js +83 -0
  100. package/dist/{chunk-CSR75JVC.js → chunk-ASXF5AC6.js} +1 -1
  101. package/dist/{chunk-BJC46FIF.js → chunk-BKHWKKSG.js} +2 -2
  102. package/dist/{chunk-2TTOLHBT.js → chunk-CFBSQLP5.js} +1 -1
  103. package/dist/chunk-CGP6UNCQ.js +554 -0
  104. package/dist/{chunk-GJFP5L2V.js → chunk-CNM6OROH.js} +15 -3
  105. package/dist/chunk-DD7S7ZG4.js +274 -0
  106. package/dist/chunk-DYZGHHDB.js +1458 -0
  107. package/dist/chunk-E66PKKDL.js +772 -0
  108. package/dist/{chunk-H3GRHFFG.js → chunk-EDKZOPUV.js} +63 -306
  109. package/dist/{chunk-GEBFHREI.js → chunk-GHVW7L4P.js} +71 -5
  110. package/dist/chunk-JFH6HBUG.js +227 -0
  111. package/dist/{chunk-MWPU2EVV.js → chunk-JUIL2NJC.js} +4 -81
  112. package/dist/{chunk-NS7D7JJU.js → chunk-K453AFTL.js} +35 -16
  113. package/dist/chunk-MJRZ2ZRI.js +498 -0
  114. package/dist/{chunk-UMIVJDEJ.js → chunk-SAWRDGBE.js} +30 -7
  115. package/dist/chunk-TYQWH6XH.js +88 -0
  116. package/dist/{chunk-QJV5XPPS.js → chunk-UEEHZ4QH.js} +1 -1
  117. package/dist/chunk-UG5PVNZV.js +53 -0
  118. package/dist/{chunk-BGG2HVIR.js → chunk-V4MIDL5B.js} +9 -0
  119. package/dist/chunk-W6LWIMIX.js +8 -0
  120. package/dist/context/assembly/index.d.ts +3 -0
  121. package/dist/context/assembly/index.d.ts.map +1 -0
  122. package/dist/context/assembly/prepare.d.ts +11 -0
  123. package/dist/context/assembly/prepare.d.ts.map +1 -0
  124. package/dist/context/assembly/types.d.ts +64 -0
  125. package/dist/context/assembly/types.d.ts.map +1 -0
  126. package/dist/context/config.d.ts +20 -0
  127. package/dist/context/config.d.ts.map +1 -0
  128. package/dist/context/fragments/index.d.ts +4 -0
  129. package/dist/context/fragments/index.d.ts.map +1 -0
  130. package/dist/context/fragments/messages.d.ts +12 -0
  131. package/dist/context/fragments/messages.d.ts.map +1 -0
  132. package/dist/context/fragments/render.d.ts +16 -0
  133. package/dist/context/fragments/render.d.ts.map +1 -0
  134. package/dist/context/fragments/types.d.ts +87 -0
  135. package/dist/context/fragments/types.d.ts.map +1 -0
  136. package/dist/context/index.d.ts +13 -0
  137. package/dist/context/index.d.ts.map +1 -0
  138. package/dist/context/index.js +96 -0
  139. package/dist/context/text/truncation.d.ts +13 -0
  140. package/dist/context/text/truncation.d.ts.map +1 -0
  141. package/dist/context/window/budget.d.ts +135 -0
  142. package/dist/context/window/budget.d.ts.map +1 -0
  143. package/dist/context/window/compactor.d.ts +89 -0
  144. package/dist/context/window/compactor.d.ts.map +1 -0
  145. package/dist/context/window/cut-planner.d.ts +67 -0
  146. package/dist/context/window/cut-planner.d.ts.map +1 -0
  147. package/dist/context/window/decision.d.ts +50 -0
  148. package/dist/context/window/decision.d.ts.map +1 -0
  149. package/dist/context/window/estimation.d.ts +60 -0
  150. package/dist/context/window/estimation.d.ts.map +1 -0
  151. package/dist/context/window/index.d.ts +28 -0
  152. package/dist/context/window/index.d.ts.map +1 -0
  153. package/dist/context/window/manager.d.ts +113 -0
  154. package/dist/context/window/manager.d.ts.map +1 -0
  155. package/dist/context/window/summary-policy.d.ts +50 -0
  156. package/dist/context/window/summary-policy.d.ts.map +1 -0
  157. package/dist/context/window/summary.d.ts +65 -0
  158. package/dist/context/window/summary.d.ts.map +1 -0
  159. package/dist/context/window/tool-pruning.d.ts +73 -0
  160. package/dist/context/window/tool-pruning.d.ts.map +1 -0
  161. package/dist/dispatch/executor.d.ts +56 -0
  162. package/dist/dispatch/executor.d.ts.map +1 -0
  163. package/dist/dispatch/index.d.ts +7 -95
  164. package/dist/dispatch/index.d.ts.map +1 -0
  165. package/dist/dispatch/index.js +4 -3
  166. package/dist/dispatch/results.d.ts +9 -0
  167. package/dist/dispatch/results.d.ts.map +1 -0
  168. package/dist/dispatch/runtime.d.ts +19 -0
  169. package/dist/dispatch/runtime.d.ts.map +1 -0
  170. package/dist/dispatch/tool-factories.d.ts +8 -0
  171. package/dist/dispatch/tool-factories.d.ts.map +1 -0
  172. package/dist/dispatch/tools.d.ts +10 -0
  173. package/dist/dispatch/tools.d.ts.map +1 -0
  174. package/dist/dispatch/types.d.ts +131 -0
  175. package/dist/dispatch/types.d.ts.map +1 -0
  176. package/dist/events/event-bus/index.d.ts +13 -0
  177. package/dist/events/event-bus/index.d.ts.map +1 -0
  178. package/dist/events/event-bus/index.js +6 -0
  179. package/dist/events/event-bus/local.d.ts +14 -0
  180. package/dist/events/event-bus/local.d.ts.map +1 -0
  181. package/dist/events/event-bus/types.d.ts +78 -0
  182. package/dist/events/event-bus/types.d.ts.map +1 -0
  183. package/dist/events/index.d.ts +10 -89
  184. package/dist/events/index.d.ts.map +1 -0
  185. package/dist/events/index.js +6 -1
  186. package/dist/events/signal/index.d.ts +18 -0
  187. package/dist/events/signal/index.d.ts.map +1 -0
  188. package/dist/events/signal/index.js +6 -0
  189. package/dist/events/signal/local.d.ts +22 -0
  190. package/dist/events/signal/local.d.ts.map +1 -0
  191. package/dist/events/signal/types.d.ts +69 -0
  192. package/dist/events/signal/types.d.ts.map +1 -0
  193. package/dist/execution/index.d.ts +33 -481
  194. package/dist/execution/index.d.ts.map +1 -0
  195. package/dist/execution/index.js +45 -19
  196. package/dist/execution/scope/index.d.ts +10 -0
  197. package/dist/execution/scope/index.d.ts.map +1 -0
  198. package/dist/execution/scope/index.js +12 -0
  199. package/dist/execution/scope/run.d.ts +8 -0
  200. package/dist/execution/scope/run.d.ts.map +1 -0
  201. package/dist/execution/scope/store.d.ts +6 -0
  202. package/dist/execution/scope/store.d.ts.map +1 -0
  203. package/dist/execution/scope/types.d.ts +28 -0
  204. package/dist/execution/scope/types.d.ts.map +1 -0
  205. package/dist/execution/shared/usage.d.ts +9 -0
  206. package/dist/execution/shared/usage.d.ts.map +1 -0
  207. package/dist/execution/task/index.d.ts +6 -0
  208. package/dist/execution/task/index.d.ts.map +1 -0
  209. package/dist/execution/task/observer.d.ts +80 -0
  210. package/dist/execution/task/observer.d.ts.map +1 -0
  211. package/dist/execution/task/runner.d.ts +39 -0
  212. package/dist/execution/task/runner.d.ts.map +1 -0
  213. package/dist/execution/task/types.d.ts +85 -0
  214. package/dist/execution/task/types.d.ts.map +1 -0
  215. package/dist/execution/turn/engine/commit-batch.d.ts +16 -0
  216. package/dist/execution/turn/engine/commit-batch.d.ts.map +1 -0
  217. package/dist/execution/turn/engine/engine.d.ts +32 -0
  218. package/dist/execution/turn/engine/engine.d.ts.map +1 -0
  219. package/dist/execution/turn/engine/index.d.ts +12 -0
  220. package/dist/execution/turn/engine/index.d.ts.map +1 -0
  221. package/dist/execution/turn/engine/types.d.ts +67 -0
  222. package/dist/execution/turn/engine/types.d.ts.map +1 -0
  223. package/dist/execution/turn/index.d.ts +18 -0
  224. package/dist/execution/turn/index.d.ts.map +1 -0
  225. package/dist/execution/turn/index.js +52 -0
  226. package/dist/execution/turn/runner/commit.d.ts +11 -0
  227. package/dist/execution/turn/runner/commit.d.ts.map +1 -0
  228. package/dist/execution/turn/runner/index.d.ts +16 -0
  229. package/dist/execution/turn/runner/index.d.ts.map +1 -0
  230. package/dist/execution/turn/runner/prepare.d.ts +6 -0
  231. package/dist/execution/turn/runner/prepare.d.ts.map +1 -0
  232. package/dist/execution/turn/runner/stream-step.d.ts +8 -0
  233. package/dist/execution/turn/runner/stream-step.d.ts.map +1 -0
  234. package/dist/execution/turn/runner/tool-batch.d.ts +13 -0
  235. package/dist/execution/turn/runner/tool-batch.d.ts.map +1 -0
  236. package/dist/execution/turn/runner/types.d.ts +111 -0
  237. package/dist/execution/turn/runner/types.d.ts.map +1 -0
  238. package/dist/execution/turn/state.d.ts +110 -0
  239. package/dist/execution/turn/state.d.ts.map +1 -0
  240. package/dist/execution/turn/step-ledger.d.ts +89 -0
  241. package/dist/execution/turn/step-ledger.d.ts.map +1 -0
  242. package/dist/execution/turn/step-processing/doom-loop.d.ts +28 -0
  243. package/dist/execution/turn/step-processing/doom-loop.d.ts.map +1 -0
  244. package/dist/execution/turn/step-processing/index.d.ts +14 -0
  245. package/dist/execution/turn/step-processing/index.d.ts.map +1 -0
  246. package/dist/execution/turn/step-processing/overflow.d.ts +17 -0
  247. package/dist/execution/turn/step-processing/overflow.d.ts.map +1 -0
  248. package/dist/execution/turn/step-processing/process.d.ts +7 -0
  249. package/dist/execution/turn/step-processing/process.d.ts.map +1 -0
  250. package/dist/execution/turn/step-processing/types.d.ts +65 -0
  251. package/dist/execution/turn/step-processing/types.d.ts.map +1 -0
  252. package/dist/execution/workflow/index.d.ts +12 -0
  253. package/dist/execution/workflow/index.d.ts.map +1 -0
  254. package/dist/execution/workflow/index.js +39 -0
  255. package/dist/execution/workflow/planner/apply.d.ts +30 -0
  256. package/dist/execution/workflow/planner/apply.d.ts.map +1 -0
  257. package/dist/execution/workflow/planner/helpers.d.ts +6 -0
  258. package/dist/execution/workflow/planner/helpers.d.ts.map +1 -0
  259. package/dist/execution/workflow/planner/index.d.ts +13 -0
  260. package/dist/execution/workflow/planner/index.d.ts.map +1 -0
  261. package/dist/execution/workflow/planner/plan.d.ts +7 -0
  262. package/dist/execution/workflow/planner/plan.d.ts.map +1 -0
  263. package/dist/execution/workflow/planner/types.d.ts +49 -0
  264. package/dist/execution/workflow/planner/types.d.ts.map +1 -0
  265. package/dist/execution/workflow/snapshot.d.ts +11 -0
  266. package/dist/execution/workflow/snapshot.d.ts.map +1 -0
  267. package/dist/execution/workflow/state.d.ts +161 -0
  268. package/dist/execution/workflow/state.d.ts.map +1 -0
  269. package/dist/human/controller.d.ts +24 -0
  270. package/dist/human/controller.d.ts.map +1 -0
  271. package/dist/human/handler.d.ts +15 -0
  272. package/dist/human/handler.d.ts.map +1 -0
  273. package/dist/human/index.d.ts +5 -0
  274. package/dist/human/index.d.ts.map +1 -0
  275. package/dist/human/tool.d.ts +17 -0
  276. package/dist/human/tool.d.ts.map +1 -0
  277. package/dist/human/types.d.ts +62 -0
  278. package/dist/human/types.d.ts.map +1 -0
  279. package/dist/index.d.ts +66 -567
  280. package/dist/index.d.ts.map +1 -0
  281. package/dist/index.js +2681 -1859
  282. package/dist/inference/defaults.d.ts +8 -0
  283. package/dist/inference/defaults.d.ts.map +1 -0
  284. package/dist/inference/errors/classify.d.ts +5 -0
  285. package/dist/inference/errors/classify.d.ts.map +1 -0
  286. package/dist/inference/errors/extract.d.ts +3 -0
  287. package/dist/inference/errors/extract.d.ts.map +1 -0
  288. package/dist/inference/errors/index.d.ts +8 -11
  289. package/dist/inference/errors/index.d.ts.map +1 -0
  290. package/dist/inference/errors/llm-error.d.ts +14 -0
  291. package/dist/inference/errors/llm-error.d.ts.map +1 -0
  292. package/dist/inference/errors/types.d.ts +18 -0
  293. package/dist/inference/errors/types.d.ts.map +1 -0
  294. package/dist/inference/errors/utils.d.ts +5 -0
  295. package/dist/inference/errors/utils.d.ts.map +1 -0
  296. package/dist/inference/index.d.ts +17 -49
  297. package/dist/inference/index.d.ts.map +1 -0
  298. package/dist/inference/index.js +7 -7
  299. package/dist/inference/middleware-support.d.ts +14 -0
  300. package/dist/inference/middleware-support.d.ts.map +1 -0
  301. package/dist/{model-messages-n_ZMZwIm.d.ts → inference/model-messages.d.ts} +4 -6
  302. package/dist/inference/model-messages.d.ts.map +1 -0
  303. package/dist/inference/retry.d.ts +73 -0
  304. package/dist/inference/retry.d.ts.map +1 -0
  305. package/dist/inference/stream.d.ts +16 -0
  306. package/dist/inference/stream.d.ts.map +1 -0
  307. package/dist/inference/toolset.d.ts +26 -0
  308. package/dist/inference/toolset.d.ts.map +1 -0
  309. package/dist/inference/types.d.ts +129 -0
  310. package/dist/inference/types.d.ts.map +1 -0
  311. package/dist/intervention/follow-up-policy.d.ts +41 -0
  312. package/dist/intervention/follow-up-policy.d.ts.map +1 -0
  313. package/dist/intervention/index.d.ts +5 -0
  314. package/dist/intervention/index.d.ts.map +1 -0
  315. package/dist/intervention/intervention.d.ts +130 -0
  316. package/dist/intervention/intervention.d.ts.map +1 -0
  317. package/dist/intervention/types.d.ts +74 -0
  318. package/dist/intervention/types.d.ts.map +1 -0
  319. package/dist/logger/index.d.ts +5 -47
  320. package/dist/logger/index.d.ts.map +1 -0
  321. package/dist/logger/logger.d.ts +46 -0
  322. package/dist/logger/logger.d.ts.map +1 -0
  323. package/dist/{types-RSCv7nQ4.d.ts → logger/types.d.ts} +6 -7
  324. package/dist/logger/types.d.ts.map +1 -0
  325. package/dist/mcp/auth.d.ts +109 -0
  326. package/dist/mcp/auth.d.ts.map +1 -0
  327. package/dist/mcp/diagnostics.d.ts +23 -0
  328. package/dist/mcp/diagnostics.d.ts.map +1 -0
  329. package/dist/mcp/factories.d.ts +47 -0
  330. package/dist/mcp/factories.d.ts.map +1 -0
  331. package/dist/mcp/index.d.ts +14 -175
  332. package/dist/mcp/index.d.ts.map +1 -0
  333. package/dist/mcp/index.js +1 -1
  334. package/dist/mcp/manager.d.ts +45 -0
  335. package/dist/mcp/manager.d.ts.map +1 -0
  336. package/dist/mcp/modules.d.ts +6 -0
  337. package/dist/mcp/modules.d.ts.map +1 -0
  338. package/dist/{types-DMjoFKKv.d.ts → mcp/types.d.ts} +18 -19
  339. package/dist/mcp/types.d.ts.map +1 -0
  340. package/dist/memory/config.d.ts +4 -0
  341. package/dist/memory/config.d.ts.map +1 -0
  342. package/dist/memory/format.d.ts +8 -0
  343. package/dist/memory/format.d.ts.map +1 -0
  344. package/dist/memory/index.d.ts +5 -0
  345. package/dist/memory/index.d.ts.map +1 -0
  346. package/dist/memory/index.js +14 -0
  347. package/dist/memory/middleware.d.ts +14 -0
  348. package/dist/memory/middleware.d.ts.map +1 -0
  349. package/dist/memory/types.d.ts +251 -0
  350. package/dist/memory/types.d.ts.map +1 -0
  351. package/dist/middleware/approval.d.ts +70 -0
  352. package/dist/middleware/approval.d.ts.map +1 -0
  353. package/dist/middleware/index.d.ts +25 -110
  354. package/dist/middleware/index.d.ts.map +1 -0
  355. package/dist/middleware/index.js +2 -2
  356. package/dist/middleware/prompt-cache/cache.d.ts +44 -0
  357. package/dist/middleware/prompt-cache/cache.d.ts.map +1 -0
  358. package/dist/middleware/prompt-cache/index.d.ts +14 -0
  359. package/dist/middleware/prompt-cache/index.d.ts.map +1 -0
  360. package/dist/middleware/prompt-cache/types.d.ts +50 -0
  361. package/dist/middleware/prompt-cache/types.d.ts.map +1 -0
  362. package/dist/middleware/runner.d.ts +115 -0
  363. package/dist/middleware/runner.d.ts.map +1 -0
  364. package/dist/middleware/telemetry/index.d.ts +12 -0
  365. package/dist/middleware/telemetry/index.d.ts.map +1 -0
  366. package/dist/middleware/telemetry/otel.d.ts +4 -0
  367. package/dist/middleware/telemetry/otel.d.ts.map +1 -0
  368. package/dist/middleware/telemetry/provider.d.ts +3 -0
  369. package/dist/middleware/telemetry/provider.d.ts.map +1 -0
  370. package/dist/middleware/telemetry/types.d.ts +150 -0
  371. package/dist/middleware/telemetry/types.d.ts.map +1 -0
  372. package/dist/middleware/types.d.ts +426 -0
  373. package/dist/middleware/types.d.ts.map +1 -0
  374. package/dist/models/cache/adapters.d.ts +4 -0
  375. package/dist/models/cache/adapters.d.ts.map +1 -0
  376. package/dist/models/cache/index.d.ts +5 -0
  377. package/dist/models/cache/index.d.ts.map +1 -0
  378. package/dist/models/cache/manager.d.ts +32 -0
  379. package/dist/models/cache/manager.d.ts.map +1 -0
  380. package/dist/models/cache/types.d.ts +17 -0
  381. package/dist/models/cache/types.d.ts.map +1 -0
  382. package/dist/models/capability-resolver.d.ts +104 -0
  383. package/dist/models/capability-resolver.d.ts.map +1 -0
  384. package/dist/models/identifiers.d.ts +23 -0
  385. package/dist/models/identifiers.d.ts.map +1 -0
  386. package/dist/models/index.d.ts +35 -256
  387. package/dist/models/index.d.ts.map +1 -0
  388. package/dist/models/index.js +1 -1
  389. package/dist/models/overrides.d.ts +10 -0
  390. package/dist/models/overrides.d.ts.map +1 -0
  391. package/dist/models/profiles.d.ts +38 -0
  392. package/dist/models/profiles.d.ts.map +1 -0
  393. package/dist/models/reasoning/config.d.ts +49 -0
  394. package/dist/models/reasoning/config.d.ts.map +1 -0
  395. package/dist/models/reasoning/index.d.ts +12 -4
  396. package/dist/models/reasoning/index.d.ts.map +1 -0
  397. package/dist/models/reasoning/index.js +1 -1
  398. package/dist/models/reasoning/providers.d.ts +63 -0
  399. package/dist/models/reasoning/providers.d.ts.map +1 -0
  400. package/dist/{types-CQaXbRsS.d.ts → models/reasoning/types.d.ts} +7 -8
  401. package/dist/models/reasoning/types.d.ts.map +1 -0
  402. package/dist/models/remote/fetcher.d.ts +13 -0
  403. package/dist/models/remote/fetcher.d.ts.map +1 -0
  404. package/dist/models/remote/index.d.ts +8 -0
  405. package/dist/models/remote/index.d.ts.map +1 -0
  406. package/dist/models/remote/network.d.ts +6 -0
  407. package/dist/models/remote/network.d.ts.map +1 -0
  408. package/dist/models/remote/source.d.ts +16 -0
  409. package/dist/models/remote/source.d.ts.map +1 -0
  410. package/dist/models/remote/transform.d.ts +4 -0
  411. package/dist/models/remote/transform.d.ts.map +1 -0
  412. package/dist/models/remote/types.d.ts +28 -0
  413. package/dist/models/remote/types.d.ts.map +1 -0
  414. package/dist/models/resolver.d.ts +26 -0
  415. package/dist/models/resolver.d.ts.map +1 -0
  416. package/dist/models/types.d.ts +137 -0
  417. package/dist/models/types.d.ts.map +1 -0
  418. package/dist/plugin/compatibility.d.ts +11 -0
  419. package/dist/plugin/compatibility.d.ts.map +1 -0
  420. package/dist/plugin/define.d.ts +77 -0
  421. package/dist/plugin/define.d.ts.map +1 -0
  422. package/dist/plugin/event-bus.d.ts +31 -0
  423. package/dist/plugin/event-bus.d.ts.map +1 -0
  424. package/dist/plugin/index.d.ts +9 -458
  425. package/dist/plugin/index.d.ts.map +1 -0
  426. package/dist/plugin/loader.d.ts +63 -0
  427. package/dist/plugin/loader.d.ts.map +1 -0
  428. package/dist/plugin/registry.d.ts +81 -0
  429. package/dist/plugin/registry.d.ts.map +1 -0
  430. package/dist/plugin/settings.d.ts +36 -0
  431. package/dist/plugin/settings.d.ts.map +1 -0
  432. package/dist/plugin/types.d.ts +168 -0
  433. package/dist/plugin/types.d.ts.map +1 -0
  434. package/dist/profiles/apply.d.ts +17 -0
  435. package/dist/profiles/apply.d.ts.map +1 -0
  436. package/dist/profiles/builtins.d.ts +18 -0
  437. package/dist/profiles/builtins.d.ts.map +1 -0
  438. package/dist/profiles/index.d.ts +12 -55
  439. package/dist/profiles/index.d.ts.map +1 -0
  440. package/dist/profiles/patterns.d.ts +12 -0
  441. package/dist/profiles/patterns.d.ts.map +1 -0
  442. package/dist/profiles/types.d.ts +48 -0
  443. package/dist/profiles/types.d.ts.map +1 -0
  444. package/dist/prompt/builder/builder.d.ts +27 -0
  445. package/dist/prompt/builder/builder.d.ts.map +1 -0
  446. package/dist/prompt/builder/index.d.ts +11 -0
  447. package/dist/prompt/builder/index.d.ts.map +1 -0
  448. package/dist/prompt/builder/priorities.d.ts +13 -0
  449. package/dist/prompt/builder/priorities.d.ts.map +1 -0
  450. package/dist/prompt/builder/sections.d.ts +30 -0
  451. package/dist/prompt/builder/sections.d.ts.map +1 -0
  452. package/dist/prompt/environment.d.ts +46 -0
  453. package/dist/prompt/environment.d.ts.map +1 -0
  454. package/dist/prompt/index.d.ts +31 -220
  455. package/dist/prompt/index.d.ts.map +1 -0
  456. package/dist/prompt/index.js +3 -1
  457. package/dist/prompt/instructions.d.ts +104 -0
  458. package/dist/prompt/instructions.d.ts.map +1 -0
  459. package/dist/prompt/templates.d.ts +56 -0
  460. package/dist/prompt/templates.d.ts.map +1 -0
  461. package/dist/prompt/types.d.ts +218 -0
  462. package/dist/prompt/types.d.ts.map +1 -0
  463. package/dist/safety/errors.d.ts +18 -0
  464. package/dist/safety/errors.d.ts.map +1 -0
  465. package/dist/safety/handler.d.ts +16 -0
  466. package/dist/safety/handler.d.ts.map +1 -0
  467. package/dist/safety/index.d.ts +11 -133
  468. package/dist/safety/index.d.ts.map +1 -0
  469. package/dist/safety/patterns.d.ts +17 -0
  470. package/dist/safety/patterns.d.ts.map +1 -0
  471. package/dist/safety/policy.d.ts +31 -0
  472. package/dist/safety/policy.d.ts.map +1 -0
  473. package/dist/safety/presets.d.ts +43 -0
  474. package/dist/safety/presets.d.ts.map +1 -0
  475. package/dist/safety/risk.d.ts +14 -0
  476. package/dist/safety/risk.d.ts.map +1 -0
  477. package/dist/safety/types.d.ts +165 -0
  478. package/dist/safety/types.d.ts.map +1 -0
  479. package/dist/sandbox/index.d.ts +2 -81
  480. package/dist/sandbox/index.d.ts.map +1 -0
  481. package/dist/sandbox/types.d.ts +79 -0
  482. package/dist/sandbox/types.d.ts.map +1 -0
  483. package/dist/sessions/index.d.ts +13 -0
  484. package/dist/sessions/index.d.ts.map +1 -0
  485. package/dist/{storage → sessions}/index.js +6 -17
  486. package/dist/sessions/manager/default.d.ts +11 -0
  487. package/dist/sessions/manager/default.d.ts.map +1 -0
  488. package/dist/sessions/manager/index.d.ts +12 -0
  489. package/dist/sessions/manager/index.d.ts.map +1 -0
  490. package/dist/sessions/manager/session-manager.d.ts +67 -0
  491. package/dist/sessions/manager/session-manager.d.ts.map +1 -0
  492. package/dist/sessions/manager/types.d.ts +42 -0
  493. package/dist/sessions/manager/types.d.ts.map +1 -0
  494. package/dist/sessions/store/lock.d.ts +18 -0
  495. package/dist/sessions/store/lock.d.ts.map +1 -0
  496. package/dist/sessions/store/memory.d.ts +22 -0
  497. package/dist/sessions/store/memory.d.ts.map +1 -0
  498. package/dist/sessions/types.d.ts +215 -0
  499. package/dist/sessions/types.d.ts.map +1 -0
  500. package/dist/sessions/utils.d.ts +77 -0
  501. package/dist/sessions/utils.d.ts.map +1 -0
  502. package/dist/skill/discovery/constants.d.ts +6 -0
  503. package/dist/skill/discovery/constants.d.ts.map +1 -0
  504. package/dist/skill/discovery/dedupe.d.ts +3 -0
  505. package/dist/skill/discovery/dedupe.d.ts.map +1 -0
  506. package/dist/skill/discovery/discover.d.ts +3 -0
  507. package/dist/skill/discovery/discover.d.ts.map +1 -0
  508. package/dist/skill/discovery/fs.d.ts +4 -0
  509. package/dist/skill/discovery/fs.d.ts.map +1 -0
  510. package/dist/skill/discovery/index.d.ts +6 -0
  511. package/dist/skill/discovery/index.d.ts.map +1 -0
  512. package/dist/skill/discovery/scan.d.ts +3 -0
  513. package/dist/skill/discovery/scan.d.ts.map +1 -0
  514. package/dist/skill/discovery/types.d.ts +15 -0
  515. package/dist/skill/discovery/types.d.ts.map +1 -0
  516. package/dist/skill/index.d.ts +67 -89
  517. package/dist/skill/index.d.ts.map +1 -0
  518. package/dist/skill/index.js +2 -2
  519. package/dist/skill/loader/constants.d.ts +5 -0
  520. package/dist/skill/loader/constants.d.ts.map +1 -0
  521. package/dist/skill/loader/frontmatter.d.ts +5 -0
  522. package/dist/skill/loader/frontmatter.d.ts.map +1 -0
  523. package/dist/skill/loader/index.d.ts +8 -0
  524. package/dist/skill/loader/index.d.ts.map +1 -0
  525. package/dist/skill/loader/metadata.d.ts +3 -0
  526. package/dist/skill/loader/metadata.d.ts.map +1 -0
  527. package/dist/skill/loader/resources.d.ts +5 -0
  528. package/dist/skill/loader/resources.d.ts.map +1 -0
  529. package/dist/skill/registry.d.ts +177 -0
  530. package/dist/skill/registry.d.ts.map +1 -0
  531. package/dist/skill/tools.d.ts +77 -0
  532. package/dist/skill/tools.d.ts.map +1 -0
  533. package/dist/skill/types.d.ts +291 -0
  534. package/dist/skill/types.d.ts.map +1 -0
  535. package/dist/subagents/index.d.ts +8 -179
  536. package/dist/subagents/index.d.ts.map +1 -0
  537. package/dist/subagents/index.js +5 -4
  538. package/dist/subagents/installation.d.ts +23 -0
  539. package/dist/subagents/installation.d.ts.map +1 -0
  540. package/dist/subagents/results.d.ts +15 -0
  541. package/dist/subagents/results.d.ts.map +1 -0
  542. package/dist/subagents/roles/discovery.d.ts +38 -0
  543. package/dist/subagents/roles/discovery.d.ts.map +1 -0
  544. package/dist/subagents/roles/index.d.ts +5 -0
  545. package/dist/subagents/roles/index.d.ts.map +1 -0
  546. package/dist/subagents/roles/markdown-profile.d.ts +61 -0
  547. package/dist/subagents/roles/markdown-profile.d.ts.map +1 -0
  548. package/dist/subagents/tool-factories.d.ts +11 -0
  549. package/dist/subagents/tool-factories.d.ts.map +1 -0
  550. package/dist/subagents/tools.d.ts +13 -0
  551. package/dist/subagents/tools.d.ts.map +1 -0
  552. package/dist/subagents/types.d.ts +21 -0
  553. package/dist/subagents/types.d.ts.map +1 -0
  554. package/dist/team/coordinator/coordinator.d.ts +342 -0
  555. package/dist/team/coordinator/coordinator.d.ts.map +1 -0
  556. package/dist/team/coordinator/inbox.d.ts +99 -0
  557. package/dist/team/coordinator/inbox.d.ts.map +1 -0
  558. package/dist/team/coordinator/index.d.ts +19 -0
  559. package/dist/team/coordinator/index.d.ts.map +1 -0
  560. package/dist/team/coordinator/planning.d.ts +33 -0
  561. package/dist/team/coordinator/planning.d.ts.map +1 -0
  562. package/dist/team/coordinator/policy.d.ts +31 -0
  563. package/dist/team/coordinator/policy.d.ts.map +1 -0
  564. package/dist/team/coordinator/round-engine.d.ts +25 -0
  565. package/dist/team/coordinator/round-engine.d.ts.map +1 -0
  566. package/dist/team/coordinator/synthesis.d.ts +20 -0
  567. package/dist/team/coordinator/synthesis.d.ts.map +1 -0
  568. package/dist/team/coordinator/turn.d.ts +107 -0
  569. package/dist/team/coordinator/turn.d.ts.map +1 -0
  570. package/dist/team/coordinator/types.d.ts +344 -0
  571. package/dist/team/coordinator/types.d.ts.map +1 -0
  572. package/dist/team/events.d.ts +148 -0
  573. package/dist/team/events.d.ts.map +1 -0
  574. package/dist/team/execution.d.ts +51 -0
  575. package/dist/team/execution.d.ts.map +1 -0
  576. package/dist/team/index.d.ts +23 -545
  577. package/dist/team/index.d.ts.map +1 -0
  578. package/dist/team/index.js +2 -2
  579. package/dist/team/mailbox.d.ts +91 -0
  580. package/dist/team/mailbox.d.ts.map +1 -0
  581. package/dist/team/notifications.d.ts +23 -0
  582. package/dist/team/notifications.d.ts.map +1 -0
  583. package/dist/team/permissions.d.ts +88 -0
  584. package/dist/team/permissions.d.ts.map +1 -0
  585. package/dist/team/shutdown.d.ts +38 -0
  586. package/dist/team/shutdown.d.ts.map +1 -0
  587. package/dist/team/task-board.d.ts +161 -0
  588. package/dist/team/task-board.d.ts.map +1 -0
  589. package/dist/team/types.d.ts +233 -0
  590. package/dist/team/types.d.ts.map +1 -0
  591. package/dist/team/work-loop.d.ts +30 -0
  592. package/dist/team/work-loop.d.ts.map +1 -0
  593. package/dist/tool/executor.d.ts +59 -0
  594. package/dist/tool/executor.d.ts.map +1 -0
  595. package/dist/tool/host/index.d.ts +7 -38
  596. package/dist/tool/host/index.d.ts.map +1 -0
  597. package/dist/tool/host/local.d.ts +15 -0
  598. package/dist/tool/host/local.d.ts.map +1 -0
  599. package/dist/tool/host/registry.d.ts +17 -0
  600. package/dist/tool/host/registry.d.ts.map +1 -0
  601. package/dist/{types-C_LCeYNg.d.ts → tool/host/types.d.ts} +6 -7
  602. package/dist/tool/host/types.d.ts.map +1 -0
  603. package/dist/tool/index.d.ts +21 -285
  604. package/dist/tool/index.d.ts.map +1 -0
  605. package/dist/tool/index.js +4 -3
  606. package/dist/tool/registry.d.ts +130 -0
  607. package/dist/tool/registry.d.ts.map +1 -0
  608. package/dist/tool/replay.d.ts +11 -0
  609. package/dist/tool/replay.d.ts.map +1 -0
  610. package/dist/tool/tool-search.d.ts +50 -0
  611. package/dist/tool/tool-search.d.ts.map +1 -0
  612. package/dist/tool/tool.d.ts +308 -0
  613. package/dist/tool/tool.d.ts.map +1 -0
  614. package/dist/tool/truncation.d.ts +34 -0
  615. package/dist/tool/truncation.d.ts.map +1 -0
  616. package/dist/tool/turn-tools.d.ts +71 -0
  617. package/dist/tool/turn-tools.d.ts.map +1 -0
  618. package/dist/tracking/file-tracking.d.ts +25 -0
  619. package/dist/tracking/file-tracking.d.ts.map +1 -0
  620. package/dist/tracking/index.d.ts +9 -0
  621. package/dist/tracking/index.d.ts.map +1 -0
  622. package/dist/tracking/turn-tracker/diff.d.ts +11 -0
  623. package/dist/tracking/turn-tracker/diff.d.ts.map +1 -0
  624. package/dist/tracking/turn-tracker/index.d.ts +11 -0
  625. package/dist/tracking/turn-tracker/index.d.ts.map +1 -0
  626. package/dist/tracking/turn-tracker/tracker.d.ts +31 -0
  627. package/dist/tracking/turn-tracker/tracker.d.ts.map +1 -0
  628. package/dist/tracking/turn-tracker/types.d.ts +66 -0
  629. package/dist/tracking/turn-tracker/types.d.ts.map +1 -0
  630. package/dist/types/compaction.d.ts +191 -0
  631. package/dist/types/compaction.d.ts.map +1 -0
  632. package/dist/types/doom-loop.d.ts +25 -0
  633. package/dist/types/doom-loop.d.ts.map +1 -0
  634. package/dist/types/events.d.ts +196 -0
  635. package/dist/types/events.d.ts.map +1 -0
  636. package/dist/types/index.d.ts +17 -0
  637. package/dist/types/index.d.ts.map +1 -0
  638. package/dist/types/messages.d.ts +119 -0
  639. package/dist/types/messages.d.ts.map +1 -0
  640. package/dist/types/stream.d.ts +172 -0
  641. package/dist/types/stream.d.ts.map +1 -0
  642. package/dist/types/tool.d.ts +309 -0
  643. package/dist/types/tool.d.ts.map +1 -0
  644. package/dist/types/turn-source.d.ts +36 -0
  645. package/dist/types/turn-source.d.ts.map +1 -0
  646. package/dist/utils/sleep.d.ts +7 -0
  647. package/dist/utils/sleep.d.ts.map +1 -0
  648. package/package.json +49 -12
  649. package/dist/chunk-CJI7PVS2.js +0 -58
  650. package/dist/chunk-V6ETEYST.js +0 -2091
  651. package/dist/index-BCqEGzBj.d.ts +0 -251
  652. package/dist/instance-Bg61WSyz.d.ts +0 -6004
  653. package/dist/llm-error-D93FNNLY.d.ts +0 -32
  654. package/dist/storage/index.d.ts +0 -191
  655. package/dist/turn-tools/index.d.ts +0 -12
  656. package/dist/turn-tools/index.js +0 -1
  657. package/dist/{chunk-O2WCYSXQ.js → chunk-3NBTQHVV.js} +0 -0
  658. package/dist/{chunk-Q742PSH3.js → chunk-MJML3A2F.js} +36 -36
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Context compaction orchestration.
3
+ *
4
+ * Combines deterministic decisions, tool-context pruning, safe cut planning,
5
+ * and summary generation into one operation over a message array.
6
+ */
7
+ import type { Message } from "../../types/index.js";
8
+ import type { CompactionCutReason, CompactionEffectiveness, CompactionReason, CompactionTrigger, ToolContextPrunePolicy } from "../../types/compaction.js";
9
+ import { type ContextTokenEstimator } from "./estimation.js";
10
+ import { type ContextLimits } from "./budget.js";
11
+ import { type ContextCompactionDecision } from "./decision.js";
12
+ import { type ToolContextPruneReport } from "./tool-pruning.js";
13
+ import { type ContextSummaryPolicy, type ResolvedContextSummaryPolicy } from "./summary-policy.js";
14
+ /**
15
+ * Options for {@link pruneContext}.
16
+ */
17
+ export interface PruneContextOptions {
18
+ /** Context limits to enforce */
19
+ limits?: ContextLimits;
20
+ /** Summary behavior for conversation cuts. */
21
+ summary?: ContextSummaryPolicy | ResolvedContextSummaryPolicy;
22
+ /** Cheap tool-context pruning controls. */
23
+ toolPruning?: {
24
+ /** Set false to skip old tool-output and tool-argument pruning. */
25
+ enabled?: boolean;
26
+ /** Policy for deciding how aggressively old tool context is compacted. */
27
+ policy?: ToolContextPrunePolicy;
28
+ };
29
+ /**
30
+ * Force a best-effort compaction pass after the provider reports context
31
+ * overflow.
32
+ */
33
+ force?: boolean;
34
+ /** Lifecycle source that requested this compaction pass. */
35
+ trigger?: CompactionTrigger;
36
+ /** Operational reason for the pass. */
37
+ reason?: CompactionReason;
38
+ /** Optional model-aware token estimator for context-window planning. */
39
+ tokenEstimator?: ContextTokenEstimator;
40
+ }
41
+ /**
42
+ * Result of a pruning operation.
43
+ */
44
+ export interface PruneResult {
45
+ /** Messages after pruning (may include a summary message) */
46
+ messages: Message[];
47
+ /** Deterministic policy decision that caused or skipped compaction */
48
+ decision: ContextCompactionDecision;
49
+ /** Measured compaction savings */
50
+ effectiveness: CompactionEffectiveness;
51
+ /** Number of messages removed */
52
+ removedCount: number;
53
+ /** Estimated tokens removed */
54
+ tokensRemoved: number;
55
+ /** Whether summarization was used */
56
+ summarized: boolean;
57
+ /** The summary content, if generated */
58
+ summary?: string;
59
+ /** Existing handoff summary incorporated into the generated summary, if any */
60
+ previousSummary?: string;
61
+ /** Summary policy resolved for this pruning operation */
62
+ summaryPolicy: ResolvedContextSummaryPolicy;
63
+ /** Messages removed by conversation cutting, when applicable */
64
+ removedMessages?: Message[];
65
+ /** Messages kept after conversation cutting, before summary insertion */
66
+ keptMessages?: Message[];
67
+ /** Safe cut index used for conversation cutting, when applicable */
68
+ cutIndex?: number;
69
+ /** Why the cut boundary was selected */
70
+ cutReason?: CompactionCutReason;
71
+ /** Output token budget used for the summary request, if generated */
72
+ summaryOutputTokens?: number;
73
+ /** Details from the cheap tool-context pruning pass */
74
+ toolContext?: ToolContextPruneReport;
75
+ }
76
+ /**
77
+ * Prune a conversation to fit within context-window limits.
78
+ *
79
+ * Strategy, in order:
80
+ * 1. Prune old tool context without a model call.
81
+ * 2. If still overflowing, find a safe cut point and remove older messages.
82
+ * 3. If conversation history is cut, apply the configured summary policy.
83
+ *
84
+ * @param messages - Current message array
85
+ * @param options - Limits, model, and prompt overrides
86
+ * @returns A `PruneResult` with the trimmed messages
87
+ */
88
+ export declare function pruneContext(messages: Message[], options?: PruneContextOptions): Promise<PruneResult>;
89
+ //# sourceMappingURL=compactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compactor.d.ts","sourceRoot":"","sources":["../../../src/context/window/compactor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,KAAK,aAAa,EAKnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EAClC,MAAM,qBAAqB,CAAC;AAM7B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,oBAAoB,GAAG,4BAA4B,CAAC;IAC9D,2CAA2C;IAC3C,WAAW,CAAC,EAAE;QACZ,mEAAmE;QACnE,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,0EAA0E;QAC1E,MAAM,CAAC,EAAE,sBAAsB,CAAC;KACjC,CAAC;IACF;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,uCAAuC;IACvC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,wEAAwE;IACxE,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,sEAAsE;IACtE,QAAQ,EAAE,yBAAyB,CAAC;IACpC,kCAAkC;IAClC,aAAa,EAAE,uBAAuB,CAAC;IACvC,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,aAAa,EAAE,4BAA4B,CAAC;IAC5C,gEAAgE;IAChE,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC;AAyBD;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,WAAW,CAAC,CAmMtB"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Context cut planning.
3
+ *
4
+ * Finds a safe message boundary for replacing old conversation history with a
5
+ * summary. The planner validates the entire kept suffix so the next model call
6
+ * does not receive orphaned tool results or incomplete tool-call groups.
7
+ */
8
+ import type { Message } from "../../types/messages.js";
9
+ import type { CompactionCutReason } from "../../types/compaction.js";
10
+ import { type ContextTokenEstimator } from "./estimation.js";
11
+ /**
12
+ * Rich planning result for conversation cutting.
13
+ */
14
+ export interface CompactionCutPlan {
15
+ /**
16
+ * Shape of the cut.
17
+ *
18
+ * `conversation` removes a contiguous conversation prefix. `split-turn-prefix`
19
+ * removes the early part of the active turn so the latest suffix can remain
20
+ * verbatim when the active turn is too large to fit as a unit.
21
+ */
22
+ kind: "conversation" | "split-turn-prefix";
23
+ /** Cut index (exclusive: remove messages before this index) */
24
+ cutIndex: number;
25
+ /** Messages that would be removed and summarized */
26
+ removedMessages: Message[];
27
+ /** Messages that would remain visible after the summary */
28
+ keptMessages: Message[];
29
+ /** Estimated tokens removed by the cut */
30
+ tokensRemoved: number;
31
+ /** Estimated tokens kept after the cut */
32
+ tokensKept: number;
33
+ /** Protected suffix target used while planning */
34
+ protectedTokens: number;
35
+ /** Why the cut boundary was selected */
36
+ reason: CompactionCutReason;
37
+ /** Historical messages before the active turn, used as summary input */
38
+ historyMessages: Message[];
39
+ /** Removed early messages from the active turn, used as summary input */
40
+ currentTurnPrefixMessages: Message[];
41
+ /** Index of the active turn start when `kind` is `split-turn-prefix` */
42
+ currentTurnStartIndex?: number;
43
+ }
44
+ export interface PlanCompactionCutOptions {
45
+ /**
46
+ * Allow the planner to cut inside the active turn when a normal turn-safe cut
47
+ * still leaves too much context.
48
+ */
49
+ allowSplitTurn?: boolean;
50
+ /**
51
+ * Desired upper bound for the kept suffix. Used only to decide whether the
52
+ * planner should try split-turn prefix compaction.
53
+ */
54
+ maxKeptTokens?: number;
55
+ /** Optional model-aware token estimator for cut planning. */
56
+ tokenEstimator?: ContextTokenEstimator;
57
+ }
58
+ /**
59
+ * Plan a safe conversation cut.
60
+ *
61
+ * The plan preserves a recent token suffix, avoids keeping orphaned tool
62
+ * results, and prefers boundaries where the kept suffix starts with a new user
63
+ * or system message. It returns the exact removed/kept slices so callers can
64
+ * summarize and persist without recomputing the boundary.
65
+ */
66
+ export declare function planCompactionCut(messages: Message[], protectedTokens?: number, options?: PlanCompactionCutOptions): CompactionCutPlan;
67
+ //# sourceMappingURL=cut-planner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cut-planner.d.ts","sourceRoot":"","sources":["../../../src/context/window/cut-planner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAoB,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,iBAAiB,CAAC;AAOzB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,IAAI,EAAE,cAAc,GAAG,mBAAmB,CAAC;IAC3C,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,wEAAwE;IACxE,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,yEAAyE;IACzE,yBAAyB,EAAE,OAAO,EAAE,CAAC;IACrC,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AA4PD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,EAAE,EACnB,eAAe,GAAE,MAA+C,EAChE,OAAO,GAAE,wBAA6B,GACrC,iBAAiB,CA8JnB"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Deterministic context compaction decisions.
3
+ *
4
+ * This module answers whether the context-window layer should attempt
5
+ * compaction. It does not mutate messages and never calls a model; LLM usage is
6
+ * reserved for the later summary-generation step after a safe cut is selected.
7
+ */
8
+ import type { Message } from "../../types/messages.js";
9
+ import type { CompactionReason, CompactionTrigger } from "../../types/compaction.js";
10
+ import { type ContextLimits } from "./budget.js";
11
+ import { type ContextTokenEstimator } from "./estimation.js";
12
+ export type ContextCompactionDecisionReason = "below-prune-minimum" | "under-limit" | "overflow" | "forced-recovery";
13
+ export type ContextCompactionDecisionStrategy = "none" | "tool-context-first";
14
+ export interface ContextCompactionDecision {
15
+ /** Whether the compactor should run. */
16
+ needed: boolean;
17
+ /** Why this decision was made. */
18
+ reason: ContextCompactionDecisionReason;
19
+ /** First execution strategy selected by deterministic policy. */
20
+ strategy: ContextCompactionDecisionStrategy;
21
+ /** Whether the caller forced compaction after provider overflow. */
22
+ forced: boolean;
23
+ /** Lifecycle source that requested this decision. */
24
+ trigger?: CompactionTrigger;
25
+ /** Operational reason for running compaction. */
26
+ compactionReason?: CompactionReason;
27
+ /** Whether a summary model is available if history must be cut. */
28
+ canSummarize: boolean;
29
+ /** Estimated input tokens before compaction. */
30
+ inputTokens: number;
31
+ /** Token threshold that starts compaction for this decision. */
32
+ limit: number;
33
+ /** Estimated tokens above the compaction threshold. */
34
+ overflowTokens: number;
35
+ /** Recent token suffix protected from compaction. */
36
+ protectedTokens: number;
37
+ /** Minimum estimated context size before automatic compaction runs. */
38
+ pruneMinimum: number;
39
+ }
40
+ export interface DecideContextCompactionOptions {
41
+ limits?: ContextLimits;
42
+ force?: boolean;
43
+ canSummarize?: boolean;
44
+ inputTokens?: number;
45
+ trigger?: CompactionTrigger;
46
+ reason?: CompactionReason;
47
+ tokenEstimator?: ContextTokenEstimator;
48
+ }
49
+ export declare function decideContextCompaction(messages: readonly Message[], options?: DecideContextCompactionOptions): ContextCompactionDecision;
50
+ //# sourceMappingURL=decision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../../../src/context/window/decision.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,+BAA+B,GACvC,qBAAqB,GACrB,aAAa,GACb,UAAU,GACV,iBAAiB,CAAC;AAEtB,MAAM,MAAM,iCAAiC,GAAG,MAAM,GAAG,oBAAoB,CAAC;AAE9E,MAAM,WAAW,yBAAyB;IACxC,wCAAwC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,MAAM,EAAE,+BAA+B,CAAC;IACxC,iEAAiE;IACjE,QAAQ,EAAE,iCAAiC,CAAC;IAC5C,oEAAoE;IACpE,MAAM,EAAE,OAAO,CAAC;IAChB,qDAAqD;IACrD,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,mEAAmE;IACnE,YAAY,EAAE,OAAO,CAAC;IACtB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,eAAe,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,8BAA8B;IAC7C,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AA2CD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,GAAE,8BAAmC,GAC3C,yBAAyB,CAkF3B"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Token Estimation Utilities
3
+ *
4
+ * Provides lightweight heuristic-based token counting for messages
5
+ * and conversations. Uses the chars/4 approximation — simple but
6
+ * effective for context-window planning decisions.
7
+ *
8
+ * These are *estimates*, not exact counts. For billing or hard limits,
9
+ * use the provider's native tokeniser instead.
10
+ */
11
+ import type { Message } from "../../types/messages.js";
12
+ import type { ModelMessage } from "ai";
13
+ /**
14
+ * Optional estimator used by context-window planning.
15
+ *
16
+ * The contract is intentionally named "estimator" instead of "tokenizer":
17
+ * callers may provide an exact model tokenizer, but approximations are also
18
+ * valid. Invalid return values are ignored and the built-in heuristic is used.
19
+ */
20
+ export interface ContextTokenEstimator {
21
+ /** Estimate plain text. Used for message content, tool names, and arguments. */
22
+ estimateTextTokens?(text: string): number | undefined;
23
+ /** Estimate one model-visible message. Takes precedence over text estimates. */
24
+ estimateMessageTokens?(message: Message | ModelMessage): number | undefined;
25
+ /** Estimate the full message list. Takes precedence over message estimates. */
26
+ estimateConversationTokens?(messages: readonly (Message | ModelMessage)[]): number | undefined;
27
+ }
28
+ /**
29
+ * Estimate token count for a plain string.
30
+ *
31
+ * Uses the widely-accepted `chars / 4` heuristic.
32
+ *
33
+ * @param text - Text to estimate
34
+ * @returns Estimated token count
35
+ */
36
+ export declare function estimateTokens(text: string, estimator?: ContextTokenEstimator): number;
37
+ /**
38
+ * Estimate token count for a single message.
39
+ *
40
+ * Handles:
41
+ * - Plain string content
42
+ * - Multi-part / multimodal arrays (text parts + images)
43
+ *
44
+ * @param message - A `Message` (internal) or `ModelMessage` (AI SDK)
45
+ * @returns Estimated token count
46
+ */
47
+ export declare function estimateMessageTokens(message: Message | ModelMessage, estimator?: ContextTokenEstimator): number;
48
+ /**
49
+ * Estimate total tokens for an entire conversation.
50
+ *
51
+ * Adds a small per-message overhead (≈ 4 tokens) for message
52
+ * framing (`role`, delimiters, etc.). When a recent assistant message has
53
+ * provider usage metadata, use it as a lower bound so planning follows the
54
+ * provider-observed context size instead of only the character heuristic.
55
+ *
56
+ * @param messages - Array of messages to estimate
57
+ * @returns Estimated total token count
58
+ */
59
+ export declare function estimateConversationTokens(messages: readonly (Message | ModelMessage)[], estimator?: ContextTokenEstimator): number;
60
+ //# sourceMappingURL=estimation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimation.d.ts","sourceRoot":"","sources":["../../../src/context/window/estimation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAMvC;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,kBAAkB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACtD,gFAAgF;IAChF,qBAAqB,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5E,+EAA+E;IAC/E,0BAA0B,CAAC,CACzB,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAC5C,MAAM,GAAG,SAAS,CAAC;CACvB;AAQD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,qBAAqB,GAChC,MAAM,CAKR;AAsCD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,GAAG,YAAY,EAC/B,SAAS,CAAC,EAAE,qBAAqB,GAChC,MAAM,CA6BR;AAgDD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,EAC7C,SAAS,CAAC,EAAE,qBAAqB,GAChC,MAAM,CAYR"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Context Management — Barrel Export
3
+ *
4
+ * Re-exports the public surface of context-window primitives while keeping the
5
+ * implementation split into focused files.
6
+ */
7
+ export { estimateTokens, estimateMessageTokens, estimateConversationTokens, } from "./estimation.js";
8
+ export type { ContextTokenEstimator } from "./estimation.js";
9
+ export { DEFAULT_CONTEXT_LIMITS, DEFAULT_COMPACTION_EFFECTIVE_MIN_SAVINGS_RATIO, DEFAULT_SUMMARY_MAX_INPUT_TOKENS, DEFAULT_SUMMARY_MAX_OUTPUT_TOKENS, createCompactionEffectiveness, getAutoCompactTokenLimit, getEffectiveContextWindow, getUsableTokenLimit, isContextOverflowing, resolveSummaryOutputTokens, shouldPruneContext, } from "./budget.js";
10
+ export type { ContextLimits, SummaryOutputBudgetOptions } from "./budget.js";
11
+ export { planCompactionCut } from "./cut-planner.js";
12
+ export type { CompactionCutPlan, PlanCompactionCutOptions, } from "./cut-planner.js";
13
+ export { decideContextCompaction } from "./decision.js";
14
+ export type { ContextCompactionDecision, ContextCompactionDecisionReason, ContextCompactionDecisionStrategy, DecideContextCompactionOptions, } from "./decision.js";
15
+ export { DEFAULT_TOOL_CONTEXT_PRUNE_POLICY, pruneToolContext, pruneToolContextWithReport, } from "./tool-pruning.js";
16
+ export type { ToolContextPruneReport, ToolContextPruneResult, } from "./tool-pruning.js";
17
+ export type { ToolContextPrunePolicy } from "../../types/compaction.js";
18
+ export { createCompactionSummaryContent, extractCompactionSummaryText, generateSummary, generateSplitTurnSummary, redactSummaryText, serializeMessagesForSummary, } from "./summary.js";
19
+ export type { SplitTurnSummarizationOptions, SummarizationOptions, } from "./summary.js";
20
+ export type { SummarySerializationOptions } from "./summary.js";
21
+ export { pruneContext } from "./compactor.js";
22
+ export type { PruneContextOptions, PruneResult } from "./compactor.js";
23
+ export { ContextWindowManager } from "./manager.js";
24
+ export type { ContextWindowStats, ContextWindowToolPruningOptions, } from "./manager.js";
25
+ export { canGenerateCompactionSummary, ContextSummaryModelRequiredError, resolveContextSummaryPolicy, shouldFallbackOnSummaryFailure, } from "./summary-policy.js";
26
+ export type { ContextSummaryPolicy, ResolvedContextSummaryPolicy, } from "./summary-policy.js";
27
+ export type { ContextSummaryMode } from "../../types/compaction.js";
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/window/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EACL,sBAAsB,EACtB,8CAA8C,EAC9C,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EACV,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EACV,yBAAyB,EACzB,+BAA+B,EAC/B,iCAAiC,EACjC,8BAA8B,GAC/B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iCAAiC,EACjC,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Context Window Manager
3
+ *
4
+ * Stateful wrapper around the context-window primitives.
5
+ * Tracks per-session context limits and provides a single entry
6
+ * point for token estimation, overflow detection, and pruning.
7
+ */
8
+ import type { LanguageModel, ModelMessage } from "ai";
9
+ import type { Message } from "../../types/index.js";
10
+ import type { CompactionReason, CompactionTrigger, ToolContextPrunePolicy } from "../../types/compaction.js";
11
+ import { type ContextTokenEstimator } from "./estimation.js";
12
+ import { type ContextLimits } from "./budget.js";
13
+ import { type PruneResult } from "./compactor.js";
14
+ import { type ContextCompactionDecision } from "./decision.js";
15
+ import { type ContextSummaryPolicy, type ResolvedContextSummaryPolicy } from "./summary-policy.js";
16
+ export interface ContextWindowStats {
17
+ tokens: number;
18
+ /** Threshold that starts automatic compaction. Kept as `limit` for compatibility. */
19
+ limit: number;
20
+ /** Safety-adjusted context window before reserving output tokens. */
21
+ effectiveContextWindow: number;
22
+ /** Hard model-input budget after output-token reservation. */
23
+ usableLimit: number;
24
+ /** Threshold used by automatic pruning decisions. */
25
+ autoCompactLimit: number;
26
+ available: number;
27
+ utilizationPercent: number;
28
+ isOverflowing: boolean;
29
+ shouldPrune: boolean;
30
+ }
31
+ export interface ContextWindowToolPruningOptions {
32
+ /** Set false to skip deterministic old tool-output and tool-argument pruning. */
33
+ enabled?: boolean;
34
+ /** Policy for deciding how aggressively old tool context is compacted. */
35
+ policy?: ToolContextPrunePolicy;
36
+ }
37
+ /**
38
+ * Per-session context-window manager.
39
+ *
40
+ * Holds the active context-window limits and provides convenience
41
+ * methods for checking, reporting, and pruning context.
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * const ctx = new ContextWindowManager({ limits: { contextWindow: 200_000 } });
46
+ *
47
+ * if (ctx.shouldPrune(messages)) {
48
+ * const result = await ctx.prune(messages);
49
+ * console.log(`Removed ${result.removedCount} messages`);
50
+ * }
51
+ * ```
52
+ */
53
+ export declare class ContextWindowManager {
54
+ private limits;
55
+ private activeModel?;
56
+ private summaryPolicy?;
57
+ private toolPruning?;
58
+ private tokenEstimator?;
59
+ constructor(options?: {
60
+ limits?: Partial<ContextLimits>;
61
+ /** Active agent model. Used for summaries unless `summary.model` overrides it. */
62
+ model?: LanguageModel;
63
+ summary?: ContextSummaryPolicy;
64
+ toolPruning?: ContextWindowToolPruningOptions;
65
+ /** Optional model-aware token estimator for context planning. */
66
+ tokenEstimator?: ContextTokenEstimator;
67
+ });
68
+ /** Get a copy of the current context limits. */
69
+ getLimits(): ContextLimits;
70
+ /** Update context limits (e.g. when switching models). */
71
+ setLimits(limits: Partial<ContextLimits>): void;
72
+ /** Set the active agent model used for summaries unless overridden. */
73
+ setModel(model: LanguageModel): void;
74
+ /** Set the summary policy used when conversation history must be cut. */
75
+ setSummaryPolicy(policy: ContextSummaryPolicy): void;
76
+ /** Set deterministic tool-context pruning behavior. */
77
+ setToolPruning(options: ContextWindowToolPruningOptions): void;
78
+ /** Get deterministic tool-context pruning behavior. */
79
+ getToolPruning(): ContextWindowToolPruningOptions | undefined;
80
+ /** Set the token estimator used for context-window planning. */
81
+ setTokenEstimator(estimator: ContextTokenEstimator | undefined): void;
82
+ /** Get the token estimator used for context-window planning. */
83
+ getTokenEstimator(): ContextTokenEstimator | undefined;
84
+ /** Resolve summary policy against the active agent model. */
85
+ getSummaryPolicy(): ResolvedContextSummaryPolicy;
86
+ /** Estimate total tokens for a message array. */
87
+ estimateTokens(messages: readonly (Message | ModelMessage)[]): number;
88
+ /** Check whether the context is overflowing. */
89
+ isOverflowing(messages: readonly (Message | ModelMessage)[]): boolean;
90
+ /** Check whether pruning should be triggered. */
91
+ shouldPrune(messages: readonly (Message | ModelMessage)[]): boolean;
92
+ /** Explain whether context compaction should run. */
93
+ decide(messages: readonly Message[], options?: {
94
+ force?: boolean;
95
+ inputTokens?: number;
96
+ trigger?: CompactionTrigger;
97
+ reason?: CompactionReason;
98
+ }): ContextCompactionDecision;
99
+ /** Prune context to fit within limits. */
100
+ prune(messages: Message[], options?: {
101
+ force?: boolean;
102
+ trigger?: CompactionTrigger;
103
+ reason?: CompactionReason;
104
+ toolPruning?: ContextWindowToolPruningOptions;
105
+ }): Promise<PruneResult>;
106
+ /**
107
+ * Get a snapshot of token statistics.
108
+ *
109
+ * Useful for dashboards, logging, or deciding whether to prune.
110
+ */
111
+ getStats(messages: readonly (Message | ModelMessage)[]): ContextWindowStats;
112
+ }
113
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/context/window/manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,aAAa,EAOnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EAClC,MAAM,qBAAqB,CAAC;AAM7B,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,+BAA+B;IAC9C,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAuB;IAC7C,OAAO,CAAC,WAAW,CAAC,CAAkC;IACtD,OAAO,CAAC,cAAc,CAAC,CAAwB;gBAEnC,OAAO,CAAC,EAAE;QACpB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAChC,kFAAkF;QAClF,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,OAAO,CAAC,EAAE,oBAAoB,CAAC;QAC/B,WAAW,CAAC,EAAE,+BAA+B,CAAC;QAC9C,iEAAiE;QACjE,cAAc,CAAC,EAAE,qBAAqB,CAAC;KACxC;IAQD,gDAAgD;IAChD,SAAS,IAAI,aAAa;IAI1B,0DAA0D;IAC1D,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAI/C,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAIpC,yEAAyE;IACzE,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAIpD,uDAAuD;IACvD,cAAc,CAAC,OAAO,EAAE,+BAA+B,GAAG,IAAI;IAI9D,uDAAuD;IACvD,cAAc,IAAI,+BAA+B,GAAG,SAAS;IAI7D,gEAAgE;IAChE,iBAAiB,CAAC,SAAS,EAAE,qBAAqB,GAAG,SAAS,GAAG,IAAI;IAIrE,gEAAgE;IAChE,iBAAiB,IAAI,qBAAqB,GAAG,SAAS;IAItD,6DAA6D;IAC7D,gBAAgB,IAAI,4BAA4B;IAIhD,iDAAiD;IACjD,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,MAAM;IAIrE,gDAAgD;IAChD,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,OAAO;IAKrE,iDAAiD;IACjD,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,OAAO;IAKnE,qDAAqD;IACrD,MAAM,CACJ,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,MAAM,CAAC,EAAE,gBAAgB,CAAC;KAC3B,GACA,yBAAyB;IAa5B,0CAA0C;IACpC,KAAK,CACT,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,MAAM,CAAC,EAAE,gBAAgB,CAAC;QAC1B,WAAW,CAAC,EAAE,+BAA+B,CAAC;KAC/C,GACA,OAAO,CAAC,WAAW,CAAC;IAYvB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,kBAAkB;CAmB5E"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Summary model policy for context compaction.
3
+ *
4
+ * The compaction decision and cut planner are deterministic. This policy only
5
+ * controls what happens after a conversation slice must be removed.
6
+ */
7
+ import type { LanguageModel } from "ai";
8
+ import type { ContextSummaryMode } from "../../types/compaction.js";
9
+ export interface ContextSummaryPolicy {
10
+ /**
11
+ * `required` means conversation cuts must produce an LLM summary.
12
+ * `best-effort` allows deterministic fallback summaries if the model fails.
13
+ * `disabled` permits conversation cuts without LLM summarization.
14
+ *
15
+ * Default: `required`.
16
+ */
17
+ mode?: ContextSummaryMode;
18
+ /**
19
+ * Summary model override. When omitted, the active agent model is used.
20
+ */
21
+ model?: LanguageModel;
22
+ /** Custom summarization prompt. */
23
+ prompt?: string;
24
+ /** Maximum estimated input tokens sent to the summary model. */
25
+ maxInputTokens?: number;
26
+ /** Maximum output tokens requested for compaction summaries. */
27
+ maxOutputTokens?: number;
28
+ /**
29
+ * Optional proportional summary budget based on removed content size.
30
+ */
31
+ targetRatio?: number;
32
+ }
33
+ export interface ResolvedContextSummaryPolicy {
34
+ mode: ContextSummaryMode;
35
+ model?: LanguageModel;
36
+ prompt?: string;
37
+ maxInputTokens?: number;
38
+ maxOutputTokens?: number;
39
+ targetRatio?: number;
40
+ }
41
+ export declare class ContextSummaryModelRequiredError extends Error {
42
+ constructor();
43
+ }
44
+ export declare function resolveContextSummaryPolicy(policy: ContextSummaryPolicy | undefined, activeModel?: LanguageModel): ResolvedContextSummaryPolicy;
45
+ export declare function canGenerateCompactionSummary(policy: ResolvedContextSummaryPolicy): boolean;
46
+ export declare function shouldFallbackOnSummaryFailure(options: {
47
+ policy: ResolvedContextSummaryPolicy;
48
+ force?: boolean;
49
+ }): boolean;
50
+ //# sourceMappingURL=summary-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-policy.d.ts","sourceRoot":"","sources":["../../../src/context/window/summary-policy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,gCAAiC,SAAQ,KAAK;;CAO1D;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,oBAAoB,GAAG,SAAS,EACxC,WAAW,CAAC,EAAE,aAAa,GAC1B,4BAA4B,CAa9B;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAET;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE;IACtD,MAAM,EAAE,4BAA4B,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAEV"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Compaction summary generation.
3
+ *
4
+ * This module is intentionally limited to serializing messages and asking a
5
+ * model for a summary. Boundary planning and persistence live elsewhere.
6
+ */
7
+ import type { LanguageModel } from "ai";
8
+ import type { Message } from "../../types/messages.js";
9
+ /**
10
+ * Options for summary generation.
11
+ */
12
+ export interface SummarizationOptions {
13
+ /** Model used to generate the summary */
14
+ model: LanguageModel;
15
+ /** Max estimated input tokens for serialized messages */
16
+ maxInputTokens?: number;
17
+ /** Max tokens for the summary output */
18
+ maxTokens?: number;
19
+ /** Custom summarization system prompt */
20
+ customPrompt?: string;
21
+ /** Existing handoff summary to update instead of summarizing from scratch */
22
+ previousSummary?: string;
23
+ }
24
+ export interface SplitTurnSummarizationOptions extends SummarizationOptions {
25
+ /** Older conversation messages removed before the active turn */
26
+ historyMessages: Message[];
27
+ /** Early active-turn messages removed while keeping the later suffix */
28
+ currentTurnPrefixMessages: Message[];
29
+ }
30
+ export interface SummarySerializationOptions {
31
+ /** Max estimated tokens across the whole serialized transcript */
32
+ maxInputTokens?: number;
33
+ /** Max estimated tokens per message before middle truncation */
34
+ maxMessageTokens?: number;
35
+ /**
36
+ * Fraction of the serialized budget reserved for the newest removed
37
+ * messages when the transcript is too large to include in full.
38
+ *
39
+ * Compaction summaries need both the original goal and the latest removed
40
+ * work nearest the kept suffix. A tail-biased default avoids spending the
41
+ * whole summary prompt on stale early context.
42
+ */
43
+ recentMessageRatio?: number;
44
+ }
45
+ export declare function createCompactionSummaryContent(summary: string): string;
46
+ export declare function extractCompactionSummaryText(message: Message): string | undefined;
47
+ export declare function redactSummaryText(text: string): string;
48
+ export declare function serializeMessagesForSummary(messages: Message[], options?: SummarySerializationOptions): string;
49
+ /**
50
+ * Generate a natural-language summary of a message sequence.
51
+ *
52
+ * @param messages - Messages to summarize
53
+ * @param options - Model and prompt configuration
54
+ * @returns Summary text
55
+ */
56
+ export declare function generateSummary(messages: Message[], options: SummarizationOptions): Promise<string>;
57
+ /**
58
+ * Generate a summary for a cut that splits the active turn.
59
+ *
60
+ * This keeps the later active-turn suffix verbatim while summarizing the
61
+ * removed prefix with different instructions from normal completed-history
62
+ * compaction.
63
+ */
64
+ export declare function generateSplitTurnSummary(options: SplitTurnSummarizationOptions): Promise<string>;
65
+ //# sourceMappingURL=summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../src/context/window/summary.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AASvD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,KAAK,EAAE,aAAa,CAAC;IACrB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,iEAAiE;IACjE,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,wEAAwE;IACxE,yBAAyB,EAAE,OAAO,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,2BAA2B;IAC1C,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAqCD,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,OAAO,GACf,MAAM,GAAG,SAAS,CAIpB;AAsBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQtD;AAgLD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,2BAAgC,GACxC,MAAM,CA2BR;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,MAAM,CAAC,CAiCjB"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Tool context pruning.
3
+ *
4
+ * Performs the cheap compaction pass that does not require an LLM call:
5
+ * old, large tool outputs and old, large tool-call arguments outside the
6
+ * protected suffix are replaced with compact previews while preserving
7
+ * tool-call/result shape.
8
+ */
9
+ import type { Message } from "../../types/index.js";
10
+ import { type ToolContextPrunePolicy } from "../../types/compaction.js";
11
+ import { type ContextTokenEstimator } from "./estimation.js";
12
+ export declare const DEFAULT_TOOL_CONTEXT_PRUNE_POLICY: Required<ToolContextPrunePolicy>;
13
+ export interface ToolContextPruneReport {
14
+ /** Number of tool result messages compacted. */
15
+ outputCompactedCount: number;
16
+ /** Number of assistant tool-call argument payloads compacted. */
17
+ argumentCompactedCount: number;
18
+ /** Estimated message tokens before the tool context pass. */
19
+ tokensBefore: number;
20
+ /** Estimated message tokens after the tool context pass. */
21
+ tokensAfter: number;
22
+ /** Estimated tokens removed by the tool context pass. */
23
+ tokensRemoved: number;
24
+ }
25
+ export interface ToolContextPruneResult {
26
+ messages: Message[];
27
+ report: ToolContextPruneReport;
28
+ }
29
+ /**
30
+ * Prune old, large tool context from the conversation.
31
+ *
32
+ * Prune strategy:
33
+ * - Walks backwards through messages
34
+ * - Protects recent outputs within `protectedTokens`
35
+ * - Skips protected tools such as `skill`
36
+ * - Stamps pruned messages with a `compactedAt` timestamp
37
+ *
38
+ * @param messages - Messages to prune
39
+ * @param protectedTokens - Recent tokens protected from pruning
40
+ * @param options - Extra tool names to protect
41
+ * @returns New message array with large tool context replaced
42
+ */
43
+ export declare function pruneToolContextWithReport(messages: Message[], protectedTokens?: number, options?: {
44
+ /** Additional tools to protect from pruning */
45
+ protectedTools?: string[];
46
+ /** Policy for deciding how aggressively old tool context is compacted. */
47
+ policy?: ToolContextPrunePolicy;
48
+ /** Optional model-aware token estimator for tool context pruning. */
49
+ tokenEstimator?: ContextTokenEstimator;
50
+ }): ToolContextPruneResult;
51
+ /**
52
+ * Prune old, large tool context from the conversation.
53
+ *
54
+ * Prune strategy:
55
+ * - Walks backwards through messages
56
+ * - Protects recent outputs within `protectedTokens`
57
+ * - Skips protected tools such as `skill`
58
+ * - Stamps pruned tool-result messages with a `compactedAt` timestamp
59
+ *
60
+ * @param messages - Messages to prune
61
+ * @param protectedTokens - Recent tokens protected from pruning
62
+ * @param options - Extra tool names to protect
63
+ * @returns New message array with large tool context replaced
64
+ */
65
+ export declare function pruneToolContext(messages: Message[], protectedTokens?: number, options?: {
66
+ /** Additional tools to protect from pruning */
67
+ protectedTools?: string[];
68
+ /** Policy for deciding how aggressively old tool context is compacted. */
69
+ policy?: ToolContextPrunePolicy;
70
+ /** Optional model-aware token estimator for tool context pruning. */
71
+ tokenEstimator?: ContextTokenEstimator;
72
+ }): Message[];
73
+ //# sourceMappingURL=tool-pruning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-pruning.d.ts","sourceRoot":"","sources":["../../../src/context/window/tool-pruning.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAEV,OAAO,EAER,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,iBAAiB,CAAC;AAIzB,eAAO,MAAM,iCAAiC,EAAE,QAAQ,CAAC,sBAAsB,CAY5E,CAAC;AAEJ,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAuSD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,OAAO,EAAE,EACnB,eAAe,GAAE,MAA+C,EAChE,OAAO,CAAC,EAAE;IACR,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,qEAAqE;IACrE,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC,GACA,sBAAsB,CAwGxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EAAE,EACnB,eAAe,GAAE,MAA+C,EAChE,OAAO,CAAC,EAAE;IACR,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,qEAAqE;IACrE,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC,GACA,OAAO,EAAE,CAGX"}