@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
@@ -18,10 +18,12 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var utils_exports = {};
20
20
  __export(utils_exports, {
21
- countMessagesTokens: () => countMessagesTokens,
21
+ estimateMessagesTokens: () => estimateMessagesTokens,
22
22
  expandBlobReferences: () => expandBlobReferences,
23
23
  fileTypesToMimePatterns: () => fileTypesToMimePatterns,
24
+ filterCompacted: () => filterCompacted,
24
25
  filterMessagesByLLMCapabilities: () => filterMessagesByLLMCapabilities,
26
+ formatToolOutputForDisplay: () => formatToolOutputForDisplay,
25
27
  getFileData: () => getFileData,
26
28
  getFileDataWithBlobSupport: () => getFileDataWithBlobSupport,
27
29
  getFileMediaKind: () => import_media_helpers.getFileMediaKind,
@@ -40,11 +42,11 @@ __export(utils_exports, {
40
42
  toTextForToolMessage: () => toTextForToolMessage
41
43
  });
42
44
  module.exports = __toCommonJS(utils_exports);
45
+ var import_types = require("./types.js");
46
+ var import_display_types = require("../tools/display-types.js");
43
47
  var import_registry = require("../llm/registry.cjs");
44
- var import_errors = require("./errors.js");
45
48
  var import_safe_stringify = require("../utils/safe-stringify.cjs");
46
49
  var import_media_helpers = require("./media-helpers.js");
47
- const DEFAULT_OVERHEAD_PER_MESSAGE = 4;
48
50
  const MIN_BASE64_HEURISTIC_LENGTH = 512;
49
51
  const MAX_TOOL_TEXT_CHARS = 8e3;
50
52
  const MIN_TOOL_INLINE_MEDIA_BYTES = 1024;
@@ -92,60 +94,38 @@ function clonePart(part) {
92
94
  return cloned;
93
95
  }
94
96
  function coerceContentToParts(content) {
95
- if (Array.isArray(content)) {
96
- const normalized = [];
97
- for (const item of content) {
98
- if (item == null) continue;
99
- if (typeof item === "string") {
100
- normalized.push({ type: "text", text: item });
101
- continue;
97
+ if (content == null) {
98
+ return [];
99
+ }
100
+ const normalized = [];
101
+ for (const item of content) {
102
+ if (item.type === "ui-resource") {
103
+ continue;
104
+ }
105
+ if (item.type === "text") {
106
+ normalized.push({ type: "text", text: item.text });
107
+ } else if (item.type === "image") {
108
+ const cloned = {
109
+ type: "image",
110
+ image: item.image
111
+ };
112
+ if (item.mimeType) {
113
+ cloned.mimeType = item.mimeType;
102
114
  }
103
- if (typeof item === "object" && "type" in item) {
104
- const type = item.type;
105
- if (type === "text") {
106
- const textPart = item;
107
- normalized.push({ type: "text", text: textPart.text });
108
- continue;
109
- }
110
- if (type === "image") {
111
- const imagePart = item;
112
- const cloned = {
113
- type: "image",
114
- image: imagePart.image
115
- };
116
- if (imagePart.mimeType) {
117
- cloned.mimeType = imagePart.mimeType;
118
- }
119
- normalized.push(cloned);
120
- continue;
121
- }
122
- if (type === "file") {
123
- const filePart = item;
124
- const cloned = {
125
- type: "file",
126
- data: filePart.data,
127
- mimeType: filePart.mimeType ?? "application/octet-stream"
128
- };
129
- if (filePart.filename) {
130
- cloned.filename = filePart.filename;
131
- }
132
- normalized.push(cloned);
133
- continue;
134
- }
115
+ normalized.push(cloned);
116
+ } else if (item.type === "file") {
117
+ const cloned = {
118
+ type: "file",
119
+ data: item.data,
120
+ mimeType: item.mimeType ?? "application/octet-stream"
121
+ };
122
+ if (item.filename) {
123
+ cloned.filename = item.filename;
135
124
  }
125
+ normalized.push(cloned);
136
126
  }
137
- return normalized;
138
- }
139
- if (typeof content === "string") {
140
- if (content.length === 0) {
141
- return [];
142
- }
143
- return [{ type: "text", text: content }];
144
127
  }
145
- if (content == null) {
146
- return [];
147
- }
148
- return [{ type: "text", text: (0, import_safe_stringify.safeStringify)(content) }];
128
+ return normalized;
149
129
  }
150
130
  function detectInlineMedia(part, index) {
151
131
  if (part.type === "text") {
@@ -304,17 +284,16 @@ async function resolveBlobReferenceToParts(resourceUri, resourceManager, logger,
304
284
  parts.push({ type: "text", text: item.text });
305
285
  continue;
306
286
  }
307
- const base64Data = typeof item.blob === "string" ? item.blob : typeof item.data === "string" ? item.data : void 0;
287
+ const base64Data = "blob" in item && typeof item.blob === "string" ? item.blob : "data" in item && typeof item.data === "string" ? item.data : void 0;
308
288
  const mimeType = typeof item.mimeType === "string" ? item.mimeType : void 0;
309
289
  if (!base64Data || !mimeType) {
310
290
  continue;
311
291
  }
312
292
  const resolvedMime = mimeType ?? "application/octet-stream";
313
293
  if (resolvedMime.startsWith("image/")) {
314
- const dataUri = `data:${resolvedMime};base64,${base64Data}`;
315
294
  const imagePart = {
316
295
  type: "image",
317
- image: dataUri,
296
+ image: base64Data,
318
297
  mimeType: resolvedMime
319
298
  };
320
299
  parts.push(imagePart);
@@ -322,11 +301,12 @@ async function resolveBlobReferenceToParts(resourceUri, resourceManager, logger,
322
301
  }
323
302
  const filePart = {
324
303
  type: "file",
325
- data: resolvedMime.startsWith("audio/") ? `data:${resolvedMime};base64,${base64Data}` : base64Data,
304
+ data: base64Data,
326
305
  mimeType: resolvedMime
327
306
  };
328
- if (typeof item.filename === "string" && item.filename.length > 0) {
329
- filePart.filename = item.filename;
307
+ const itemWithFilename = item;
308
+ if (typeof itemWithFilename.filename === "string" && itemWithFilename.filename.length > 0) {
309
+ filePart.filename = itemWithFilename.filename;
330
310
  } else if (typeof result._meta?.originalName === "string") {
331
311
  filePart.filename = result._meta.originalName;
332
312
  }
@@ -342,67 +322,17 @@ async function resolveBlobReferenceToParts(resourceUri, resourceManager, logger,
342
322
  return [{ type: "text", text: `[Attachment unavailable: ${resourceUri}]` }];
343
323
  }
344
324
  }
345
- function countMessagesTokens(history, tokenizer, overheadPerMessage = DEFAULT_OVERHEAD_PER_MESSAGE, logger) {
346
- let total = 0;
347
- logger.debug(`Counting tokens for ${history.length} messages`);
348
- try {
349
- for (const message of history) {
350
- if (message.content) {
351
- if (typeof message.content === "string") {
352
- total += tokenizer.countTokens(message.content);
353
- } else if (Array.isArray(message.content)) {
354
- message.content.forEach((part) => {
355
- if (part.type === "text" && typeof part.text === "string") {
356
- total += tokenizer.countTokens(part.text);
357
- } else if (part.type === "image") {
358
- if (typeof part.image === "string") {
359
- if (isDataUri(part.image)) {
360
- const base64Payload = extractBase64FromDataUri(part.image);
361
- const byteLength = base64LengthToBytes(base64Payload.length);
362
- total += Math.ceil(byteLength / 1024);
363
- } else {
364
- total += estimateTextTokens(part.image);
365
- }
366
- } else if (part.image instanceof Uint8Array || part.image instanceof Buffer || part.image instanceof ArrayBuffer) {
367
- const bytes = part.image instanceof ArrayBuffer ? part.image.byteLength : part.image.length;
368
- total += Math.ceil(bytes / 1024);
369
- }
370
- } else if (part.type === "file") {
371
- if (typeof part.data === "string") {
372
- if (isDataUri(part.data)) {
373
- const base64Payload = extractBase64FromDataUri(part.data);
374
- const byteLength = base64LengthToBytes(base64Payload.length);
375
- total += Math.ceil(byteLength / 1024);
376
- } else {
377
- total += estimateTextTokens(part.data);
378
- }
379
- } else if (part.data instanceof Uint8Array || part.data instanceof Buffer || part.data instanceof ArrayBuffer) {
380
- const bytes = part.data instanceof ArrayBuffer ? part.data.byteLength : part.data.length;
381
- total += Math.ceil(bytes / 1024);
382
- }
383
- }
384
- });
385
- }
386
- }
387
- if (message.toolCalls) {
388
- for (const call of message.toolCalls) {
389
- if (call.function?.name) {
390
- total += tokenizer.countTokens(call.function.name);
391
- }
392
- if (call.function?.arguments) {
393
- total += tokenizer.countTokens(call.function.arguments);
394
- }
395
- }
396
- }
397
- total += overheadPerMessage;
325
+ function estimateMessagesTokens(messages) {
326
+ return messages.reduce((sum, msg) => {
327
+ if (Array.isArray(msg.content)) {
328
+ return sum + msg.content.reduce((partSum, part) => {
329
+ if (part.type === "text") return partSum + Math.ceil(part.text.length / 4);
330
+ if (part.type === "image" || part.type === "file") return partSum + 1e3;
331
+ return partSum;
332
+ }, 0);
398
333
  }
399
- } catch (error) {
400
- logger.error(
401
- `countMessagesTokens failed: ${error instanceof Error ? error.message : String(error)}`
402
- );
403
- throw import_errors.ContextError.tokenCountFailed(error instanceof Error ? error.message : String(error));
404
- }
405
- return total;
334
+ return sum;
335
+ }, 0);
406
336
  }
407
337
  function getImageData(imagePart, logger) {
408
338
  const { image } = imagePart;
@@ -443,8 +373,9 @@ async function getImageDataWithBlobSupport(imagePart, resourceManager, logger) {
443
373
  const uri = image.substring(1);
444
374
  const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
445
375
  const result = await resourceManager.read(resourceUri);
446
- if (result.contents[0]?.blob && typeof result.contents[0].blob === "string") {
447
- return result.contents[0].blob;
376
+ const firstContent = result.contents[0];
377
+ if (firstContent && "blob" in firstContent && firstContent.blob && typeof firstContent.blob === "string") {
378
+ return firstContent.blob;
448
379
  }
449
380
  logger.warn(`Blob reference ${image} did not contain blob data`);
450
381
  } catch (error) {
@@ -460,8 +391,9 @@ async function getFileDataWithBlobSupport(filePart, resourceManager, logger) {
460
391
  const uri = data.substring(1);
461
392
  const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
462
393
  const result = await resourceManager.read(resourceUri);
463
- if (result.contents[0]?.blob && typeof result.contents[0].blob === "string") {
464
- return result.contents[0].blob;
394
+ const firstContent = result.contents[0];
395
+ if (firstContent && "blob" in firstContent && firstContent.blob && typeof firstContent.blob === "string") {
396
+ return firstContent.blob;
465
397
  }
466
398
  logger.warn(`Blob reference ${data} did not contain blob data`);
467
399
  } catch (error) {
@@ -470,122 +402,119 @@ async function getFileDataWithBlobSupport(filePart, resourceManager, logger) {
470
402
  }
471
403
  return getFileData(filePart, logger);
472
404
  }
473
- async function expandBlobReferences(content, resourceManager, logger, allowedMediaTypes) {
474
- if (typeof content === "string") {
475
- const blobRefPattern = /@blob:[a-f0-9]+/g;
476
- const matches = [...content.matchAll(blobRefPattern)];
477
- if (matches.length === 0) {
478
- return content;
479
- }
480
- const resolvedCache = /* @__PURE__ */ new Map();
481
- const parts = [];
482
- let lastIndex = 0;
483
- for (const match of matches) {
484
- const matchIndex = match.index ?? 0;
485
- const token = match[0];
486
- if (matchIndex > lastIndex) {
487
- const segment = content.slice(lastIndex, matchIndex);
488
- if (segment.length > 0) {
489
- parts.push({ type: "text", text: segment });
490
- }
491
- }
492
- const uri = token.substring(1);
493
- const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
494
- let resolvedParts = resolvedCache.get(resourceUri);
495
- if (!resolvedParts) {
496
- resolvedParts = await resolveBlobReferenceToParts(
497
- resourceUri,
498
- resourceManager,
499
- logger,
500
- allowedMediaTypes
501
- );
502
- resolvedCache.set(resourceUri, resolvedParts);
503
- }
504
- if (resolvedParts.length > 0) {
505
- parts.push(...resolvedParts.map((part) => ({ ...part })));
506
- } else {
507
- parts.push({ type: "text", text: token });
405
+ async function expandBlobsInText(text, resourceManager, logger, allowedMediaTypes) {
406
+ if (!text.includes("@blob:")) {
407
+ return [{ type: "text", text }];
408
+ }
409
+ const blobRefPattern = /@blob:[a-f0-9]+/g;
410
+ const matches = [...text.matchAll(blobRefPattern)];
411
+ if (matches.length === 0) {
412
+ return [{ type: "text", text }];
413
+ }
414
+ const resolvedCache = /* @__PURE__ */ new Map();
415
+ const parts = [];
416
+ let lastIndex = 0;
417
+ for (const match of matches) {
418
+ const matchIndex = match.index ?? 0;
419
+ const token = match[0];
420
+ if (matchIndex > lastIndex) {
421
+ const segment = text.slice(lastIndex, matchIndex);
422
+ if (segment.length > 0) {
423
+ parts.push({ type: "text", text: segment });
508
424
  }
509
- lastIndex = matchIndex + token.length;
510
425
  }
511
- if (lastIndex < content.length) {
512
- const trailing = content.slice(lastIndex);
513
- if (trailing.length > 0) {
514
- parts.push({ type: "text", text: trailing });
515
- }
426
+ const uri = token.substring(1);
427
+ const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
428
+ let resolvedParts = resolvedCache.get(resourceUri);
429
+ if (!resolvedParts) {
430
+ resolvedParts = await resolveBlobReferenceToParts(
431
+ resourceUri,
432
+ resourceManager,
433
+ logger,
434
+ allowedMediaTypes
435
+ );
436
+ resolvedCache.set(resourceUri, resolvedParts);
516
437
  }
517
- const normalized = parts.filter((part) => part.type !== "text" || part.text.length > 0);
518
- if (normalized.length === 1 && normalized[0]?.type === "text") {
519
- return normalized[0].text;
438
+ if (resolvedParts.length > 0) {
439
+ parts.push(...resolvedParts.map((p) => ({ ...p })));
440
+ } else {
441
+ parts.push({ type: "text", text: token });
520
442
  }
521
- return normalized;
443
+ lastIndex = matchIndex + token.length;
522
444
  }
523
- if (Array.isArray(content)) {
524
- const expandedParts = [];
525
- for (const part of content) {
526
- if (part.type === "image" && typeof part.image === "string" && part.image.startsWith("@blob:")) {
527
- const uri = part.image.substring(1);
528
- const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
529
- const resolved = await resolveBlobReferenceToParts(
530
- resourceUri,
531
- resourceManager,
532
- logger,
533
- allowedMediaTypes
534
- );
535
- if (resolved.length > 0) {
536
- expandedParts.push(...resolved.map((part2) => ({ ...part2 })));
537
- } else {
538
- expandedParts.push(part);
539
- }
540
- continue;
541
- }
542
- if (part.type === "file" && typeof part.data === "string" && part.data.startsWith("@blob:")) {
543
- const uri = part.data.substring(1);
544
- const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
545
- const resolved = await resolveBlobReferenceToParts(
546
- resourceUri,
547
- resourceManager,
548
- logger,
549
- allowedMediaTypes
550
- );
551
- if (resolved.length > 0) {
552
- expandedParts.push(...resolved.map((part2) => ({ ...part2 })));
553
- } else {
554
- try {
555
- const resolvedData = await getFileDataWithBlobSupport(
556
- part,
557
- resourceManager,
558
- logger
559
- );
560
- expandedParts.push({ ...part, data: resolvedData });
561
- } catch (error) {
562
- logger.warn(`Failed to resolve file blob reference: ${String(error)}`);
563
- expandedParts.push(part);
564
- }
565
- }
566
- continue;
445
+ if (lastIndex < text.length) {
446
+ const trailing = text.slice(lastIndex);
447
+ if (trailing.length > 0) {
448
+ parts.push({ type: "text", text: trailing });
449
+ }
450
+ }
451
+ return parts.filter((p) => p.type !== "text" || p.text.length > 0);
452
+ }
453
+ async function expandBlobReferences(content, resourceManager, logger, allowedMediaTypes) {
454
+ if (content == null || !Array.isArray(content)) {
455
+ return [];
456
+ }
457
+ const expandedParts = [];
458
+ for (const part of content) {
459
+ if (part.type === "ui-resource") {
460
+ expandedParts.push(part);
461
+ continue;
462
+ }
463
+ if (part.type === "image" && typeof part.image === "string" && part.image.startsWith("@blob:")) {
464
+ const uri = part.image.substring(1);
465
+ const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
466
+ const resolved = await resolveBlobReferenceToParts(
467
+ resourceUri,
468
+ resourceManager,
469
+ logger,
470
+ allowedMediaTypes
471
+ );
472
+ if (resolved.length > 0) {
473
+ expandedParts.push(...resolved.map((p) => ({ ...p })));
474
+ } else {
475
+ expandedParts.push(part);
567
476
  }
568
- if (part.type === "text" && part.text.includes("@blob:")) {
569
- const expanded = await expandBlobReferences(
570
- part.text,
571
- resourceManager,
572
- logger,
573
- allowedMediaTypes
574
- );
575
- if (typeof expanded === "string") {
576
- expandedParts.push({ ...part, text: expanded });
577
- } else if (Array.isArray(expanded)) {
578
- expandedParts.push(...expanded.map((part2) => ({ ...part2 })));
579
- } else {
477
+ continue;
478
+ }
479
+ if (part.type === "file" && typeof part.data === "string" && part.data.startsWith("@blob:")) {
480
+ const uri = part.data.substring(1);
481
+ const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
482
+ const resolved = await resolveBlobReferenceToParts(
483
+ resourceUri,
484
+ resourceManager,
485
+ logger,
486
+ allowedMediaTypes
487
+ );
488
+ if (resolved.length > 0) {
489
+ expandedParts.push(...resolved.map((p) => ({ ...p })));
490
+ } else {
491
+ try {
492
+ const resolvedData = await getFileDataWithBlobSupport(
493
+ part,
494
+ resourceManager,
495
+ logger
496
+ );
497
+ expandedParts.push({ ...part, data: resolvedData });
498
+ } catch (error) {
499
+ logger.warn(`Failed to resolve file blob reference: ${String(error)}`);
580
500
  expandedParts.push(part);
581
501
  }
582
- continue;
583
502
  }
584
- expandedParts.push(part);
503
+ continue;
504
+ }
505
+ if (part.type === "text" && part.text.includes("@blob:")) {
506
+ const expanded = await expandBlobsInText(
507
+ part.text,
508
+ resourceManager,
509
+ logger,
510
+ allowedMediaTypes
511
+ );
512
+ expandedParts.push(...expanded);
513
+ continue;
585
514
  }
586
- return expandedParts;
515
+ expandedParts.push(part);
587
516
  }
588
- return content;
517
+ return expandedParts;
589
518
  }
590
519
  function filterMessagesByLLMCapabilities(messages, config, logger) {
591
520
  try {
@@ -729,7 +658,25 @@ async function normalizeToolResult(result, logger) {
729
658
  void 0,
730
659
  void 0
731
660
  );
732
- const parts = coerceContentToParts(content);
661
+ const uiResources = [];
662
+ const otherContent = [];
663
+ if (Array.isArray(content)) {
664
+ for (const item of content) {
665
+ if (item && typeof item === "object" && "type" in item && item.type === "ui-resource") {
666
+ uiResources.push(item);
667
+ } else {
668
+ otherContent.push(item);
669
+ }
670
+ }
671
+ } else {
672
+ otherContent.push(content);
673
+ }
674
+ if (uiResources.length > 0) {
675
+ logger.debug(
676
+ `normalizeToolResult: extracted ${uiResources.length} UI resource(s): ${uiResources.map((r) => r.uri).join(", ")}`
677
+ );
678
+ }
679
+ const parts = coerceContentToParts(otherContent);
733
680
  const inlineMedia = [];
734
681
  parts.forEach((part, index) => {
735
682
  const hint = detectInlineMedia(part, index);
@@ -739,6 +686,7 @@ async function normalizeToolResult(result, logger) {
739
686
  });
740
687
  return {
741
688
  parts,
689
+ uiResources,
742
690
  inlineMedia
743
691
  };
744
692
  }
@@ -756,6 +704,7 @@ async function persistToolMedia(normalized, options, logger) {
756
704
  ...options.toolName ? { toolName: options.toolName } : {},
757
705
  ...options.toolCallId ? { toolCallId: options.toolCallId } : {}
758
706
  } : void 0;
707
+ const storedBlobs = [];
759
708
  if (blobStore) {
760
709
  for (const hint of normalized.inlineMedia) {
761
710
  if (!shouldPersistInlineMedia(hint)) {
@@ -780,6 +729,14 @@ async function persistToolMedia(normalized, options, logger) {
780
729
  const filename = blobRef.metadata.originalName ?? hint.filename;
781
730
  parts[hint.index] = createBlobFilePart(resourceUri, resolvedMimeType, filename);
782
731
  }
732
+ storedBlobs.push({
733
+ uri: resourceUri,
734
+ kind: hint.kind,
735
+ mimeType: blobRef.metadata.mimeType,
736
+ ...blobRef.metadata.originalName && {
737
+ filename: blobRef.metadata.originalName
738
+ }
739
+ });
783
740
  } catch (error) {
784
741
  logger.warn(
785
742
  `Failed to persist tool media: ${error instanceof Error ? error.message : String(error)}`
@@ -787,9 +744,18 @@ async function persistToolMedia(normalized, options, logger) {
787
744
  }
788
745
  }
789
746
  }
747
+ if (storedBlobs.length > 0) {
748
+ const annotations = storedBlobs.map((blob) => {
749
+ const label = blob.filename || blob.kind;
750
+ return `[Stored resource_ref:${blob.uri} (${label}, ${blob.mimeType})]`;
751
+ }).join("\n");
752
+ parts.push({ type: "text", text: annotations });
753
+ logger.debug(`Added blob reference annotations for ${storedBlobs.length} resource(s)`);
754
+ }
790
755
  const resources = extractResourceDescriptors(parts);
791
756
  return {
792
757
  parts,
758
+ uiResources: normalized.uiResources,
793
759
  ...resources ? { resources } : {}
794
760
  };
795
761
  }
@@ -836,53 +802,22 @@ async function sanitizeToolResultToContentWithBlobs(result, logger, blobStore, n
836
802
  }
837
803
  ];
838
804
  }
839
- if (isLikelyBase64String(result)) {
840
- logger.debug("sanitizeToolResultToContentWithBlobs: detected base64-like string");
841
- const approxSize = Math.floor(result.length * 3 / 4);
842
- const shouldStoreAsBlob = blobStore && approxSize > 1024;
843
- if (shouldStoreAsBlob) {
844
- try {
845
- const blobRef = await blobStore.store(result, {
846
- mimeType: "application/octet-stream",
847
- source: "tool",
848
- originalName: buildToolBlobName("output", void 0, namingOptions)
849
- });
850
- logger.debug(
851
- `Stored tool result as blob: ${blobRef.uri} (${approxSize} bytes)`
852
- );
853
- return [
854
- createBlobFilePart(
855
- blobRef.uri,
856
- "application/octet-stream",
857
- "tool-output.bin"
858
- )
859
- ];
860
- } catch (error) {
861
- logger.warn(
862
- `Failed to store blob, falling back to inline: ${String(error)}`
863
- );
864
- }
865
- }
866
- return [
867
- {
868
- type: "file",
869
- data: result,
870
- mimeType: "application/octet-stream",
871
- filename: "tool-output.bin"
872
- }
873
- ];
874
- }
875
805
  if (result.length > MAX_TOOL_TEXT_CHARS) {
876
806
  const head = result.slice(0, 4e3);
877
807
  const tail = result.slice(-1e3);
878
808
  logger.debug(
879
809
  `sanitizeToolResultToContentWithBlobs: truncating long text tool output (len=${result.length})`
880
810
  );
881
- return `${head}
811
+ return [
812
+ {
813
+ type: "text",
814
+ text: `${head}
882
815
  ... [${result.length - 5e3} chars omitted] ...
883
- ${tail}`;
816
+ ${tail}`
817
+ }
818
+ ];
884
819
  }
885
- return result;
820
+ return [{ type: "text", text: result }];
886
821
  }
887
822
  if (Array.isArray(result)) {
888
823
  const parts = [];
@@ -894,10 +829,10 @@ ${tail}`;
894
829
  blobStore,
895
830
  namingOptions
896
831
  );
897
- if (typeof processedItem === "string") {
898
- parts.push({ type: "text", text: processedItem });
899
- } else if (Array.isArray(processedItem)) {
900
- parts.push(...processedItem);
832
+ if (Array.isArray(processedItem)) {
833
+ parts.push(
834
+ ...processedItem
835
+ );
901
836
  }
902
837
  }
903
838
  return parts;
@@ -911,6 +846,34 @@ ${tail}`;
911
846
  const processedContent = [];
912
847
  for (const item of anyObj.content) {
913
848
  if (item && typeof item === "object") {
849
+ if (item.type === "resource" && item.resource) {
850
+ const resource = item.resource;
851
+ const resourceUri = resource.uri;
852
+ if (resourceUri && resourceUri.startsWith("ui://")) {
853
+ logger.debug(
854
+ `Detected MCP-UI resource: ${resourceUri} (${resource.mimeType})`
855
+ );
856
+ const resourceMeta = resource._meta || {};
857
+ const title = resourceMeta.title || resource.title;
858
+ const preferredSize = resourceMeta.preferredSize || resource.preferredSize;
859
+ const uiPart = {
860
+ type: "ui-resource",
861
+ uri: resourceUri,
862
+ mimeType: resource.mimeType || "text/html",
863
+ content: resource.text,
864
+ blob: resource.blob,
865
+ metadata: {
866
+ title,
867
+ preferredSize
868
+ }
869
+ };
870
+ if (!uiPart.metadata?.title && !uiPart.metadata?.preferredSize) {
871
+ delete uiPart.metadata;
872
+ }
873
+ processedContent.push(uiPart);
874
+ continue;
875
+ }
876
+ }
914
877
  if (item.type === "resource" && item.resource) {
915
878
  const resource = item.resource;
916
879
  if (resource.text && resource.mimeType) {
@@ -1107,17 +1070,17 @@ ${tail}`;
1107
1070
  ];
1108
1071
  }
1109
1072
  const cleaned = sanitizeDeepObject(anyObj, logger);
1110
- return (0, import_safe_stringify.safeStringify)(cleaned);
1073
+ return [{ type: "text", text: (0, import_safe_stringify.safeStringify)(cleaned) }];
1111
1074
  }
1112
- return (0, import_safe_stringify.safeStringify)(result ?? "");
1075
+ return [{ type: "text", text: (0, import_safe_stringify.safeStringify)(result ?? "") }];
1113
1076
  } catch (err) {
1114
1077
  logger.warn(
1115
1078
  `sanitizeToolResultToContentWithBlobs failed, falling back to string: ${String(err)}`
1116
1079
  );
1117
1080
  try {
1118
- return (0, import_safe_stringify.safeStringify)(result ?? "");
1081
+ return [{ type: "text", text: (0, import_safe_stringify.safeStringify)(result ?? "") }];
1119
1082
  } catch {
1120
- return String(result ?? "");
1083
+ return [{ type: "text", text: String(result ?? "") }];
1121
1084
  }
1122
1085
  }
1123
1086
  }
@@ -1161,7 +1124,19 @@ function extractResourceDescriptors(parts) {
1161
1124
  return resources.length > 0 ? resources : void 0;
1162
1125
  }
1163
1126
  async function sanitizeToolResult(result, options, logger) {
1164
- const normalized = await normalizeToolResult(result, logger);
1127
+ let display;
1128
+ let resultForNormalization = result;
1129
+ if (result && typeof result === "object" && "_display" in result) {
1130
+ const { _display: rawDisplay, ...rest } = result;
1131
+ if ((0, import_display_types.isValidDisplayData)(rawDisplay)) {
1132
+ display = rawDisplay;
1133
+ logger.debug(
1134
+ `sanitizeToolResult: extracted display data (type=${display.type}) for ${options.toolName}`
1135
+ );
1136
+ }
1137
+ resultForNormalization = rest;
1138
+ }
1139
+ const normalized = await normalizeToolResult(resultForNormalization, logger);
1165
1140
  const persisted = await persistToolMedia(
1166
1141
  normalized,
1167
1142
  {
@@ -1172,14 +1147,24 @@ async function sanitizeToolResult(result, options, logger) {
1172
1147
  logger
1173
1148
  );
1174
1149
  const fallbackContent = [{ type: "text", text: "" }];
1175
- const content = persisted.parts.length > 0 ? persisted.parts : fallbackContent;
1150
+ const allContent = [
1151
+ ...persisted.parts,
1152
+ ...persisted.uiResources
1153
+ ];
1154
+ const content = allContent.length > 0 ? allContent : fallbackContent;
1155
+ if (persisted.uiResources.length > 0) {
1156
+ logger.debug(
1157
+ `sanitizeToolResult: including ${persisted.uiResources.length} UI resource(s) in final content for ${options.toolName}`
1158
+ );
1159
+ }
1176
1160
  return {
1177
1161
  content,
1178
1162
  ...persisted.resources ? { resources: persisted.resources } : {},
1179
1163
  meta: {
1180
1164
  toolName: options.toolName,
1181
1165
  toolCallId: options.toolCallId,
1182
- ...typeof options.success === "boolean" ? { success: options.success } : {}
1166
+ success: options.success,
1167
+ ...display ? { display } : {}
1183
1168
  }
1184
1169
  };
1185
1170
  }
@@ -1212,16 +1197,6 @@ function summarizeToolContentForText(content) {
1212
1197
  function base64LengthToBytes(charLength) {
1213
1198
  return Math.floor(charLength * 3 / 4);
1214
1199
  }
1215
- function isDataUri(str) {
1216
- return str.startsWith("data:") && str.includes(";base64,");
1217
- }
1218
- function extractBase64FromDataUri(dataUri) {
1219
- const commaIndex = dataUri.indexOf(",");
1220
- return commaIndex !== -1 ? dataUri.substring(commaIndex + 1) : "";
1221
- }
1222
- function estimateTextTokens(text) {
1223
- return Math.ceil(text.length / 4);
1224
- }
1225
1200
  function toTextForToolMessage(content) {
1226
1201
  if (Array.isArray(content)) {
1227
1202
  return summarizeToolContentForText(content);
@@ -1231,12 +1206,40 @@ function toTextForToolMessage(content) {
1231
1206
  }
1232
1207
  return String(content ?? "");
1233
1208
  }
1209
+ function filterCompacted(history) {
1210
+ let summaryIndex = -1;
1211
+ for (let i = history.length - 1; i >= 0; i--) {
1212
+ const msg = history[i];
1213
+ if (msg?.metadata?.isSummary === true) {
1214
+ summaryIndex = i;
1215
+ break;
1216
+ }
1217
+ }
1218
+ if (summaryIndex === -1) {
1219
+ return history.slice();
1220
+ }
1221
+ return history.slice(summaryIndex);
1222
+ }
1223
+ function formatToolOutputForDisplay(message) {
1224
+ if ((0, import_types.isToolMessage)(message) && message.compactedAt) {
1225
+ return "[Old tool result content cleared]";
1226
+ }
1227
+ if (typeof message.content === "string") {
1228
+ return message.content;
1229
+ }
1230
+ if (Array.isArray(message.content)) {
1231
+ return message.content.filter((part) => part.type === "text").map((part) => part.text).join("\n");
1232
+ }
1233
+ return "[no content]";
1234
+ }
1234
1235
  // Annotate the CommonJS export names for ESM import in node:
1235
1236
  0 && (module.exports = {
1236
- countMessagesTokens,
1237
+ estimateMessagesTokens,
1237
1238
  expandBlobReferences,
1238
1239
  fileTypesToMimePatterns,
1240
+ filterCompacted,
1239
1241
  filterMessagesByLLMCapabilities,
1242
+ formatToolOutputForDisplay,
1240
1243
  getFileData,
1241
1244
  getFileDataWithBlobSupport,
1242
1245
  getFileMediaKind,