@dexto/core 1.1.10 → 1.2.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 (1005) hide show
  1. package/README.md +24 -4
  2. package/dist/Dexto.cjs +251 -0
  3. package/dist/Dexto.d.ts +191 -0
  4. package/dist/Dexto.d.ts.map +1 -0
  5. package/dist/Dexto.js +228 -0
  6. package/dist/agent/DextoAgent.cjs +520 -126
  7. package/dist/agent/DextoAgent.d.ts +182 -106
  8. package/dist/agent/DextoAgent.d.ts.map +1 -0
  9. package/dist/agent/DextoAgent.js +480 -126
  10. package/dist/agent/agentCard.d.ts +4 -7
  11. package/dist/agent/agentCard.d.ts.map +1 -0
  12. package/dist/agent/agentCard.js +1 -0
  13. package/dist/agent/error-codes.cjs +3 -0
  14. package/dist/agent/error-codes.d.ts +5 -3
  15. package/dist/agent/error-codes.d.ts.map +1 -0
  16. package/dist/agent/error-codes.js +4 -0
  17. package/dist/agent/errors.cjs +26 -0
  18. package/dist/agent/errors.d.ts +10 -17
  19. package/dist/agent/errors.d.ts.map +1 -0
  20. package/dist/agent/errors.js +27 -0
  21. package/dist/agent/index.cjs +3 -0
  22. package/dist/agent/index.d.ts +6 -57
  23. package/dist/agent/index.d.ts.map +1 -0
  24. package/dist/agent/index.js +3 -0
  25. package/dist/agent/registry/error-codes.cjs +2 -0
  26. package/dist/agent/registry/error-codes.d.ts +4 -3
  27. package/dist/agent/registry/error-codes.d.ts.map +1 -0
  28. package/dist/agent/registry/error-codes.js +3 -0
  29. package/dist/agent/registry/errors.cjs +58 -28
  30. package/dist/agent/registry/errors.d.ts +32 -36
  31. package/dist/agent/registry/errors.d.ts.map +1 -0
  32. package/dist/agent/registry/errors.js +59 -28
  33. package/dist/agent/registry/registry.cjs +242 -54
  34. package/dist/agent/registry/registry.d.ts +84 -21
  35. package/dist/agent/registry/registry.d.ts.map +1 -0
  36. package/dist/agent/registry/registry.js +252 -55
  37. package/dist/agent/registry/types.cjs +36 -3
  38. package/dist/agent/registry/types.d.ts +66 -24
  39. package/dist/agent/registry/types.d.ts.map +1 -0
  40. package/dist/agent/registry/types.js +34 -2
  41. package/dist/agent/registry/user-registry.cjs +140 -0
  42. package/dist/agent/registry/user-registry.d.ts +34 -0
  43. package/dist/agent/registry/user-registry.d.ts.map +1 -0
  44. package/dist/agent/registry/user-registry.js +105 -0
  45. package/dist/agent/schemas.cjs +22 -3
  46. package/dist/agent/schemas.d.ts +811 -479
  47. package/dist/agent/schemas.d.ts.map +1 -0
  48. package/dist/agent/schemas.js +23 -3
  49. package/dist/agent/state-manager.d.ts +7 -12
  50. package/dist/agent/state-manager.d.ts.map +1 -0
  51. package/dist/agent/state-manager.js +1 -0
  52. package/dist/approval/error-codes.cjs +44 -0
  53. package/dist/approval/error-codes.d.ts +21 -0
  54. package/dist/approval/error-codes.d.ts.map +1 -0
  55. package/dist/approval/error-codes.js +21 -0
  56. package/dist/approval/errors.cjs +251 -0
  57. package/dist/approval/errors.d.ts +110 -0
  58. package/dist/approval/errors.d.ts.map +1 -0
  59. package/dist/approval/errors.js +228 -0
  60. package/dist/approval/index.cjs +84 -0
  61. package/dist/approval/index.d.ts +12 -0
  62. package/dist/approval/index.d.ts.map +1 -0
  63. package/dist/approval/index.js +56 -0
  64. package/dist/approval/manager.cjs +189 -0
  65. package/dist/approval/manager.d.ts +131 -0
  66. package/dist/approval/manager.d.ts.map +1 -0
  67. package/dist/approval/manager.js +166 -0
  68. package/dist/approval/providers/event-based-approval-provider.cjs +156 -0
  69. package/dist/approval/providers/event-based-approval-provider.d.ts +39 -0
  70. package/dist/approval/providers/event-based-approval-provider.d.ts.map +1 -0
  71. package/dist/approval/providers/event-based-approval-provider.js +133 -0
  72. package/dist/approval/providers/factory.cjs +38 -0
  73. package/dist/approval/providers/factory.d.ts +12 -0
  74. package/dist/approval/providers/factory.d.ts.map +1 -0
  75. package/dist/approval/providers/factory.js +15 -0
  76. package/dist/approval/providers/noop-approval-provider.cjs +54 -0
  77. package/dist/approval/providers/noop-approval-provider.d.ts +18 -0
  78. package/dist/approval/providers/noop-approval-provider.d.ts.map +1 -0
  79. package/dist/approval/providers/noop-approval-provider.js +31 -0
  80. package/dist/approval/schemas.cjs +204 -0
  81. package/dist/approval/schemas.d.ts +775 -0
  82. package/dist/approval/schemas.d.ts.map +1 -0
  83. package/dist/approval/schemas.js +159 -0
  84. package/dist/approval/types.cjs +42 -0
  85. package/dist/approval/types.d.ts +166 -0
  86. package/dist/approval/types.d.ts.map +1 -0
  87. package/dist/approval/types.js +18 -0
  88. package/dist/chunk-C6A6W6XS.js +53 -0
  89. package/dist/config/agent-resolver.d.ts +3 -4
  90. package/dist/config/agent-resolver.d.ts.map +1 -0
  91. package/dist/config/agent-resolver.js +1 -0
  92. package/dist/config/error-codes.d.ts +2 -3
  93. package/dist/config/error-codes.d.ts.map +1 -0
  94. package/dist/config/error-codes.js +1 -0
  95. package/dist/config/errors.d.ts +3 -18
  96. package/dist/config/errors.d.ts.map +1 -0
  97. package/dist/config/errors.js +1 -0
  98. package/dist/config/index.d.ts +4 -7
  99. package/dist/config/index.d.ts.map +1 -0
  100. package/dist/config/loader.d.ts +2 -5
  101. package/dist/config/loader.d.ts.map +1 -0
  102. package/dist/config/loader.js +1 -0
  103. package/dist/config/writer.d.ts +8 -11
  104. package/dist/config/writer.d.ts.map +1 -0
  105. package/dist/config/writer.js +1 -0
  106. package/dist/context/compression/middle-removal.d.ts +3 -6
  107. package/dist/context/compression/middle-removal.d.ts.map +1 -0
  108. package/dist/context/compression/middle-removal.js +1 -0
  109. package/dist/context/compression/oldest-removal.d.ts +3 -6
  110. package/dist/context/compression/oldest-removal.d.ts.map +1 -0
  111. package/dist/context/compression/oldest-removal.js +1 -0
  112. package/dist/context/compression/types.d.ts +2 -5
  113. package/dist/context/compression/types.d.ts.map +1 -0
  114. package/dist/context/error-codes.d.ts +2 -3
  115. package/dist/context/error-codes.d.ts.map +1 -0
  116. package/dist/context/error-codes.js +1 -0
  117. package/dist/context/errors.d.ts +3 -18
  118. package/dist/context/errors.d.ts.map +1 -0
  119. package/dist/context/errors.js +1 -0
  120. package/dist/context/index.cjs +11 -0
  121. package/dist/context/index.d.ts +4 -19
  122. package/dist/context/index.d.ts.map +1 -0
  123. package/dist/context/index.js +6 -0
  124. package/dist/context/manager.cjs +156 -24
  125. package/dist/context/manager.d.ts +28 -20
  126. package/dist/context/manager.d.ts.map +1 -0
  127. package/dist/context/manager.js +153 -25
  128. package/dist/context/media-helpers.cjs +40 -0
  129. package/dist/context/media-helpers.d.ts +15 -0
  130. package/dist/context/media-helpers.d.ts.map +1 -0
  131. package/dist/context/media-helpers.js +16 -0
  132. package/dist/context/types.d.ts +27 -10
  133. package/dist/context/types.d.ts.map +1 -0
  134. package/dist/context/utils.cjs +907 -71
  135. package/dist/context/utils.d.ts +111 -15
  136. package/dist/context/utils.d.ts.map +1 -0
  137. package/dist/context/utils.js +896 -70
  138. package/dist/errors/DextoBaseError.d.ts +2 -3
  139. package/dist/errors/DextoBaseError.d.ts.map +1 -0
  140. package/dist/errors/DextoBaseError.js +1 -0
  141. package/dist/errors/DextoRuntimeError.d.ts +5 -16
  142. package/dist/errors/DextoRuntimeError.d.ts.map +1 -0
  143. package/dist/errors/DextoRuntimeError.js +1 -0
  144. package/dist/errors/DextoValidationError.d.ts +3 -16
  145. package/dist/errors/DextoValidationError.d.ts.map +1 -0
  146. package/dist/errors/DextoValidationError.js +1 -0
  147. package/dist/errors/index.d.ts +7 -14
  148. package/dist/errors/index.d.ts.map +1 -0
  149. package/dist/errors/index.js +1 -0
  150. package/dist/errors/result-bridge.d.ts +3 -18
  151. package/dist/errors/result-bridge.d.ts.map +1 -0
  152. package/dist/errors/result-bridge.js +1 -0
  153. package/dist/errors/types.cjs +7 -0
  154. package/dist/errors/types.d.ts +32 -20
  155. package/dist/errors/types.d.ts.map +1 -0
  156. package/dist/errors/types.js +8 -0
  157. package/dist/events/index.cjs +9 -3
  158. package/dist/events/index.d.ts +67 -35
  159. package/dist/events/index.d.ts.map +1 -0
  160. package/dist/events/index.js +10 -3
  161. package/dist/filesystem/error-codes.cjs +53 -0
  162. package/dist/filesystem/error-codes.d.ts +31 -0
  163. package/dist/filesystem/error-codes.d.ts.map +1 -0
  164. package/dist/filesystem/error-codes.js +30 -0
  165. package/dist/filesystem/errors.cjs +303 -0
  166. package/dist/filesystem/errors.d.ts +109 -0
  167. package/dist/filesystem/errors.d.ts.map +1 -0
  168. package/dist/filesystem/errors.js +280 -0
  169. package/dist/filesystem/filesystem-service.cjs +482 -0
  170. package/dist/filesystem/filesystem-service.d.ts +57 -0
  171. package/dist/filesystem/filesystem-service.d.ts.map +1 -0
  172. package/dist/filesystem/filesystem-service.js +449 -0
  173. package/dist/filesystem/index.cjs +37 -0
  174. package/dist/filesystem/index.d.ts +11 -0
  175. package/dist/filesystem/index.d.ts.map +1 -0
  176. package/dist/filesystem/index.js +11 -0
  177. package/dist/filesystem/path-validator.cjs +172 -0
  178. package/dist/filesystem/path-validator.d.ts +53 -0
  179. package/dist/filesystem/path-validator.d.ts.map +1 -0
  180. package/dist/filesystem/path-validator.js +139 -0
  181. package/dist/filesystem/types.d.ts +171 -0
  182. package/dist/filesystem/types.d.ts.map +1 -0
  183. package/dist/index.browser.cjs +36 -0
  184. package/dist/index.browser.d.ts +24 -51
  185. package/dist/index.browser.d.ts.map +1 -0
  186. package/dist/index.browser.js +35 -1
  187. package/dist/index.cjs +29 -1
  188. package/dist/index.d.ts +34 -89
  189. package/dist/index.d.ts.map +1 -0
  190. package/dist/index.js +15 -0
  191. package/dist/llm/error-codes.d.ts +2 -3
  192. package/dist/llm/error-codes.d.ts.map +1 -0
  193. package/dist/llm/error-codes.js +1 -0
  194. package/dist/llm/errors.d.ts +3 -18
  195. package/dist/llm/errors.d.ts.map +1 -0
  196. package/dist/llm/errors.js +1 -0
  197. package/dist/llm/formatters/anthropic.d.ts +2 -4
  198. package/dist/llm/formatters/anthropic.d.ts.map +1 -0
  199. package/dist/llm/formatters/anthropic.js +1 -0
  200. package/dist/llm/formatters/factory.d.ts +3 -6
  201. package/dist/llm/formatters/factory.d.ts.map +1 -0
  202. package/dist/llm/formatters/factory.js +1 -0
  203. package/dist/llm/formatters/openai.d.ts +2 -4
  204. package/dist/llm/formatters/openai.d.ts.map +1 -0
  205. package/dist/llm/formatters/openai.js +1 -0
  206. package/dist/llm/formatters/types.d.ts +2 -4
  207. package/dist/llm/formatters/types.d.ts.map +1 -0
  208. package/dist/llm/formatters/vercel.d.ts +6 -7
  209. package/dist/llm/formatters/vercel.d.ts.map +1 -0
  210. package/dist/llm/formatters/vercel.js +1 -0
  211. package/dist/llm/index.d.ts +8 -39
  212. package/dist/llm/index.d.ts.map +1 -0
  213. package/dist/llm/registry.cjs +30 -16
  214. package/dist/llm/registry.d.ts +27 -30
  215. package/dist/llm/registry.d.ts.map +1 -0
  216. package/dist/llm/registry.js +31 -16
  217. package/dist/llm/resolver.d.ts +6 -20
  218. package/dist/llm/resolver.d.ts.map +1 -0
  219. package/dist/llm/resolver.js +1 -0
  220. package/dist/llm/schemas.cjs +6 -2
  221. package/dist/llm/schemas.d.ts +25 -17
  222. package/dist/llm/schemas.d.ts.map +1 -0
  223. package/dist/llm/schemas.js +7 -2
  224. package/dist/llm/services/anthropic.cjs +91 -11
  225. package/dist/llm/services/anthropic.d.ts +13 -32
  226. package/dist/llm/services/anthropic.d.ts.map +1 -0
  227. package/dist/llm/services/anthropic.js +51 -11
  228. package/dist/llm/services/factory.cjs +21 -15
  229. package/dist/llm/services/factory.d.ts +5 -32
  230. package/dist/llm/services/factory.d.ts.map +1 -0
  231. package/dist/llm/services/factory.js +22 -15
  232. package/dist/llm/services/index.d.ts +2 -21
  233. package/dist/llm/services/index.d.ts.map +1 -0
  234. package/dist/llm/services/openai.cjs +120 -16
  235. package/dist/llm/services/openai.d.ts +13 -32
  236. package/dist/llm/services/openai.d.ts.map +1 -0
  237. package/dist/llm/services/openai.js +80 -16
  238. package/dist/llm/services/test-utils.integration.cjs +3 -3
  239. package/dist/llm/services/test-utils.integration.d.ts +8 -49
  240. package/dist/llm/services/test-utils.integration.d.ts.map +1 -0
  241. package/dist/llm/services/test-utils.integration.js +4 -3
  242. package/dist/llm/services/types.d.ts +5 -22
  243. package/dist/llm/services/types.d.ts.map +1 -0
  244. package/dist/llm/services/vercel.cjs +152 -74
  245. package/dist/llm/services/vercel.d.ts +18 -36
  246. package/dist/llm/services/vercel.d.ts.map +1 -0
  247. package/dist/llm/services/vercel.js +113 -75
  248. package/dist/llm/tokenizer/anthropic.d.ts +2 -4
  249. package/dist/llm/tokenizer/anthropic.d.ts.map +1 -0
  250. package/dist/llm/tokenizer/anthropic.js +1 -0
  251. package/dist/llm/tokenizer/default.d.ts +2 -4
  252. package/dist/llm/tokenizer/default.d.ts.map +1 -0
  253. package/dist/llm/tokenizer/default.js +1 -0
  254. package/dist/llm/tokenizer/factory.d.ts +3 -5
  255. package/dist/llm/tokenizer/factory.d.ts.map +1 -0
  256. package/dist/llm/tokenizer/factory.js +1 -0
  257. package/dist/llm/tokenizer/google.d.ts +2 -4
  258. package/dist/llm/tokenizer/google.d.ts.map +1 -0
  259. package/dist/llm/tokenizer/google.js +1 -0
  260. package/dist/llm/tokenizer/openai.cjs +1 -1
  261. package/dist/llm/tokenizer/openai.d.ts +3 -5
  262. package/dist/llm/tokenizer/openai.d.ts.map +1 -0
  263. package/dist/llm/tokenizer/openai.js +2 -1
  264. package/dist/llm/tokenizer/types.d.ts +3 -4
  265. package/dist/llm/tokenizer/types.d.ts.map +1 -0
  266. package/dist/llm/tokenizer/types.js +1 -0
  267. package/dist/llm/types.d.ts +11 -12
  268. package/dist/llm/types.d.ts.map +1 -0
  269. package/dist/llm/types.js +1 -0
  270. package/dist/llm/validation.d.ts +8 -23
  271. package/dist/llm/validation.d.ts.map +1 -0
  272. package/dist/llm/validation.js +1 -0
  273. package/dist/logger/browser.d.ts +4 -5
  274. package/dist/logger/browser.d.ts.map +1 -0
  275. package/dist/logger/browser.js +1 -0
  276. package/dist/logger/index.d.ts +2 -1
  277. package/dist/logger/index.d.ts.map +1 -0
  278. package/dist/logger/logger.cjs +35 -7
  279. package/dist/logger/logger.d.ts +47 -5
  280. package/dist/logger/logger.d.ts.map +1 -0
  281. package/dist/logger/logger.js +36 -7
  282. package/dist/mcp/error-codes.cjs +1 -0
  283. package/dist/mcp/error-codes.d.ts +3 -3
  284. package/dist/mcp/error-codes.d.ts.map +1 -0
  285. package/dist/mcp/error-codes.js +2 -0
  286. package/dist/mcp/errors.cjs +12 -0
  287. package/dist/mcp/errors.d.ts +9 -17
  288. package/dist/mcp/errors.d.ts.map +1 -0
  289. package/dist/mcp/errors.js +13 -0
  290. package/dist/mcp/index.d.ts +8 -26
  291. package/dist/mcp/index.d.ts.map +1 -0
  292. package/dist/mcp/manager.cjs +528 -130
  293. package/dist/mcp/manager.d.ts +124 -58
  294. package/dist/mcp/manager.d.ts.map +1 -0
  295. package/dist/mcp/manager.js +529 -130
  296. package/dist/mcp/mcp-client.cjs +172 -10
  297. package/dist/mcp/mcp-client.d.ts +36 -14
  298. package/dist/mcp/mcp-client.d.ts.map +1 -0
  299. package/dist/mcp/mcp-client.js +177 -10
  300. package/dist/mcp/resolver.d.ts +5 -20
  301. package/dist/mcp/resolver.d.ts.map +1 -0
  302. package/dist/mcp/resolver.js +1 -0
  303. package/dist/mcp/schemas.cjs +13 -5
  304. package/dist/mcp/schemas.d.ts +31 -28
  305. package/dist/mcp/schemas.d.ts.map +1 -0
  306. package/dist/mcp/schemas.js +11 -5
  307. package/dist/mcp/types.d.ts +19 -11
  308. package/dist/mcp/types.d.ts.map +1 -0
  309. package/dist/memory/error-codes.cjs +39 -0
  310. package/dist/memory/error-codes.d.ts +15 -0
  311. package/dist/memory/error-codes.d.ts.map +1 -0
  312. package/dist/memory/error-codes.js +16 -0
  313. package/dist/memory/errors.cjs +112 -0
  314. package/dist/memory/errors.d.ts +16 -0
  315. package/dist/memory/errors.d.ts.map +1 -0
  316. package/dist/memory/errors.js +89 -0
  317. package/dist/memory/index.cjs +43 -0
  318. package/dist/memory/index.d.ts +6 -0
  319. package/dist/memory/index.d.ts.map +1 -0
  320. package/dist/memory/index.js +19 -0
  321. package/dist/memory/manager.cjs +214 -0
  322. package/dist/memory/manager.d.ts +56 -0
  323. package/dist/memory/manager.d.ts.map +1 -0
  324. package/dist/memory/manager.js +196 -0
  325. package/dist/memory/schemas.cjs +82 -0
  326. package/dist/memory/schemas.d.ts +129 -0
  327. package/dist/memory/schemas.d.ts.map +1 -0
  328. package/dist/memory/schemas.js +54 -0
  329. package/dist/memory/types.d.ts +76 -0
  330. package/dist/memory/types.d.ts.map +1 -0
  331. package/dist/plugins/builtins/content-policy.cjs +112 -0
  332. package/dist/plugins/builtins/content-policy.d.ts +26 -0
  333. package/dist/plugins/builtins/content-policy.d.ts.map +1 -0
  334. package/dist/plugins/builtins/content-policy.js +89 -0
  335. package/dist/plugins/builtins/response-sanitizer.cjs +102 -0
  336. package/dist/plugins/builtins/response-sanitizer.d.ts +25 -0
  337. package/dist/plugins/builtins/response-sanitizer.d.ts.map +1 -0
  338. package/dist/plugins/builtins/response-sanitizer.js +79 -0
  339. package/dist/plugins/error-codes.cjs +39 -0
  340. package/dist/plugins/error-codes.d.ts +26 -0
  341. package/dist/plugins/error-codes.d.ts.map +1 -0
  342. package/dist/plugins/error-codes.js +16 -0
  343. package/dist/plugins/index.cjs +54 -0
  344. package/dist/plugins/index.d.ts +19 -0
  345. package/dist/plugins/index.d.ts.map +1 -0
  346. package/dist/plugins/index.js +25 -0
  347. package/dist/plugins/loader.cjs +151 -0
  348. package/dist/plugins/loader.d.ts +30 -0
  349. package/dist/plugins/loader.d.ts.map +1 -0
  350. package/dist/plugins/loader.js +125 -0
  351. package/dist/plugins/manager.cjs +386 -0
  352. package/dist/plugins/manager.d.ts +97 -0
  353. package/dist/plugins/manager.d.ts.map +1 -0
  354. package/dist/plugins/manager.js +363 -0
  355. package/dist/plugins/registrations/builtins.cjs +51 -0
  356. package/dist/plugins/registrations/builtins.d.ts +17 -0
  357. package/dist/plugins/registrations/builtins.d.ts.map +1 -0
  358. package/dist/plugins/registrations/builtins.js +28 -0
  359. package/dist/plugins/schemas.cjs +61 -0
  360. package/dist/plugins/schemas.d.ts +138 -0
  361. package/dist/plugins/schemas.d.ts.map +1 -0
  362. package/dist/plugins/schemas.js +36 -0
  363. package/dist/{storage/backend/cache-backend.cjs → plugins/types.cjs} +2 -2
  364. package/dist/plugins/types.d.ts +152 -0
  365. package/dist/plugins/types.d.ts.map +1 -0
  366. package/dist/preferences/constants.d.ts +2 -3
  367. package/dist/preferences/constants.d.ts.map +1 -0
  368. package/dist/preferences/constants.js +1 -0
  369. package/dist/preferences/error-codes.d.ts +2 -3
  370. package/dist/preferences/error-codes.d.ts.map +1 -0
  371. package/dist/preferences/error-codes.js +1 -0
  372. package/dist/preferences/errors.d.ts +4 -19
  373. package/dist/preferences/errors.d.ts.map +1 -0
  374. package/dist/preferences/errors.js +1 -0
  375. package/dist/preferences/index.d.ts +5 -20
  376. package/dist/preferences/index.d.ts.map +1 -0
  377. package/dist/preferences/index.js +1 -0
  378. package/dist/preferences/loader.cjs +3 -1
  379. package/dist/preferences/loader.d.ts +18 -12
  380. package/dist/preferences/loader.d.ts.map +1 -0
  381. package/dist/preferences/loader.js +4 -1
  382. package/dist/preferences/schemas.cjs +2 -1
  383. package/dist/preferences/schemas.d.ts +27 -21
  384. package/dist/preferences/schemas.d.ts.map +1 -0
  385. package/dist/preferences/schemas.js +3 -1
  386. package/dist/process/command-validator.cjs +544 -0
  387. package/dist/process/command-validator.d.ts +46 -0
  388. package/dist/process/command-validator.d.ts.map +1 -0
  389. package/dist/process/command-validator.js +521 -0
  390. package/dist/process/error-codes.cjs +47 -0
  391. package/dist/process/error-codes.d.ts +25 -0
  392. package/dist/process/error-codes.d.ts.map +1 -0
  393. package/dist/process/error-codes.js +24 -0
  394. package/dist/process/errors.cjs +244 -0
  395. package/dist/process/errors.d.ts +87 -0
  396. package/dist/process/errors.d.ts.map +1 -0
  397. package/dist/process/errors.js +221 -0
  398. package/dist/process/index.cjs +37 -0
  399. package/dist/process/index.d.ts +11 -0
  400. package/dist/process/index.d.ts.map +1 -0
  401. package/dist/process/index.js +11 -0
  402. package/dist/process/process-service.cjs +443 -0
  403. package/dist/process/process-service.d.ts +62 -0
  404. package/dist/process/process-service.d.ts.map +1 -0
  405. package/dist/process/process-service.js +410 -0
  406. package/dist/{storage/backend/database-backend.cjs → process/types.cjs} +2 -2
  407. package/dist/process/types.d.ts +107 -0
  408. package/dist/process/types.d.ts.map +1 -0
  409. package/dist/prompts/error-codes.cjs +38 -0
  410. package/dist/prompts/error-codes.d.ts +15 -0
  411. package/dist/prompts/error-codes.d.ts.map +1 -0
  412. package/dist/prompts/error-codes.js +15 -0
  413. package/dist/prompts/errors.cjs +144 -0
  414. package/dist/prompts/errors.d.ts +45 -0
  415. package/dist/prompts/errors.d.ts.map +1 -0
  416. package/dist/prompts/errors.js +121 -0
  417. package/dist/prompts/index.cjs +53 -0
  418. package/dist/prompts/index.d.ts +13 -0
  419. package/dist/prompts/index.d.ts.map +1 -0
  420. package/dist/prompts/index.js +21 -0
  421. package/dist/prompts/name-validation.cjs +45 -0
  422. package/dist/prompts/name-validation.d.ts +9 -0
  423. package/dist/prompts/name-validation.d.ts.map +1 -0
  424. package/dist/prompts/name-validation.js +19 -0
  425. package/dist/prompts/prompt-manager.cjs +374 -0
  426. package/dist/prompts/prompt-manager.d.ts +74 -0
  427. package/dist/prompts/prompt-manager.d.ts.map +1 -0
  428. package/dist/prompts/prompt-manager.js +353 -0
  429. package/dist/prompts/providers/custom-prompt-provider.cjs +283 -0
  430. package/dist/prompts/providers/custom-prompt-provider.d.ts +36 -0
  431. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -0
  432. package/dist/prompts/providers/custom-prompt-provider.js +260 -0
  433. package/dist/prompts/providers/file-prompt-provider.cjs +399 -0
  434. package/dist/prompts/providers/file-prompt-provider.d.ts +47 -0
  435. package/dist/prompts/providers/file-prompt-provider.d.ts.map +1 -0
  436. package/dist/prompts/providers/file-prompt-provider.js +376 -0
  437. package/dist/prompts/providers/mcp-prompt-provider.cjs +102 -0
  438. package/dist/prompts/providers/mcp-prompt-provider.d.ts +35 -0
  439. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -0
  440. package/dist/prompts/providers/mcp-prompt-provider.js +79 -0
  441. package/dist/prompts/providers/starter-prompt-provider.cjs +170 -0
  442. package/dist/prompts/providers/starter-prompt-provider.d.ts +45 -0
  443. package/dist/prompts/providers/starter-prompt-provider.d.ts.map +1 -0
  444. package/dist/prompts/providers/starter-prompt-provider.js +147 -0
  445. package/dist/prompts/schemas.cjs +54 -0
  446. package/dist/prompts/schemas.d.ts +65 -0
  447. package/dist/prompts/schemas.d.ts.map +1 -0
  448. package/dist/prompts/schemas.js +31 -0
  449. package/dist/prompts/types.cjs +16 -0
  450. package/dist/prompts/types.d.ts +64 -0
  451. package/dist/prompts/types.d.ts.map +1 -0
  452. package/dist/prompts/types.js +0 -0
  453. package/dist/prompts/utils.cjs +176 -0
  454. package/dist/prompts/utils.d.ts +32 -0
  455. package/dist/prompts/utils.d.ts.map +1 -0
  456. package/dist/prompts/utils.js +150 -0
  457. package/dist/resources/error-codes.cjs +38 -0
  458. package/dist/resources/error-codes.d.ts +13 -0
  459. package/dist/resources/error-codes.d.ts.map +1 -0
  460. package/dist/resources/error-codes.js +15 -0
  461. package/dist/resources/errors.cjs +155 -0
  462. package/dist/resources/errors.d.ts +48 -0
  463. package/dist/resources/errors.d.ts.map +1 -0
  464. package/dist/resources/errors.js +132 -0
  465. package/dist/resources/handlers/blob-handler.cjs +230 -0
  466. package/dist/resources/handlers/blob-handler.d.ts +38 -0
  467. package/dist/resources/handlers/blob-handler.d.ts.map +1 -0
  468. package/dist/resources/handlers/blob-handler.js +207 -0
  469. package/dist/resources/handlers/factory.cjs +50 -0
  470. package/dist/resources/handlers/factory.d.ts +11 -0
  471. package/dist/resources/handlers/factory.d.ts.map +1 -0
  472. package/dist/resources/handlers/factory.js +26 -0
  473. package/dist/resources/handlers/filesystem-handler.cjs +385 -0
  474. package/dist/resources/handlers/filesystem-handler.d.ts +35 -0
  475. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -0
  476. package/dist/resources/handlers/filesystem-handler.js +352 -0
  477. package/dist/resources/handlers/types.cjs +16 -0
  478. package/dist/resources/handlers/types.d.ts +15 -0
  479. package/dist/resources/handlers/types.d.ts.map +1 -0
  480. package/dist/resources/handlers/types.js +0 -0
  481. package/dist/resources/index.cjs +58 -0
  482. package/dist/resources/index.d.ts +39 -0
  483. package/dist/resources/index.d.ts.map +1 -0
  484. package/dist/resources/index.js +35 -0
  485. package/dist/resources/internal-provider.cjs +141 -0
  486. package/dist/resources/internal-provider.d.ts +19 -0
  487. package/dist/resources/internal-provider.d.ts.map +1 -0
  488. package/dist/resources/internal-provider.js +118 -0
  489. package/dist/resources/manager.cjs +221 -0
  490. package/dist/resources/manager.d.ts +29 -0
  491. package/dist/resources/manager.d.ts.map +1 -0
  492. package/dist/resources/manager.js +198 -0
  493. package/dist/resources/reference-parser.cjs +217 -0
  494. package/dist/resources/reference-parser.d.ts +33 -0
  495. package/dist/resources/reference-parser.d.ts.map +1 -0
  496. package/dist/resources/reference-parser.js +191 -0
  497. package/dist/resources/schemas.cjs +98 -0
  498. package/dist/resources/schemas.d.ts +212 -0
  499. package/dist/resources/schemas.d.ts.map +1 -0
  500. package/dist/resources/schemas.js +73 -0
  501. package/dist/resources/types.cjs +16 -0
  502. package/dist/resources/types.d.ts +57 -0
  503. package/dist/resources/types.d.ts.map +1 -0
  504. package/dist/resources/types.js +0 -0
  505. package/dist/search/index.d.ts +2 -4
  506. package/dist/search/index.d.ts.map +1 -0
  507. package/dist/search/index.js +1 -0
  508. package/dist/search/search-service.d.ts +5 -9
  509. package/dist/search/search-service.d.ts.map +1 -0
  510. package/dist/search/search-service.js +1 -0
  511. package/dist/search/types.d.ts +7 -10
  512. package/dist/search/types.d.ts.map +1 -0
  513. package/dist/session/chat-session.cjs +105 -12
  514. package/dist/session/chat-session.d.ts +32 -43
  515. package/dist/session/chat-session.d.ts.map +1 -0
  516. package/dist/session/chat-session.js +106 -12
  517. package/dist/session/error-codes.d.ts +2 -3
  518. package/dist/session/error-codes.d.ts.map +1 -0
  519. package/dist/session/error-codes.js +1 -0
  520. package/dist/session/errors.d.ts +2 -17
  521. package/dist/session/errors.d.ts.map +1 -0
  522. package/dist/session/errors.js +1 -0
  523. package/dist/session/history/database.d.ts +6 -9
  524. package/dist/session/history/database.d.ts.map +1 -0
  525. package/dist/session/history/database.js +1 -0
  526. package/dist/session/history/factory.d.ts +4 -8
  527. package/dist/session/history/factory.d.ts.map +1 -0
  528. package/dist/session/history/factory.js +1 -0
  529. package/dist/session/history/memory.cjs +39 -0
  530. package/dist/session/history/memory.d.ts +14 -0
  531. package/dist/session/history/memory.d.ts.map +1 -0
  532. package/dist/session/history/memory.js +16 -0
  533. package/dist/session/history/types.d.ts +3 -6
  534. package/dist/session/history/types.d.ts.map +1 -0
  535. package/dist/session/index.d.ts +3 -50
  536. package/dist/session/index.d.ts.map +1 -0
  537. package/dist/session/index.js +1 -0
  538. package/dist/session/schemas.d.ts +4 -6
  539. package/dist/session/schemas.d.ts.map +1 -0
  540. package/dist/session/schemas.js +1 -0
  541. package/dist/session/session-manager.cjs +63 -29
  542. package/dist/session/session-manager.d.ts +33 -43
  543. package/dist/session/session-manager.d.ts.map +1 -0
  544. package/dist/session/session-manager.js +64 -29
  545. package/dist/session/title-generator.cjs +140 -0
  546. package/dist/session/title-generator.d.ts +22 -0
  547. package/dist/session/title-generator.d.ts.map +1 -0
  548. package/dist/session/title-generator.js +116 -0
  549. package/dist/storage/blob/factory.cjs +50 -0
  550. package/dist/storage/blob/factory.d.ts +10 -0
  551. package/dist/storage/blob/factory.d.ts.map +1 -0
  552. package/dist/storage/blob/factory.js +27 -0
  553. package/dist/storage/blob/local-blob-store.cjs +503 -0
  554. package/dist/storage/blob/local-blob-store.d.ts +57 -0
  555. package/dist/storage/blob/local-blob-store.d.ts.map +1 -0
  556. package/dist/storage/blob/local-blob-store.js +470 -0
  557. package/dist/storage/blob/schemas.cjs +53 -0
  558. package/dist/storage/blob/schemas.d.ts +80 -0
  559. package/dist/storage/blob/schemas.d.ts.map +1 -0
  560. package/dist/storage/blob/schemas.js +29 -0
  561. package/dist/storage/blob/types.cjs +16 -0
  562. package/dist/storage/blob/types.d.ts +154 -0
  563. package/dist/storage/blob/types.d.ts.map +1 -0
  564. package/dist/storage/blob/types.js +0 -0
  565. package/dist/storage/cache/factory.cjs +63 -0
  566. package/dist/storage/cache/factory.d.ts +8 -0
  567. package/dist/storage/cache/factory.d.ts.map +1 -0
  568. package/dist/storage/cache/factory.js +30 -0
  569. package/dist/storage/cache/memory-cache-store.cjs +107 -0
  570. package/dist/storage/cache/memory-cache-store.d.ts +26 -0
  571. package/dist/storage/cache/memory-cache-store.d.ts.map +1 -0
  572. package/dist/storage/cache/memory-cache-store.js +84 -0
  573. package/dist/storage/{backend/redis-backend.cjs → cache/redis-store.cjs} +8 -22
  574. package/dist/storage/{backend/redis-backend.d.ts → cache/redis-store.d.ts} +8 -14
  575. package/dist/storage/cache/redis-store.d.ts.map +1 -0
  576. package/dist/storage/{backend/redis-backend.js → cache/redis-store.js} +5 -18
  577. package/dist/storage/cache/schemas.cjs +77 -0
  578. package/dist/storage/cache/schemas.d.ts +151 -0
  579. package/dist/storage/cache/schemas.d.ts.map +1 -0
  580. package/dist/storage/cache/schemas.js +53 -0
  581. package/dist/storage/cache/types.cjs +16 -0
  582. package/dist/storage/{backend/cache-backend.d.cts → cache/types.d.ts} +3 -4
  583. package/dist/storage/cache/types.d.ts.map +1 -0
  584. package/dist/storage/cache/types.js +0 -0
  585. package/dist/storage/database/factory.cjs +86 -0
  586. package/dist/storage/database/factory.d.ts +10 -0
  587. package/dist/storage/database/factory.d.ts.map +1 -0
  588. package/dist/storage/database/factory.js +53 -0
  589. package/dist/storage/{backend/memory-backend.cjs → database/memory-database-store.cjs} +10 -28
  590. package/dist/storage/{backend/memory-backend.d.ts → database/memory-database-store.d.ts} +7 -12
  591. package/dist/storage/database/memory-database-store.d.ts.map +1 -0
  592. package/dist/storage/{backend/memory-backend.js → database/memory-database-store.js} +7 -24
  593. package/dist/storage/{backend/postgres-backend.cjs → database/postgres-store.cjs} +11 -11
  594. package/dist/storage/{backend/postgres-backend.d.ts → database/postgres-store.d.ts} +8 -11
  595. package/dist/storage/database/postgres-store.d.ts.map +1 -0
  596. package/dist/storage/{backend/postgres-backend.js → database/postgres-store.js} +8 -7
  597. package/dist/storage/database/schemas.cjs +89 -0
  598. package/dist/storage/database/schemas.d.ts +227 -0
  599. package/dist/storage/database/schemas.d.ts.map +1 -0
  600. package/dist/storage/database/schemas.js +65 -0
  601. package/dist/storage/{backend/sqlite-backend.cjs → database/sqlite-store.cjs} +35 -16
  602. package/dist/storage/{backend/sqlite-backend.d.cts → database/sqlite-store.d.ts} +9 -11
  603. package/dist/storage/database/sqlite-store.d.ts.map +1 -0
  604. package/dist/storage/{backend/sqlite-backend.js → database/sqlite-store.js} +32 -12
  605. package/dist/storage/database/types.cjs +16 -0
  606. package/dist/storage/{backend/database-backend.d.cts → database/types.d.ts} +3 -4
  607. package/dist/storage/database/types.d.ts.map +1 -0
  608. package/dist/storage/database/types.js +0 -0
  609. package/dist/storage/error-codes.cjs +16 -0
  610. package/dist/storage/error-codes.d.ts +20 -5
  611. package/dist/storage/error-codes.d.ts.map +1 -0
  612. package/dist/storage/error-codes.js +17 -0
  613. package/dist/storage/errors.cjs +210 -7
  614. package/dist/storage/errors.d.ts +75 -19
  615. package/dist/storage/errors.d.ts.map +1 -0
  616. package/dist/storage/errors.js +205 -1
  617. package/dist/storage/index.cjs +24 -5
  618. package/dist/storage/index.d.ts +48 -7
  619. package/dist/storage/index.d.ts.map +1 -0
  620. package/dist/storage/index.js +21 -4
  621. package/dist/storage/schemas.cjs +22 -84
  622. package/dist/storage/schemas.d.ts +98 -574
  623. package/dist/storage/schemas.d.ts.map +1 -0
  624. package/dist/storage/schemas.js +26 -84
  625. package/dist/storage/storage-manager.cjs +135 -118
  626. package/dist/storage/storage-manager.d.ts +55 -26
  627. package/dist/storage/storage-manager.d.ts.map +1 -0
  628. package/dist/storage/storage-manager.js +135 -107
  629. package/dist/storage/types.d.ts +7 -5
  630. package/dist/storage/types.d.ts.map +1 -0
  631. package/dist/systemPrompt/contributors.cjs +54 -0
  632. package/dist/systemPrompt/contributors.d.ts +30 -15
  633. package/dist/systemPrompt/contributors.d.ts.map +1 -0
  634. package/dist/systemPrompt/contributors.js +54 -0
  635. package/dist/systemPrompt/error-codes.d.ts +2 -3
  636. package/dist/systemPrompt/error-codes.d.ts.map +1 -0
  637. package/dist/systemPrompt/error-codes.js +1 -0
  638. package/dist/systemPrompt/errors.d.ts +2 -17
  639. package/dist/systemPrompt/errors.d.ts.map +1 -0
  640. package/dist/systemPrompt/errors.js +1 -0
  641. package/dist/systemPrompt/in-built-prompts.cjs +13 -15
  642. package/dist/systemPrompt/in-built-prompts.d.ts +4 -14
  643. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -0
  644. package/dist/systemPrompt/in-built-prompts.js +14 -15
  645. package/dist/systemPrompt/index.cjs +11 -0
  646. package/dist/systemPrompt/index.d.ts +7 -14
  647. package/dist/systemPrompt/index.d.ts.map +1 -0
  648. package/dist/systemPrompt/index.js +9 -0
  649. package/dist/systemPrompt/manager.cjs +24 -6
  650. package/dist/systemPrompt/manager.d.ts +8 -16
  651. package/dist/systemPrompt/manager.d.ts.map +1 -0
  652. package/dist/systemPrompt/manager.js +25 -6
  653. package/dist/systemPrompt/registry.d.ts +6 -16
  654. package/dist/systemPrompt/registry.d.ts.map +1 -0
  655. package/dist/systemPrompt/registry.js +1 -0
  656. package/dist/systemPrompt/schemas.cjs +17 -3
  657. package/dist/systemPrompt/schemas.d.ts +204 -30
  658. package/dist/systemPrompt/schemas.d.ts.map +1 -0
  659. package/dist/systemPrompt/schemas.js +18 -3
  660. package/dist/systemPrompt/types.d.ts +3 -12
  661. package/dist/systemPrompt/types.d.ts.map +1 -0
  662. package/dist/telemetry/decorators.cjs +175 -0
  663. package/dist/telemetry/decorators.d.ts +17 -0
  664. package/dist/telemetry/decorators.d.ts.map +1 -0
  665. package/dist/telemetry/decorators.js +157 -0
  666. package/dist/telemetry/exporters.cjs +108 -0
  667. package/dist/telemetry/exporters.d.ts +29 -0
  668. package/dist/telemetry/exporters.d.ts.map +1 -0
  669. package/dist/telemetry/exporters.js +85 -0
  670. package/dist/telemetry/index.cjs +28 -0
  671. package/dist/telemetry/index.d.ts +2 -0
  672. package/dist/telemetry/index.d.ts.map +1 -0
  673. package/dist/telemetry/index.js +5 -0
  674. package/dist/telemetry/schemas.cjs +71 -0
  675. package/dist/telemetry/schemas.d.ts +54 -0
  676. package/dist/telemetry/schemas.d.ts.map +1 -0
  677. package/dist/telemetry/schemas.js +48 -0
  678. package/dist/telemetry/telemetry.cjs +228 -0
  679. package/dist/telemetry/telemetry.d.ts +74 -0
  680. package/dist/telemetry/telemetry.d.ts.map +1 -0
  681. package/dist/telemetry/telemetry.js +205 -0
  682. package/dist/telemetry/types.cjs +16 -0
  683. package/dist/telemetry/types.d.ts +22 -0
  684. package/dist/telemetry/types.d.ts.map +1 -0
  685. package/dist/telemetry/types.js +0 -0
  686. package/dist/telemetry/utils.cjs +87 -0
  687. package/dist/telemetry/utils.d.ts +21 -0
  688. package/dist/telemetry/utils.d.ts.map +1 -0
  689. package/dist/telemetry/utils.js +62 -0
  690. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +1 -1
  691. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +6 -12
  692. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -0
  693. package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -1
  694. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +3 -5
  695. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -0
  696. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -0
  697. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +9 -9
  698. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +7 -13
  699. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -0
  700. package/dist/tools/confirmation/allowed-tools-provider/storage.js +10 -9
  701. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -3
  702. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -0
  703. package/dist/tools/error-codes.d.ts +2 -3
  704. package/dist/tools/error-codes.d.ts.map +1 -0
  705. package/dist/tools/error-codes.js +1 -0
  706. package/dist/tools/errors.d.ts +2 -17
  707. package/dist/tools/errors.d.ts.map +1 -0
  708. package/dist/tools/errors.js +1 -0
  709. package/dist/tools/index.cjs +0 -2
  710. package/dist/tools/index.d.ts +11 -19
  711. package/dist/tools/index.d.ts.map +1 -0
  712. package/dist/tools/index.js +1 -1
  713. package/dist/tools/internal-tools/constants.cjs +39 -0
  714. package/dist/tools/internal-tools/constants.d.ts +12 -0
  715. package/dist/tools/internal-tools/constants.d.ts.map +1 -0
  716. package/dist/tools/internal-tools/constants.js +16 -0
  717. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +57 -0
  718. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +18 -0
  719. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +1 -0
  720. package/dist/tools/internal-tools/implementations/ask-user-tool.js +34 -0
  721. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +106 -0
  722. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +13 -0
  723. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -0
  724. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +73 -0
  725. package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +49 -0
  726. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +12 -0
  727. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +1 -0
  728. package/dist/tools/internal-tools/implementations/bash-output-tool.js +26 -0
  729. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +62 -0
  730. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +12 -0
  731. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -0
  732. package/dist/tools/internal-tools/implementations/edit-file-tool.js +39 -0
  733. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +57 -0
  734. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +12 -0
  735. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -0
  736. package/dist/tools/internal-tools/implementations/glob-files-tool.js +34 -0
  737. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +71 -0
  738. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +12 -0
  739. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -0
  740. package/dist/tools/internal-tools/implementations/grep-content-tool.js +48 -0
  741. package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +47 -0
  742. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +12 -0
  743. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +1 -0
  744. package/dist/tools/internal-tools/implementations/kill-process-tool.js +24 -0
  745. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +55 -0
  746. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +12 -0
  747. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -0
  748. package/dist/tools/internal-tools/implementations/read-file-tool.js +32 -0
  749. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +3 -11
  750. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +1 -0
  751. package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -0
  752. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +56 -0
  753. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +12 -0
  754. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -0
  755. package/dist/tools/internal-tools/implementations/write-file-tool.js +33 -0
  756. package/dist/tools/internal-tools/index.cjs +3 -1
  757. package/dist/tools/internal-tools/index.d.ts +4 -13
  758. package/dist/tools/internal-tools/index.d.ts.map +1 -0
  759. package/dist/tools/internal-tools/index.js +1 -0
  760. package/dist/tools/internal-tools/provider.cjs +9 -11
  761. package/dist/tools/internal-tools/provider.d.ts +6 -20
  762. package/dist/tools/internal-tools/provider.d.ts.map +1 -0
  763. package/dist/tools/internal-tools/provider.js +10 -11
  764. package/dist/tools/internal-tools/registry.cjs +45 -4
  765. package/dist/tools/internal-tools/registry.d.ts +13 -22
  766. package/dist/tools/internal-tools/registry.d.ts.map +1 -0
  767. package/dist/tools/internal-tools/registry.js +46 -3
  768. package/dist/tools/schemas.cjs +32 -7
  769. package/dist/tools/schemas.d.ts +41 -8
  770. package/dist/tools/schemas.d.ts.map +1 -0
  771. package/dist/tools/schemas.js +25 -4
  772. package/dist/tools/tool-manager.cjs +329 -30
  773. package/dist/tools/tool-manager.d.ts +94 -22
  774. package/dist/tools/tool-manager.d.ts.map +1 -0
  775. package/dist/tools/tool-manager.js +289 -30
  776. package/dist/tools/types.d.ts +9 -11
  777. package/dist/tools/types.d.ts.map +1 -0
  778. package/dist/utils/api-key-resolver.d.ts +5 -7
  779. package/dist/utils/api-key-resolver.d.ts.map +1 -0
  780. package/dist/utils/api-key-resolver.js +1 -0
  781. package/dist/utils/api-key-store.d.ts +5 -7
  782. package/dist/utils/api-key-store.d.ts.map +1 -0
  783. package/dist/utils/api-key-store.js +1 -0
  784. package/dist/utils/async-context.cjs +51 -0
  785. package/dist/utils/async-context.d.ts +68 -0
  786. package/dist/utils/async-context.d.ts.map +1 -0
  787. package/dist/utils/async-context.js +25 -0
  788. package/dist/utils/debug.cjs +40 -0
  789. package/dist/utils/debug.d.ts +2 -0
  790. package/dist/utils/debug.d.ts.map +1 -0
  791. package/dist/utils/debug.js +17 -0
  792. package/dist/utils/env.d.ts +4 -5
  793. package/dist/utils/env.d.ts.map +1 -0
  794. package/dist/utils/env.js +1 -0
  795. package/dist/utils/error-conversion.d.ts +2 -3
  796. package/dist/utils/error-conversion.d.ts.map +1 -0
  797. package/dist/utils/error-conversion.js +1 -0
  798. package/dist/utils/execution-context.d.ts +5 -6
  799. package/dist/utils/execution-context.d.ts.map +1 -0
  800. package/dist/utils/execution-context.js +1 -0
  801. package/dist/utils/fs-walk.d.ts +2 -3
  802. package/dist/utils/fs-walk.d.ts.map +1 -0
  803. package/dist/utils/fs-walk.js +1 -0
  804. package/dist/utils/index.cjs +3 -1
  805. package/dist/utils/index.d.ts +14 -63
  806. package/dist/utils/index.d.ts.map +1 -0
  807. package/dist/utils/index.js +1 -0
  808. package/dist/utils/path.d.ts +9 -10
  809. package/dist/utils/path.d.ts.map +1 -0
  810. package/dist/utils/path.js +1 -0
  811. package/dist/utils/port-utils.d.ts +2 -3
  812. package/dist/utils/port-utils.d.ts.map +1 -0
  813. package/dist/utils/port-utils.js +1 -0
  814. package/dist/utils/redactor.d.ts +2 -3
  815. package/dist/utils/redactor.d.ts.map +1 -0
  816. package/dist/utils/redactor.js +1 -0
  817. package/dist/utils/result.d.ts +14 -27
  818. package/dist/utils/result.d.ts.map +1 -0
  819. package/dist/utils/result.js +1 -0
  820. package/dist/utils/safe-stringify.d.ts +2 -3
  821. package/dist/utils/safe-stringify.d.ts.map +1 -0
  822. package/dist/utils/safe-stringify.js +1 -0
  823. package/dist/utils/schema-metadata.cjs +235 -0
  824. package/dist/utils/schema-metadata.d.ts +82 -0
  825. package/dist/utils/schema-metadata.d.ts.map +1 -0
  826. package/dist/utils/schema-metadata.js +208 -0
  827. package/dist/utils/schema.d.ts +2 -3
  828. package/dist/utils/schema.d.ts.map +1 -0
  829. package/dist/utils/schema.js +1 -0
  830. package/dist/utils/service-initializer.cjs +110 -35
  831. package/dist/utils/service-initializer.d.ts +19 -43
  832. package/dist/utils/service-initializer.d.ts.map +1 -0
  833. package/dist/utils/service-initializer.js +101 -35
  834. package/dist/utils/user-info.d.ts +2 -3
  835. package/dist/utils/user-info.d.ts.map +1 -0
  836. package/dist/utils/user-info.js +1 -0
  837. package/dist/utils/zod-schema-converter.d.ts +3 -5
  838. package/dist/utils/zod-schema-converter.d.ts.map +1 -0
  839. package/dist/utils/zod-schema-converter.js +1 -0
  840. package/package.json +16 -4
  841. package/dist/agent/DextoAgent.d.cts +0 -541
  842. package/dist/agent/agentCard.d.cts +0 -20
  843. package/dist/agent/error-codes.d.cts +0 -14
  844. package/dist/agent/errors.d.cts +0 -44
  845. package/dist/agent/index.d.cts +0 -60
  846. package/dist/agent/registry/error-codes.d.cts +0 -20
  847. package/dist/agent/registry/errors.d.cts +0 -67
  848. package/dist/agent/registry/registry.d.cts +0 -67
  849. package/dist/agent/registry/types.d.cts +0 -100
  850. package/dist/agent/schemas.d.cts +0 -1502
  851. package/dist/agent/state-manager.d.cts +0 -97
  852. package/dist/config/agent-resolver.d.cts +0 -15
  853. package/dist/config/error-codes.d.cts +0 -17
  854. package/dist/config/errors.d.cts +0 -49
  855. package/dist/config/index.d.cts +0 -7
  856. package/dist/config/loader.d.cts +0 -19
  857. package/dist/config/writer.d.cts +0 -38
  858. package/dist/context/compression/middle-removal.d.cts +0 -48
  859. package/dist/context/compression/oldest-removal.d.cts +0 -43
  860. package/dist/context/compression/types.d.cts +0 -21
  861. package/dist/context/error-codes.d.cts +0 -19
  862. package/dist/context/errors.d.cts +0 -36
  863. package/dist/context/index.d.cts +0 -19
  864. package/dist/context/manager.d.cts +0 -254
  865. package/dist/context/types.d.cts +0 -113
  866. package/dist/context/utils.d.cts +0 -79
  867. package/dist/errors/DextoBaseError.d.cts +0 -15
  868. package/dist/errors/DextoRuntimeError.d.cts +0 -37
  869. package/dist/errors/DextoValidationError.d.cts +0 -65
  870. package/dist/errors/index.d.cts +0 -18
  871. package/dist/errors/result-bridge.d.cts +0 -39
  872. package/dist/errors/types.d.cts +0 -62
  873. package/dist/events/index.d.cts +0 -272
  874. package/dist/index.browser.d.cts +0 -53
  875. package/dist/index.d.cts +0 -89
  876. package/dist/llm/error-codes.d.cts +0 -26
  877. package/dist/llm/errors.d.cts +0 -58
  878. package/dist/llm/formatters/anthropic.d.cts +0 -45
  879. package/dist/llm/formatters/factory.d.cts +0 -12
  880. package/dist/llm/formatters/openai.d.cts +0 -38
  881. package/dist/llm/formatters/types.d.cts +0 -43
  882. package/dist/llm/formatters/vercel.d.cts +0 -48
  883. package/dist/llm/index.d.cts +0 -39
  884. package/dist/llm/registry.d.cts +0 -176
  885. package/dist/llm/resolver.d.cts +0 -34
  886. package/dist/llm/schemas.d.cts +0 -111
  887. package/dist/llm/services/anthropic.d.cts +0 -65
  888. package/dist/llm/services/factory.d.cts +0 -39
  889. package/dist/llm/services/index.d.cts +0 -21
  890. package/dist/llm/services/openai.d.cts +0 -65
  891. package/dist/llm/services/test-utils.integration.d.cts +0 -83
  892. package/dist/llm/services/types.d.cts +0 -56
  893. package/dist/llm/services/vercel.d.cts +0 -72
  894. package/dist/llm/tokenizer/anthropic.d.cts +0 -21
  895. package/dist/llm/tokenizer/default.d.cts +0 -16
  896. package/dist/llm/tokenizer/factory.d.cts +0 -12
  897. package/dist/llm/tokenizer/google.d.cts +0 -31
  898. package/dist/llm/tokenizer/openai.d.cts +0 -32
  899. package/dist/llm/tokenizer/types.d.cts +0 -19
  900. package/dist/llm/types.d.cts +0 -29
  901. package/dist/llm/validation.d.cts +0 -60
  902. package/dist/logger/browser.d.cts +0 -29
  903. package/dist/logger/index.d.cts +0 -1
  904. package/dist/logger/logger.d.cts +0 -52
  905. package/dist/mcp/error-codes.d.cts +0 -16
  906. package/dist/mcp/errors.d.cts +0 -72
  907. package/dist/mcp/index.d.cts +0 -26
  908. package/dist/mcp/manager.d.cts +0 -163
  909. package/dist/mcp/mcp-client.d.cts +0 -108
  910. package/dist/mcp/resolver.d.cts +0 -22
  911. package/dist/mcp/schemas.d.cts +0 -266
  912. package/dist/mcp/types.d.cts +0 -21
  913. package/dist/preferences/constants.d.cts +0 -3
  914. package/dist/preferences/error-codes.d.cts +0 -9
  915. package/dist/preferences/errors.d.cts +0 -33
  916. package/dist/preferences/index.d.cts +0 -21
  917. package/dist/preferences/loader.d.cts +0 -45
  918. package/dist/preferences/schemas.d.cts +0 -104
  919. package/dist/search/index.d.cts +0 -5
  920. package/dist/search/search-service.d.cts +0 -47
  921. package/dist/search/types.d.cts +0 -78
  922. package/dist/session/chat-session.d.cts +0 -284
  923. package/dist/session/error-codes.d.cts +0 -13
  924. package/dist/session/errors.d.cts +0 -58
  925. package/dist/session/history/database.d.cts +0 -28
  926. package/dist/session/history/factory.d.cts +0 -11
  927. package/dist/session/history/types.d.cts +0 -17
  928. package/dist/session/index.d.cts +0 -53
  929. package/dist/session/schemas.d.cts +0 -16
  930. package/dist/session/session-manager.d.cts +0 -219
  931. package/dist/storage/backend/cache-backend.d.ts +0 -15
  932. package/dist/storage/backend/database-backend.d.ts +0 -19
  933. package/dist/storage/backend/memory-backend.d.cts +0 -34
  934. package/dist/storage/backend/postgres-backend.d.cts +0 -37
  935. package/dist/storage/backend/redis-backend.d.cts +0 -36
  936. package/dist/storage/backend/sqlite-backend.d.ts +0 -35
  937. package/dist/storage/backend/types.d.cts +0 -14
  938. package/dist/storage/backend/types.d.ts +0 -14
  939. package/dist/storage/error-codes.d.cts +0 -14
  940. package/dist/storage/errors.d.cts +0 -63
  941. package/dist/storage/index.d.cts +0 -7
  942. package/dist/storage/schemas.d.cts +0 -856
  943. package/dist/storage/storage-manager.d.cts +0 -52
  944. package/dist/storage/types.d.cts +0 -5
  945. package/dist/systemPrompt/contributors.d.cts +0 -44
  946. package/dist/systemPrompt/error-codes.d.cts +0 -13
  947. package/dist/systemPrompt/errors.d.cts +0 -55
  948. package/dist/systemPrompt/in-built-prompts.d.cts +0 -28
  949. package/dist/systemPrompt/index.d.cts +0 -14
  950. package/dist/systemPrompt/manager.d.cts +0 -31
  951. package/dist/systemPrompt/registry.d.cts +0 -20
  952. package/dist/systemPrompt/schemas.d.cts +0 -401
  953. package/dist/systemPrompt/types.d.cts +0 -19
  954. package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +0 -19
  955. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +0 -17
  956. package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +0 -26
  957. package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +0 -35
  958. package/dist/tools/confirmation/event-based-confirmation-provider.cjs +0 -158
  959. package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +0 -41
  960. package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +0 -41
  961. package/dist/tools/confirmation/event-based-confirmation-provider.js +0 -134
  962. package/dist/tools/confirmation/factory.cjs +0 -52
  963. package/dist/tools/confirmation/factory.d.cts +0 -37
  964. package/dist/tools/confirmation/factory.d.ts +0 -37
  965. package/dist/tools/confirmation/factory.js +0 -28
  966. package/dist/tools/confirmation/noop-confirmation-provider.cjs +0 -49
  967. package/dist/tools/confirmation/noop-confirmation-provider.d.cts +0 -22
  968. package/dist/tools/confirmation/noop-confirmation-provider.d.ts +0 -22
  969. package/dist/tools/confirmation/noop-confirmation-provider.js +0 -25
  970. package/dist/tools/confirmation/types.d.cts +0 -46
  971. package/dist/tools/confirmation/types.d.ts +0 -46
  972. package/dist/tools/error-codes.d.cts +0 -18
  973. package/dist/tools/errors.d.cts +0 -97
  974. package/dist/tools/index.d.cts +0 -19
  975. package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +0 -15
  976. package/dist/tools/internal-tools/index.d.cts +0 -13
  977. package/dist/tools/internal-tools/provider.d.cts +0 -66
  978. package/dist/tools/internal-tools/registry.d.cts +0 -45
  979. package/dist/tools/schemas.d.cts +0 -21
  980. package/dist/tools/tool-manager.d.cts +0 -106
  981. package/dist/tools/types.d.cts +0 -66
  982. package/dist/utils/api-key-resolver.d.cts +0 -23
  983. package/dist/utils/api-key-store.d.cts +0 -26
  984. package/dist/utils/env.d.cts +0 -29
  985. package/dist/utils/error-conversion.d.cts +0 -13
  986. package/dist/utils/execution-context.d.cts +0 -21
  987. package/dist/utils/fs-walk.d.cts +0 -9
  988. package/dist/utils/index.d.cts +0 -63
  989. package/dist/utils/path.d.cts +0 -54
  990. package/dist/utils/port-utils.d.cts +0 -11
  991. package/dist/utils/port-utils.spec.d.cts +0 -2
  992. package/dist/utils/port-utils.spec.d.ts +0 -2
  993. package/dist/utils/redactor.d.cts +0 -18
  994. package/dist/utils/result.d.cts +0 -180
  995. package/dist/utils/safe-stringify.d.cts +0 -7
  996. package/dist/utils/schema.d.cts +0 -6
  997. package/dist/utils/service-initializer.d.cts +0 -63
  998. package/dist/utils/user-info.d.cts +0 -3
  999. package/dist/utils/zod-schema-converter.d.cts +0 -13
  1000. /package/dist/{storage/backend → filesystem}/types.cjs +0 -0
  1001. /package/dist/{storage/backend → filesystem}/types.js +0 -0
  1002. /package/dist/{tools/confirmation → memory}/types.cjs +0 -0
  1003. /package/dist/{tools/confirmation → memory}/types.js +0 -0
  1004. /package/dist/{storage/backend/cache-backend.js → plugins/types.js} +0 -0
  1005. /package/dist/{storage/backend/database-backend.js → process/types.js} +0 -0
