@dexto/core 1.3.0 → 1.5.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 (781) hide show
  1. package/README.md +53 -9
  2. package/dist/agent/DextoAgent.cjs +570 -210
  3. package/dist/agent/DextoAgent.d.ts +175 -35
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +568 -208
  6. package/dist/agent/agentCard.js +1 -1
  7. package/dist/agent/error-codes.cjs +1 -0
  8. package/dist/agent/error-codes.d.ts +2 -1
  9. package/dist/agent/error-codes.d.ts.map +1 -1
  10. package/dist/agent/error-codes.js +2 -1
  11. package/dist/agent/errors.cjs +13 -0
  12. package/dist/agent/errors.d.ts +4 -0
  13. package/dist/agent/errors.d.ts.map +1 -1
  14. package/dist/agent/errors.js +14 -1
  15. package/dist/agent/index.cjs +4 -1
  16. package/dist/agent/index.d.ts +2 -2
  17. package/dist/agent/index.d.ts.map +1 -1
  18. package/dist/agent/index.js +6 -2
  19. package/dist/agent/schemas.cjs +90 -68
  20. package/dist/agent/schemas.d.ts +5998 -146
  21. package/dist/agent/schemas.d.ts.map +1 -1
  22. package/dist/agent/schemas.js +90 -65
  23. package/dist/agent/state-manager.cjs +5 -5
  24. package/dist/agent/state-manager.d.ts +4 -4
  25. package/dist/agent/state-manager.js +6 -6
  26. package/dist/agent/types.d.ts +24 -10
  27. package/dist/agent/types.d.ts.map +1 -1
  28. package/dist/approval/error-codes.js +1 -1
  29. package/dist/approval/errors.js +1 -1
  30. package/dist/approval/factory.js +1 -1
  31. package/dist/approval/index.js +1 -1
  32. package/dist/approval/manager.cjs +234 -4
  33. package/dist/approval/manager.d.ts +131 -4
  34. package/dist/approval/manager.d.ts.map +1 -1
  35. package/dist/approval/manager.js +225 -5
  36. package/dist/approval/schemas.cjs +57 -7
  37. package/dist/approval/schemas.d.ts +344 -33
  38. package/dist/approval/schemas.d.ts.map +1 -1
  39. package/dist/approval/schemas.js +54 -8
  40. package/dist/approval/types.cjs +1 -0
  41. package/dist/approval/types.d.ts +32 -1
  42. package/dist/approval/types.d.ts.map +1 -1
  43. package/dist/approval/types.js +2 -1
  44. package/dist/{chunk-C6A6W6XS.js → chunk-PTJYTZNU.js} +44 -1
  45. package/dist/context/compaction/factory.cjs +57 -0
  46. package/dist/context/compaction/factory.d.ts +17 -0
  47. package/dist/context/compaction/factory.d.ts.map +1 -0
  48. package/dist/context/compaction/factory.js +34 -0
  49. package/dist/context/compaction/index.cjs +49 -0
  50. package/dist/context/compaction/index.d.ts +11 -0
  51. package/dist/context/compaction/index.d.ts.map +1 -0
  52. package/dist/context/compaction/index.js +19 -0
  53. package/dist/context/compaction/overflow.cjs +43 -0
  54. package/dist/context/compaction/overflow.d.ts +33 -0
  55. package/dist/context/compaction/overflow.d.ts.map +1 -0
  56. package/dist/context/compaction/overflow.js +19 -0
  57. package/dist/context/compaction/provider.cjs +16 -0
  58. package/dist/context/compaction/provider.d.ts +48 -0
  59. package/dist/context/compaction/provider.d.ts.map +1 -0
  60. package/dist/context/compaction/providers/noop-provider.cjs +48 -0
  61. package/dist/context/compaction/providers/noop-provider.d.ts +24 -0
  62. package/dist/context/compaction/providers/noop-provider.d.ts.map +1 -0
  63. package/dist/context/compaction/providers/noop-provider.js +24 -0
  64. package/dist/context/compaction/providers/reactive-overflow-provider.cjs +61 -0
  65. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +36 -0
  66. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +1 -0
  67. package/dist/context/compaction/providers/reactive-overflow-provider.js +37 -0
  68. package/dist/{llm/tokenizer/factory.cjs → context/compaction/registry.cjs} +15 -20
  69. package/dist/context/compaction/registry.d.ts +19 -0
  70. package/dist/context/compaction/registry.d.ts.map +1 -0
  71. package/dist/context/compaction/registry.js +16 -0
  72. package/dist/context/compaction/schemas.cjs +38 -0
  73. package/dist/context/compaction/schemas.d.ts +24 -0
  74. package/dist/context/compaction/schemas.d.ts.map +1 -0
  75. package/dist/context/compaction/schemas.js +14 -0
  76. package/dist/{llm/tokenizer/types.cjs → context/compaction/strategies/noop.cjs} +12 -9
  77. package/dist/context/compaction/strategies/noop.d.ts +18 -0
  78. package/dist/context/compaction/strategies/noop.d.ts.map +1 -0
  79. package/dist/context/compaction/strategies/noop.js +13 -0
  80. package/dist/context/compaction/strategies/reactive-overflow.cjs +201 -0
  81. package/dist/context/compaction/strategies/reactive-overflow.d.ts +81 -0
  82. package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -0
  83. package/dist/context/compaction/strategies/reactive-overflow.js +178 -0
  84. package/dist/context/compaction/types.d.ts +20 -0
  85. package/dist/context/compaction/types.d.ts.map +1 -0
  86. package/dist/context/error-codes.cjs +7 -0
  87. package/dist/context/error-codes.d.ts +8 -1
  88. package/dist/context/error-codes.d.ts.map +1 -1
  89. package/dist/context/error-codes.js +8 -1
  90. package/dist/context/errors.cjs +68 -0
  91. package/dist/context/errors.d.ts +21 -0
  92. package/dist/context/errors.d.ts.map +1 -1
  93. package/dist/context/errors.js +69 -1
  94. package/dist/context/index.cjs +3 -1
  95. package/dist/context/index.d.ts +1 -0
  96. package/dist/context/index.d.ts.map +1 -1
  97. package/dist/context/index.js +2 -1
  98. package/dist/context/manager.cjs +280 -323
  99. package/dist/context/manager.d.ts +65 -111
  100. package/dist/context/manager.d.ts.map +1 -1
  101. package/dist/context/manager.js +280 -328
  102. package/dist/context/media-helpers.js +1 -1
  103. package/dist/context/types.cjs +49 -0
  104. package/dist/context/types.d.ts +187 -72
  105. package/dist/context/types.d.ts.map +1 -1
  106. package/dist/context/types.js +35 -0
  107. package/dist/context/utils.cjs +293 -290
  108. package/dist/context/utils.d.ts +32 -18
  109. package/dist/context/utils.d.ts.map +1 -1
  110. package/dist/context/utils.js +293 -290
  111. package/dist/errors/DextoBaseError.js +1 -1
  112. package/dist/errors/DextoRuntimeError.js +1 -1
  113. package/dist/errors/DextoValidationError.js +1 -1
  114. package/dist/errors/index.js +1 -1
  115. package/dist/errors/result-bridge.cjs +2 -3
  116. package/dist/errors/result-bridge.d.ts.map +1 -1
  117. package/dist/errors/result-bridge.js +3 -4
  118. package/dist/errors/types.js +1 -1
  119. package/dist/events/index.cjs +18 -1
  120. package/dist/events/index.d.ts +149 -12
  121. package/dist/events/index.d.ts.map +1 -1
  122. package/dist/events/index.js +19 -2
  123. package/dist/filesystem/error-codes.js +1 -1
  124. package/dist/filesystem/errors.js +1 -1
  125. package/dist/filesystem/filesystem-service.cjs +39 -0
  126. package/dist/filesystem/filesystem-service.d.ts +32 -0
  127. package/dist/filesystem/filesystem-service.d.ts.map +1 -1
  128. package/dist/filesystem/filesystem-service.js +40 -1
  129. package/dist/filesystem/index.d.ts +1 -1
  130. package/dist/filesystem/index.d.ts.map +1 -1
  131. package/dist/filesystem/index.js +1 -1
  132. package/dist/filesystem/path-validator.cjs +69 -1
  133. package/dist/filesystem/path-validator.d.ts +43 -2
  134. package/dist/filesystem/path-validator.d.ts.map +1 -1
  135. package/dist/filesystem/path-validator.js +70 -2
  136. package/dist/image/define-image.cjs +146 -0
  137. package/dist/image/define-image.d.ts +71 -0
  138. package/dist/image/define-image.d.ts.map +1 -0
  139. package/dist/image/define-image.js +121 -0
  140. package/dist/{llm/tokenizer/default.cjs → image/index.cjs} +10 -19
  141. package/dist/image/index.d.ts +53 -0
  142. package/dist/image/index.d.ts.map +1 -0
  143. package/dist/image/index.js +7 -0
  144. package/dist/image/types.d.ts +231 -0
  145. package/dist/image/types.d.ts.map +1 -0
  146. package/dist/image/types.js +0 -0
  147. package/dist/index.browser.cjs +23 -8
  148. package/dist/index.browser.d.ts +4 -3
  149. package/dist/index.browser.d.ts.map +1 -1
  150. package/dist/index.browser.js +20 -3
  151. package/dist/index.cjs +5 -1
  152. package/dist/index.d.ts +2 -0
  153. package/dist/index.d.ts.map +1 -1
  154. package/dist/index.js +3 -1
  155. package/dist/llm/error-codes.cjs +1 -1
  156. package/dist/llm/error-codes.d.ts +1 -1
  157. package/dist/llm/error-codes.d.ts.map +1 -1
  158. package/dist/llm/error-codes.js +2 -2
  159. package/dist/llm/errors.cjs +34 -10
  160. package/dist/llm/errors.d.ts +23 -11
  161. package/dist/llm/errors.d.ts.map +1 -1
  162. package/dist/llm/errors.js +36 -12
  163. package/dist/llm/executor/stream-processor.cjs +375 -0
  164. package/dist/llm/executor/stream-processor.d.ts +55 -0
  165. package/dist/llm/executor/stream-processor.d.ts.map +1 -0
  166. package/dist/llm/executor/stream-processor.js +352 -0
  167. package/dist/llm/executor/tool-output-truncator.cjs +75 -0
  168. package/dist/llm/executor/tool-output-truncator.d.ts +27 -0
  169. package/dist/llm/executor/tool-output-truncator.d.ts.map +1 -0
  170. package/dist/llm/executor/tool-output-truncator.js +48 -0
  171. package/dist/llm/executor/turn-executor.cjs +780 -0
  172. package/dist/llm/executor/turn-executor.d.ts +167 -0
  173. package/dist/llm/executor/turn-executor.d.ts.map +1 -0
  174. package/dist/llm/executor/turn-executor.js +711 -0
  175. package/dist/llm/executor/types.cjs +16 -0
  176. package/dist/llm/executor/types.d.ts +27 -0
  177. package/dist/llm/executor/types.d.ts.map +1 -0
  178. package/dist/llm/executor/types.js +0 -0
  179. package/dist/llm/formatters/vercel.cjs +26 -188
  180. package/dist/llm/formatters/vercel.d.ts +2 -14
  181. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  182. package/dist/llm/formatters/vercel.js +25 -187
  183. package/dist/llm/index.cjs +18 -1
  184. package/dist/llm/index.d.ts +2 -0
  185. package/dist/llm/index.d.ts.map +1 -1
  186. package/dist/llm/index.js +14 -0
  187. package/dist/llm/providers/local/ai-sdk-adapter.cjs +308 -0
  188. package/dist/llm/providers/local/ai-sdk-adapter.d.ts +29 -0
  189. package/dist/llm/providers/local/ai-sdk-adapter.d.ts.map +1 -0
  190. package/dist/llm/providers/local/ai-sdk-adapter.js +278 -0
  191. package/dist/llm/providers/local/downloader.cjs +291 -0
  192. package/dist/llm/providers/local/downloader.d.ts +82 -0
  193. package/dist/llm/providers/local/downloader.d.ts.map +1 -0
  194. package/dist/llm/providers/local/downloader.js +251 -0
  195. package/dist/llm/providers/local/error-codes.cjs +57 -0
  196. package/dist/llm/providers/local/error-codes.d.ts +66 -0
  197. package/dist/llm/providers/local/error-codes.d.ts.map +1 -0
  198. package/dist/llm/providers/local/error-codes.js +34 -0
  199. package/dist/llm/providers/local/errors.cjs +240 -0
  200. package/dist/llm/providers/local/errors.d.ts +31 -0
  201. package/dist/llm/providers/local/errors.d.ts.map +1 -0
  202. package/dist/llm/providers/local/errors.js +217 -0
  203. package/dist/llm/providers/local/gpu-detector.cjs +214 -0
  204. package/dist/llm/providers/local/gpu-detector.d.ts +28 -0
  205. package/dist/llm/providers/local/gpu-detector.d.ts.map +1 -0
  206. package/dist/llm/providers/local/gpu-detector.js +178 -0
  207. package/dist/llm/providers/local/index.cjs +147 -0
  208. package/dist/llm/providers/local/index.d.ts +21 -0
  209. package/dist/llm/providers/local/index.d.ts.map +1 -0
  210. package/dist/llm/providers/local/index.js +126 -0
  211. package/dist/llm/providers/local/node-llama-provider.cjs +216 -0
  212. package/dist/llm/providers/local/node-llama-provider.d.ts +90 -0
  213. package/dist/llm/providers/local/node-llama-provider.d.ts.map +1 -0
  214. package/dist/llm/providers/local/node-llama-provider.js +176 -0
  215. package/dist/llm/providers/local/ollama-provider.cjs +230 -0
  216. package/dist/llm/providers/local/ollama-provider.d.ts +70 -0
  217. package/dist/llm/providers/local/ollama-provider.d.ts.map +1 -0
  218. package/dist/llm/providers/local/ollama-provider.js +198 -0
  219. package/dist/llm/providers/local/registry.cjs +343 -0
  220. package/dist/llm/providers/local/registry.d.ts +51 -0
  221. package/dist/llm/providers/local/registry.d.ts.map +1 -0
  222. package/dist/llm/providers/local/registry.js +312 -0
  223. package/dist/llm/providers/local/schemas.cjs +169 -0
  224. package/dist/llm/providers/local/schemas.d.ts +395 -0
  225. package/dist/llm/providers/local/schemas.d.ts.map +1 -0
  226. package/dist/llm/providers/local/schemas.js +133 -0
  227. package/dist/llm/providers/local/types.cjs +16 -0
  228. package/dist/llm/providers/local/types.d.ts +219 -0
  229. package/dist/llm/providers/local/types.d.ts.map +1 -0
  230. package/dist/llm/providers/local/types.js +0 -0
  231. package/dist/llm/providers/openrouter-model-registry.cjs +350 -0
  232. package/dist/llm/providers/openrouter-model-registry.d.ts +120 -0
  233. package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -0
  234. package/dist/llm/providers/openrouter-model-registry.js +309 -0
  235. package/dist/llm/registry.cjs +569 -52
  236. package/dist/llm/registry.d.ts +79 -39
  237. package/dist/llm/registry.d.ts.map +1 -1
  238. package/dist/llm/registry.js +564 -49
  239. package/dist/llm/resolver.cjs +62 -34
  240. package/dist/llm/resolver.d.ts +3 -3
  241. package/dist/llm/resolver.d.ts.map +1 -1
  242. package/dist/llm/resolver.js +69 -38
  243. package/dist/llm/schemas.cjs +92 -97
  244. package/dist/llm/schemas.d.ts +162 -39
  245. package/dist/llm/schemas.d.ts.map +1 -1
  246. package/dist/llm/schemas.js +93 -100
  247. package/dist/llm/services/factory.cjs +88 -103
  248. package/dist/llm/services/factory.d.ts +17 -4
  249. package/dist/llm/services/factory.d.ts.map +1 -1
  250. package/dist/llm/services/factory.js +87 -93
  251. package/dist/llm/services/test-utils.integration.cjs +28 -10
  252. package/dist/llm/services/test-utils.integration.d.ts +7 -1
  253. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  254. package/dist/llm/services/test-utils.integration.js +33 -12
  255. package/dist/llm/services/types.d.ts +1 -28
  256. package/dist/llm/services/types.d.ts.map +1 -1
  257. package/dist/llm/services/vercel.cjs +58 -469
  258. package/dist/llm/services/vercel.d.ts +39 -21
  259. package/dist/llm/services/vercel.d.ts.map +1 -1
  260. package/dist/llm/services/vercel.js +60 -476
  261. package/dist/llm/types.cjs +11 -4
  262. package/dist/llm/types.d.ts +9 -9
  263. package/dist/llm/types.d.ts.map +1 -1
  264. package/dist/llm/types.js +12 -4
  265. package/dist/llm/validation.js +1 -1
  266. package/dist/logger/browser.js +1 -1
  267. package/dist/logger/factory.js +1 -1
  268. package/dist/logger/index.js +1 -1
  269. package/dist/logger/logger.js +1 -1
  270. package/dist/logger/v2/dexto-logger.cjs +34 -6
  271. package/dist/logger/v2/dexto-logger.d.ts +20 -2
  272. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  273. package/dist/logger/v2/dexto-logger.js +35 -7
  274. package/dist/logger/v2/error-codes.js +1 -1
  275. package/dist/logger/v2/errors.js +1 -1
  276. package/dist/logger/v2/schemas.js +1 -1
  277. package/dist/logger/v2/test-utils.cjs +70 -0
  278. package/dist/logger/v2/test-utils.d.ts +17 -0
  279. package/dist/logger/v2/test-utils.d.ts.map +1 -0
  280. package/dist/logger/v2/test-utils.js +46 -0
  281. package/dist/logger/v2/transport-factory.js +1 -1
  282. package/dist/logger/v2/transports/console-transport.js +1 -1
  283. package/dist/logger/v2/transports/file-transport.cjs +6 -0
  284. package/dist/logger/v2/transports/file-transport.d.ts +4 -0
  285. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  286. package/dist/logger/v2/transports/file-transport.js +7 -1
  287. package/dist/logger/v2/types.cjs +1 -0
  288. package/dist/logger/v2/types.d.ts +18 -2
  289. package/dist/logger/v2/types.d.ts.map +1 -1
  290. package/dist/logger/v2/types.js +2 -1
  291. package/dist/mcp/error-codes.cjs +1 -0
  292. package/dist/mcp/error-codes.d.ts +1 -0
  293. package/dist/mcp/error-codes.d.ts.map +1 -1
  294. package/dist/mcp/error-codes.js +2 -1
  295. package/dist/mcp/errors.cjs +13 -0
  296. package/dist/mcp/errors.d.ts +7 -0
  297. package/dist/mcp/errors.d.ts.map +1 -1
  298. package/dist/mcp/errors.js +14 -1
  299. package/dist/mcp/manager.cjs +12 -0
  300. package/dist/mcp/manager.d.ts +17 -0
  301. package/dist/mcp/manager.d.ts.map +1 -1
  302. package/dist/mcp/manager.js +13 -1
  303. package/dist/mcp/mcp-client.cjs +0 -3
  304. package/dist/mcp/mcp-client.d.ts.map +1 -1
  305. package/dist/mcp/mcp-client.js +1 -4
  306. package/dist/mcp/resolver.js +1 -1
  307. package/dist/mcp/schemas.cjs +6 -0
  308. package/dist/mcp/schemas.d.ts +52 -0
  309. package/dist/mcp/schemas.d.ts.map +1 -1
  310. package/dist/mcp/schemas.js +6 -1
  311. package/dist/memory/error-codes.js +1 -1
  312. package/dist/memory/errors.js +1 -1
  313. package/dist/memory/index.js +1 -1
  314. package/dist/memory/manager.js +1 -1
  315. package/dist/memory/schemas.d.ts +3 -3
  316. package/dist/memory/schemas.js +1 -1
  317. package/dist/plugins/builtins/content-policy.js +1 -1
  318. package/dist/plugins/builtins/response-sanitizer.js +1 -1
  319. package/dist/plugins/error-codes.cjs +3 -0
  320. package/dist/plugins/error-codes.d.ts +7 -1
  321. package/dist/plugins/error-codes.d.ts.map +1 -1
  322. package/dist/plugins/error-codes.js +4 -1
  323. package/dist/plugins/index.cjs +7 -0
  324. package/dist/plugins/index.d.ts +4 -2
  325. package/dist/plugins/index.d.ts.map +1 -1
  326. package/dist/plugins/index.js +7 -2
  327. package/dist/plugins/loader.js +1 -1
  328. package/dist/plugins/manager.cjs +92 -7
  329. package/dist/plugins/manager.d.ts +10 -3
  330. package/dist/plugins/manager.d.ts.map +1 -1
  331. package/dist/plugins/manager.js +93 -8
  332. package/dist/plugins/registrations/builtins.js +1 -1
  333. package/dist/plugins/registry.cjs +63 -0
  334. package/dist/plugins/registry.d.ts +101 -0
  335. package/dist/plugins/registry.d.ts.map +1 -0
  336. package/dist/plugins/registry.js +39 -0
  337. package/dist/plugins/schemas.cjs +17 -5
  338. package/dist/plugins/schemas.d.ts +65 -8
  339. package/dist/plugins/schemas.d.ts.map +1 -1
  340. package/dist/plugins/schemas.js +16 -5
  341. package/dist/plugins/types.d.ts +0 -1
  342. package/dist/plugins/types.d.ts.map +1 -1
  343. package/dist/process/command-validator.js +1 -1
  344. package/dist/process/error-codes.js +1 -1
  345. package/dist/process/errors.js +1 -1
  346. package/dist/process/index.js +1 -1
  347. package/dist/process/process-service.cjs +78 -26
  348. package/dist/process/process-service.d.ts +6 -1
  349. package/dist/process/process-service.d.ts.map +1 -1
  350. package/dist/process/process-service.js +79 -27
  351. package/dist/process/types.d.ts +2 -2
  352. package/dist/process/types.d.ts.map +1 -1
  353. package/dist/prompts/error-codes.cjs +1 -0
  354. package/dist/prompts/error-codes.d.ts +2 -1
  355. package/dist/prompts/error-codes.d.ts.map +1 -1
  356. package/dist/prompts/error-codes.js +2 -1
  357. package/dist/prompts/errors.cjs +15 -0
  358. package/dist/prompts/errors.d.ts +4 -0
  359. package/dist/prompts/errors.d.ts.map +1 -1
  360. package/dist/prompts/errors.js +16 -1
  361. package/dist/prompts/index.js +1 -1
  362. package/dist/prompts/name-validation.js +1 -1
  363. package/dist/prompts/prompt-manager.cjs +13 -2
  364. package/dist/prompts/prompt-manager.d.ts +7 -0
  365. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  366. package/dist/prompts/prompt-manager.js +14 -3
  367. package/dist/prompts/providers/config-prompt-provider.cjs +12 -3
  368. package/dist/prompts/providers/config-prompt-provider.d.ts +2 -1
  369. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  370. package/dist/prompts/providers/config-prompt-provider.js +13 -4
  371. package/dist/prompts/providers/custom-prompt-provider.js +1 -1
  372. package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
  373. package/dist/prompts/schemas.d.ts +12 -0
  374. package/dist/prompts/schemas.d.ts.map +1 -1
  375. package/dist/prompts/schemas.js +1 -1
  376. package/dist/prompts/types.d.ts +2 -0
  377. package/dist/prompts/types.d.ts.map +1 -1
  378. package/dist/prompts/utils.js +1 -1
  379. package/dist/providers/base-registry.cjs +147 -0
  380. package/dist/providers/base-registry.d.ts +147 -0
  381. package/dist/providers/base-registry.d.ts.map +1 -0
  382. package/dist/providers/base-registry.js +123 -0
  383. package/dist/providers/discovery.cjs +95 -0
  384. package/dist/providers/discovery.d.ts +94 -0
  385. package/dist/providers/discovery.d.ts.map +1 -0
  386. package/dist/providers/discovery.js +70 -0
  387. package/dist/providers/index.cjs +24 -0
  388. package/dist/providers/index.d.ts +32 -0
  389. package/dist/providers/index.d.ts.map +1 -0
  390. package/dist/providers/index.js +2 -0
  391. package/dist/resources/error-codes.js +1 -1
  392. package/dist/resources/errors.js +1 -1
  393. package/dist/resources/handlers/blob-handler.js +1 -1
  394. package/dist/resources/handlers/factory.js +1 -1
  395. package/dist/resources/handlers/filesystem-handler.js +1 -1
  396. package/dist/resources/index.js +1 -1
  397. package/dist/resources/internal-provider.js +1 -1
  398. package/dist/resources/manager.js +1 -1
  399. package/dist/resources/reference-parser.cjs +3 -3
  400. package/dist/resources/reference-parser.d.ts.map +1 -1
  401. package/dist/resources/reference-parser.js +4 -4
  402. package/dist/resources/schemas.js +1 -1
  403. package/dist/search/index.js +1 -1
  404. package/dist/search/search-service.js +1 -1
  405. package/dist/session/chat-session.cjs +169 -54
  406. package/dist/session/chat-session.d.ts +69 -29
  407. package/dist/session/chat-session.d.ts.map +1 -1
  408. package/dist/session/chat-session.js +171 -56
  409. package/dist/session/error-codes.js +1 -1
  410. package/dist/session/errors.js +1 -1
  411. package/dist/session/history/database.cjs +134 -21
  412. package/dist/session/history/database.d.ts +37 -8
  413. package/dist/session/history/database.d.ts.map +1 -1
  414. package/dist/session/history/database.js +135 -22
  415. package/dist/session/history/factory.js +1 -1
  416. package/dist/session/history/memory.cjs +18 -0
  417. package/dist/session/history/memory.d.ts +8 -0
  418. package/dist/session/history/memory.d.ts.map +1 -1
  419. package/dist/session/history/memory.js +19 -1
  420. package/dist/session/history/types.d.ts +13 -1
  421. package/dist/session/history/types.d.ts.map +1 -1
  422. package/dist/session/index.cjs +3 -0
  423. package/dist/session/index.d.ts +3 -0
  424. package/dist/session/index.d.ts.map +1 -1
  425. package/dist/session/index.js +3 -1
  426. package/dist/session/message-queue.cjs +201 -0
  427. package/dist/session/message-queue.d.ts +114 -0
  428. package/dist/session/message-queue.d.ts.map +1 -0
  429. package/dist/session/message-queue.js +178 -0
  430. package/dist/session/schemas.js +1 -1
  431. package/dist/session/session-manager.cjs +57 -7
  432. package/dist/session/session-manager.d.ts +18 -0
  433. package/dist/session/session-manager.d.ts.map +1 -1
  434. package/dist/session/session-manager.js +58 -8
  435. package/dist/session/title-generator.cjs +4 -8
  436. package/dist/session/title-generator.d.ts +1 -2
  437. package/dist/session/title-generator.d.ts.map +1 -1
  438. package/dist/session/title-generator.js +5 -9
  439. package/dist/session/types.cjs +16 -0
  440. package/dist/session/types.d.ts +14 -0
  441. package/dist/session/types.d.ts.map +1 -0
  442. package/dist/session/types.js +0 -0
  443. package/dist/storage/blob/factory.cjs +8 -11
  444. package/dist/storage/blob/factory.d.ts +32 -6
  445. package/dist/storage/blob/factory.d.ts.map +1 -1
  446. package/dist/storage/blob/factory.js +9 -12
  447. package/dist/storage/blob/index.cjs +56 -0
  448. package/dist/storage/blob/index.d.ts +45 -0
  449. package/dist/storage/blob/index.d.ts.map +1 -0
  450. package/dist/storage/blob/index.js +30 -0
  451. package/dist/storage/blob/local-blob-store.js +1 -1
  452. package/dist/storage/blob/memory-blob-store.js +1 -1
  453. package/dist/storage/blob/provider.cjs +16 -0
  454. package/dist/storage/blob/provider.d.ts +50 -0
  455. package/dist/storage/blob/provider.d.ts.map +1 -0
  456. package/dist/storage/blob/provider.js +0 -0
  457. package/dist/storage/blob/providers/index.cjs +31 -0
  458. package/dist/storage/blob/providers/index.d.ts +8 -0
  459. package/dist/storage/blob/providers/index.d.ts.map +1 -0
  460. package/dist/storage/blob/providers/index.js +7 -0
  461. package/dist/storage/blob/providers/local.cjs +39 -0
  462. package/dist/storage/blob/providers/local.d.ts +17 -0
  463. package/dist/storage/blob/providers/local.d.ts.map +1 -0
  464. package/dist/storage/blob/providers/local.js +16 -0
  465. package/dist/storage/blob/providers/memory.cjs +39 -0
  466. package/dist/storage/blob/providers/memory.d.ts +17 -0
  467. package/dist/storage/blob/providers/memory.d.ts.map +1 -0
  468. package/dist/storage/blob/providers/memory.js +16 -0
  469. package/dist/storage/blob/registry.cjs +50 -0
  470. package/dist/storage/blob/registry.d.ts +42 -0
  471. package/dist/storage/blob/registry.d.ts.map +1 -0
  472. package/dist/storage/blob/registry.js +26 -0
  473. package/dist/storage/blob/schemas.cjs +9 -12
  474. package/dist/storage/blob/schemas.d.ts +39 -34
  475. package/dist/storage/blob/schemas.d.ts.map +1 -1
  476. package/dist/storage/blob/schemas.js +7 -12
  477. package/dist/storage/cache/factory.cjs +8 -36
  478. package/dist/storage/cache/factory.d.ts +32 -7
  479. package/dist/storage/cache/factory.d.ts.map +1 -1
  480. package/dist/storage/cache/factory.js +9 -27
  481. package/dist/storage/cache/index.cjs +53 -0
  482. package/dist/storage/cache/index.d.ts +44 -0
  483. package/dist/storage/cache/index.d.ts.map +1 -0
  484. package/dist/storage/cache/index.js +28 -0
  485. package/dist/storage/cache/memory-cache-store.js +1 -1
  486. package/dist/storage/cache/provider.cjs +16 -0
  487. package/dist/storage/cache/provider.d.ts +56 -0
  488. package/dist/storage/cache/provider.d.ts.map +1 -0
  489. package/dist/storage/cache/provider.js +0 -0
  490. package/dist/storage/cache/providers/index.cjs +31 -0
  491. package/dist/storage/cache/providers/index.d.ts +8 -0
  492. package/dist/storage/cache/providers/index.d.ts.map +1 -0
  493. package/dist/storage/cache/providers/index.js +7 -0
  494. package/dist/storage/cache/providers/memory.cjs +40 -0
  495. package/dist/storage/cache/providers/memory.d.ts +17 -0
  496. package/dist/storage/cache/providers/memory.d.ts.map +1 -0
  497. package/dist/storage/cache/providers/memory.js +17 -0
  498. package/dist/storage/cache/providers/redis.cjs +66 -0
  499. package/dist/storage/cache/providers/redis.d.ts +20 -0
  500. package/dist/storage/cache/providers/redis.d.ts.map +1 -0
  501. package/dist/storage/cache/providers/redis.js +33 -0
  502. package/dist/storage/cache/redis-store.js +1 -1
  503. package/dist/{llm/tokenizer/google.cjs → storage/cache/registry.cjs} +23 -25
  504. package/dist/storage/cache/registry.d.ts +42 -0
  505. package/dist/storage/cache/registry.d.ts.map +1 -0
  506. package/dist/storage/cache/registry.js +26 -0
  507. package/dist/storage/cache/schemas.cjs +6 -2
  508. package/dist/storage/cache/schemas.d.ts +2 -3
  509. package/dist/storage/cache/schemas.d.ts.map +1 -1
  510. package/dist/storage/cache/schemas.js +4 -2
  511. package/dist/storage/database/factory.cjs +8 -47
  512. package/dist/storage/database/factory.d.ts +34 -8
  513. package/dist/storage/database/factory.d.ts.map +1 -1
  514. package/dist/storage/database/factory.js +9 -38
  515. package/dist/storage/database/index.cjs +58 -0
  516. package/dist/storage/database/index.d.ts +45 -0
  517. package/dist/storage/database/index.d.ts.map +1 -0
  518. package/dist/storage/database/index.js +37 -0
  519. package/dist/storage/database/memory-database-store.js +1 -1
  520. package/dist/storage/database/postgres-store.cjs +12 -0
  521. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  522. package/dist/storage/database/postgres-store.js +13 -1
  523. package/dist/storage/database/provider.cjs +16 -0
  524. package/dist/storage/database/provider.d.ts +56 -0
  525. package/dist/storage/database/provider.d.ts.map +1 -0
  526. package/dist/storage/database/provider.js +0 -0
  527. package/dist/storage/database/providers/index.cjs +34 -0
  528. package/dist/storage/database/providers/index.d.ts +9 -0
  529. package/dist/storage/database/providers/index.d.ts.map +1 -0
  530. package/dist/storage/database/providers/index.js +9 -0
  531. package/dist/storage/database/providers/memory.cjs +40 -0
  532. package/dist/storage/database/providers/memory.d.ts +16 -0
  533. package/dist/storage/database/providers/memory.d.ts.map +1 -0
  534. package/dist/storage/database/providers/memory.js +17 -0
  535. package/dist/storage/database/providers/postgres.cjs +62 -0
  536. package/dist/storage/database/providers/postgres.d.ts +19 -0
  537. package/dist/storage/database/providers/postgres.d.ts.map +1 -0
  538. package/dist/storage/database/providers/postgres.js +29 -0
  539. package/dist/storage/database/providers/sqlite.cjs +66 -0
  540. package/dist/storage/database/providers/sqlite.d.ts +20 -0
  541. package/dist/storage/database/providers/sqlite.d.ts.map +1 -0
  542. package/dist/storage/database/providers/sqlite.js +33 -0
  543. package/dist/storage/database/registry.cjs +50 -0
  544. package/dist/storage/database/registry.d.ts +42 -0
  545. package/dist/storage/database/registry.d.ts.map +1 -0
  546. package/dist/storage/database/registry.js +26 -0
  547. package/dist/storage/database/schemas.cjs +8 -2
  548. package/dist/storage/database/schemas.d.ts +3 -4
  549. package/dist/storage/database/schemas.d.ts.map +1 -1
  550. package/dist/storage/database/schemas.js +5 -2
  551. package/dist/storage/database/sqlite-store.js +1 -1
  552. package/dist/storage/error-codes.cjs +6 -0
  553. package/dist/storage/error-codes.d.ts +7 -1
  554. package/dist/storage/error-codes.d.ts.map +1 -1
  555. package/dist/storage/error-codes.js +7 -1
  556. package/dist/storage/errors.cjs +80 -0
  557. package/dist/storage/errors.d.ts +24 -0
  558. package/dist/storage/errors.d.ts.map +1 -1
  559. package/dist/storage/errors.js +81 -1
  560. package/dist/storage/index.cjs +47 -4
  561. package/dist/storage/index.d.ts +34 -8
  562. package/dist/storage/index.d.ts.map +1 -1
  563. package/dist/storage/index.js +33 -4
  564. package/dist/storage/schemas.cjs +4 -0
  565. package/dist/storage/schemas.d.ts +17 -50
  566. package/dist/storage/schemas.d.ts.map +1 -1
  567. package/dist/storage/schemas.js +6 -2
  568. package/dist/storage/storage-manager.cjs +6 -6
  569. package/dist/storage/storage-manager.d.ts.map +1 -1
  570. package/dist/storage/storage-manager.js +4 -4
  571. package/dist/systemPrompt/contributors.js +1 -1
  572. package/dist/systemPrompt/error-codes.js +1 -1
  573. package/dist/systemPrompt/errors.js +1 -1
  574. package/dist/systemPrompt/in-built-prompts.cjs +7 -6
  575. package/dist/systemPrompt/in-built-prompts.d.ts +2 -2
  576. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  577. package/dist/systemPrompt/in-built-prompts.js +7 -6
  578. package/dist/systemPrompt/index.js +1 -1
  579. package/dist/systemPrompt/manager.js +1 -1
  580. package/dist/systemPrompt/registry.cjs +2 -2
  581. package/dist/systemPrompt/registry.d.ts +1 -1
  582. package/dist/systemPrompt/registry.d.ts.map +1 -1
  583. package/dist/systemPrompt/registry.js +3 -3
  584. package/dist/systemPrompt/schemas.cjs +2 -2
  585. package/dist/systemPrompt/schemas.d.ts +18 -18
  586. package/dist/systemPrompt/schemas.js +3 -3
  587. package/dist/telemetry/decorators.js +1 -1
  588. package/dist/telemetry/error-codes.js +1 -1
  589. package/dist/telemetry/errors.js +1 -1
  590. package/dist/telemetry/exporters.js +1 -1
  591. package/dist/telemetry/index.js +1 -1
  592. package/dist/telemetry/schemas.js +1 -1
  593. package/dist/telemetry/telemetry.js +1 -1
  594. package/dist/telemetry/utils.js +1 -1
  595. package/dist/tools/bash-pattern-utils.cjs +91 -0
  596. package/dist/tools/bash-pattern-utils.d.ts +58 -0
  597. package/dist/tools/bash-pattern-utils.d.ts.map +1 -0
  598. package/dist/tools/bash-pattern-utils.js +64 -0
  599. package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
  600. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -1
  601. package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -1
  602. package/dist/tools/custom-tool-registry.cjs +64 -0
  603. package/dist/tools/custom-tool-registry.d.ts +120 -0
  604. package/dist/tools/custom-tool-registry.d.ts.map +1 -0
  605. package/dist/tools/custom-tool-registry.js +40 -0
  606. package/dist/tools/custom-tool-schema-registry.cjs +164 -0
  607. package/dist/tools/custom-tool-schema-registry.d.ts +86 -0
  608. package/dist/tools/custom-tool-schema-registry.d.ts.map +1 -0
  609. package/dist/tools/custom-tool-schema-registry.js +140 -0
  610. package/dist/tools/display-types.cjs +60 -0
  611. package/dist/tools/display-types.d.ts +133 -0
  612. package/dist/tools/display-types.d.ts.map +1 -0
  613. package/dist/tools/display-types.js +32 -0
  614. package/dist/tools/error-codes.cjs +5 -0
  615. package/dist/tools/error-codes.d.ts +6 -1
  616. package/dist/tools/error-codes.d.ts.map +1 -1
  617. package/dist/tools/error-codes.js +6 -1
  618. package/dist/tools/errors.cjs +71 -0
  619. package/dist/tools/errors.d.ts +33 -0
  620. package/dist/tools/errors.d.ts.map +1 -1
  621. package/dist/tools/errors.js +72 -1
  622. package/dist/tools/index.cjs +15 -1
  623. package/dist/tools/index.d.ts +5 -0
  624. package/dist/tools/index.d.ts.map +1 -1
  625. package/dist/tools/index.js +13 -2
  626. package/dist/tools/internal-tools/constants.cjs +3 -9
  627. package/dist/tools/internal-tools/constants.d.ts +1 -1
  628. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  629. package/dist/tools/internal-tools/constants.js +4 -10
  630. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +1 -1
  631. package/dist/tools/internal-tools/implementations/ask-user-tool.js +2 -2
  632. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
  633. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +113 -0
  634. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +30 -0
  635. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +1 -0
  636. package/dist/tools/internal-tools/implementations/get-resource-tool.js +90 -0
  637. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +91 -0
  638. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +24 -0
  639. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +1 -0
  640. package/dist/tools/internal-tools/implementations/list-resources-tool.js +68 -0
  641. package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -1
  642. package/dist/tools/internal-tools/provider.cjs +175 -31
  643. package/dist/tools/internal-tools/provider.d.ts +62 -14
  644. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  645. package/dist/tools/internal-tools/provider.js +176 -32
  646. package/dist/tools/internal-tools/registry.cjs +19 -43
  647. package/dist/tools/internal-tools/registry.d.ts +32 -11
  648. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  649. package/dist/tools/internal-tools/registry.js +20 -44
  650. package/dist/tools/schemas.cjs +36 -6
  651. package/dist/tools/schemas.d.ts +74 -5
  652. package/dist/tools/schemas.d.ts.map +1 -1
  653. package/dist/tools/schemas.js +30 -6
  654. package/dist/tools/tool-manager.cjs +279 -30
  655. package/dist/tools/tool-manager.d.ts +45 -4
  656. package/dist/tools/tool-manager.d.ts.map +1 -1
  657. package/dist/tools/tool-manager.js +284 -31
  658. package/dist/tools/types.d.ts +63 -0
  659. package/dist/tools/types.d.ts.map +1 -1
  660. package/dist/utils/api-key-resolver.cjs +19 -1
  661. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  662. package/dist/utils/api-key-resolver.js +20 -2
  663. package/dist/utils/async-context.js +1 -1
  664. package/dist/utils/debug.js +1 -1
  665. package/dist/{llm/tokenizer/anthropic.cjs → utils/defer.cjs} +19 -20
  666. package/dist/utils/defer.d.ts +63 -0
  667. package/dist/utils/defer.d.ts.map +1 -0
  668. package/dist/utils/defer.js +19 -0
  669. package/dist/utils/error-conversion.js +1 -1
  670. package/dist/utils/execution-context.js +1 -1
  671. package/dist/utils/fs-walk.js +1 -1
  672. package/dist/utils/index.cjs +3 -3
  673. package/dist/utils/index.d.ts +1 -1
  674. package/dist/utils/index.d.ts.map +1 -1
  675. package/dist/utils/index.js +1 -1
  676. package/dist/utils/path.js +1 -1
  677. package/dist/utils/redactor.cjs +18 -3
  678. package/dist/utils/redactor.d.ts +0 -7
  679. package/dist/utils/redactor.d.ts.map +1 -1
  680. package/dist/utils/redactor.js +19 -4
  681. package/dist/utils/result.js +1 -1
  682. package/dist/utils/safe-stringify.js +1 -1
  683. package/dist/utils/schema-metadata.js +1 -1
  684. package/dist/utils/schema.js +1 -1
  685. package/dist/utils/service-initializer.cjs +15 -37
  686. package/dist/utils/service-initializer.d.ts.map +1 -1
  687. package/dist/utils/service-initializer.js +16 -38
  688. package/dist/utils/user-info.js +1 -1
  689. package/dist/utils/zod-schema-converter.js +1 -1
  690. package/package.json +10 -8
  691. package/dist/context/compression/middle-removal.cjs +0 -95
  692. package/dist/context/compression/middle-removal.d.ts +0 -47
  693. package/dist/context/compression/middle-removal.d.ts.map +0 -1
  694. package/dist/context/compression/middle-removal.js +0 -72
  695. package/dist/context/compression/oldest-removal.cjs +0 -83
  696. package/dist/context/compression/oldest-removal.d.ts +0 -42
  697. package/dist/context/compression/oldest-removal.d.ts.map +0 -1
  698. package/dist/context/compression/oldest-removal.js +0 -60
  699. package/dist/context/compression/types.d.ts +0 -18
  700. package/dist/context/compression/types.d.ts.map +0 -1
  701. package/dist/llm/formatters/anthropic.cjs +0 -257
  702. package/dist/llm/formatters/anthropic.d.ts +0 -46
  703. package/dist/llm/formatters/anthropic.d.ts.map +0 -1
  704. package/dist/llm/formatters/anthropic.js +0 -239
  705. package/dist/llm/formatters/factory.cjs +0 -50
  706. package/dist/llm/formatters/factory.d.ts +0 -10
  707. package/dist/llm/formatters/factory.d.ts.map +0 -1
  708. package/dist/llm/formatters/factory.js +0 -27
  709. package/dist/llm/formatters/openai.cjs +0 -203
  710. package/dist/llm/formatters/openai.d.ts +0 -39
  711. package/dist/llm/formatters/openai.d.ts.map +0 -1
  712. package/dist/llm/formatters/openai.js +0 -184
  713. package/dist/llm/formatters/types.d.ts +0 -41
  714. package/dist/llm/formatters/types.d.ts.map +0 -1
  715. package/dist/llm/services/anthropic.cjs +0 -511
  716. package/dist/llm/services/anthropic.d.ts +0 -48
  717. package/dist/llm/services/anthropic.d.ts.map +0 -1
  718. package/dist/llm/services/anthropic.js +0 -447
  719. package/dist/llm/services/openai.cjs +0 -611
  720. package/dist/llm/services/openai.d.ts +0 -48
  721. package/dist/llm/services/openai.d.ts.map +0 -1
  722. package/dist/llm/services/openai.js +0 -547
  723. package/dist/llm/tokenizer/anthropic.d.ts +0 -19
  724. package/dist/llm/tokenizer/anthropic.d.ts.map +0 -1
  725. package/dist/llm/tokenizer/anthropic.js +0 -20
  726. package/dist/llm/tokenizer/default.d.ts +0 -14
  727. package/dist/llm/tokenizer/default.d.ts.map +0 -1
  728. package/dist/llm/tokenizer/default.js +0 -18
  729. package/dist/llm/tokenizer/factory.d.ts +0 -12
  730. package/dist/llm/tokenizer/factory.d.ts.map +0 -1
  731. package/dist/llm/tokenizer/factory.js +0 -21
  732. package/dist/llm/tokenizer/google.d.ts +0 -29
  733. package/dist/llm/tokenizer/google.d.ts.map +0 -1
  734. package/dist/llm/tokenizer/google.js +0 -29
  735. package/dist/llm/tokenizer/openai.cjs +0 -115
  736. package/dist/llm/tokenizer/openai.d.ts +0 -41
  737. package/dist/llm/tokenizer/openai.d.ts.map +0 -1
  738. package/dist/llm/tokenizer/openai.js +0 -91
  739. package/dist/llm/tokenizer/types.d.ts +0 -18
  740. package/dist/llm/tokenizer/types.d.ts.map +0 -1
  741. package/dist/llm/tokenizer/types.js +0 -10
  742. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -106
  743. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +0 -13
  744. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +0 -1
  745. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +0 -73
  746. package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +0 -49
  747. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +0 -12
  748. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +0 -1
  749. package/dist/tools/internal-tools/implementations/bash-output-tool.js +0 -26
  750. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +0 -62
  751. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +0 -12
  752. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +0 -1
  753. package/dist/tools/internal-tools/implementations/edit-file-tool.js +0 -39
  754. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -57
  755. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +0 -12
  756. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +0 -1
  757. package/dist/tools/internal-tools/implementations/glob-files-tool.js +0 -34
  758. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -71
  759. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +0 -12
  760. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +0 -1
  761. package/dist/tools/internal-tools/implementations/grep-content-tool.js +0 -48
  762. package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +0 -47
  763. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +0 -12
  764. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +0 -1
  765. package/dist/tools/internal-tools/implementations/kill-process-tool.js +0 -24
  766. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +0 -55
  767. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +0 -12
  768. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +0 -1
  769. package/dist/tools/internal-tools/implementations/read-file-tool.js +0 -32
  770. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -56
  771. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +0 -12
  772. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +0 -1
  773. package/dist/tools/internal-tools/implementations/write-file-tool.js +0 -33
  774. package/dist/utils/env-file.cjs +0 -118
  775. package/dist/utils/env-file.d.ts +0 -5
  776. package/dist/utils/env-file.d.ts.map +0 -1
  777. package/dist/utils/env-file.js +0 -85
  778. /package/dist/context/{compression/types.js → compaction/provider.js} +0 -0
  779. /package/dist/context/{compression → compaction}/types.cjs +0 -0
  780. /package/dist/{llm/formatters → context/compaction}/types.js +0 -0
  781. /package/dist/{llm/formatters → image}/types.cjs +0 -0
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var providers_exports = {};
17
+ module.exports = __toCommonJS(providers_exports);
18
+ __reExport(providers_exports, require("./base-registry.js"), module.exports);
19
+ __reExport(providers_exports, require("./discovery.js"), module.exports);
20
+ // Annotate the CommonJS export names for ESM import in node:
21
+ 0 && (module.exports = {
22
+ ...require("./base-registry.js"),
23
+ ...require("./discovery.js")
24
+ });
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Provider Infrastructure
3
+ *
4
+ * This module provides:
5
+ * 1. BaseRegistry - Generic base class for building type-safe provider registries
6
+ * 2. Discovery API - Utilities for querying registered providers across all registries
7
+ *
8
+ * Useful for:
9
+ * - Building custom provider registries with consistent behavior
10
+ * - Debugging: See what providers are available at runtime
11
+ * - UIs: Build dynamic interfaces that show available providers
12
+ * - Configuration validation: Check if required providers are registered
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { BaseRegistry, listAllProviders, hasProvider } from '@dexto/core';
17
+ *
18
+ * // Create a custom registry
19
+ * class MyRegistry extends BaseRegistry<MyProvider> {
20
+ * constructor() {
21
+ * super(myErrorFactory);
22
+ * }
23
+ * }
24
+ *
25
+ * // List all providers
26
+ * const providers = listAllProviders();
27
+ * console.log('Blob providers:', providers.blob);
28
+ * ```
29
+ */
30
+ export * from './base-registry.js';
31
+ export * from './discovery.js';
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./base-registry.js";
2
+ export * from "./discovery.js";
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  const ResourceErrorCodes = {
3
3
  INVALID_URI_FORMAT: "resource_invalid_uri_format",
4
4
  EMPTY_URI: "resource_empty_uri",
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { DextoRuntimeError } from "../errors/DextoRuntimeError.js";
3
3
  import { ErrorScope, ErrorType } from "../errors/types.js";
4
4
  import { ResourceErrorCodes } from "./error-codes.js";
@@ -1,4 +1,4 @@
1
- import "../../chunk-C6A6W6XS.js";
1
+ import "../../chunk-PTJYTZNU.js";
2
2
  import { DextoLogComponent } from "../../logger/v2/types.js";
3
3
  import { ResourceError } from "../errors.js";
4
4
  class BlobResourceHandler {
@@ -1,4 +1,4 @@
1
- import "../../chunk-C6A6W6XS.js";
1
+ import "../../chunk-PTJYTZNU.js";
2
2
  import { ResourceError } from "../errors.js";
3
3
  import { FileSystemResourceHandler } from "./filesystem-handler.js";
4
4
  import { BlobResourceHandler } from "./blob-handler.js";
@@ -1,4 +1,4 @@
1
- import "../../chunk-C6A6W6XS.js";
1
+ import "../../chunk-PTJYTZNU.js";
2
2
  import { promises as fs } from "fs";
3
3
  import path from "path";
4
4
  import { DextoLogComponent } from "../../logger/v2/types.js";
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { ResourceManager } from "./manager.js";
3
3
  import { ResourceError } from "./errors.js";
4
4
  import { ResourceErrorCodes } from "./error-codes.js";
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { DextoLogComponent } from "../logger/v2/types.js";
3
3
  import { createInternalResourceHandler } from "./handlers/factory.js";
4
4
  import { InternalResourceConfigSchema } from "./schemas.js";
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { InternalResourcesProvider } from "./internal-provider.js";
3
3
  import { DextoLogComponent } from "../logger/v2/types.js";
4
4
  import { ResourceError } from "./errors.js";
@@ -140,9 +140,9 @@ function formatResourceContent(resourceUri, resourceName, content) {
140
140
  contentParts.push(`
