@dexto/core 1.2.4 → 1.2.6

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 (551) hide show
  1. package/README.md +60 -0
  2. package/dist/agent/DextoAgent.cjs +579 -345
  3. package/dist/agent/DextoAgent.d.ts +131 -83
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +573 -336
  6. package/dist/agent/agentCard.cjs +4 -2
  7. package/dist/agent/agentCard.d.ts +0 -1
  8. package/dist/agent/agentCard.d.ts.map +1 -1
  9. package/dist/agent/agentCard.js +4 -2
  10. package/dist/agent/index.cjs +3 -7
  11. package/dist/agent/index.d.ts +3 -3
  12. package/dist/agent/index.d.ts.map +1 -1
  13. package/dist/agent/index.js +7 -6
  14. package/dist/agent/schemas.cjs +179 -75
  15. package/dist/agent/schemas.d.ts +2678 -586
  16. package/dist/agent/schemas.d.ts.map +1 -1
  17. package/dist/agent/schemas.js +172 -65
  18. package/dist/agent/state-manager.cjs +28 -23
  19. package/dist/agent/state-manager.d.ts +4 -1
  20. package/dist/agent/state-manager.d.ts.map +1 -1
  21. package/dist/agent/state-manager.js +28 -23
  22. package/dist/{preferences/constants.cjs → agent/types.cjs} +2 -14
  23. package/dist/agent/types.d.ts +54 -0
  24. package/dist/agent/types.d.ts.map +1 -0
  25. package/dist/agent/types.js +0 -0
  26. package/dist/approval/errors.cjs +89 -8
  27. package/dist/approval/errors.d.ts +5 -3
  28. package/dist/approval/errors.d.ts.map +1 -1
  29. package/dist/approval/errors.js +89 -8
  30. package/dist/approval/{providers/factory.d.ts → factory.d.ts} +2 -2
  31. package/dist/approval/factory.d.ts.map +1 -0
  32. package/dist/approval/{providers/factory.js → factory.js} +1 -1
  33. package/dist/approval/index.cjs +4 -6
  34. package/dist/approval/index.d.ts +3 -5
  35. package/dist/approval/index.d.ts.map +1 -1
  36. package/dist/approval/index.js +4 -5
  37. package/dist/approval/manager.cjs +140 -37
  38. package/dist/approval/manager.d.ts +56 -17
  39. package/dist/approval/manager.d.ts.map +1 -1
  40. package/dist/approval/manager.js +141 -38
  41. package/dist/approval/schemas.cjs +9 -1
  42. package/dist/approval/schemas.d.ts +120 -35
  43. package/dist/approval/schemas.d.ts.map +1 -1
  44. package/dist/approval/schemas.js +9 -2
  45. package/dist/approval/types.cjs +14 -2
  46. package/dist/approval/types.d.ts +64 -12
  47. package/dist/approval/types.d.ts.map +1 -1
  48. package/dist/approval/types.js +12 -1
  49. package/dist/context/compression/middle-removal.cjs +11 -11
  50. package/dist/context/compression/middle-removal.d.ts +3 -1
  51. package/dist/context/compression/middle-removal.d.ts.map +1 -1
  52. package/dist/context/compression/middle-removal.js +11 -11
  53. package/dist/context/compression/oldest-removal.cjs +18 -5
  54. package/dist/context/compression/oldest-removal.d.ts +3 -1
  55. package/dist/context/compression/oldest-removal.d.ts.map +1 -1
  56. package/dist/context/compression/oldest-removal.js +18 -5
  57. package/dist/context/manager.cjs +94 -67
  58. package/dist/context/manager.d.ts +13 -10
  59. package/dist/context/manager.d.ts.map +1 -1
  60. package/dist/context/manager.js +94 -67
  61. package/dist/context/utils.cjs +79 -65
  62. package/dist/context/utils.d.ts +15 -12
  63. package/dist/context/utils.d.ts.map +1 -1
  64. package/dist/context/utils.js +45 -31
  65. package/dist/errors/DextoRuntimeError.d.ts +5 -5
  66. package/dist/errors/DextoRuntimeError.d.ts.map +1 -1
  67. package/dist/errors/result-bridge.cjs +2 -3
  68. package/dist/errors/result-bridge.d.ts +5 -3
  69. package/dist/errors/result-bridge.d.ts.map +1 -1
  70. package/dist/errors/result-bridge.js +1 -2
  71. package/dist/errors/types.cjs +1 -2
  72. package/dist/errors/types.d.ts +5 -8
  73. package/dist/errors/types.d.ts.map +1 -1
  74. package/dist/errors/types.js +1 -2
  75. package/dist/events/index.cjs +125 -55
  76. package/dist/events/index.d.ts +204 -97
  77. package/dist/events/index.d.ts.map +1 -1
  78. package/dist/events/index.js +123 -55
  79. package/dist/filesystem/filesystem-service.cjs +40 -30
  80. package/dist/filesystem/filesystem-service.d.ts +9 -1
  81. package/dist/filesystem/filesystem-service.d.ts.map +1 -1
  82. package/dist/filesystem/filesystem-service.js +40 -30
  83. package/dist/filesystem/path-validator.cjs +4 -3
  84. package/dist/filesystem/path-validator.d.ts +3 -1
  85. package/dist/filesystem/path-validator.d.ts.map +1 -1
  86. package/dist/filesystem/path-validator.js +4 -3
  87. package/dist/filesystem/types.d.ts +3 -3
  88. package/dist/filesystem/types.d.ts.map +1 -1
  89. package/dist/index.browser.cjs +7 -0
  90. package/dist/index.browser.d.ts +2 -0
  91. package/dist/index.browser.d.ts.map +1 -1
  92. package/dist/index.browser.js +4 -0
  93. package/dist/index.cjs +0 -7
  94. package/dist/index.d.ts +12 -3
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +0 -4
  97. package/dist/llm/formatters/anthropic.cjs +32 -21
  98. package/dist/llm/formatters/anthropic.d.ts +3 -0
  99. package/dist/llm/formatters/anthropic.d.ts.map +1 -1
  100. package/dist/llm/formatters/anthropic.js +32 -21
  101. package/dist/llm/formatters/factory.cjs +6 -7
  102. package/dist/llm/formatters/factory.d.ts +2 -1
  103. package/dist/llm/formatters/factory.d.ts.map +1 -1
  104. package/dist/llm/formatters/factory.js +4 -5
  105. package/dist/llm/formatters/openai.cjs +38 -9
  106. package/dist/llm/formatters/openai.d.ts +3 -0
  107. package/dist/llm/formatters/openai.d.ts.map +1 -1
  108. package/dist/llm/formatters/openai.js +38 -9
  109. package/dist/llm/formatters/vercel.cjs +49 -8
  110. package/dist/llm/formatters/vercel.d.ts +3 -0
  111. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  112. package/dist/llm/formatters/vercel.js +49 -8
  113. package/dist/llm/registry.cjs +153 -17
  114. package/dist/llm/registry.d.ts +5 -2
  115. package/dist/llm/registry.d.ts.map +1 -1
  116. package/dist/llm/registry.js +143 -7
  117. package/dist/llm/resolver.cjs +4 -4
  118. package/dist/llm/resolver.d.ts +3 -2
  119. package/dist/llm/resolver.d.ts.map +1 -1
  120. package/dist/llm/resolver.js +4 -4
  121. package/dist/llm/schemas.cjs +6 -3
  122. package/dist/llm/schemas.d.ts +51 -17
  123. package/dist/llm/schemas.d.ts.map +1 -1
  124. package/dist/llm/schemas.js +5 -3
  125. package/dist/llm/services/anthropic.cjs +216 -183
  126. package/dist/llm/services/anthropic.d.ts +3 -1
  127. package/dist/llm/services/anthropic.d.ts.map +1 -1
  128. package/dist/llm/services/anthropic.js +217 -184
  129. package/dist/llm/services/factory.cjs +15 -9
  130. package/dist/llm/services/factory.d.ts +2 -1
  131. package/dist/llm/services/factory.d.ts.map +1 -1
  132. package/dist/llm/services/factory.js +15 -9
  133. package/dist/llm/services/openai.cjs +262 -225
  134. package/dist/llm/services/openai.d.ts +3 -1
  135. package/dist/llm/services/openai.d.ts.map +1 -1
  136. package/dist/llm/services/openai.js +263 -226
  137. package/dist/llm/services/test-utils.integration.cjs +58 -12
  138. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  139. package/dist/llm/services/test-utils.integration.js +58 -12
  140. package/dist/llm/services/types.d.ts +9 -0
  141. package/dist/llm/services/types.d.ts.map +1 -1
  142. package/dist/llm/services/vercel.cjs +163 -111
  143. package/dist/llm/services/vercel.d.ts +3 -1
  144. package/dist/llm/services/vercel.d.ts.map +1 -1
  145. package/dist/llm/services/vercel.js +157 -105
  146. package/dist/llm/tokenizer/factory.cjs +2 -2
  147. package/dist/llm/tokenizer/factory.d.ts +3 -1
  148. package/dist/llm/tokenizer/factory.d.ts.map +1 -1
  149. package/dist/llm/tokenizer/factory.js +2 -2
  150. package/dist/llm/tokenizer/openai.cjs +16 -9
  151. package/dist/llm/tokenizer/openai.d.ts +4 -1
  152. package/dist/llm/tokenizer/openai.d.ts.map +1 -1
  153. package/dist/llm/tokenizer/openai.js +16 -9
  154. package/dist/llm/validation.cjs +8 -9
  155. package/dist/llm/validation.d.ts +3 -1
  156. package/dist/llm/validation.d.ts.map +1 -1
  157. package/dist/llm/validation.js +5 -6
  158. package/dist/logger/factory.cjs +54 -0
  159. package/dist/logger/factory.d.ts +36 -0
  160. package/dist/logger/factory.d.ts.map +1 -0
  161. package/dist/logger/factory.js +31 -0
  162. package/dist/logger/index.cjs +42 -3
  163. package/dist/logger/index.d.ts +17 -1
  164. package/dist/logger/index.d.ts.map +1 -1
  165. package/dist/logger/index.js +26 -1
  166. package/dist/logger/logger.cjs +30 -17
  167. package/dist/logger/logger.d.ts.map +1 -1
  168. package/dist/logger/logger.js +30 -17
  169. package/dist/logger/v2/dexto-logger.cjs +141 -0
  170. package/dist/logger/v2/dexto-logger.d.ts +54 -0
  171. package/dist/logger/v2/dexto-logger.d.ts.map +1 -0
  172. package/dist/logger/v2/dexto-logger.js +118 -0
  173. package/dist/{preferences → logger/v2}/error-codes.cjs +11 -10
  174. package/dist/logger/v2/error-codes.d.ts +13 -0
  175. package/dist/logger/v2/error-codes.d.ts.map +1 -0
  176. package/dist/logger/v2/error-codes.js +13 -0
  177. package/dist/logger/v2/errors.cjs +107 -0
  178. package/dist/logger/v2/errors.d.ts +32 -0
  179. package/dist/logger/v2/errors.d.ts.map +1 -0
  180. package/dist/logger/v2/errors.js +84 -0
  181. package/dist/logger/v2/schemas.cjs +57 -0
  182. package/dist/logger/v2/schemas.d.ts +147 -0
  183. package/dist/logger/v2/schemas.d.ts.map +1 -0
  184. package/dist/logger/v2/schemas.js +33 -0
  185. package/dist/logger/v2/transport-factory.cjs +53 -0
  186. package/dist/logger/v2/transport-factory.d.ts +21 -0
  187. package/dist/logger/v2/transport-factory.d.ts.map +1 -0
  188. package/dist/logger/v2/transport-factory.js +29 -0
  189. package/dist/logger/v2/transports/console-transport.cjs +79 -0
  190. package/dist/logger/v2/transports/console-transport.d.ts +23 -0
  191. package/dist/logger/v2/transports/console-transport.d.ts.map +1 -0
  192. package/dist/logger/v2/transports/console-transport.js +46 -0
  193. package/dist/logger/v2/transports/file-transport.cjs +161 -0
  194. package/dist/logger/v2/transports/file-transport.d.ts +46 -0
  195. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -0
  196. package/dist/logger/v2/transports/file-transport.js +128 -0
  197. package/dist/logger/v2/types.cjs +49 -0
  198. package/dist/logger/v2/types.d.ts +123 -0
  199. package/dist/logger/v2/types.d.ts.map +1 -0
  200. package/dist/logger/v2/types.js +26 -0
  201. package/dist/mcp/manager.cjs +88 -78
  202. package/dist/mcp/manager.d.ts +3 -1
  203. package/dist/mcp/manager.d.ts.map +1 -1
  204. package/dist/mcp/manager.js +88 -78
  205. package/dist/mcp/mcp-client.cjs +109 -79
  206. package/dist/mcp/mcp-client.d.ts +3 -0
  207. package/dist/mcp/mcp-client.d.ts.map +1 -1
  208. package/dist/mcp/mcp-client.js +102 -72
  209. package/dist/memory/index.cjs +2 -0
  210. package/dist/memory/index.d.ts +1 -1
  211. package/dist/memory/index.d.ts.map +1 -1
  212. package/dist/memory/index.js +3 -1
  213. package/dist/memory/manager.cjs +9 -7
  214. package/dist/memory/manager.d.ts +3 -1
  215. package/dist/memory/manager.d.ts.map +1 -1
  216. package/dist/memory/manager.js +9 -7
  217. package/dist/memory/schemas.cjs +10 -0
  218. package/dist/memory/schemas.d.ts +37 -8
  219. package/dist/memory/schemas.d.ts.map +1 -1
  220. package/dist/memory/schemas.js +9 -0
  221. package/dist/plugins/manager.cjs +21 -19
  222. package/dist/plugins/manager.d.ts +3 -1
  223. package/dist/plugins/manager.d.ts.map +1 -1
  224. package/dist/plugins/manager.js +21 -19
  225. package/dist/plugins/schemas.d.ts +9 -9
  226. package/dist/plugins/types.d.ts +2 -2
  227. package/dist/plugins/types.d.ts.map +1 -1
  228. package/dist/process/command-validator.cjs +30 -20
  229. package/dist/process/command-validator.d.ts +4 -1
  230. package/dist/process/command-validator.d.ts.map +1 -1
  231. package/dist/process/command-validator.js +30 -20
  232. package/dist/process/process-service.cjs +23 -21
  233. package/dist/process/process-service.d.ts +3 -1
  234. package/dist/process/process-service.d.ts.map +1 -1
  235. package/dist/process/process-service.js +23 -21
  236. package/dist/prompts/index.cjs +6 -8
  237. package/dist/prompts/index.d.ts +2 -4
  238. package/dist/prompts/index.d.ts.map +1 -1
  239. package/dist/prompts/index.js +4 -6
  240. package/dist/prompts/prompt-manager.cjs +25 -20
  241. package/dist/prompts/prompt-manager.d.ts +3 -1
  242. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  243. package/dist/prompts/prompt-manager.js +25 -20
  244. package/dist/prompts/providers/config-prompt-provider.cjs +331 -0
  245. package/dist/prompts/providers/config-prompt-provider.d.ts +34 -0
  246. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -0
  247. package/dist/prompts/providers/config-prompt-provider.js +308 -0
  248. package/dist/prompts/providers/custom-prompt-provider.cjs +11 -7
  249. package/dist/prompts/providers/custom-prompt-provider.d.ts +3 -1
  250. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  251. package/dist/prompts/providers/custom-prompt-provider.js +11 -7
  252. package/dist/prompts/providers/mcp-prompt-provider.cjs +7 -6
  253. package/dist/prompts/providers/mcp-prompt-provider.d.ts +3 -1
  254. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  255. package/dist/prompts/providers/mcp-prompt-provider.js +7 -6
  256. package/dist/prompts/schemas.cjs +42 -23
  257. package/dist/prompts/schemas.d.ts +123 -14
  258. package/dist/prompts/schemas.d.ts.map +1 -1
  259. package/dist/prompts/schemas.js +39 -22
  260. package/dist/prompts/types.d.ts +1 -1
  261. package/dist/prompts/types.d.ts.map +1 -1
  262. package/dist/resources/handlers/blob-handler.cjs +15 -11
  263. package/dist/resources/handlers/blob-handler.d.ts +3 -1
  264. package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
  265. package/dist/resources/handlers/blob-handler.js +15 -11
  266. package/dist/resources/handlers/factory.cjs +3 -3
  267. package/dist/resources/handlers/factory.d.ts +2 -1
  268. package/dist/resources/handlers/factory.d.ts.map +1 -1
  269. package/dist/resources/handlers/factory.js +3 -3
  270. package/dist/resources/handlers/filesystem-handler.cjs +10 -8
  271. package/dist/resources/handlers/filesystem-handler.d.ts +3 -1
  272. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  273. package/dist/resources/handlers/filesystem-handler.js +10 -8
  274. package/dist/resources/internal-provider.cjs +28 -20
  275. package/dist/resources/internal-provider.d.ts +3 -1
  276. package/dist/resources/internal-provider.d.ts.map +1 -1
  277. package/dist/resources/internal-provider.js +28 -20
  278. package/dist/resources/manager.cjs +34 -25
  279. package/dist/resources/manager.d.ts +3 -1
  280. package/dist/resources/manager.d.ts.map +1 -1
  281. package/dist/resources/manager.js +34 -25
  282. package/dist/resources/schemas.d.ts +6 -6
  283. package/dist/search/search-service.cjs +8 -6
  284. package/dist/search/search-service.d.ts +3 -1
  285. package/dist/search/search-service.d.ts.map +1 -1
  286. package/dist/search/search-service.js +8 -6
  287. package/dist/session/chat-session.cjs +40 -27
  288. package/dist/session/chat-session.d.ts +10 -7
  289. package/dist/session/chat-session.d.ts.map +1 -1
  290. package/dist/session/chat-session.js +40 -27
  291. package/dist/session/history/database.cjs +18 -11
  292. package/dist/session/history/database.d.ts +3 -1
  293. package/dist/session/history/database.d.ts.map +1 -1
  294. package/dist/session/history/database.js +18 -11
  295. package/dist/session/history/factory.cjs +2 -2
  296. package/dist/session/history/factory.d.ts +5 -1
  297. package/dist/session/history/factory.d.ts.map +1 -1
  298. package/dist/session/history/factory.js +2 -2
  299. package/dist/session/session-manager.cjs +37 -53
  300. package/dist/session/session-manager.d.ts +3 -17
  301. package/dist/session/session-manager.d.ts.map +1 -1
  302. package/dist/session/session-manager.js +37 -53
  303. package/dist/session/title-generator.cjs +3 -2
  304. package/dist/session/title-generator.d.ts +2 -1
  305. package/dist/session/title-generator.d.ts.map +1 -1
  306. package/dist/session/title-generator.js +3 -2
  307. package/dist/storage/blob/factory.cjs +9 -18
  308. package/dist/storage/blob/factory.d.ts +5 -4
  309. package/dist/storage/blob/factory.d.ts.map +1 -1
  310. package/dist/storage/blob/factory.js +8 -17
  311. package/dist/storage/blob/local-blob-store.cjs +25 -32
  312. package/dist/storage/blob/local-blob-store.d.ts +3 -2
  313. package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
  314. package/dist/storage/blob/local-blob-store.js +25 -32
  315. package/dist/storage/blob/memory-blob-store.cjs +326 -0
  316. package/dist/storage/blob/memory-blob-store.d.ts +66 -0
  317. package/dist/storage/blob/memory-blob-store.d.ts.map +1 -0
  318. package/dist/storage/blob/memory-blob-store.js +303 -0
  319. package/dist/storage/blob/schemas.cjs +3 -1
  320. package/dist/storage/blob/schemas.d.ts +6 -6
  321. package/dist/storage/blob/schemas.d.ts.map +1 -1
  322. package/dist/storage/blob/schemas.js +3 -1
  323. package/dist/storage/cache/factory.cjs +7 -8
  324. package/dist/storage/cache/factory.d.ts +4 -1
  325. package/dist/storage/cache/factory.d.ts.map +1 -1
  326. package/dist/storage/cache/factory.js +4 -5
  327. package/dist/storage/cache/redis-store.cjs +4 -1
  328. package/dist/storage/cache/redis-store.d.ts +3 -1
  329. package/dist/storage/cache/redis-store.d.ts.map +1 -1
  330. package/dist/storage/cache/redis-store.js +4 -1
  331. package/dist/storage/database/factory.cjs +13 -16
  332. package/dist/storage/database/factory.d.ts +5 -3
  333. package/dist/storage/database/factory.d.ts.map +1 -1
  334. package/dist/storage/database/factory.js +9 -12
  335. package/dist/storage/database/postgres-store.cjs +4 -1
  336. package/dist/storage/database/postgres-store.d.ts +3 -1
  337. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  338. package/dist/storage/database/postgres-store.js +4 -1
  339. package/dist/storage/database/schemas.cjs +3 -4
  340. package/dist/storage/database/schemas.d.ts +8 -16
  341. package/dist/storage/database/schemas.d.ts.map +1 -1
  342. package/dist/storage/database/schemas.js +3 -4
  343. package/dist/storage/database/sqlite-store.cjs +17 -45
  344. package/dist/storage/database/sqlite-store.d.ts +3 -3
  345. package/dist/storage/database/sqlite-store.d.ts.map +1 -1
  346. package/dist/storage/database/sqlite-store.js +17 -45
  347. package/dist/storage/schemas.cjs +3 -1
  348. package/dist/storage/schemas.d.ts +16 -23
  349. package/dist/storage/schemas.d.ts.map +1 -1
  350. package/dist/storage/schemas.js +3 -1
  351. package/dist/storage/storage-manager.cjs +15 -15
  352. package/dist/storage/storage-manager.d.ts +6 -6
  353. package/dist/storage/storage-manager.d.ts.map +1 -1
  354. package/dist/storage/storage-manager.js +15 -15
  355. package/dist/systemPrompt/contributors.cjs +15 -15
  356. package/dist/systemPrompt/contributors.d.ts +5 -3
  357. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  358. package/dist/systemPrompt/contributors.js +15 -15
  359. package/dist/systemPrompt/in-built-prompts.cjs +0 -5
  360. package/dist/systemPrompt/in-built-prompts.d.ts +1 -2
  361. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  362. package/dist/systemPrompt/in-built-prompts.js +0 -4
  363. package/dist/systemPrompt/manager.cjs +31 -23
  364. package/dist/systemPrompt/manager.d.ts +5 -3
  365. package/dist/systemPrompt/manager.d.ts.map +1 -1
  366. package/dist/systemPrompt/manager.js +31 -23
  367. package/dist/systemPrompt/registry.cjs +1 -2
  368. package/dist/systemPrompt/registry.d.ts +1 -1
  369. package/dist/systemPrompt/registry.d.ts.map +1 -1
  370. package/dist/systemPrompt/registry.js +1 -2
  371. package/dist/systemPrompt/schemas.cjs +24 -18
  372. package/dist/systemPrompt/schemas.d.ts +46 -222
  373. package/dist/systemPrompt/schemas.d.ts.map +1 -1
  374. package/dist/systemPrompt/schemas.js +14 -18
  375. package/dist/telemetry/decorators.cjs +54 -15
  376. package/dist/telemetry/decorators.d.ts.map +1 -1
  377. package/dist/telemetry/decorators.js +54 -15
  378. package/dist/telemetry/utils.cjs +21 -14
  379. package/dist/telemetry/utils.d.ts +7 -3
  380. package/dist/telemetry/utils.d.ts.map +1 -1
  381. package/dist/telemetry/utils.js +21 -14
  382. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +2 -2
  383. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +2 -1
  384. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
  385. package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -2
  386. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +7 -6
  387. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +3 -1
  388. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
  389. package/dist/tools/confirmation/allowed-tools-provider/storage.js +7 -6
  390. package/dist/tools/errors.cjs +2 -1
  391. package/dist/tools/errors.d.ts.map +1 -1
  392. package/dist/tools/errors.js +2 -1
  393. package/dist/tools/internal-tools/constants.cjs +2 -1
  394. package/dist/tools/internal-tools/constants.d.ts +1 -1
  395. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  396. package/dist/tools/internal-tools/constants.js +2 -1
  397. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +1 -1
  398. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +1 -1
  399. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +192 -0
  400. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +33 -0
  401. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +1 -0
  402. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +169 -0
  403. package/dist/tools/internal-tools/provider.cjs +21 -17
  404. package/dist/tools/internal-tools/provider.d.ts +3 -1
  405. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  406. package/dist/tools/internal-tools/provider.js +21 -17
  407. package/dist/tools/internal-tools/registry.cjs +5 -0
  408. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  409. package/dist/tools/internal-tools/registry.js +5 -0
  410. package/dist/tools/schemas.cjs +16 -4
  411. package/dist/tools/schemas.d.ts +21 -9
  412. package/dist/tools/schemas.d.ts.map +1 -1
  413. package/dist/tools/schemas.js +15 -4
  414. package/dist/tools/tool-manager.cjs +64 -47
  415. package/dist/tools/tool-manager.d.ts +4 -2
  416. package/dist/tools/tool-manager.d.ts.map +1 -1
  417. package/dist/tools/tool-manager.js +61 -44
  418. package/dist/tools/types.d.ts +0 -4
  419. package/dist/tools/types.d.ts.map +1 -1
  420. package/dist/utils/env-file.cjs +118 -0
  421. package/dist/utils/env-file.d.ts +5 -0
  422. package/dist/utils/env-file.d.ts.map +1 -0
  423. package/dist/utils/env-file.js +85 -0
  424. package/dist/utils/error-conversion.cjs +23 -1
  425. package/dist/utils/error-conversion.d.ts +2 -1
  426. package/dist/utils/error-conversion.d.ts.map +1 -1
  427. package/dist/utils/error-conversion.js +23 -1
  428. package/dist/utils/execution-context.d.ts.map +1 -1
  429. package/dist/utils/fs-walk.d.ts.map +1 -1
  430. package/dist/utils/index.cjs +7 -9
  431. package/dist/utils/index.d.ts +3 -4
  432. package/dist/utils/index.d.ts.map +1 -1
  433. package/dist/utils/index.js +3 -4
  434. package/dist/utils/path.cjs +22 -57
  435. package/dist/utils/path.d.ts +8 -7
  436. package/dist/utils/path.d.ts.map +1 -1
  437. package/dist/utils/path.js +21 -54
  438. package/dist/utils/result.cjs +37 -14
  439. package/dist/utils/result.d.ts.map +1 -1
  440. package/dist/utils/result.js +37 -14
  441. package/dist/utils/schema.cjs +2 -3
  442. package/dist/utils/schema.d.ts +2 -1
  443. package/dist/utils/schema.d.ts.map +1 -1
  444. package/dist/utils/schema.js +1 -2
  445. package/dist/utils/service-initializer.cjs +88 -61
  446. package/dist/utils/service-initializer.d.ts +4 -2
  447. package/dist/utils/service-initializer.d.ts.map +1 -1
  448. package/dist/utils/service-initializer.js +70 -43
  449. package/package.json +7 -3
  450. package/dist/Dexto.cjs +0 -251
  451. package/dist/Dexto.d.ts +0 -191
  452. package/dist/Dexto.d.ts.map +0 -1
  453. package/dist/Dexto.js +0 -228
  454. package/dist/agent/registry/error-codes.cjs +0 -44
  455. package/dist/agent/registry/error-codes.d.ts +0 -21
  456. package/dist/agent/registry/error-codes.d.ts.map +0 -1
  457. package/dist/agent/registry/error-codes.js +0 -21
  458. package/dist/agent/registry/errors.cjs +0 -188
  459. package/dist/agent/registry/errors.d.ts +0 -63
  460. package/dist/agent/registry/errors.d.ts.map +0 -1
  461. package/dist/agent/registry/errors.js +0 -165
  462. package/dist/agent/registry/registry.cjs +0 -479
  463. package/dist/agent/registry/registry.d.ts +0 -130
  464. package/dist/agent/registry/registry.d.ts.map +0 -1
  465. package/dist/agent/registry/registry.js +0 -453
  466. package/dist/agent/registry/types.cjs +0 -74
  467. package/dist/agent/registry/types.d.ts +0 -142
  468. package/dist/agent/registry/types.d.ts.map +0 -1
  469. package/dist/agent/registry/types.js +0 -48
  470. package/dist/agent/registry/user-registry.cjs +0 -140
  471. package/dist/agent/registry/user-registry.d.ts +0 -34
  472. package/dist/agent/registry/user-registry.d.ts.map +0 -1
  473. package/dist/agent/registry/user-registry.js +0 -105
  474. package/dist/approval/providers/event-based-approval-provider.cjs +0 -156
  475. package/dist/approval/providers/event-based-approval-provider.d.ts +0 -39
  476. package/dist/approval/providers/event-based-approval-provider.d.ts.map +0 -1
  477. package/dist/approval/providers/event-based-approval-provider.js +0 -133
  478. package/dist/approval/providers/factory.d.ts.map +0 -1
  479. package/dist/approval/providers/noop-approval-provider.cjs +0 -54
  480. package/dist/approval/providers/noop-approval-provider.d.ts +0 -18
  481. package/dist/approval/providers/noop-approval-provider.d.ts.map +0 -1
  482. package/dist/approval/providers/noop-approval-provider.js +0 -31
  483. package/dist/config/agent-resolver.cjs +0 -153
  484. package/dist/config/agent-resolver.d.ts +0 -14
  485. package/dist/config/agent-resolver.d.ts.map +0 -1
  486. package/dist/config/agent-resolver.js +0 -123
  487. package/dist/config/error-codes.cjs +0 -39
  488. package/dist/config/error-codes.d.ts +0 -16
  489. package/dist/config/error-codes.d.ts.map +0 -1
  490. package/dist/config/error-codes.js +0 -16
  491. package/dist/config/errors.cjs +0 -126
  492. package/dist/config/errors.d.ts +0 -34
  493. package/dist/config/errors.d.ts.map +0 -1
  494. package/dist/config/errors.js +0 -103
  495. package/dist/config/index.cjs +0 -26
  496. package/dist/config/index.d.ts +0 -4
  497. package/dist/config/index.d.ts.map +0 -1
  498. package/dist/config/index.js +0 -3
  499. package/dist/config/loader.cjs +0 -119
  500. package/dist/config/loader.d.ts +0 -16
  501. package/dist/config/loader.d.ts.map +0 -1
  502. package/dist/config/loader.js +0 -86
  503. package/dist/config/writer.cjs +0 -182
  504. package/dist/config/writer.d.ts +0 -35
  505. package/dist/config/writer.d.ts.map +0 -1
  506. package/dist/config/writer.js +0 -147
  507. package/dist/preferences/constants.d.ts +0 -2
  508. package/dist/preferences/constants.d.ts.map +0 -1
  509. package/dist/preferences/constants.js +0 -5
  510. package/dist/preferences/error-codes.d.ts +0 -8
  511. package/dist/preferences/error-codes.d.ts.map +0 -1
  512. package/dist/preferences/error-codes.js +0 -12
  513. package/dist/preferences/errors.cjs +0 -75
  514. package/dist/preferences/errors.d.ts +0 -18
  515. package/dist/preferences/errors.d.ts.map +0 -1
  516. package/dist/preferences/errors.js +0 -51
  517. package/dist/preferences/index.cjs +0 -55
  518. package/dist/preferences/index.d.ts +0 -6
  519. package/dist/preferences/index.d.ts.map +0 -1
  520. package/dist/preferences/index.js +0 -32
  521. package/dist/preferences/loader.cjs +0 -138
  522. package/dist/preferences/loader.d.ts +0 -51
  523. package/dist/preferences/loader.d.ts.map +0 -1
  524. package/dist/preferences/loader.js +0 -110
  525. package/dist/preferences/schemas.cjs +0 -75
  526. package/dist/preferences/schemas.d.ts +0 -110
  527. package/dist/preferences/schemas.d.ts.map +0 -1
  528. package/dist/preferences/schemas.js +0 -49
  529. package/dist/prompts/providers/file-prompt-provider.cjs +0 -399
  530. package/dist/prompts/providers/file-prompt-provider.d.ts +0 -47
  531. package/dist/prompts/providers/file-prompt-provider.d.ts.map +0 -1
  532. package/dist/prompts/providers/file-prompt-provider.js +0 -376
  533. package/dist/prompts/providers/starter-prompt-provider.cjs +0 -170
  534. package/dist/prompts/providers/starter-prompt-provider.d.ts +0 -45
  535. package/dist/prompts/providers/starter-prompt-provider.d.ts.map +0 -1
  536. package/dist/prompts/providers/starter-prompt-provider.js +0 -147
  537. package/dist/utils/api-key-store.cjs +0 -56
  538. package/dist/utils/api-key-store.d.ts +0 -24
  539. package/dist/utils/api-key-store.d.ts.map +0 -1
  540. package/dist/utils/api-key-store.js +0 -31
  541. package/dist/utils/env.cjs +0 -154
  542. package/dist/utils/env.d.ts +0 -28
  543. package/dist/utils/env.d.ts.map +0 -1
  544. package/dist/utils/env.js +0 -119
  545. package/dist/utils/port-utils.cjs +0 -37
  546. package/dist/utils/port-utils.d.ts +0 -10
  547. package/dist/utils/port-utils.d.ts.map +0 -1
  548. package/dist/utils/port-utils.js +0 -14
  549. package/dist/utils/port-utils.spec.cjs +0 -26
  550. package/dist/utils/port-utils.spec.js +0 -25
  551. /package/dist/approval/{providers/factory.cjs → factory.cjs} +0 -0
