@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,426 @@
1
+ /**
2
+ * Middleware Types
3
+ *
4
+ * Defines the composable middleware interface for agent lifecycle hooks.
5
+ *
6
+ * Middleware is just a plain object with optional hook methods — no
7
+ * base classes, no discovery, no installation. Pass it in code:
8
+ *
9
+ * ```typescript
10
+ * const agent = createAgent({
11
+ * middleware: [myLoggerMiddleware, myApprovalMiddleware],
12
+ * });
13
+ * ```
14
+ *
15
+ * Hooks run in array order for "before" operations and reverse order
16
+ * for "after" operations (like middleware stacks everywhere).
17
+ */
18
+ import type { LanguageModel, ModelMessage, SystemModelMessage, TelemetryOptions } from "ai";
19
+ import type { ProviderOptions } from "@ai-sdk/provider-utils";
20
+ import type { AgentContextCompactionPhase, AgentEvent } from "../types/events.js";
21
+ import type { PromptBuildContext, PromptSection } from "../prompt/types.js";
22
+ import type { Message, TokenUsage } from "../types/messages.js";
23
+ import type { RecentMessagesOptions as SessionRecentMessagesOptions } from "../sessions/manager/types.js";
24
+ import type { ScopeSnapshot } from "../execution/scope/types.js";
25
+ import type { StreamChunk, StreamProvider } from "../types/stream.js";
26
+ import type { ToolContext } from "../types/tool.js";
27
+ import type { Tool } from "../tool/tool.js";
28
+ import type { ReasoningLevel } from "../models/reasoning/index.js";
29
+ import type { ApprovalCorrection } from "../safety/types.js";
30
+ import type { AgentContextFragmentBuildContext, AgentContextFragmentInput } from "../context/fragments/types.js";
31
+ import type { ContextCompactionDecision } from "../context/window/index.js";
32
+ import type { CompactionCutReason, CompactionEffectiveness, CompactionReason, CompactionTrigger } from "../types/compaction.js";
33
+ /**
34
+ * Action returned by `beforeToolCall` — determines whether
35
+ * the tool call proceeds or is blocked.
36
+ */
37
+ export interface ToolCallDecision {
38
+ /** Whether to allow or deny the tool call */
39
+ action: "allow" | "deny";
40
+ /** Reason for denial — returned to the model as the tool output */
41
+ reason?: string;
42
+ /**
43
+ * Structured correction metadata for denied tool calls.
44
+ *
45
+ * Hosts and runtimes can persist this even though the model still receives
46
+ * a string tool result.
47
+ */
48
+ correction?: ApprovalCorrection;
49
+ /**
50
+ * Rewritten tool arguments. When present, replaces the original
51
+ * args for the remainder of the execution pipeline (schema validation,
52
+ * baseline capture, and execution).
53
+ *
54
+ * Only meaningful when `action` is `"allow"`. Use this for path
55
+ * rewriting, sandbox prefixing, argument sanitization, or injecting
56
+ * default values — without the tool knowing about the transformation.
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * beforeToolCall: async (tool, args, ctx) => {
61
+ * if (tool === "write_file") {
62
+ * const a = args as { path: string };
63
+ * return {
64
+ * action: "allow",
65
+ * args: { ...a, path: resolveSandboxPath(a.path) },
66
+ * };
67
+ * }
68
+ * return { action: "allow" };
69
+ * },
70
+ * ```
71
+ */
72
+ args?: unknown;
73
+ }
74
+ /**
75
+ * Mutable model invocation payload presented to middleware before an LLM call.
76
+ */
77
+ export interface ModelCallInput {
78
+ model: LanguageModel;
79
+ system: string[];
80
+ messages: ModelMessage[];
81
+ temperature?: number;
82
+ topP?: number;
83
+ maxOutputTokens?: number;
84
+ maxSteps?: number;
85
+ reasoningLevel?: ReasoningLevel;
86
+ telemetry?: TelemetryOptions;
87
+ customStreamProvider?: StreamProvider;
88
+ toolExecutionMode?: "auto" | "plan";
89
+ /**
90
+ * Provider-specific options passed through to `streamText()`.
91
+ *
92
+ * Middleware can set these to enable provider features like Anthropic
93
+ * prompt caching (`{ anthropic: { cacheControl: { type: "ephemeral" } } }`).
94
+ *
95
+ * When multiple sources set providerOptions (e.g. middleware + reasoning),
96
+ * they are shallow-merged before the LLM call.
97
+ */
98
+ providerOptions?: ProviderOptions;
99
+ /**
100
+ * System messages with provider-specific options.
101
+ *
102
+ * When set, these take precedence over the plain `system` strings.
103
+ * This allows middleware to attach per-message metadata such as
104
+ * Anthropic `cacheControl` breakpoints on system content.
105
+ *
106
+ * Leave undefined to use the plain `system` string array.
107
+ */
108
+ systemMessages?: SystemModelMessage[];
109
+ }
110
+ /**
111
+ * Context shared across model middleware hooks for a single step.
112
+ */
113
+ export interface ModelCallContext {
114
+ sessionID: string;
115
+ turnID?: string;
116
+ step: number;
117
+ cwd: string;
118
+ abort: AbortSignal;
119
+ model: LanguageModel;
120
+ toolNames: string[];
121
+ mcpToolNames: string[];
122
+ scope?: ScopeSnapshot;
123
+ }
124
+ /**
125
+ * Return this from `model.input(...)` to stop an LLM call entirely.
126
+ */
127
+ export interface BlockedModelCall {
128
+ block: true;
129
+ reason: string;
130
+ }
131
+ /** Type guard for `BlockedModelCall`. */
132
+ export declare function isBlockedModelCall(value: ModelCallInput | BlockedModelCall): value is BlockedModelCall;
133
+ /**
134
+ * Final step result exposed to model middleware after the stream is processed.
135
+ */
136
+ export interface ModelCallOutput {
137
+ text: string;
138
+ usage?: TokenUsage;
139
+ finishReason?: string;
140
+ }
141
+ /**
142
+ * Context shared across chat lifecycle hooks for a single turn.
143
+ */
144
+ export interface ChatLifecycleContext {
145
+ sessionId: string;
146
+ turnId?: string;
147
+ history?: HistoryAccessor;
148
+ }
149
+ /**
150
+ * Options for reading a bounded slice of recent visible chat messages.
151
+ */
152
+ export type RecentMessagesOptions = Pick<SessionRecentMessagesOptions, "limit" | "roles">;
153
+ /**
154
+ * Lazy chat-history accessor exposed to lifecycle middleware.
155
+ *
156
+ * The chat loop passes this accessor by reference; messages are only read and
157
+ * deserialized if middleware calls it.
158
+ */
159
+ export interface HistoryAccessor {
160
+ getRecentMessages(options?: RecentMessagesOptions): Message[];
161
+ }
162
+ /**
163
+ * Extended tool result returned by `afterToolCall` middleware.
164
+ *
165
+ * Same shape as `Tool.ExecuteResult` with an optional `supplement` —
166
+ * extra text appended to the tool output for model visibility.
167
+ *
168
+ * Use this to inject warnings, guidance, lint results, or annotations
169
+ * that the model should see alongside the tool's own output, without
170
+ * modifying the tool's result directly.
171
+ *
172
+ * When multiple middleware add supplements, each one receives the
173
+ * previous supplement (if any) and can extend or replace it.
174
+ *
175
+ * @example
176
+ * ```typescript
177
+ * afterToolCall: async (tool, args, result) => {
178
+ * if (tool === "write_file") {
179
+ * const warnings = await lintFile(args.path);
180
+ * return { ...result, supplement: warnings };
181
+ * }
182
+ * return result;
183
+ * },
184
+ * ```
185
+ */
186
+ export interface ToolCallOutput extends Tool.ExecuteResult {
187
+ /**
188
+ * Supplementary text appended to the tool output for the model.
189
+ *
190
+ * Kept separate from `output` so the original tool result stays
191
+ * untouched. The executor merges this into the final output string
192
+ * before returning it to the model.
193
+ */
194
+ supplement?: string;
195
+ }
196
+ /**
197
+ * Shared context for middleware that observes a context compaction pass.
198
+ *
199
+ * `beforeContextCompactionCommit` receives the proposed replacement after the
200
+ * cut and summary are prepared, before it is committed to session history.
201
+ * `afterContextCompactionCommit` receives the same shape after the session has
202
+ * been replaced.
203
+ */
204
+ export interface ContextCompactionHookContext {
205
+ sessionId: string;
206
+ turnId?: string;
207
+ cwd: string;
208
+ phase?: AgentContextCompactionPhase;
209
+ trigger?: CompactionTrigger;
210
+ reason?: CompactionReason;
211
+ inputTokens: number;
212
+ limit: number;
213
+ decision: ContextCompactionDecision;
214
+ effectiveness: CompactionEffectiveness;
215
+ removedMessages: readonly Message[];
216
+ keptMessages: readonly Message[];
217
+ messagesAfter: readonly Message[];
218
+ persistedMessages: readonly Message[];
219
+ removedCount: number;
220
+ tokensRemoved: number;
221
+ summarized: boolean;
222
+ previousSummary?: string;
223
+ nextSummary?: string;
224
+ cutIndex?: number;
225
+ cutReason?: CompactionCutReason;
226
+ tokensBefore: number;
227
+ tokensAfter: number;
228
+ abort?: AbortSignal;
229
+ }
230
+ /**
231
+ * Optional model-specific hooks grouped under `middleware.model`.
232
+ */
233
+ export interface AgentModelHooks {
234
+ /**
235
+ * Review or rewrite the model request before the LLM is invoked.
236
+ *
237
+ * Return:
238
+ * - `undefined` to keep the current request
239
+ * - a `ModelCallInput` object to replace the request
240
+ * - `{ block: true, reason }` to cancel the model call
241
+ *
242
+ * Hooks run in middleware array order. The first block stops the call.
243
+ */
244
+ input?(input: ModelCallInput, ctx: ModelCallContext): Promise<ModelCallInput | BlockedModelCall | void>;
245
+ /**
246
+ * Review or rewrite raw stream chunks as they arrive from the model.
247
+ *
248
+ * Return:
249
+ * - `undefined` to keep the current chunk
250
+ * - a `StreamChunk` to replace it
251
+ * - `null` to drop it from downstream processing
252
+ *
253
+ * Hooks run in middleware array order.
254
+ */
255
+ chunk?(chunk: StreamChunk, ctx: ModelCallContext): Promise<StreamChunk | null | void>;
256
+ /**
257
+ * Review or rewrite the fully processed model result for the current step.
258
+ *
259
+ * Hooks run in reverse middleware order so outer middleware sees the final
260
+ * shaped result, matching `afterToolCall(...)`.
261
+ */
262
+ output?(output: ModelCallOutput, ctx: ModelCallContext): Promise<ModelCallOutput | void>;
263
+ }
264
+ /**
265
+ * Agent middleware — composable lifecycle hooks.
266
+ *
267
+ * All methods are optional. Implement only what you need.
268
+ *
269
+ * Ordering:
270
+ * - `beforeToolCall`: runs in array order, first "deny" wins
271
+ * - `afterToolCall`: runs in reverse order (innermost first)
272
+ * - `model.input`: runs in array order, first block wins
273
+ * - `model.chunk`: runs in array order on raw stream chunks
274
+ * - `model.output`: runs in reverse order
275
+ * - `promptSections`: all run, sections merged
276
+ * - `beforeContextCompactionCommit`: runs in array order before session history is replaced
277
+ * - `afterContextCompactionCommit`: runs in reverse order after session history is replaced
278
+ * - `onEvent`: all run synchronously, errors logged, never blocks the stream
279
+ * - `onChatStart` / `onChatEnd`: run in array order, awaited sequentially
280
+ *
281
+ * @example
282
+ * ```typescript
283
+ * // A simple logging middleware
284
+ * const logger: AgentMiddleware = {
285
+ * name: "logger",
286
+ * beforeToolCall: async (tool, args) => {
287
+ * console.log(`→ ${tool}`, args);
288
+ * return { action: "allow" };
289
+ * },
290
+ * afterToolCall: async (tool, args, result) => {
291
+ * console.log(`← ${tool}`, result.title);
292
+ * return result;
293
+ * },
294
+ * };
295
+ * ```
296
+ */
297
+ export interface AgentMiddleware {
298
+ /** Middleware name (for logging and debugging) */
299
+ name: string;
300
+ /**
301
+ * Optional hooks for shaping model requests, raw stream chunks,
302
+ * and final step outputs.
303
+ */
304
+ model?: AgentModelHooks;
305
+ /**
306
+ * Intercept a tool call before execution.
307
+ *
308
+ * Return `{ action: "allow" }` to proceed, or `{ action: "deny", reason }` to
309
+ * block the call. When denied, `reason` is returned to the model as the tool
310
+ * output so it can adjust its approach.
311
+ *
312
+ * Runs in array order. The first middleware that returns "deny" short-circuits
313
+ * the chain — remaining middleware and the tool itself are skipped.
314
+ *
315
+ * @param tool - Tool name (e.g. "bash", "write_file")
316
+ * @param args - Parsed tool arguments
317
+ * @param ctx - Tool execution context (cwd, sessionID, host, etc.)
318
+ */
319
+ beforeToolCall?(tool: string, args: unknown, ctx: ToolContext): Promise<ToolCallDecision>;
320
+ /**
321
+ * Transform or observe a tool result after execution.
322
+ *
323
+ * Receives the result and must return a result (can be the same object
324
+ * or a modified copy). Runs in reverse array order so the outermost
325
+ * middleware sees the final transformed result.
326
+ *
327
+ * @param tool - Tool name
328
+ * @param args - Original tool arguments
329
+ * @param result - Tool execution result
330
+ * @param ctx - Tool execution context
331
+ */
332
+ afterToolCall?(tool: string, args: unknown, result: ToolCallOutput, ctx: ToolContext): Promise<ToolCallOutput>;
333
+ /**
334
+ * Inject dynamic prompt sections at build time.
335
+ *
336
+ * Called during `PromptBuilder.build()` for each middleware. Return one
337
+ * or more sections to inject into the system prompt. Return `undefined`
338
+ * or an empty array to inject nothing.
339
+ *
340
+ * Sections follow the same priority system as static sections — use
341
+ * `priority` to control placement relative to base template (10),
342
+ * environment (20), instructions (30), custom (50), skills (70),
343
+ * and per-turn overrides (90).
344
+ *
345
+ * @param ctx - Build context with cwd, model, toolNames, sessionId
346
+ */
347
+ promptSections?(ctx: PromptBuildContext): PromptSection | PromptSection[] | undefined;
348
+ /**
349
+ * Inject typed model-visible context messages before each model step.
350
+ *
351
+ * Use this for runtime/session context that should be distinguishable from
352
+ * normal user conversation: environment snapshots, memory recall, workflow
353
+ * hints, or hook-added context. Returned context fragments are transient
354
+ * unless the caller also persists them through
355
+ * `SessionManager.addContextFragment(...)`.
356
+ */
357
+ contextFragments?(ctx: AgentContextFragmentBuildContext): AgentContextFragmentInput | AgentContextFragmentInput[] | undefined | Promise<AgentContextFragmentInput | AgentContextFragmentInput[] | undefined>;
358
+ /**
359
+ * Observe or persist information immediately before context compaction
360
+ * replaces visible session history.
361
+ *
362
+ * Use this for blocking durability work that must see removed messages before
363
+ * they leave the model-visible window, such as memory capture. Errors are
364
+ * logged and do not abort compaction.
365
+ */
366
+ beforeContextCompactionCommit?(ctx: ContextCompactionHookContext): Promise<void> | void;
367
+ /**
368
+ * Observe a completed context compaction after session history has been
369
+ * replaced.
370
+ *
371
+ * Use this for follow-up bookkeeping that should only happen after the
372
+ * compacted history is committed. Errors are logged and do not abort the turn.
373
+ */
374
+ afterContextCompactionCommit?(ctx: ContextCompactionHookContext): Promise<void> | void;
375
+ /**
376
+ * Observe agent events (read-only, non-blocking).
377
+ *
378
+ * Fires for every event emitted during `chat()`. Errors thrown by
379
+ * handlers are caught and logged — they never interrupt the stream.
380
+ *
381
+ * This is intentionally synchronous (void return) to prevent
382
+ * event observers from blocking the streaming pipeline.
383
+ *
384
+ * @param event - The agent event
385
+ */
386
+ onEvent?(event: AgentEvent): void;
387
+ /**
388
+ * Called when `chat()` starts, before the LLM stream is created.
389
+ *
390
+ * Use this for setup: initializing loggers, recording start time,
391
+ * resetting per-turn state, etc. Runs in array order, awaited
392
+ * sequentially.
393
+ *
394
+ * @param sessionId - Session identifier
395
+ * @param message - The user message being sent
396
+ */
397
+ onChatStart?(sessionId: string, message: string, ctx?: ChatLifecycleContext): Promise<void>;
398
+ /**
399
+ * Called when `chat()` completes (or errors), after all events
400
+ * have been yielded.
401
+ *
402
+ * Use this for teardown: flushing logs, recording metrics, etc.
403
+ * Runs in array order, awaited sequentially. Always called, even
404
+ * if the stream errored.
405
+ *
406
+ * Turn-scoped tool cleanup runs after `onChatEnd`, so middleware can still
407
+ * inspect the just-resolved turn tool objects during this hook.
408
+ *
409
+ * @param sessionId - Session identifier
410
+ * @param result - Completion info (usage stats and optional error)
411
+ */
412
+ onChatEnd?(sessionId: string, result: {
413
+ usage?: TokenUsage;
414
+ error?: Error;
415
+ output?: string;
416
+ }, ctx?: ChatLifecycleContext): Promise<void>;
417
+ /**
418
+ * Get the active OTel context for a session.
419
+ *
420
+ * Used internally by the LLM layer to wrap `streamText()` so that
421
+ * AI SDK spans are nested under the middleware's parent span.
422
+ * Only implemented by the `otelMiddleware`.
423
+ */
424
+ getOtelContext?(sessionId: string, ctx?: ChatLifecycleContext): unknown;
425
+ }
426
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/middleware/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { StorageAdapter } from "./types.js";
2
+ import type { Logger } from "../../logger/types.js";
3
+ export declare function createCapabilityCacheAdapter(cachePath: string, logger?: Logger): StorageAdapter;
4
+ //# sourceMappingURL=adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../../src/models/cache/adapters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAyHpD,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,cAAc,CAUhB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Capability cache storage adapters and source integration.
3
+ */
4
+ export { CapabilityCache, CacheCapabilitySource } from "./manager.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/cache/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { CapabilitySource, ModelEntry, ResolverOptions, SourceResult } from "../types.js";
2
+ import { SourcePriority } from "../types.js";
3
+ import type { Logger } from "../../logger/types.js";
4
+ export declare class CapabilityCache {
5
+ private adapter;
6
+ private memoryCache;
7
+ private ttlMs;
8
+ private loaded;
9
+ private readonly log;
10
+ constructor(options?: Partial<ResolverOptions>, logger?: Logger);
11
+ private load;
12
+ get(modelId: string, provider?: string): Promise<ModelEntry | undefined>;
13
+ set(entry: ModelEntry): Promise<void>;
14
+ setMany(entries: ModelEntry[]): Promise<void>;
15
+ persist(): Promise<void>;
16
+ clear(): Promise<void>;
17
+ stats(): {
18
+ size: number;
19
+ loaded: boolean;
20
+ };
21
+ getAll(): Promise<ModelEntry[]>;
22
+ getAllByProvider(): Promise<Record<string, ModelEntry[]>>;
23
+ }
24
+ export declare class CacheCapabilitySource implements CapabilitySource {
25
+ private cache;
26
+ readonly priority = SourcePriority.LocalCache;
27
+ readonly name = "Local Cache";
28
+ constructor(cache: CapabilityCache);
29
+ lookup(modelId: string, provider?: string): Promise<SourceResult>;
30
+ isAvailable(): Promise<boolean>;
31
+ }
32
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/models/cache/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAA4B,cAAc,EAAE,MAAM,aAAa,CAAC;AAGvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAC;IAChB,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM,EAAE,MAAM,CAAC,EAAE,MAAM;YAOrD,IAAI;IAoBZ,GAAG,CACP,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAK5B,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAcxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,KAAK,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE;IAOpC,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAK/B,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;CAYhE;AAED,qBAAa,qBAAsB,YAAW,gBAAgB;IAIhD,OAAO,CAAC,KAAK;IAHzB,QAAQ,CAAC,QAAQ,6BAA6B;IAC9C,QAAQ,CAAC,IAAI,iBAAiB;gBAEV,KAAK,EAAE,eAAe;IAEpC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAiBjE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAGtC"}
@@ -0,0 +1,17 @@
1
+ import type { ModelEntry } from "../types.js";
2
+ export interface CacheData {
3
+ version: number;
4
+ updatedAt: string;
5
+ expiresAt: string;
6
+ models: Record<string, ModelEntry>;
7
+ source?: string;
8
+ }
9
+ export interface StorageAdapter {
10
+ read(): Promise<CacheData | undefined>;
11
+ write(data: CacheData): Promise<void>;
12
+ clear(): Promise<void>;
13
+ }
14
+ export declare const CACHE_VERSION = 1;
15
+ export declare function cacheKey(modelId: string, provider?: string): string;
16
+ export declare function isExpired(data: CacheData): boolean;
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/models/cache/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAElD"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Model Capability Resolver for @cuylabs/agent-core
3
+ *
4
+ * Main orchestrator that combines multiple capability sources:
5
+ * 1. User overrides (highest priority)
6
+ * 2. Local cache (fast, persisted)
7
+ * 3. Pattern matching (always available)
8
+ * 4. Remote API (optional, network-dependent)
9
+ *
10
+ * Designed for the Vercel AI SDK v6 ecosystem.
11
+ */
12
+ import type { LanguageModel } from "ai";
13
+ import type { ModelEntry, ModelCapabilities, ResolverOptions, ProviderCompatibility } from "./types.js";
14
+ import { SourcePriority } from "./types.js";
15
+ import { type NetworkStatus } from "./remote/index.js";
16
+ import type { Logger } from "../logger/types.js";
17
+ /**
18
+ * Resolution result with source information
19
+ */
20
+ export interface ResolutionResult {
21
+ /** The resolved model entry */
22
+ entry: ModelEntry;
23
+ /** Which source provided the primary result */
24
+ source: SourcePriority;
25
+ /** Whether this is a confident match */
26
+ confident: boolean;
27
+ /** Resolution timing in ms */
28
+ resolveTimeMs: number;
29
+ }
30
+ /**
31
+ * Model Capability Resolver
32
+ *
33
+ * Provides a unified API for querying model capabilities with
34
+ * automatic fallback through multiple sources.
35
+ */
36
+ export declare class ModelCapabilityResolver {
37
+ private options;
38
+ private cache;
39
+ private sources;
40
+ private initialized;
41
+ private initPromise;
42
+ private readonly log;
43
+ constructor(options?: Partial<ResolverOptions>, logger?: Logger);
44
+ /**
45
+ * Initialize the resolver (load cache, optionally fetch remote)
46
+ */
47
+ initialize(): Promise<void>;
48
+ /**
49
+ * Resolve capabilities for a model
50
+ */
51
+ resolve(model: LanguageModel): Promise<ResolutionResult>;
52
+ /**
53
+ * Quick check if a model supports reasoning
54
+ * Uses cache/patterns only for speed
55
+ */
56
+ supportsReasoning(model: LanguageModel): Promise<boolean>;
57
+ /**
58
+ * Get capabilities for a model
59
+ */
60
+ getCapabilities(model: LanguageModel): Promise<ModelCapabilities>;
61
+ /**
62
+ * Get provider compatibility settings
63
+ */
64
+ getCompatibility(model: LanguageModel): Promise<ProviderCompatibility | undefined>;
65
+ /**
66
+ * Force refresh from remote API
67
+ */
68
+ refreshRemote(): Promise<void>;
69
+ /**
70
+ * Get current network status
71
+ */
72
+ getNetworkStatus(): NetworkStatus;
73
+ /**
74
+ * Get resolver statistics
75
+ */
76
+ getStats(): {
77
+ cacheSize: number;
78
+ cacheLoaded: boolean;
79
+ remoteFetchEnabled: boolean;
80
+ networkOnline: boolean;
81
+ };
82
+ /**
83
+ * Clear all cached data
84
+ */
85
+ clearCache(): Promise<void>;
86
+ /**
87
+ * List all available models
88
+ * Fetches from remote if cache is empty and remote is enabled
89
+ */
90
+ listModels(): Promise<ModelEntry[]>;
91
+ /**
92
+ * List all available models grouped by provider
93
+ */
94
+ listModelsByProvider(): Promise<Record<string, ModelEntry[]>>;
95
+ }
96
+ /**
97
+ * Get the default resolver instance
98
+ */
99
+ export declare function getDefaultResolver(): ModelCapabilityResolver;
100
+ /**
101
+ * Configure the default resolver with custom options
102
+ */
103
+ export declare function configureResolver(options: Partial<ResolverOptions>): void;
104
+ //# sourceMappingURL=capability-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-resolver.d.ts","sourceRoot":"","sources":["../../src/models/capability-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EAGjB,eAAe,EACf,qBAAqB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAA4B,MAAM,YAAY,CAAC;AAMtE,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAOjD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,+CAA+C;IAC/C,MAAM,EAAE,cAAc,CAAC;IACvB,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAoBnE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BjC;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0D9D;;;OAGG;IACG,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAc/D;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKvE;;OAEG;IACG,gBAAgB,CACpB,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAK7C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAcpC;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC;;OAEG;IACH,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,aAAa,EAAE,OAAO,CAAC;KACxB;IAYD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAoBzC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;CAkBpE;AAQD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,uBAAuB,CAQ5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAEzE"}
@@ -0,0 +1,23 @@
1
+ import type { LanguageModel } from "ai";
2
+ /**
3
+ * Extract a model ID string from a LanguageModel instance.
4
+ */
5
+ export declare function getModelId(model: LanguageModel): string;
6
+ /**
7
+ * Extract a provider identifier from a LanguageModel instance.
8
+ */
9
+ export declare function getProviderId(model: LanguageModel): string | undefined;
10
+ /**
11
+ * Extract model ID from a LanguageModel.
12
+ *
13
+ * Canonical helper — use this instead of `getModelId` in consumer code.
14
+ */
15
+ export declare const extractModelId: (model: LanguageModel) => string;
16
+ /**
17
+ * Extract provider from a LanguageModel.
18
+ *
19
+ * Tries the model's `.provider` property first, then falls back
20
+ * to pattern-matching the model ID via `inferProvider`.
21
+ */
22
+ export declare function extractProvider(model: LanguageModel): string | undefined;
23
+ //# sourceMappingURL=identifiers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../src/models/identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGxC;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAMvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAYtE;AAID;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAmB,CAAC;AAE3E;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAGxE"}