@dexto/core 1.1.10 → 1.1.11

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