141
141
  --- Content from resource: ${resourceName} (${resourceUri}) ---`);
142
142
  for (const item of content.contents) {
143
- if (item.text && typeof item.text === "string") {
143
+ if ("text" in item && item.text && typeof item.text === "string") {
144
144
  contentParts.push(item.text);
145
- } else if (item.blob) {
145
+ } else if ("blob" in item && item.blob) {
146
146
  const blobSize = typeof item.blob === "string" ? item.blob.length : "unknown";
147
147
  contentParts.push(`[Binary content: ${item.mimeType || "unknown"}, ${blobSize} bytes]`);
148
148
  }
@@ -172,7 +172,7 @@ async function expandMessageReferences(message, availableResources, resourceRead
172
172
  const resource = availableResources[ref.resourceUri];
173
173
  let isImageResource = false;
174
174
  for (const item of content.contents) {
175
- if (item.blob && item.mimeType && item.mimeType.startsWith("image/") && typeof item.blob === "string") {
175
+ if ("blob" in item && item.blob && item.mimeType && item.mimeType.startsWith("image/") && typeof item.blob === "string") {
176
176
  extractedImages.push({
177
177
  image: item.blob,
178
178
  mimeType: item.mimeType,
@@ -1 +1 @@
1
- {"version":3,"file":"reference-parser.d.ts","sourceRoot":"","sources":["../../src/resources/reference-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAK7E,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,eAAe,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;IAC1C,eAAe,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7E;AAMD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAuB5E;AAED,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,iBAAiB,EAAE,EAC/B,kBAAkB,EAAE,WAAW,GAChC,iBAAiB,EAAE,CAmCrB;AAiGD,wBAAgB,qBAAqB,CACjC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,kBAAkB,GAC5B,MAAM,CAaR;AAED,wBAAsB,uBAAuB,CACzC,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,WAAW,EAC/B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,GAC7D,OAAO,CAAC,uBAAuB,CAAC,CA8ElC"}
1
+ {"version":3,"file":"reference-parser.d.ts","sourceRoot":"","sources":["../../src/resources/reference-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAK7E,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,eAAe,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;IAC1C,eAAe,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7E;AAMD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAuB5E;AAED,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,iBAAiB,EAAE,EAC/B,kBAAkB,EAAE,WAAW,GAChC,iBAAiB,EAAE,CAmCrB;AAiGD,wBAAgB,qBAAqB,CACjC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,kBAAkB,GAC5B,MAAM,CAaR;AAED,wBAAsB,uBAAuB,CACzC,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,WAAW,EAC/B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,GAC7D,OAAO,CAAC,uBAAuB,CAAC,CA+ElC"}
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  function escapeRegExp(literal) {
3
3
  return literal.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
4
4
  }
@@ -115,9 +115,9 @@ function formatResourceContent(resourceUri, resourceName, content) {
115
115
  contentParts.push(`