@@ -22,8 +22,12 @@ __export(openai_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(openai_exports);
24
24
  var import_utils = require("../../context/utils.cjs");
25
- var import_logger = require("../../logger/index.cjs");
25
+ var import_types4 = require("../../logger/v2/types.cjs");
26
26
  class OpenAIMessageFormatter {
27
+ logger;
28
+ constructor(logger) {
29
+ this.logger = logger.createChild(import_types4.DextoLogComponent.LLM);
30
+ }
27
31
  /**
28
32
  * Formats internal messages into OpenAI's Chat Completion API format
29
33
  *
@@ -35,9 +39,11 @@ class OpenAIMessageFormatter {
35
39
  const formatted = [];
36
40
  let filteredHistory;
37
41
  try {
38
- filteredHistory = (0, import_utils.filterMessagesByLLMCapabilities)([...history], context);
42
+ filteredHistory = (0, import_utils.filterMessagesByLLMCapabilities)([...history], context, this.logger);
39
43
  } catch (error) {
40
- import_logger.logger.warn(`Failed to apply capability filtering, using original history: ${error}`);
44
+ this.logger.warn(
45
+ `Failed to apply capability filtering, using original history: ${error}`
46
+ );
41
47
  filteredHistory = [...history];
42
48
  }
43
49
  if (systemPrompt) {
@@ -46,6 +52,7 @@ class OpenAIMessageFormatter {
46
52
  content: systemPrompt
47
53
  });
48
54
  }
55
+ const pendingToolCallIds = /* @__PURE__ */ new Set();
49
56
  for (const msg of filteredHistory) {
50
57
  switch (msg.role) {
51
58
  case "system":
@@ -67,6 +74,9 @@ class OpenAIMessageFormatter {
67
74
  content: String(msg.content || ""),
68
75
  tool_calls: msg.toolCalls
69
76
  });
77
+ for (const toolCall of msg.toolCalls) {
78
+ pendingToolCallIds.add(toolCall.id);
79
+ }
70
80
  } else {
71
81
  formatted.push({
72
82
  role: "assistant",
@@ -75,14 +85,33 @@ class OpenAIMessageFormatter {
75
85
  }
76
86
  break;
77
87
  case "tool":
78
- formatted.push({
79
- role: "tool",
80
- content: (0, import_utils.toTextForToolMessage)(msg.content),
81
- tool_call_id: msg.toolCallId || ""
82
- });
88
+ if (msg.toolCallId && pendingToolCallIds.has(msg.toolCallId)) {
89
+ formatted.push({
90
+ role: "tool",
91
+ content: (0, import_utils.toTextForToolMessage)(msg.content),
92
+ tool_call_id: msg.toolCallId
93
+ });
94
+ pendingToolCallIds.delete(msg.toolCallId);
95
+ } else {
96
+ this.logger.warn(
97
+ `Skipping orphaned tool result ${msg.toolCallId} (no matching tool call found) - cannot send to OpenAI without corresponding tool_calls`
98
+ );
99
+ }
83
100
  break;
84
101
  }
85
102
  }
103
+ if (pendingToolCallIds.size > 0) {
104
+ for (const toolCallId of pendingToolCallIds) {
105
+ formatted.push({
106
+ role: "tool",
107
+ content: "Error: Tool execution was interrupted (session crashed or cancelled before completion)",
108
+ tool_call_id: toolCallId
109
+ });
110
+ this.logger.warn(
111
+ `Tool call ${toolCallId} had no matching tool result - added synthetic error result to prevent API errors`
112
+ );
113
+ }
114
+ }
86
115
  return formatted;
87
116
  }
88
117
  /**
@@ -149,7 +178,7 @@ class OpenAIMessageFormatter {
149
178
  return { type: "text", text: part.text };
150
179
  }
151
180
  if (part.type === "image") {
152
- const raw = (0, import_utils.getImageData)(part);
181
+ const raw = (0, import_utils.getImageData)(part, this.logger);
153
182
  const url = raw.startsWith("http://") || raw.startsWith("https://") || raw.startsWith("data:") ? raw : `data:${part.mimeType || "application/octet-stream"};base64,${raw}`;
154
183
  return { type: "image_url", image_url: { url } };
155
184
  }
@@ -2,6 +2,7 @@ import { ChatCompletionMessageParam } from 'openai/resources';
2
2
  import { IMessageFormatter } from './types.js';
3
3
  import { LLMContext } from '../types.js';
4
4
  import { InternalMessage } from '../../context/types.js';
5
+ import type { IDextoLogger } from '../../logger/v2/types.js';
5
6
  /**
6
7
  * Message formatter for OpenAI's Chat Completion API.
7
8
  *
@@ -11,6 +12,8 @@ import { InternalMessage } from '../../context/types.js';
11
12
  * - Tool results use the 'tool' role with tool_call_id and name
12
13
  */
13
14
  export declare class OpenAIMessageFormatter implements IMessageFormatter {
15
+ private logger;
16
+ constructor(logger: IDextoLogger);
14
17
  /**
15
18
  * Formats internal messages into OpenAI's Chat Completion API format
16
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/llm/formatters/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAA6B,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD;;;;;;;GAOG;AACH,qBAAa,sBAAuB,YAAW,iBAAiB;IAC5D;;;;;;OAMG;IACH,MAAM,CACF,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,EACpC,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC5B,0BAA0B,EAAE;IAqE/B;;;;;;OAMG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,eAAe,EAAE;IAiDnD,OAAO,CAAC,iBAAiB;CA+B5B"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/llm/formatters/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAA6B,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAMzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D;;;;;;;GAOG;AACH,qBAAa,sBAAuB,YAAW,iBAAiB;IAC5D,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAGhC;;;;;;OAMG;IACH,MAAM,CACF,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,EACpC,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC5B,0BAA0B,EAAE;IAyG/B;;;;;;OAMG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,eAAe,EAAE;IAiDnD,OAAO,CAAC,iBAAiB;CA+B5B"}
@@ -4,8 +4,12 @@ import {
4
4
  filterMessagesByLLMCapabilities,
5
5
  toTextForToolMessage
6
6
  } from "../../context/utils.js";
7
- import { logger } from "../../logger/index.js";
7
+ import { DextoLogComponent } from "../../logger/v2/types.js";
8
8
  class OpenAIMessageFormatter {
9
+ logger;
10
+ constructor(logger) {
11
+ this.logger = logger.createChild(DextoLogComponent.LLM);
12
+ }
9
13
  /**
10
14
  * Formats internal messages into OpenAI's Chat Completion API format
11
15
  *
@@ -17,9 +21,11 @@ class OpenAIMessageFormatter {
17
21
  const formatted = [];
18
22
  let filteredHistory;
19
23
  try {
20
- filteredHistory = filterMessagesByLLMCapabilities([...history], context);
24
+ filteredHistory = filterMessagesByLLMCapabilities([...history], context, this.logger);
21
25
  } catch (error) {
22
- logger.warn(`Failed to apply capability filtering, using original history: ${error}`);
26
+ this.logger.warn(
27
+ `Failed to apply capability filtering, using original history: ${error}`
28
+ );
23
29
  filteredHistory = [...history];
24
30
  }
25
31
  if (systemPrompt) {
@@ -28,6 +34,7 @@ class OpenAIMessageFormatter {
28
34
  content: systemPrompt
29
35
  });
30
36
  }
37
+ const pendingToolCallIds = /* @__PURE__ */ new Set();
31
38
  for (const msg of filteredHistory) {
32
39
  switch (msg.role) {
33
40
  case "system":
@@ -49,6 +56,9 @@ class OpenAIMessageFormatter {
49
56
  content: String(msg.content || ""),
50
57
  tool_calls: msg.toolCalls
51
58
  });
59
+ for (const toolCall of msg.toolCalls) {
60
+ pendingToolCallIds.add(toolCall.id);
61
+ }
52
62
  } else {
53
63
  formatted.push({
54
64
  role: "assistant",
@@ -57,14 +67,33 @@ class OpenAIMessageFormatter {
57
67
  }
58
68
  break;
59
69
  case "tool":
60
- formatted.push({
61
- role: "tool",
62
- content: toTextForToolMessage(msg.content),
63
- tool_call_id: msg.toolCallId || ""
64
- });
70
+ if (msg.toolCallId && pendingToolCallIds.has(msg.toolCallId)) {
71
+ formatted.push({
72
+ role: "tool",
73
+ content: toTextForToolMessage(msg.content),
74
+ tool_call_id: msg.toolCallId
75
+ });
76
+ pendingToolCallIds.delete(msg.toolCallId);
77
+ } else {
78
+ this.logger.warn(
79
+ `Skipping orphaned tool result ${msg.toolCallId} (no matching tool call found) - cannot send to OpenAI without corresponding tool_calls`
80
+ );
81
+ }
65
82
  break;
66
83
  }
67
84
  }
85
+ if (pendingToolCallIds.size > 0) {
86
+ for (const toolCallId of pendingToolCallIds) {
87
+ formatted.push({
88
+ role: "tool",
89
+ content: "Error: Tool execution was interrupted (session crashed or cancelled before completion)",
90
+ tool_call_id: toolCallId
91
+ });
92
+ this.logger.warn(
93
+ `Tool call ${toolCallId} had no matching tool result - added synthetic error result to prevent API errors`
94
+ );
95
+ }
96
+ }
68
97
  return formatted;
69
98
  }
70
99
  /**
@@ -131,7 +160,7 @@ class OpenAIMessageFormatter {
131
160
  return { type: "text", text: part.text };
132
161
  }
133
162
  if (part.type === "image") {
134
- const raw = getImageData(part);
163
+ const raw = getImageData(part, this.logger);
135
164
  const url = raw.startsWith("http://") || raw.startsWith("https://") || raw.startsWith("data:") ? raw : `data:${part.mimeType || "application/octet-stream"};base64,${raw}`;
136
165
  return { type: "image_url", image_url: { url } };
137
166
  }
@@ -22,8 +22,12 @@ __export(vercel_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(vercel_exports);
24
24
  var import_utils = require("../../context/utils.cjs");
25
- var import_logger = require("../../logger/index.cjs");
25
+ var import_types4 = require("../../logger/v2/types.cjs");
26
26
  class VercelMessageFormatter {
27
+ logger;
28
+ constructor(logger) {
29
+ this.logger = logger.createChild(import_types4.DextoLogComponent.LLM);
30
+ }
27
31
  /**
28
32
  * Formats internal messages into Vercel AI SDK format
29
33
  *
@@ -35,11 +39,13 @@ class VercelMessageFormatter {
35
39
  const formatted = [];
36
40
  let filteredHistory;
37
41
  try {
38
- filteredHistory = (0, import_utils.filterMessagesByLLMCapabilities)([...history], context);
42
+ filteredHistory = (0, import_utils.filterMessagesByLLMCapabilities)([...history], context, this.logger);
39
43
  const modelInfo = `${context.provider}/${context.model}`;
40
- import_logger.logger.debug(`Applied Vercel filtering for ${modelInfo}`);
44
+ this.logger.debug(`Applied Vercel filtering for ${modelInfo}`);
41
45
  } catch (error) {
42
- import_logger.logger.warn(`Failed to apply capability filtering, using original history: ${error}`);
46
+ this.logger.warn(
47
+ `Failed to apply capability filtering, using original history: ${error}`
48
+ );
43
49
  filteredHistory = [...history];
44
50
  }
45
51
  if (systemPrompt) {
@@ -48,6 +54,7 @@ class VercelMessageFormatter {
48
54
  content: systemPrompt
49
55
  });
50
56
  }
57
+ const pendingToolCalls = /* @__PURE__ */ new Map();
51
58
  for (const msg of filteredHistory) {
52
59
  switch (msg.role) {
53
60
  case "user":
@@ -87,12 +94,46 @@ class VercelMessageFormatter {
87
94
  break;
88
95
  case "assistant":
89
96
  formatted.push({ role: "assistant", ...this.formatAssistantMessage(msg) });
97
+ if (msg.toolCalls && msg.toolCalls.length > 0) {
98
+ for (const toolCall of msg.toolCalls) {
99
+ pendingToolCalls.set(toolCall.id, toolCall.function.name);
100
+ }
101
+ }
90
102
  break;
91
103
  case "tool":
92
- formatted.push({ role: "tool", ...this.formatToolMessage(msg) });
104
+ if (msg.toolCallId && pendingToolCalls.has(msg.toolCallId)) {
105
+ formatted.push({ role: "tool", ...this.formatToolMessage(msg) });
106
+ pendingToolCalls.delete(msg.toolCallId);
107
+ } else {
108
+ this.logger.warn(
109
+ `Skipping orphaned tool result ${msg.toolCallId} (no matching tool call found) - cannot send to Vercel AI SDK without corresponding tool-call`
110
+ );
111
+ }
93
112
  break;
94
113
  }
95
114
  }
115
+ if (pendingToolCalls.size > 0) {
116
+ for (const [toolCallId, toolName] of pendingToolCalls.entries()) {
117
+ formatted.push({
118
+ role: "tool",
119
+ content: [
120
+ {
121
+ type: "tool-result",
122
+ toolCallId,
123
+ toolName,
124
+ output: {
125
+ type: "text",
126
+ value: "Error: Tool execution was interrupted (session crashed or cancelled before completion)"
127
+ },
128
+ isError: true
129
+ }
130
+ ]
131
+ });
132
+ this.logger.warn(
133
+ `Tool call ${toolCallId} (${toolName}) had no matching tool result - added synthetic error result to prevent API errors`
134
+ );
135
+ }
136
+ }
96
137
  return formatted;
97
138
  }
98
139
  /**
@@ -301,7 +342,7 @@ class VercelMessageFormatter {
301
342
  parsed = JSON.parse(rawArgs);
302
343
  } catch {
303
344
  parsed = {};
304
- import_logger.logger.warn(
345
+ this.logger.warn(
305
346
  `Vercel formatter: invalid tool args JSON for ${toolCall.function.name}`
306
347
  );
307
348
  }
@@ -345,7 +386,7 @@ class VercelMessageFormatter {
345
386
  if (Array.isArray(msg.content)) {
346
387
  if (msg.content[0]?.type === "image") {
347
388
  const imagePart = msg.content[0];
348
- const imageDataBase64 = (0, import_utils.getImageData)(imagePart);
389
+ const imageDataBase64 = (0, import_utils.getImageData)(imagePart, this.logger);
349
390
  toolResultPart = {
350
391
  type: "tool-result",
351
392
  toolCallId: msg.toolCallId,
@@ -363,7 +404,7 @@ class VercelMessageFormatter {
363
404
  };
364
405
  } else if (msg.content[0]?.type === "file") {
365
406
  const filePart = msg.content[0];
366
- const fileDataBase64 = (0, import_utils.getFileData)(filePart);
407
+ const fileDataBase64 = (0, import_utils.getFileData)(filePart, this.logger);
367
408
  toolResultPart = {
368
409
  type: "tool-result",
369
410
  toolCallId: msg.toolCallId,
@@ -3,6 +3,7 @@ import { IMessageFormatter } from './types.js';
3
3
  import { LLMContext } from '../types.js';
4
4
  import { InternalMessage } from '../../context/types.js';
5
5
  import type { GenerateTextResult, StreamTextResult, ToolSet as VercelToolSet } from 'ai';
6
+ import type { IDextoLogger } from '../../logger/v2/types.js';
6
7
  /**
7
8
  * Message formatter for Vercel AI SDK.
8
9
  *
@@ -15,6 +16,8 @@ import type { GenerateTextResult, StreamTextResult, ToolSet as VercelToolSet } f
15
16
  * particularly in its handling of function calls and responses.
16
17
  */
17
18
  export declare class VercelMessageFormatter implements IMessageFormatter {
19
+ private logger;
20
+ constructor(logger: IDextoLogger);
18
21
  /**
19
22
  * Formats internal messages into Vercel AI SDK format
20
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/formatters/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,YAAY,EAOf,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,IAAI,CAAC;AAIzF;;;;;;;;;;GAUG;AACH,qBAAa,sBAAuB,YAAW,iBAAiB;IAC5D;;;;;;OAMG;IACH,MAAM,CACF,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,EACpC,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC5B,YAAY,EAAE;IAkFjB;;;;;;OAMG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;;OAGG;IACG,mBAAmB,CACrB,QAAQ,EAAE,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,GACnD,OAAO,CAAC,eAAe,EAAE,CAAC;IAwC7B;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,eAAe,EAAE;IAsJtF,OAAO,CAAC,sBAAsB;IAuE9B,OAAO,CAAC,iBAAiB;CAoE5B"}
1
+ {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/formatters/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,YAAY,EAOf,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,IAAI,CAAC;AAEzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D;;;;;;;;;;GAUG;AACH,qBAAa,sBAAuB,YAAW,iBAAiB;IAC5D,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAGhC;;;;;;OAMG;IACH,MAAM,CACF,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,EACpC,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC5B,YAAY,EAAE;IAmIjB;;;;;;OAMG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;;OAGG;IACG,mBAAmB,CACrB,QAAQ,EAAE,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,GACnD,OAAO,CAAC,eAAe,EAAE,CAAC;IAwC7B;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,eAAe,EAAE;IAsJtF,OAAO,CAAC,sBAAsB;IAuE9B,OAAO,CAAC,iBAAiB;CAoE5B"}
@@ -1,7 +1,11 @@
1
1
  import "../../chunk-C6A6W6XS.js";
2
2
  import { getImageData, getFileData, filterMessagesByLLMCapabilities } from "../../context/utils.js";
3
- import { logger } from "../../logger/index.js";
3
+ import { DextoLogComponent } from "../../logger/v2/types.js";
4
4
  class VercelMessageFormatter {
5
+ logger;
6
+ constructor(logger) {
7
+ this.logger = logger.createChild(DextoLogComponent.LLM);
8
+ }
5
9
  /**
6
10
  * Formats internal messages into Vercel AI SDK format
7
11
  *
@@ -13,11 +17,13 @@ class VercelMessageFormatter {
13
17
  const formatted = [];
14
18
  let filteredHistory;
15
19
  try {
16
- filteredHistory = filterMessagesByLLMCapabilities([...history], context);
20
+ filteredHistory = filterMessagesByLLMCapabilities([...history], context, this.logger);
17
21
  const modelInfo = `${context.provider}/${context.model}`;
18
- logger.debug(`Applied Vercel filtering for ${modelInfo}`);
22
+ this.logger.debug(`Applied Vercel filtering for ${modelInfo}`);
19
23
  } catch (error) {
20
- logger.warn(`Failed to apply capability filtering, using original history: ${error}`);
24
+ this.logger.warn(
25
+ `Failed to apply capability filtering, using original history: ${error}`
26
+ );
21
27
  filteredHistory = [...history];
22
28
  }
23
29
  if (systemPrompt) {
@@ -26,6 +32,7 @@ class VercelMessageFormatter {
26
32
  content: systemPrompt
27
33
  });
28
34
  }
35
+ const pendingToolCalls = /* @__PURE__ */ new Map();
29
36
  for (const msg of filteredHistory) {
30
37
  switch (msg.role) {
31
38
  case "user":
@@ -65,12 +72,46 @@ class VercelMessageFormatter {
65
72
  break;
66
73
  case "assistant":
67
74
  formatted.push({ role: "assistant", ...this.formatAssistantMessage(msg) });
75
+ if (msg.toolCalls && msg.toolCalls.length > 0) {
76
+ for (const toolCall of msg.toolCalls) {
77
+ pendingToolCalls.set(toolCall.id, toolCall.function.name);
78
+ }
79
+ }
68
80
  break;
69
81
  case "tool":
70
- formatted.push({ role: "tool", ...this.formatToolMessage(msg) });
82
+ if (msg.toolCallId && pendingToolCalls.has(msg.toolCallId)) {
83
+ formatted.push({ role: "tool", ...this.formatToolMessage(msg) });
84
+ pendingToolCalls.delete(msg.toolCallId);
85
+ } else {
86
+ this.logger.warn(
87
+ `Skipping orphaned tool result ${msg.toolCallId} (no matching tool call found) - cannot send to Vercel AI SDK without corresponding tool-call`
88
+ );
89
+ }
71
90
  break;
72
91
  }
73
92
  }
93
+ if (pendingToolCalls.size > 0) {
94
+ for (const [toolCallId, toolName] of pendingToolCalls.entries()) {
95
+ formatted.push({
96
+ role: "tool",
97
+ content: [
98
+ {
99
+ type: "tool-result",
100
+ toolCallId,
101
+ toolName,
102
+ output: {
103
+ type: "text",
104
+ value: "Error: Tool execution was interrupted (session crashed or cancelled before completion)"
105
+ },
106
+ isError: true
107
+ }
108
+ ]
109
+ });
110
+ this.logger.warn(
111
+ `Tool call ${toolCallId} (${toolName}) had no matching tool result - added synthetic error result to prevent API errors`
112
+ );
113
+ }
114
+ }
74
115
  return formatted;
75
116
  }
76
117
  /**
@@ -279,7 +320,7 @@ class VercelMessageFormatter {
279
320
  parsed = JSON.parse(rawArgs);
280
321
  } catch {
281
322
  parsed = {};
282
- logger.warn(
323
+ this.logger.warn(
283
324
  `Vercel formatter: invalid tool args JSON for ${toolCall.function.name}`
284
325
  );
285
326
  }
@@ -323,7 +364,7 @@ class VercelMessageFormatter {
323
364
  if (Array.isArray(msg.content)) {
324
365
  if (msg.content[0]?.type === "image") {
325
366
  const imagePart = msg.content[0];
326
- const imageDataBase64 = getImageData(imagePart);
367
+ const imageDataBase64 = getImageData(imagePart, this.logger);
327
368
  toolResultPart = {
328
369
  type: "tool-result",
329
370
  toolCallId: msg.toolCallId,
@@ -341,7 +382,7 @@ class VercelMessageFormatter {
341
382
  };
342
383
  } else if (msg.content[0]?.type === "file") {
343
384
  const filePart = msg.content[0];
344
- const fileDataBase64 = getFileData(filePart);
385
+ const fileDataBase64 = getFileData(filePart, this.logger);
345
386
  toolResultPart = {
346
387
  type: "tool-result",
347
388
  toolCallId: msg.toolCallId,