@@ -19,12 +19,23 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var utils_exports = {};
20
20
  __export(utils_exports, {
21
21
  countMessagesTokens: () => countMessagesTokens,
22
+ expandBlobReferences: () => expandBlobReferences,
23
+ fileTypesToMimePatterns: () => fileTypesToMimePatterns,
22
24
  filterMessagesByLLMCapabilities: () => filterMessagesByLLMCapabilities,
23
25
  getFileData: () => getFileData,
26
+ getFileDataWithBlobSupport: () => getFileDataWithBlobSupport,
27
+ getFileMediaKind: () => import_media_helpers.getFileMediaKind,
24
28
  getImageData: () => getImageData,
29
+ getImageDataWithBlobSupport: () => getImageDataWithBlobSupport,
30
+ getResourceKind: () => import_media_helpers.getResourceKind,
25
31
  isLikelyBase64String: () => isLikelyBase64String,
32
+ matchesAnyMimePattern: () => matchesAnyMimePattern,
33
+ matchesMimePattern: () => matchesMimePattern,
34
+ normalizeToolResult: () => normalizeToolResult,
26
35
  parseDataUri: () => parseDataUri,
27
- sanitizeToolResultToContent: () => sanitizeToolResultToContent,
36
+ persistToolMedia: () => persistToolMedia,
37
+ sanitizeToolResult: () => sanitizeToolResult,
38
+ sanitizeToolResultToContentWithBlobs: () => sanitizeToolResultToContentWithBlobs,
28
39
  summarizeToolContentForText: () => summarizeToolContentForText,
29
40
  toTextForToolMessage: () => toTextForToolMessage
30
41
  });