116
116
  --- Content from resource: ${resourceName} (${resourceUri}) ---`);
117
117
  for (const item of content.contents) {
118
- if (item.text && typeof item.text === "string") {
118
+ if ("text" in item && item.text && typeof item.text === "string") {
119
119
  contentParts.push(item.text);
120
- } else if (item.blob) {
120
+ } else if ("blob" in item && item.blob) {
121
121
  const blobSize = typeof item.blob === "string" ? item.blob.length : "unknown";
122
122
  contentParts.push(`[Binary content: ${item.mimeType || "unknown"}, ${blobSize} bytes]`);
123
123
  }
@@ -147,7 +147,7 @@ async function expandMessageReferences(message, availableResources, resourceRead
147
147
  const resource = availableResources[ref.resourceUri];
148
148
  let isImageResource = false;
149
149
  for (const item of content.contents) {
150
- if (item.blob && item.mimeType && item.mimeType.startsWith("image/") && typeof item.blob === "string") {
150
+ if ("blob" in item && item.blob && item.mimeType && item.mimeType.startsWith("image/") && typeof item.blob === "string") {
151
151
  extractedImages.push({
152
152
  image: item.blob,
153
153
  mimeType: item.mimeType,
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { z } from "zod";
3
3
  const FileExtensionSchema = z.string().regex(
4
4
  /^\.[A-Za-z0-9][A-Za-z0-9._-]*$/,
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { SearchService } from "./search-service.js";
3
3
  export {
4
4
  SearchService
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { DextoLogComponent } from "../logger/v2/types.js";
3
3
  class SearchService {
4
4
  constructor(database, logger) {
@@ -23,10 +23,12 @@ __export(chat_session_exports, {
23
23
  module.exports = __toCommonJS(chat_session_exports);
24
24
  var import_factory = require("./history/factory.js");
25
25
  var import_factory2 = require("../llm/services/factory.js");
26
+ var import_compaction = require("../context/compaction/index.js");
26
27
  var import_events = require("../events/index.js");
27
28
  var import_types = require("../logger/v2/types.js");
28
29
  var import_errors = require("../errors/index.js");
29
30
  var import_error_codes = require("../plugins/error-codes.js");
31
+ var import_registry = require("../llm/registry.js");
30
32
  class ChatSession {
31
33
  /**
32
34
  * Creates a new ChatSession instance.
@@ -77,6 +79,10 @@ class ChatSession {
77
79
  * Stores the bound functions so they can be removed from the event bus.
78
80
  */
79
81
  forwarders = /* @__PURE__ */ new Map();
82
+ /**
83
+ * Token accumulator listener for cleanup.
84
+ */
85
+ tokenAccumulatorListener = null;
80
86
  /**
81
87
  * AbortController for the currently running turn, if any.
82
88
  * Calling cancel() aborts the in-flight LLM request and tool execution checks.
@@ -107,23 +113,51 @@ class ChatSession {
107
113
  this.forwarders.set(eventName, forwarder);
108
114
  this.eventBus.on(eventName, forwarder);
109
115
  });
116
+ this.setupTokenAccumulation();
110
117
  this.logger.debug(
111
118
  `[setupEventForwarding] Event forwarding setup complete for session=${this.id}`
112
119
  );
113
120
  }
121
+ /**
122
+ * Sets up token usage accumulation by listening to llm:response events.
123
+ * Accumulates token usage and cost to session metadata for /stats tracking.
124
+ */
125
+ setupTokenAccumulation() {
126
+ this.tokenAccumulatorListener = (payload) => {
127
+ if (payload.tokenUsage) {
128
+ let cost;
129
+ const llmConfig = this.services.stateManager.getLLMConfig(this.id);
130
+ const pricing = (0, import_registry.getModelPricing)(llmConfig.provider, llmConfig.model);
131
+ if (pricing) {
132
+ cost = (0, import_registry.calculateCost)(payload.tokenUsage, pricing);
133
+ }
134
+ this.services.sessionManager.accumulateTokenUsage(this.id, payload.tokenUsage, cost).catch((err) => {
135
+ this.logger.warn(
136
+ `Failed to accumulate token usage: ${err instanceof Error ? err.message : String(err)}`
137
+ );
138
+ });
139
+ }
140
+ };
141
+ this.eventBus.on("llm:response", this.tokenAccumulatorListener);
142
+ }
114
143
  /**
115
144
  * Initializes session-specific services.
116
145
  */
117
146
  async initializeServices() {
118
- const llmConfig = this.services.stateManager.getLLMConfig(this.id);
147
+ const runtimeConfig = this.services.stateManager.getRuntimeConfig(this.id);
148
+ const llmConfig = runtimeConfig.llm;
119
149
  this.historyProvider = (0, import_factory.createDatabaseHistoryProvider)(
120
150
  this.services.storageManager.getDatabase(),
121
151
  this.id,
122
152
  this.logger
123
153
  );
154
+ const model = (0, import_factory2.createVercelModel)(llmConfig);
155
+ const compactionStrategy = await (0, import_compaction.createCompactionStrategy)(runtimeConfig.compaction, {
156
+ logger: this.logger,
157
+ model
158
+ });
124
159
  this.llmService = (0, import_factory2.createLLMService)(
125
160
  llmConfig,
126
- llmConfig.router,
127
161
  this.services.toolManager,
128
162
  this.services.systemPromptManager,
129
163
  this.historyProvider,
@@ -133,8 +167,10 @@ class ChatSession {
133
167
  this.id,
134
168
  this.services.resourceManager,
135
169
  // Pass ResourceManager for blob storage
136
- this.logger
170
+ this.logger,
137
171
  // Pass logger for dependency injection
172
+ compactionStrategy
173
+ // Pass compaction strategy
138
174
  );
139
175
  this.logger.debug(`ChatSession ${this.id}: Services initialized with storage`);
140
176
  }
@@ -152,12 +188,12 @@ class ChatSession {
152
188
  async saveBlockedInteraction(userInput, errorMessage, _imageData, _fileData) {
153
189
  const userMessage = {
154
190
  role: "user",
155
- content: "[Blocked by content policy: input redacted]"
191
+ content: [{ type: "text", text: "[Blocked by content policy: input redacted]" }]
156
192
  };
157
193
  const errorContent = `Error: ${errorMessage}`;
158
194
  const assistantMessage = {
159
195
  role: "assistant",
160
- content: errorContent
196
+ content: [{ type: "text", text: errorContent }]
161
197
  };
162
198
  await this.historyProvider.saveMessage(userMessage);
163
199
  await this.historyProvider.saveMessage(assistantMessage);
@@ -165,44 +201,61 @@ class ChatSession {
165
201
  this.eventBus.emit("llm:response", {
166
202
  content: errorContent,
167
203
  provider: llmConfig.provider,
168
- model: llmConfig.model,
169
- router: llmConfig.router
204
+ model: llmConfig.model
170
205
  });
171
206
  }
172
207
  /**
173
- * Processes user input through the session's LLM service and returns the response.
174
- *
175
- * This method:
176
- * 1. Takes user input (text, optionally with image or file data)
177
- * 2. Passes it to the LLM service for processing
178
- * 3. Returns the AI's response text
179
- *
180
- * The method handles both text-only and multimodal input (text + images/files).
181
- * Tool calls and conversation management are handled internally by the LLM service.
208
+ * Stream a response for the given content.
209
+ * Primary method for running conversations with multi-image support.
182
210
  *
183
- * @param input - The user's text input
184
- * @param imageDataInput - Optional image data for multimodal input
185
- * @param fileDataInput - Optional file data for file input
186
- * @param stream - Optional flag to enable streaming responses
211
+ * @param content - String or ContentPart[] (text, images, files)
212
+ * @param options - { signal?: AbortSignal }
187
213
  * @returns Promise that resolves to the AI's response text
188
214
  *
189
215
  * @example
190
216
  * ```typescript
191
- * const response = await session.run('What is the weather like today?');
192
- * console.log(response); // "I'll check the weather for you..."
217
+ * // Text only
218
+ * const response = await session.stream('What is the weather?');
219
+ *
220
+ * // Multiple images
221
+ * const response = await session.stream([
222
+ * { type: 'text', text: 'Compare these images' },
223
+ * { type: 'image', image: base64Data1, mimeType: 'image/png' },
224
+ * { type: 'image', image: base64Data2, mimeType: 'image/png' }
225
+ * ]);
193
226
  * ```
194
227
  */
195
- async run(input, imageDataInput, fileDataInput, stream) {
228
+ async stream(content, options) {
229
+ const parts = typeof content === "string" ? [{ type: "text", text: content }] : content;
230
+ const textParts = parts.filter(
231
+ (p) => p.type === "text"
232
+ );
233
+ const imageParts = parts.filter((p) => p.type === "image");
234
+ const fileParts = parts.filter((p) => p.type === "file");
196
235
  this.logger.debug(
197
- `Running session ${this.id} | input.len=${input?.length ?? 0} | image=${imageDataInput ? imageDataInput.mimeType : "none"} | file=${fileDataInput ? `${fileDataInput.mimeType}:${fileDataInput.filename ?? "unknown"}` : "none"}`
236
+ `Streaming session ${this.id} | textParts=${textParts.length} | images=${imageParts.length} | files=${fileParts.length}`
198
237
  );
199
238
  this.currentRunController = new AbortController();
200
- const signal = this.currentRunController.signal;
239
+ const signal = options?.signal ? this.combineSignals(options.signal, this.currentRunController.signal) : this.currentRunController.signal;
201
240
  try {
241
+ const textContent = textParts.map((p) => p.text).join("\n");
242
+ const firstImage = imageParts[0];
243
+ const firstFile = fileParts[0];
202
244
  const beforeLLMPayload = {
203
- text: input,
204
- ...imageDataInput !== void 0 && { imageData: imageDataInput },
205
- ...fileDataInput !== void 0 && { fileData: fileDataInput },
245
+ text: textContent,
246
+ ...firstImage && {
247
+ imageData: {
248
+ image: typeof firstImage.image === "string" ? firstImage.image : "[binary]",
249
+ mimeType: firstImage.mimeType || "image/jpeg"
250
+ }
251
+ },
252
+ ...firstFile && {
253
+ fileData: {
254
+ data: typeof firstFile.data === "string" ? firstFile.data : "[binary]",
255
+ mimeType: firstFile.mimeType,
256
+ ...firstFile.filename && { filename: firstFile.filename }
257
+ }
258
+ },
206
259
  sessionId: this.id
207
260
  };
208
261
  const modifiedBeforePayload = await this.services.pluginManager.executePlugins(
@@ -217,22 +270,17 @@ class ChatSession {
217
270
  abortSignal: signal
218
271
  }
219
272
  );
220
- const finalInput = modifiedBeforePayload.text;
221
- const finalImageData = modifiedBeforePayload.imageData;
222
- const finalFileData = modifiedBeforePayload.fileData;
223
- const response = await this.llmService.completeTask(
224
- finalInput,
225
- { signal },
226
- finalImageData,
227
- finalFileData,
228
- stream
229
- );
273
+ let modifiedParts = [...parts];
274
+ if (modifiedBeforePayload.text !== textContent && textParts.length > 0) {
275
+ modifiedParts = modifiedParts.filter((p) => p.type !== "text");
276
+ modifiedParts.unshift({ type: "text", text: modifiedBeforePayload.text });
277
+ }
278
+ const response = await this.llmService.stream(modifiedParts, { signal });
230
279
  const llmConfig = this.services.stateManager.getLLMConfig(this.id);
231
280
  const beforeResponsePayload = {
232
281
  content: response,
233
282
  provider: llmConfig.provider,
234
283
  model: llmConfig.model,
235
- router: llmConfig.router,
236
284
  sessionId: this.id
237
285
  };
238
286
  const modifiedResponsePayload = await this.services.pluginManager.executePlugins(
@@ -256,16 +304,21 @@ class ChatSession {
256
304
  context: "user_cancelled",
257
305
  recoverable: true
258
306
  });
307
+ try {
308
+ const history = await this.getHistory();
309
+ const lastAssistant = history.filter((m) => m.role === "assistant").pop();
310
+ if (lastAssistant && typeof lastAssistant.content === "string") {
311
+ return lastAssistant.content;
312
+ }
313
+ } catch {
314
+ this.logger.debug("Failed to retrieve partial response from history on cancel");
315
+ }
259
316
  return "";
260
317
  }
261
318
  if (error instanceof import_errors.DextoRuntimeError && error.code === import_error_codes.PluginErrorCode.PLUGIN_BLOCKED_EXECUTION && error.scope === import_errors.ErrorScope.PLUGIN && error.type === import_errors.ErrorType.FORBIDDEN) {
319
+ const textContent = parts.filter((p) => p.type === "text").map((p) => p.text).join("\n");
262
320
  try {
263
- await this.saveBlockedInteraction(
264
- input,
265
- error.message,
266
- imageDataInput,
267
- fileDataInput
268
- );
321
+ await this.saveBlockedInteraction(textContent, error.message);
269
322
  this.logger.debug(
270
323
  `ChatSession ${this.id}: Saved blocked interaction to history`
271
324
  );
@@ -276,15 +329,27 @@ class ChatSession {
276
329
  }
277
330
  return error.message;
278
331
  }
279
- const errortype = error instanceof Error ? "object" : "string";
280
332
  this.logger.error(
281
- `Error in ChatSession.run: errortype=${errortype}: ${error instanceof Error ? error.message : String(error)}`
333
+ `Error in ChatSession.stream: ${error instanceof Error ? error.message : String(error)}`
282
334
  );
283
335
  throw error;
284
336
  } finally {
285
337
  this.currentRunController = null;
286
338
  }
287
339
  }
340
+ /**
341
+ * Combine multiple abort signals into one.
342
+ */
343
+ combineSignals(signal1, signal2) {
344
+ const controller = new AbortController();
345
+ const onAbort = () => controller.abort();
346
+ signal1.addEventListener("abort", onAbort);
347
+ signal2.addEventListener("abort", onAbort);
348
+ if (signal1.aborted || signal2.aborted) {
349
+ controller.abort();
350
+ }
351
+ return controller.signal;
352
+ }
288
353
  /**
289
354
  * Retrieves the complete conversation history for this session.
290
355
  *
@@ -355,11 +420,11 @@ class ChatSession {
355
420
  /**
356
421
  * Switches the LLM service for this session while preserving conversation history.
357
422
  *
358
- * This method creates a new LLM service with the specified configuration and router,
423
+ * This method creates a new LLM service with the specified configuration,
359
424
  * while maintaining the existing ContextManager and conversation history. This allows
360
425
  * users to change AI models mid-conversation without losing context.
361
426
  *
362
- * @param newLLMConfig The new LLM configuration to use (includes router)
427
+ * @param newLLMConfig The new LLM configuration to use
363
428
  *
364
429
  * @example
365
430
  * ```typescript