@@ -33,9 +44,305 @@ var import_logger = require("../logger/index.cjs");
33
44
  var import_registry = require("../llm/registry.cjs");
34
45
  var import_errors = require("./errors.js");
35
46
  var import_safe_stringify = require("../utils/safe-stringify.cjs");
47
+ var import_media_helpers = require("./media-helpers.js");
36
48
  const DEFAULT_OVERHEAD_PER_MESSAGE = 4;
37
49
  const MIN_BASE64_HEURISTIC_LENGTH = 512;
38
50
  const MAX_TOOL_TEXT_CHARS = 8e3;
51
+ const MIN_TOOL_INLINE_MEDIA_BYTES = 1024;
52
+ function slugifyForFilename(value, maxLength = 48) {
53
+ if (!value) return null;
54
+ const slug = value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
55
+ if (!slug) return null;
56
+ return slug.length > maxLength ? slug.slice(0, maxLength) : slug;
57
+ }
58
+ function inferExtensionFromMime(mimeType, fallback) {
59
+ if (!mimeType) return fallback;
60
+ const subtype = mimeType.split("/")[1]?.split(";")[0]?.split("+")[0];
61
+ if (!subtype) return fallback;
62
+ const clean = subtype.replace(/[^a-z0-9]/gi, "").toLowerCase();
63
+ return clean || fallback;
64
+ }
65
+ function sanitizeExistingFilename(filename) {
66
+ return filename.replace(/[^a-zA-Z0-9._-]+/g, "-");
67
+ }
68
+ function generateUniqueSuffix() {
69
+ return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 6)}`;
70
+ }
71
+ function clonePart(part) {
72
+ if (part.type === "text") {
73
+ return { type: "text", text: part.text };
74
+ }
75
+ if (part.type === "image") {
76
+ const cloned2 = {
77
+ type: "image",
78
+ image: part.image
79
+ };
80
+ if (part.mimeType) {
81
+ cloned2.mimeType = part.mimeType;
82
+ }
83
+ return cloned2;
84
+ }
85
+ const cloned = {
86
+ type: "file",
87
+ data: part.data,
88
+ mimeType: part.mimeType
89
+ };
90
+ if (part.filename) {
91
+ cloned.filename = part.filename;
92
+ }
93
+ return cloned;
94
+ }
95
+ function coerceContentToParts(content) {
96
+ if (Array.isArray(content)) {
97
+ const normalized = [];
98
+ for (const item of content) {
99
+ if (item == null) continue;
100
+ if (typeof item === "string") {
101
+ normalized.push({ type: "text", text: item });
102
+ continue;
103
+ }
104
+ if (typeof item === "object" && "type" in item) {
105
+ const type = item.type;
106
+ if (type === "text") {
107
+ const textPart = item;
108
+ normalized.push({ type: "text", text: textPart.text });
109
+ continue;
110
+ }
111
+ if (type === "image") {
112
+ const imagePart = item;
113
+ const cloned = {
114
+ type: "image",
115
+ image: imagePart.image
116
+ };
117
+ if (imagePart.mimeType) {
118
+ cloned.mimeType = imagePart.mimeType;
119
+ }
120
+ normalized.push(cloned);
121
+ continue;
122
+ }
123
+ if (type === "file") {
124
+ const filePart = item;
125
+ const cloned = {
126
+ type: "file",
127
+ data: filePart.data,
128
+ mimeType: filePart.mimeType ?? "application/octet-stream"
129
+ };
130
+ if (filePart.filename) {
131
+ cloned.filename = filePart.filename;
132
+ }
133
+ normalized.push(cloned);
134
+ continue;
135
+ }
136
+ }
137
+ }
138
+ return normalized;
139
+ }
140
+ if (typeof content === "string") {
141
+ if (content.length === 0) {
142
+ return [];
143
+ }
144
+ return [{ type: "text", text: content }];
145
+ }
146
+ if (content == null) {
147
+ return [];
148
+ }
149
+ return [{ type: "text", text: (0, import_safe_stringify.safeStringify)(content) }];
150
+ }
151
+ function detectInlineMedia(part, index) {
152
+ if (part.type === "text") {
153
+ return null;
154
+ }
155
+ if (part.type === "image") {
156
+ const value = part.image;
157
+ const mimeType2 = part.mimeType ?? "image/jpeg";
158
+ if (typeof value === "string") {
159
+ if (value.startsWith("@blob:")) return null;
160
+ if (value.startsWith("http://") || value.startsWith("https://") || value.startsWith("blob:")) {
161
+ return null;
162
+ }
163
+ if (isLikelyBase64String(value, 128)) {
164
+ return {
165
+ index,
166
+ kind: "image",
167
+ mimeType: mimeType2,
168
+ approxBytes: base64LengthToBytes(value.length),
169
+ data: value
170
+ };
171
+ }
172
+ } else if (value instanceof Buffer) {
173
+ return {
174
+ index,
175
+ kind: "image",
176
+ mimeType: mimeType2,
177
+ approxBytes: value.length,
178
+ data: value
179
+ };
180
+ } else if (value instanceof Uint8Array) {
181
+ const buffer = Buffer.from(value);
182
+ return {
183
+ index,
184
+ kind: "image",
185
+ mimeType: mimeType2,
186
+ approxBytes: buffer.length,
187
+ data: buffer
188
+ };
189
+ } else if (value instanceof ArrayBuffer) {
190
+ const buffer = Buffer.from(new Uint8Array(value));
191
+ return {
192
+ index,
193
+ kind: "image",
194
+ mimeType: mimeType2,
195
+ approxBytes: buffer.length,
196
+ data: buffer
197
+ };
198
+ }
199
+ return null;
200
+ }
201
+ const data = part.data;
202
+ const mimeType = part.mimeType ?? "application/octet-stream";
203
+ const filename = part.filename;
204
+ if (typeof data === "string") {
205
+ if (data.startsWith("@blob:")) return null;
206
+ if (data.startsWith("http://") || data.startsWith("https://") || data.startsWith("blob:")) {
207
+ return null;
208
+ }
209
+ if (data.startsWith("data:")) {
210
+ const parsed = parseDataUri(data);
211
+ if (parsed) {
212
+ return {
213
+ index,
214
+ kind: "file",
215
+ mimeType: parsed.mediaType,
216
+ approxBytes: base64LengthToBytes(parsed.base64.length),
217
+ data: parsed.base64,
218
+ filename
219
+ };
220
+ }
221
+ }
222
+ if (isLikelyBase64String(data, 128)) {
223
+ return {
224
+ index,
225
+ kind: "file",
226
+ mimeType,
227
+ approxBytes: base64LengthToBytes(data.length),
228
+ data,
229
+ filename
230
+ };
231
+ }
232
+ } else if (data instanceof Buffer) {
233
+ return {
234
+ index,
235
+ kind: "file",
236
+ mimeType,
237
+ approxBytes: data.length,
238
+ data,
239
+ filename
240
+ };
241
+ } else if (data instanceof Uint8Array) {
242
+ const buffer = Buffer.from(data);
243
+ return {
244
+ index,
245
+ kind: "file",
246
+ mimeType,
247
+ approxBytes: buffer.length,
248
+ data: buffer,
249
+ filename
250
+ };
251
+ } else if (data instanceof ArrayBuffer) {
252
+ const buffer = Buffer.from(new Uint8Array(data));
253
+ return {
254
+ index,
255
+ kind: "file",
256
+ mimeType,
257
+ approxBytes: buffer.length,
258
+ data: buffer,
259
+ filename
260
+ };
261
+ }
262
+ return null;
263
+ }
264
+ function buildToolBlobName(kind, mimeType, options, preferredName) {
265
+ if (preferredName) {
266
+ return sanitizeExistingFilename(preferredName);
267
+ }
268
+ const toolSegment = slugifyForFilename(options?.toolName ?? "", 40);
269
+ const callSegment = slugifyForFilename(options?.toolCallId ?? "", 16);
270
+ const parts = ["tool"];
271
+ if (toolSegment) parts.push(toolSegment);
272
+ if (callSegment) parts.push(callSegment);
273
+ parts.push(kind);
274
+ const ext = inferExtensionFromMime(
275
+ mimeType,
276
+ kind === "image" ? "jpg" : kind === "file" ? "bin" : "bin"
277
+ );
278
+ const unique = generateUniqueSuffix();
279
+ return `${parts.join("-")}-${unique}.${ext}`;
280
+ }
281
+ async function resolveBlobReferenceToParts(resourceUri, resourceManager, allowedMediaTypes) {
282
+ try {
283
+ const result = await resourceManager.read(resourceUri);
284
+ if (allowedMediaTypes) {
285
+ const mimeType = result.contents[0]?.mimeType;
286
+ const metadata = result._meta;
287
+ if (mimeType && !matchesAnyMimePattern(mimeType, allowedMediaTypes)) {
288
+ const placeholderMetadata = {
289
+ mimeType,
290
+ size: metadata?.size ?? 0
291
+ };
292
+ if (metadata?.originalName) {
293
+ placeholderMetadata.originalName = metadata.originalName;
294
+ }
295
+ const placeholder = generateMediaPlaceholder(placeholderMetadata);
296
+ return [{ type: "text", text: placeholder }];
297
+ }
298
+ }
299
+ const parts = [];
300
+ for (const item of result.contents ?? []) {
301
+ if (!item || typeof item !== "object") {
302
+ continue;
303
+ }
304
+ if (typeof item.text === "string") {
305
+ parts.push({ type: "text", text: item.text });
306
+ continue;
307
+ }
308
+ const base64Data = typeof item.blob === "string" ? item.blob : typeof item.data === "string" ? item.data : void 0;
309
+ const mimeType = typeof item.mimeType === "string" ? item.mimeType : void 0;
310
+ if (!base64Data || !mimeType) {
311
+ continue;
312
+ }
313
+ const resolvedMime = mimeType ?? "application/octet-stream";
314
+ if (resolvedMime.startsWith("image/")) {
315
+ const dataUri = `data:${resolvedMime};base64,${base64Data}`;
316
+ const imagePart = {
317
+ type: "image",
318
+ image: dataUri,
319
+ mimeType: resolvedMime
320
+ };
321
+ parts.push(imagePart);
322
+ continue;
323
+ }
324
+ const filePart = {
325
+ type: "file",
326
+ data: resolvedMime.startsWith("audio/") ? `data:${resolvedMime};base64,${base64Data}` : base64Data,
327
+ mimeType: resolvedMime
328
+ };
329
+ if (typeof item.filename === "string" && item.filename.length > 0) {
330
+ filePart.filename = item.filename;
331
+ } else if (typeof result._meta?.originalName === "string") {
332
+ filePart.filename = result._meta.originalName;
333
+ }
334
+ parts.push(filePart);
335
+ }
336
+ if (parts.length === 0) {
337
+ const fallbackName = typeof result._meta?.originalName === "string" && result._meta.originalName || resourceUri;
338
+ parts.push({ type: "text", text: `[Attachment: ${fallbackName}]` });
339
+ }
340
+ return parts;
341
+ } catch (error) {
342
+ import_logger.logger.warn(`Failed to resolve blob reference ${resourceUri}: ${String(error)}`);
343
+ return [{ type: "text", text: `[Attachment unavailable: ${resourceUri}]` }];
344
+ }
345
+ }
39
346
  function countMessagesTokens(history, tokenizer, overheadPerMessage = DEFAULT_OVERHEAD_PER_MESSAGE) {
40
347
  let total = 0;
41
348
  import_logger.logger.debug(`Counting tokens for ${history.length} messages`);
@@ -130,6 +437,152 @@ function getFileData(filePart) {
130
437
  import_logger.logger.warn(`Unexpected file data type in getFileData: ${typeof data}`);
131
438
  return "";
132
439
  }
440
+ async function getImageDataWithBlobSupport(imagePart, resourceManager) {
441
+ const { image } = imagePart;
442
+ if (typeof image === "string" && image.startsWith("@blob:")) {
443
+ try {
444
+ const uri = image.substring(1);
445
+ const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
446
+ const result = await resourceManager.read(resourceUri);
447
+ if (result.contents[0]?.blob && typeof result.contents[0].blob === "string") {
448
+ return result.contents[0].blob;
449
+ }
450
+ import_logger.logger.warn(`Blob reference ${image} did not contain blob data`);
451
+ } catch (error) {
452
+ import_logger.logger.warn(`Failed to resolve blob reference ${image}: ${String(error)}`);
453
+ }
454
+ }
455
+ return getImageData(imagePart);
456
+ }
457
+ async function getFileDataWithBlobSupport(filePart, resourceManager) {
458
+ const { data } = filePart;
459
+ if (typeof data === "string" && data.startsWith("@blob:")) {
460
+ try {
461
+ const uri = data.substring(1);
462
+ const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
463
+ const result = await resourceManager.read(resourceUri);
464
+ if (result.contents[0]?.blob && typeof result.contents[0].blob === "string") {
465
+ return result.contents[0].blob;
466
+ }
467
+ import_logger.logger.warn(`Blob reference ${data} did not contain blob data`);
468
+ } catch (error) {
469
+ import_logger.logger.warn(`Failed to resolve blob reference ${data}: ${String(error)}`);
470
+ }
471
+ }
472
+ return getFileData(filePart);
473
+ }
474
+ async function expandBlobReferences(content, resourceManager, allowedMediaTypes) {
475
+ if (typeof content === "string") {
476
+ const blobRefPattern = /@blob:[a-f0-9]+/g;
477
+ const matches = [...content.matchAll(blobRefPattern)];
478
+ if (matches.length === 0) {
479
+ return content;
480
+ }
481
+ const resolvedCache = /* @__PURE__ */ new Map();
482
+ const parts = [];
483
+ let lastIndex = 0;
484
+ for (const match of matches) {
485
+ const matchIndex = match.index ?? 0;
486
+ const token = match[0];
487
+ if (matchIndex > lastIndex) {
488
+ const segment = content.slice(lastIndex, matchIndex);
489
+ if (segment.length > 0) {
490
+ parts.push({ type: "text", text: segment });
491
+ }
492
+ }
493
+ const uri = token.substring(1);
494
+ const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
495
+ let resolvedParts = resolvedCache.get(resourceUri);
496
+ if (!resolvedParts) {
497
+ resolvedParts = await resolveBlobReferenceToParts(
498
+ resourceUri,
499
+ resourceManager,
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 });
508
+ }
509
+ lastIndex = matchIndex + token.length;
510
+ }
511
+ if (lastIndex < content.length) {
512
+ const trailing = content.slice(lastIndex);
513
+ if (trailing.length > 0) {
514
+ parts.push({ type: "text", text: trailing });
515
+ }
516
+ }
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;
520
+ }
521
+ return normalized;
522
+ }
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
+ allowedMediaTypes
533
+ );
534
+ if (resolved.length > 0) {
535
+ expandedParts.push(...resolved.map((part2) => ({ ...part2 })));
536
+ } else {
537
+ expandedParts.push(part);
538
+ }
539
+ continue;
540
+ }
541
+ if (part.type === "file" && typeof part.data === "string" && part.data.startsWith("@blob:")) {
542
+ const uri = part.data.substring(1);
543
+ const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
544
+ const resolved = await resolveBlobReferenceToParts(
545
+ resourceUri,
546
+ resourceManager,
547
+ allowedMediaTypes
548
+ );
549
+ if (resolved.length > 0) {
550
+ expandedParts.push(...resolved.map((part2) => ({ ...part2 })));
551
+ } else {
552
+ try {
553
+ const resolvedData = await getFileDataWithBlobSupport(
554
+ part,
555
+ resourceManager
556
+ );
557
+ expandedParts.push({ ...part, data: resolvedData });
558
+ } catch (error) {
559
+ import_logger.logger.warn(`Failed to resolve file blob reference: ${String(error)}`);
560
+ expandedParts.push(part);
561
+ }
562
+ }
563
+ continue;
564
+ }
565
+ if (part.type === "text" && part.text.includes("@blob:")) {
566
+ const expanded = await expandBlobReferences(
567
+ part.text,
568
+ resourceManager,
569
+ allowedMediaTypes
570
+ );
571
+ if (typeof expanded === "string") {
572
+ expandedParts.push({ ...part, text: expanded });
573
+ } else if (Array.isArray(expanded)) {
574
+ expandedParts.push(...expanded.map((part2) => ({ ...part2 })));
575
+ } else {
576
+ expandedParts.push(part);
577
+ }
578
+ continue;
579
+ }
580
+ expandedParts.push(part);
581
+ }
582
+ return expandedParts;
583
+ }
584
+ return content;
585
+ }
133
586
  function filterMessagesByLLMCapabilities(messages, config) {
134
587
  try {
135
588
  return messages.map((message) => {
@@ -184,6 +637,65 @@ function parseDataUri(value) {
184
637
  const base64 = value.slice(commaIdx + 1);
185
638
  return { mediaType, base64 };
186
639
  }
640
+ function matchesMimePattern(mimeType, pattern) {
641
+ if (!mimeType) return false;
642
+ const normalizedMime = mimeType.toLowerCase().trim();
643
+ const normalizedPattern = pattern.toLowerCase().trim();
644
+ if (normalizedPattern === "*" || normalizedPattern === "*/*") {
645
+ return true;
646
+ }
647
+ if (normalizedMime === normalizedPattern) {
648
+ return true;
649
+ }
650
+ if (normalizedPattern.endsWith("/*")) {
651
+ const patternType = normalizedPattern.slice(0, -2);
652
+ const mimeType2 = normalizedMime.split("/")[0];
653
+ return mimeType2 === patternType;
654
+ }
655
+ return false;
656
+ }
657
+ function matchesAnyMimePattern(mimeType, patterns) {
658
+ return patterns.some((pattern) => matchesMimePattern(mimeType, pattern));
659
+ }
660
+ function fileTypesToMimePatterns(fileTypes) {
661
+ const patterns = [];
662
+ for (const fileType of fileTypes) {
663
+ switch (fileType) {
664
+ case "image":
665
+ patterns.push("image/*");
666
+ break;
667
+ case "pdf":
668
+ patterns.push("application/pdf");
669
+ break;
670
+ case "audio":
671
+ patterns.push("audio/*");
672
+ break;
673
+ case "video":
674
+ patterns.push("video/*");
675
+ break;
676
+ default:
677
+ import_logger.logger.warn(`Unknown file type in registry: ${fileType}`);
678
+ }
679
+ }
680
+ return patterns;
681
+ }
682
+ function generateMediaPlaceholder(metadata) {
683
+ let typeLabel = "File";
684
+ if (metadata.mimeType.startsWith("video/")) typeLabel = "Video";
685
+ else if (metadata.mimeType.startsWith("audio/")) typeLabel = "Audio";
686
+ else if (metadata.mimeType.startsWith("image/")) typeLabel = "Image";
687
+ else if (metadata.mimeType === "application/pdf") typeLabel = "PDF";
688
+ const formatSize = (bytes) => {
689
+ if (bytes === 0) return "0 B";
690
+ const k = 1024;
691
+ const sizes = ["B", "KB", "MB", "GB"];
692
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
693
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + " " + sizes[i];
694
+ };
695
+ const size = formatSize(metadata.size);
696
+ const name = metadata.originalName || "unknown";
697
+ return `[${typeLabel}: ${name} (${size})]`;
698
+ }
187
699
  function sanitizeDeepObject(obj) {
188
700
  if (obj == null) return obj;
189
701
  if (typeof obj === "string") {
@@ -206,24 +718,142 @@ function sanitizeDeepObject(obj) {
206
718
  }
207
719
  return obj;
208
720
  }
209
- function sanitizeToolResultToContent(result) {
721
+ async function normalizeToolResult(result) {
722
+ const content = await sanitizeToolResultToContentWithBlobs(result);
723
+ const parts = coerceContentToParts(content);
724
+ const inlineMedia = [];
725
+ parts.forEach((part, index) => {
726
+ const hint = detectInlineMedia(part, index);
727
+ if (hint) {
728
+ inlineMedia.push(hint);
729
+ }
730
+ });
731
+ return {
732
+ parts,
733
+ inlineMedia
734
+ };
735
+ }
736
+ function shouldPersistInlineMedia(hint) {
737
+ const kind = (0, import_media_helpers.getFileMediaKind)(hint.mimeType);
738
+ if (kind === "audio" || kind === "video") {
739
+ return true;
740
+ }
741
+ return hint.approxBytes >= MIN_TOOL_INLINE_MEDIA_BYTES;
742
+ }
743
+ async function persistToolMedia(normalized, options) {
744
+ const parts = normalized.parts.map((part) => clonePart(part));
745
+ const blobStore = options.blobStore;
746
+ const namingOptions = options.toolName || options.toolCallId ? {
747
+ ...options.toolName ? { toolName: options.toolName } : {},
748
+ ...options.toolCallId ? { toolCallId: options.toolCallId } : {}
749
+ } : void 0;
750
+ if (blobStore) {
751
+ for (const hint of normalized.inlineMedia) {
752
+ if (!shouldPersistInlineMedia(hint)) {
753
+ continue;
754
+ }
755
+ try {
756
+ const originalName = hint.filename ?? buildToolBlobName(
757
+ hint.kind === "image" ? "image" : "file",
758
+ hint.mimeType,
759
+ namingOptions
760
+ );
761
+ const blobRef = await blobStore.store(hint.data, {
762
+ mimeType: hint.mimeType,
763
+ originalName,
764
+ source: "tool"
765
+ });
766
+ const resourceUri = blobRef.uri;
767
+ if (hint.kind === "image") {
768
+ parts[hint.index] = createBlobImagePart(resourceUri, blobRef.metadata.mimeType);
769
+ } else {
770
+ const resolvedMimeType = blobRef.metadata.mimeType || hint.mimeType;
771
+ const filename = blobRef.metadata.originalName ?? hint.filename;
772
+ parts[hint.index] = createBlobFilePart(resourceUri, resolvedMimeType, filename);
773
+ }
774
+ } catch (error) {
775
+ import_logger.logger.warn(
776
+ `Failed to persist tool media: ${error instanceof Error ? error.message : String(error)}`
777
+ );
778
+ }
779
+ }
780
+ }
781
+ const resources = extractResourceDescriptors(parts);
782
+ return {
783
+ parts,
784
+ ...resources ? { resources } : {}
785
+ };
786
+ }
787
+ async function sanitizeToolResultToContentWithBlobs(result, blobStore, namingOptions) {
210
788
  try {
211
789
  if (typeof result === "string") {
212
790
  const dataUri = parseDataUri(result);
213
791
  if (dataUri) {
214
792
  const mediaType = dataUri.mediaType;
215
793
  import_logger.logger.debug(
216
- `sanitizeToolResultToContent: detected data URI (${mediaType}), converting to media part`
794
+ `sanitizeToolResultToContentWithBlobs: detected data URI (${mediaType})`
217
795
  );
796
+ const approxSize = Math.floor(dataUri.base64.length * 3 / 4);
797
+ const shouldStoreAsBlob = blobStore && approxSize > 1024;
798
+ if (shouldStoreAsBlob) {
799
+ try {
800
+ import_logger.logger.debug(
801
+ `Storing data URI as blob (${approxSize} bytes, ${mediaType})`
802
+ );
803
+ const blobRef = await blobStore.store(result, {
804
+ mimeType: mediaType,
805
+ source: "tool",
806
+ originalName: buildToolBlobName("output", mediaType, namingOptions)
807
+ });
808
+ import_logger.logger.debug(`Stored blob: ${blobRef.uri} (${approxSize} bytes)`);
809
+ if (mediaType.startsWith("image/")) {
810
+ return [createBlobImagePart(blobRef.uri, mediaType)];
811
+ }
812
+ return [createBlobFilePart(blobRef.uri, mediaType, void 0)];
813
+ } catch (error) {
814
+ import_logger.logger.warn(
815
+ `Failed to store blob, falling back to inline: ${String(error)}`
816
+ );
817
+ }
818
+ }
218
819
  if (mediaType.startsWith("image/")) {
219
820
  return [{ type: "image", image: dataUri.base64, mimeType: mediaType }];
220
821
  }
221
- return [{ type: "file", data: dataUri.base64, mimeType: mediaType }];
822
+ return [
823
+ {
824
+ type: "file",
825
+ data: dataUri.base64,
826
+ mimeType: mediaType
827
+ }
828
+ ];
222
829
  }
223
830
  if (isLikelyBase64String(result)) {
224
- import_logger.logger.debug(
225
- "sanitizeToolResultToContent: detected base64-like string, converting to file part"
226
- );
831
+ import_logger.logger.debug("sanitizeToolResultToContentWithBlobs: detected base64-like string");
832
+ const approxSize = Math.floor(result.length * 3 / 4);
833
+ const shouldStoreAsBlob = blobStore && approxSize > 1024;
834
+ if (shouldStoreAsBlob) {
835
+ try {
836
+ const blobRef = await blobStore.store(result, {
837
+ mimeType: "application/octet-stream",
838
+ source: "tool",
839
+ originalName: buildToolBlobName("output", void 0, namingOptions)
840
+ });
841
+ import_logger.logger.debug(
842
+ `Stored tool result as blob: ${blobRef.uri} (${approxSize} bytes)`
843
+ );
844
+ return [
845
+ createBlobFilePart(
846
+ blobRef.uri,
847
+ "application/octet-stream",
848
+ "tool-output.bin"
849
+ )
850
+ ];
851
+ } catch (error) {
852
+ import_logger.logger.warn(
853
+ `Failed to store blob, falling back to inline: ${String(error)}`
854
+ );
855
+ }
856
+ }
227
857
  return [
228
858
  {
229
859
  type: "file",
@@ -237,7 +867,7 @@ function sanitizeToolResultToContent(result) {
237
867
  const head = result.slice(0, 4e3);
238
868
  const tail = result.slice(-1e3);
239
869
  import_logger.logger.debug(
240
- `sanitizeToolResultToContent: truncating long text tool output (len=${result.length})`
870
+ `sanitizeToolResultToContentWithBlobs: truncating long text tool output (len=${result.length})`
241
871
  );
242
872
  return `${head}