@@ -368,16 +433,19 @@ class ChatSession {
368
433
  * provider: 'openai',
369
434
  * model: 'gpt-5',
370
435
  * apiKey: process.env.OPENAI_API_KEY,
371
- * router: 'in-built'
372
436
  * });
373
437
  * ```
374
438
  */
375
439
  async switchLLM(newLLMConfig) {
376
440
  try {
377
- const router = newLLMConfig.router;
441
+ const runtimeConfig = this.services.stateManager.getRuntimeConfig(this.id);
442
+ const model = (0, import_factory2.createVercelModel)(newLLMConfig);
443
+ const compactionStrategy = await (0, import_compaction.createCompactionStrategy)(runtimeConfig.compaction, {
444
+ logger: this.logger,
445
+ model
446
+ });
378
447
  const newLLMService = (0, import_factory2.createLLMService)(
379
448
  newLLMConfig,
380
- router,
381
449
  this.services.toolManager,
382
450
  this.services.systemPromptManager,
383
451
  this.historyProvider,
@@ -386,7 +454,9 @@ class ChatSession {
386
454
  // Use session event bus
387
455
  this.id,
388
456
  this.services.resourceManager,
389
- this.logger
457
+ this.logger,
458
+ compactionStrategy
459
+ // Pass compaction strategy
390
460
  );
391
461
  this.llmService = newLLMService;
392
462
  this.logger.info(
@@ -394,7 +464,6 @@ class ChatSession {
394
464
  );
395
465
  this.eventBus.emit("llm:switched", {
396
466
  newConfig: newLLMConfig,
397
- router,
398
467
  historyRetained: true
399
468
  });
400
469
  } catch (error) {
@@ -435,8 +504,54 @@ class ChatSession {
435
504
  this.eventBus.off(eventName, forwarder);
436
505
  });
437
506
  this.forwarders.clear();
507
+ if (this.tokenAccumulatorListener) {
508
+ this.eventBus.off("llm:response", this.tokenAccumulatorListener);
509
+ this.tokenAccumulatorListener = null;
510
+ }
438
511
  this.logger.debug(`Session ${this.id} disposed successfully`);
439
512
  }
513
+ /**
514
+ * Check if this session is currently processing a message.
515
+ * Returns true if a run is in progress and has not been aborted.
516
+ */
517
+ isBusy() {
518
+ return this.currentRunController !== null && !this.currentRunController.signal.aborted;
519
+ }
520
+ /**
521
+ * Queue a message for processing when the session is busy.
522
+ * The message will be injected into the conversation when the current turn completes.
523
+ *
524
+ * @param message The user message to queue
525
+ * @returns Queue position and message ID
526
+ */
527
+ queueMessage(message) {
528
+ return this.llmService.getMessageQueue().enqueue(message);
529
+ }
530
+ /**
531
+ * Get all messages currently in the queue.
532
+ * @returns Array of queued messages
533
+ */
534
+ getQueuedMessages() {
535
+ return this.llmService.getMessageQueue().getAll();
536
+ }
537
+ /**
538
+ * Remove a queued message.
539
+ * @param id Message ID to remove
540
+ * @returns true if message was found and removed; false otherwise
541
+ */
542
+ removeQueuedMessage(id) {
543
+ return this.llmService.getMessageQueue().remove(id);
544
+ }
545
+ /**
546
+ * Clear all queued messages.
547
+ * @returns Number of messages that were cleared
548
+ */
549
+ clearMessageQueue() {
550
+ const queue = this.llmService.getMessageQueue();
551
+ const count = queue.pendingCount();
552
+ queue.clear();
553
+ return count;
554
+ }
440
555
  /**
441
556
  * Cancel the currently running turn for this session, if any.
442
557
  * Returns true if a run was in progress and was signaled to abort.