243
873
  ... [${result.length - 5e3} chars omitted] ...
@@ -249,84 +879,219 @@ ${tail}`;
249
879
  const parts = [];
250
880
  for (const item of result) {
251
881
  if (item == null) continue;
252
- if (typeof item === "string") {
253
- const dataUri = parseDataUri(item);
254
- if (dataUri) {
255
- const mt = dataUri.mediaType;
256
- if (mt.startsWith("image/"))
257
- parts.push({ type: "image", image: dataUri.base64, mimeType: mt });
258
- else parts.push({ type: "file", data: dataUri.base64, mimeType: mt });
259
- continue;
260
- }
261
- if (isLikelyBase64String(item)) {
262
- parts.push({
263
- type: "file",
264
- data: item,
265
- mimeType: "application/octet-stream",
266
- filename: "tool-output.bin"
267
- });
268
- continue;
269
- }
270
- parts.push({ type: "text", text: item });
271
- continue;
272
- }
273
- if (typeof item === "object") {
274
- const obj = item;
275
- if (obj.type === "text" && typeof obj.text === "string") {
276
- parts.push({ type: "text", text: obj.text });
277
- continue;
278
- }
279
- if (obj.type === "image" && obj.image !== void 0 || "image" in obj) {
280
- parts.push({
281
- type: "image",
282
- image: getImageData({ image: obj.image }),
283
- mimeType: obj.mimeType || "image/jpeg"
284
- });
285
- continue;
286
- }
287
- if (obj.type === "file" && obj.data !== void 0) {
288
- parts.push({
289
- type: "file",
290
- data: getFileData({ data: obj.data }),
291
- mimeType: obj.mimeType || "application/octet-stream",
292
- filename: obj.filename
293
- });
294
- continue;
295
- }
296
- if ("data" in obj && (typeof obj.mimeType === "string" || obj.filename)) {
297
- parts.push({
298
- type: "file",
299
- data: getFileData({ data: obj.data }),
300
- mimeType: obj.mimeType || "application/octet-stream",
301
- filename: obj.filename
302
- });
303
- continue;
304
- }
305
- const cleaned = sanitizeDeepObject(obj);
306
- parts.push({ type: "text", text: (0, import_safe_stringify.safeStringify)(cleaned) });
307
- continue;
882
+ const processedItem = await sanitizeToolResultToContentWithBlobs(
883
+ item,
884
+ blobStore,
885
+ namingOptions
886
+ );
887
+ if (typeof processedItem === "string") {
888
+ parts.push({ type: "text", text: processedItem });
889
+ } else if (Array.isArray(processedItem)) {
890
+ parts.push(...processedItem);
308
891
  }
309
- parts.push({ type: "text", text: String(item) });
310
892
  }
311
893
  return parts;
312
894
  }
313
895
  if (result && typeof result === "object") {
314
896
  const anyObj = result;
897
+ if ("content" in anyObj && Array.isArray(anyObj.content)) {
898
+ import_logger.logger.debug(
899
+ `Processing MCP tool result with ${anyObj.content.length} content items`
900
+ );
901
+ const processedContent = [];
902
+ for (const item of anyObj.content) {
903
+ if (item && typeof item === "object") {
904
+ if (item.type === "resource" && item.resource) {
905
+ const resource = item.resource;
906
+ if (resource.text && resource.mimeType) {
907
+ const fileData = resource.text;
908
+ const mimeType = resource.mimeType;
909
+ const approxSize = typeof fileData === "string" ? Math.floor(fileData.length * 3 / 4) : 0;
910
+ const shouldStoreAsBlob = blobStore && approxSize > 1024;
911
+ if (shouldStoreAsBlob) {
912
+ try {
913
+ import_logger.logger.debug(
914
+ `Storing MCP resource as blob (${approxSize} bytes, ${mimeType})`
915
+ );
916
+ const blobRef = await blobStore.store(fileData, {
917
+ mimeType,
918
+ source: "tool",
919
+ originalName: buildToolBlobName(
920
+ mimeType.startsWith("image/") ? "image" : "file",
921
+ mimeType,
922
+ namingOptions,
923
+ resource.title
924
+ )
925
+ });
926
+ import_logger.logger.debug(
927
+ `Stored MCP resource blob: ${blobRef.uri} (${approxSize} bytes)`
928
+ );
929
+ if (mimeType.startsWith("image/")) {
930
+ processedContent.push(
931
+ createBlobImagePart(blobRef.uri, mimeType)
932
+ );
933
+ } else {
934
+ processedContent.push(
935
+ createBlobFilePart(
936
+ blobRef.uri,
937
+ mimeType,
938
+ resource.title
939
+ )
940
+ );
941
+ }
942
+ continue;
943
+ } catch (error) {
944
+ import_logger.logger.warn(
945
+ `Failed to store MCP resource blob, falling back to inline: ${String(error)}`
946
+ );
947
+ }
948
+ }
949
+ if (mimeType.startsWith("image/")) {
950
+ processedContent.push({
951
+ type: "image",
952
+ image: fileData,
953
+ mimeType
954
+ });
955
+ } else if (mimeType.startsWith("video/")) {
956
+ processedContent.push({
957
+ type: "file",
958
+ data: fileData,
959
+ mimeType,
960
+ filename: resource.title
961
+ });
962
+ } else {
963
+ processedContent.push({
964
+ type: "file",
965
+ data: fileData,
966
+ mimeType,
967
+ filename: resource.title
968
+ });
969
+ }
970
+ continue;
971
+ }
972
+ }
973
+ if ("data" in item && item.mimeType) {
974
+ const fileData = getFileData({ data: item.data });
975
+ const mimeType = item.mimeType;
976
+ const approxSize = typeof fileData === "string" ? Math.floor(fileData.length * 3 / 4) : 0;
977
+ const shouldStoreAsBlob = blobStore && approxSize > 1024;
978
+ if (shouldStoreAsBlob) {
979
+ try {
980
+ import_logger.logger.debug(
981
+ `Storing MCP content item as blob (${approxSize} bytes, ${mimeType})`
982
+ );
983
+ const blobRef = await blobStore.store(fileData, {
984
+ mimeType,
985
+ source: "tool",
986
+ originalName: buildToolBlobName(
987
+ item.type === "image" ? "image" : "file",
988
+ mimeType,
989
+ namingOptions,
990
+ item.filename
991
+ )
992
+ });
993
+ import_logger.logger.debug(
994
+ `Stored MCP blob: ${blobRef.uri} (${approxSize} bytes)`
995
+ );
996
+ if (item.type === "image") {
997
+ processedContent.push(
998
+ createBlobImagePart(blobRef.uri, mimeType)
999
+ );
1000
+ } else {
1001
+ processedContent.push(
1002
+ createBlobFilePart(blobRef.uri, mimeType, item.filename)
1003
+ );
1004
+ }
1005
+ continue;
1006
+ } catch (error) {
1007
+ import_logger.logger.warn(
1008
+ `Failed to store MCP blob, falling back to inline: ${String(error)}`
1009
+ );
1010
+ }
1011
+ }
1012
+ if (item.type === "image") {
1013
+ processedContent.push({
1014
+ type: "image",
1015
+ image: fileData,
1016
+ mimeType
1017
+ });
1018
+ } else {
1019
+ processedContent.push({
1020
+ type: "file",
1021
+ data: fileData,
1022
+ mimeType,
1023
+ filename: item.filename
1024
+ });
1025
+ }
1026
+ continue;
1027
+ }
1028
+ }
1029
+ processedContent.push(item);
1030
+ }
1031
+ return processedContent;
1032
+ }
315
1033
  if ("image" in anyObj) {
1034
+ const imageData = getImageData({ image: anyObj.image });
1035
+ const mimeType = anyObj.mimeType || "image/jpeg";
1036
+ const approxSize = typeof imageData === "string" ? Math.floor(imageData.length * 3 / 4) : 0;
1037
+ const shouldStoreAsBlob = blobStore && approxSize > 1024;
1038
+ if (shouldStoreAsBlob) {
1039
+ try {
1040
+ const blobRef = await blobStore.store(imageData, {
1041
+ mimeType,
1042
+ source: "tool",
1043
+ originalName: buildToolBlobName("image", mimeType, namingOptions)
1044
+ });
1045
+ import_logger.logger.debug(
1046
+ `Stored tool image as blob: ${blobRef.uri} (${approxSize} bytes)`
1047
+ );
1048
+ return [createBlobImagePart(blobRef.uri, mimeType)];
1049
+ } catch (error) {
1050
+ import_logger.logger.warn(
1051
+ `Failed to store image blob, falling back to inline: ${String(error)}`
1052
+ );
1053
+ }
1054
+ }
316
1055
  return [
317
1056
  {
318
1057
  type: "image",
319
- image: getImageData({ image: anyObj.image }),
320
- mimeType: anyObj.mimeType || "image/jpeg"
1058
+ image: imageData,
1059
+ mimeType
321
1060
  }
322
1061
  ];
323
1062
  }
324
1063
  if ("data" in anyObj && anyObj.mimeType) {
1064
+ const fileData = getFileData({ data: anyObj.data });
1065
+ const mimeType = anyObj.mimeType;
1066
+ const approxSize = typeof fileData === "string" ? Math.floor(fileData.length * 3 / 4) : 0;
1067
+ const shouldStoreAsBlob = blobStore && approxSize > 1024;
1068
+ if (shouldStoreAsBlob) {
1069
+ try {
1070
+ const blobRef = await blobStore.store(fileData, {
1071
+ mimeType,
1072
+ source: "tool",
1073
+ originalName: buildToolBlobName(
1074
+ "file",
1075
+ mimeType,
1076
+ namingOptions,
1077
+ anyObj.filename
1078
+ )
1079
+ });
1080
+ import_logger.logger.debug(
1081
+ `Stored tool file as blob: ${blobRef.uri} (${approxSize} bytes)`
1082
+ );
1083
+ return [createBlobFilePart(blobRef.uri, mimeType, anyObj.filename)];
1084
+ } catch (error) {
1085
+ import_logger.logger.warn(
1086
+ `Failed to store file blob, falling back to inline: ${String(error)}`
1087
+ );
1088
+ }
1089
+ }
325
1090
  return [
326
1091
  {
327
1092
  type: "file",
328
- data: getFileData({ data: anyObj.data }),
329
- mimeType: anyObj.mimeType,
1093
+ data: fileData,
1094
+ mimeType,
330
1095
  filename: anyObj.filename
331
1096
  }
332
1097
  ];
@@ -336,7 +1101,9 @@ ${tail}`;
336
1101
  }
337
1102
  return (0, import_safe_stringify.safeStringify)(result ?? "");
338
1103
  } catch (err) {
339
- import_logger.logger.warn(`sanitizeToolResultToContent failed, falling back to string: ${String(err)}`);
1104
+ import_logger.logger.warn(
1105
+ `sanitizeToolResultToContentWithBlobs failed, falling back to string: ${String(err)}`
1106
+ );
340
1107
  try {
341
1108
  return (0, import_safe_stringify.safeStringify)(result ?? "");
342
1109
  } catch {
@@ -344,6 +1111,64 @@ ${tail}`;
344
1111
  }
345
1112
  }
346
1113
  }
1114
+ function inferResourceKind(mimeType) {
1115
+ return (0, import_media_helpers.getResourceKind)(mimeType);
1116
+ }
1117
+ function createBlobImagePart(uri, mimeType) {
1118
+ return {
1119
+ type: "image",
1120
+ image: `@${uri}`,
1121
+ ...mimeType ? { mimeType } : {}
1122
+ };
1123
+ }
1124
+ function createBlobFilePart(uri, mimeType, filename) {
1125
+ return {
1126
+ type: "file",
1127
+ data: `@${uri}`,
1128
+ mimeType,
1129
+ ...filename ? { filename } : {}
1130
+ };
1131
+ }
1132
+ function extractResourceDescriptors(parts) {
1133
+ const resources = [];
1134
+ for (const part of parts) {
1135
+ if (part.type === "image" && typeof part.image === "string" && part.image.startsWith("@blob:")) {
1136
+ resources.push({
1137
+ uri: part.image.substring(1),
1138
+ kind: "image",
1139
+ mimeType: part.mimeType ?? "image/jpeg"
1140
+ });
1141
+ }
1142
+ if (part.type === "file" && typeof part.data === "string" && part.data.startsWith("@blob:")) {
1143
+ resources.push({
1144
+ uri: part.data.substring(1),
1145
+ kind: inferResourceKind(part.mimeType),
1146
+ mimeType: part.mimeType,
1147
+ ...part.filename ? { filename: part.filename } : {}
1148
+ });
1149
+ }
1150
+ }
1151
+ return resources.length > 0 ? resources : void 0;
1152
+ }
1153
+ async function sanitizeToolResult(result, options) {
1154
+ const normalized = await normalizeToolResult(result);
1155
+ const persisted = await persistToolMedia(normalized, {
1156
+ ...options.blobStore ? { blobStore: options.blobStore } : {},
1157
+ toolName: options.toolName,
1158
+ toolCallId: options.toolCallId
1159
+ });
1160
+ const fallbackContent = [{ type: "text", text: "" }];
1161
+ const content = persisted.parts.length > 0 ? persisted.parts : fallbackContent;
1162
+ return {
1163
+ content,
1164
+ ...persisted.resources ? { resources: persisted.resources } : {},
1165
+ meta: {
1166
+ toolName: options.toolName,
1167
+ toolCallId: options.toolCallId,
1168
+ ...typeof options.success === "boolean" ? { success: options.success } : {}
1169
+ }
1170
+ };
1171
+ }
347
1172
  function summarizeToolContentForText(content) {
348
1173
  if (!Array.isArray(content)) return String(content || "");
349
1174
  const parts = [];
@@ -395,12 +1220,23 @@ function toTextForToolMessage(content) {
395
1220
  // Annotate the CommonJS export names for ESM import in node:
396
1221
  0 && (module.exports = {
397
1222
  countMessagesTokens,
1223
+ expandBlobReferences,
1224
+ fileTypesToMimePatterns,
398
1225
  filterMessagesByLLMCapabilities,
399
1226
  getFileData,
1227
+ getFileDataWithBlobSupport,
1228
+ getFileMediaKind,
400
1229
  getImageData,
1230
+ getImageDataWithBlobSupport,
1231
+ getResourceKind,
401
1232
  isLikelyBase64String,
1233
+ matchesAnyMimePattern,
1234
+ matchesMimePattern,
1235
+ normalizeToolResult,
402
1236
  parseDataUri,
403
- sanitizeToolResultToContent,
1237
+ persistToolMedia,
1238
+ sanitizeToolResult,
1239
+ sanitizeToolResultToContentWithBlobs,
404
1240
  summarizeToolContentForText,
405
1241
  toTextForToolMessage
406
1242
  });