@dexto/core 1.2.3 → 1.2.5

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 (523) 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 +164 -64
  15. package/dist/agent/schemas.d.ts +2605 -517
  16. package/dist/agent/schemas.d.ts.map +1 -1
  17. package/dist/agent/schemas.js +167 -64
  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/manager.cjs +9 -7
  210. package/dist/memory/manager.d.ts +3 -1
  211. package/dist/memory/manager.d.ts.map +1 -1
  212. package/dist/memory/manager.js +9 -7
  213. package/dist/memory/schemas.d.ts +6 -6
  214. package/dist/plugins/manager.cjs +21 -19
  215. package/dist/plugins/manager.d.ts +3 -1
  216. package/dist/plugins/manager.d.ts.map +1 -1
  217. package/dist/plugins/manager.js +21 -19
  218. package/dist/plugins/schemas.d.ts +9 -9
  219. package/dist/plugins/types.d.ts +2 -2
  220. package/dist/plugins/types.d.ts.map +1 -1
  221. package/dist/process/command-validator.cjs +30 -20
  222. package/dist/process/command-validator.d.ts +4 -1
  223. package/dist/process/command-validator.d.ts.map +1 -1
  224. package/dist/process/command-validator.js +30 -20
  225. package/dist/process/process-service.cjs +23 -21
  226. package/dist/process/process-service.d.ts +3 -1
  227. package/dist/process/process-service.d.ts.map +1 -1
  228. package/dist/process/process-service.js +23 -21
  229. package/dist/prompts/prompt-manager.cjs +25 -18
  230. package/dist/prompts/prompt-manager.d.ts +3 -1
  231. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  232. package/dist/prompts/prompt-manager.js +25 -18
  233. package/dist/prompts/providers/custom-prompt-provider.cjs +11 -7
  234. package/dist/prompts/providers/custom-prompt-provider.d.ts +3 -1
  235. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  236. package/dist/prompts/providers/custom-prompt-provider.js +11 -7
  237. package/dist/prompts/providers/file-prompt-provider.cjs +14 -12
  238. package/dist/prompts/providers/file-prompt-provider.d.ts +3 -1
  239. package/dist/prompts/providers/file-prompt-provider.d.ts.map +1 -1
  240. package/dist/prompts/providers/file-prompt-provider.js +14 -12
  241. package/dist/prompts/providers/mcp-prompt-provider.cjs +7 -6
  242. package/dist/prompts/providers/mcp-prompt-provider.d.ts +3 -1
  243. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  244. package/dist/prompts/providers/mcp-prompt-provider.js +7 -6
  245. package/dist/prompts/providers/starter-prompt-provider.cjs +7 -5
  246. package/dist/prompts/providers/starter-prompt-provider.d.ts +3 -1
  247. package/dist/prompts/providers/starter-prompt-provider.d.ts.map +1 -1
  248. package/dist/prompts/providers/starter-prompt-provider.js +7 -5
  249. package/dist/prompts/schemas.d.ts +3 -3
  250. package/dist/resources/handlers/blob-handler.cjs +15 -11
  251. package/dist/resources/handlers/blob-handler.d.ts +3 -1
  252. package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
  253. package/dist/resources/handlers/blob-handler.js +15 -11
  254. package/dist/resources/handlers/factory.cjs +3 -3
  255. package/dist/resources/handlers/factory.d.ts +2 -1
  256. package/dist/resources/handlers/factory.d.ts.map +1 -1
  257. package/dist/resources/handlers/factory.js +3 -3
  258. package/dist/resources/handlers/filesystem-handler.cjs +10 -8
  259. package/dist/resources/handlers/filesystem-handler.d.ts +3 -1
  260. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  261. package/dist/resources/handlers/filesystem-handler.js +10 -8
  262. package/dist/resources/internal-provider.cjs +28 -20
  263. package/dist/resources/internal-provider.d.ts +3 -1
  264. package/dist/resources/internal-provider.d.ts.map +1 -1
  265. package/dist/resources/internal-provider.js +28 -20
  266. package/dist/resources/manager.cjs +34 -25
  267. package/dist/resources/manager.d.ts +3 -1
  268. package/dist/resources/manager.d.ts.map +1 -1
  269. package/dist/resources/manager.js +34 -25
  270. package/dist/resources/schemas.d.ts +6 -6
  271. package/dist/search/search-service.cjs +8 -6
  272. package/dist/search/search-service.d.ts +3 -1
  273. package/dist/search/search-service.d.ts.map +1 -1
  274. package/dist/search/search-service.js +8 -6
  275. package/dist/session/chat-session.cjs +40 -27
  276. package/dist/session/chat-session.d.ts +10 -7
  277. package/dist/session/chat-session.d.ts.map +1 -1
  278. package/dist/session/chat-session.js +40 -27
  279. package/dist/session/history/database.cjs +18 -11
  280. package/dist/session/history/database.d.ts +3 -1
  281. package/dist/session/history/database.d.ts.map +1 -1
  282. package/dist/session/history/database.js +18 -11
  283. package/dist/session/history/factory.cjs +2 -2
  284. package/dist/session/history/factory.d.ts +5 -1
  285. package/dist/session/history/factory.d.ts.map +1 -1
  286. package/dist/session/history/factory.js +2 -2
  287. package/dist/session/session-manager.cjs +37 -53
  288. package/dist/session/session-manager.d.ts +3 -17
  289. package/dist/session/session-manager.d.ts.map +1 -1
  290. package/dist/session/session-manager.js +37 -53
  291. package/dist/session/title-generator.cjs +3 -2
  292. package/dist/session/title-generator.d.ts +2 -1
  293. package/dist/session/title-generator.d.ts.map +1 -1
  294. package/dist/session/title-generator.js +3 -2
  295. package/dist/storage/blob/factory.cjs +9 -18
  296. package/dist/storage/blob/factory.d.ts +5 -4
  297. package/dist/storage/blob/factory.d.ts.map +1 -1
  298. package/dist/storage/blob/factory.js +8 -17
  299. package/dist/storage/blob/local-blob-store.cjs +25 -32
  300. package/dist/storage/blob/local-blob-store.d.ts +3 -2
  301. package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
  302. package/dist/storage/blob/local-blob-store.js +25 -32
  303. package/dist/storage/blob/memory-blob-store.cjs +326 -0
  304. package/dist/storage/blob/memory-blob-store.d.ts +66 -0
  305. package/dist/storage/blob/memory-blob-store.d.ts.map +1 -0
  306. package/dist/storage/blob/memory-blob-store.js +303 -0
  307. package/dist/storage/blob/schemas.cjs +3 -1
  308. package/dist/storage/blob/schemas.d.ts +6 -6
  309. package/dist/storage/blob/schemas.d.ts.map +1 -1
  310. package/dist/storage/blob/schemas.js +3 -1
  311. package/dist/storage/cache/factory.cjs +7 -8
  312. package/dist/storage/cache/factory.d.ts +4 -1
  313. package/dist/storage/cache/factory.d.ts.map +1 -1
  314. package/dist/storage/cache/factory.js +4 -5
  315. package/dist/storage/cache/redis-store.cjs +4 -1
  316. package/dist/storage/cache/redis-store.d.ts +3 -1
  317. package/dist/storage/cache/redis-store.d.ts.map +1 -1
  318. package/dist/storage/cache/redis-store.js +4 -1
  319. package/dist/storage/database/factory.cjs +13 -16
  320. package/dist/storage/database/factory.d.ts +5 -3
  321. package/dist/storage/database/factory.d.ts.map +1 -1
  322. package/dist/storage/database/factory.js +9 -12
  323. package/dist/storage/database/postgres-store.cjs +4 -1
  324. package/dist/storage/database/postgres-store.d.ts +3 -1
  325. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  326. package/dist/storage/database/postgres-store.js +4 -1
  327. package/dist/storage/database/schemas.cjs +3 -4
  328. package/dist/storage/database/schemas.d.ts +8 -16
  329. package/dist/storage/database/schemas.d.ts.map +1 -1
  330. package/dist/storage/database/schemas.js +3 -4
  331. package/dist/storage/database/sqlite-store.cjs +17 -45
  332. package/dist/storage/database/sqlite-store.d.ts +3 -3
  333. package/dist/storage/database/sqlite-store.d.ts.map +1 -1
  334. package/dist/storage/database/sqlite-store.js +17 -45
  335. package/dist/storage/schemas.cjs +3 -1
  336. package/dist/storage/schemas.d.ts +16 -23
  337. package/dist/storage/schemas.d.ts.map +1 -1
  338. package/dist/storage/schemas.js +3 -1
  339. package/dist/storage/storage-manager.cjs +15 -15
  340. package/dist/storage/storage-manager.d.ts +6 -6
  341. package/dist/storage/storage-manager.d.ts.map +1 -1
  342. package/dist/storage/storage-manager.js +15 -15
  343. package/dist/systemPrompt/contributors.cjs +15 -15
  344. package/dist/systemPrompt/contributors.d.ts +5 -3
  345. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  346. package/dist/systemPrompt/contributors.js +15 -15
  347. package/dist/systemPrompt/manager.cjs +11 -8
  348. package/dist/systemPrompt/manager.d.ts +4 -2
  349. package/dist/systemPrompt/manager.d.ts.map +1 -1
  350. package/dist/systemPrompt/manager.js +11 -8
  351. package/dist/systemPrompt/schemas.cjs +21 -1
  352. package/dist/systemPrompt/schemas.d.ts +53 -53
  353. package/dist/systemPrompt/schemas.d.ts.map +1 -1
  354. package/dist/systemPrompt/schemas.js +11 -1
  355. package/dist/telemetry/decorators.cjs +54 -15
  356. package/dist/telemetry/decorators.d.ts.map +1 -1
  357. package/dist/telemetry/decorators.js +54 -15
  358. package/dist/telemetry/utils.cjs +21 -14
  359. package/dist/telemetry/utils.d.ts +7 -3
  360. package/dist/telemetry/utils.d.ts.map +1 -1
  361. package/dist/telemetry/utils.js +21 -14
  362. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +2 -2
  363. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +2 -1
  364. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
  365. package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -2
  366. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +7 -6
  367. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +3 -1
  368. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
  369. package/dist/tools/confirmation/allowed-tools-provider/storage.js +7 -6
  370. package/dist/tools/errors.cjs +2 -1
  371. package/dist/tools/errors.d.ts.map +1 -1
  372. package/dist/tools/errors.js +2 -1
  373. package/dist/tools/internal-tools/constants.cjs +2 -1
  374. package/dist/tools/internal-tools/constants.d.ts +1 -1
  375. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  376. package/dist/tools/internal-tools/constants.js +2 -1
  377. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +1 -1
  378. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +1 -1
  379. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +192 -0
  380. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +33 -0
  381. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +1 -0
  382. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +169 -0
  383. package/dist/tools/internal-tools/provider.cjs +21 -17
  384. package/dist/tools/internal-tools/provider.d.ts +3 -1
  385. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  386. package/dist/tools/internal-tools/provider.js +21 -17
  387. package/dist/tools/internal-tools/registry.cjs +5 -0
  388. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  389. package/dist/tools/internal-tools/registry.js +5 -0
  390. package/dist/tools/schemas.cjs +16 -4
  391. package/dist/tools/schemas.d.ts +21 -9
  392. package/dist/tools/schemas.d.ts.map +1 -1
  393. package/dist/tools/schemas.js +15 -4
  394. package/dist/tools/tool-manager.cjs +64 -47
  395. package/dist/tools/tool-manager.d.ts +4 -2
  396. package/dist/tools/tool-manager.d.ts.map +1 -1
  397. package/dist/tools/tool-manager.js +61 -44
  398. package/dist/tools/types.d.ts +0 -4
  399. package/dist/tools/types.d.ts.map +1 -1
  400. package/dist/utils/env-file.cjs +118 -0
  401. package/dist/utils/env-file.d.ts +5 -0
  402. package/dist/utils/env-file.d.ts.map +1 -0
  403. package/dist/utils/env-file.js +85 -0
  404. package/dist/utils/error-conversion.cjs +23 -1
  405. package/dist/utils/error-conversion.d.ts +2 -1
  406. package/dist/utils/error-conversion.d.ts.map +1 -1
  407. package/dist/utils/error-conversion.js +23 -1
  408. package/dist/utils/execution-context.d.ts.map +1 -1
  409. package/dist/utils/fs-walk.d.ts.map +1 -1
  410. package/dist/utils/index.cjs +7 -9
  411. package/dist/utils/index.d.ts +3 -4
  412. package/dist/utils/index.d.ts.map +1 -1
  413. package/dist/utils/index.js +3 -4
  414. package/dist/utils/path.cjs +22 -57
  415. package/dist/utils/path.d.ts +8 -7
  416. package/dist/utils/path.d.ts.map +1 -1
  417. package/dist/utils/path.js +21 -54
  418. package/dist/utils/result.cjs +37 -14
  419. package/dist/utils/result.d.ts.map +1 -1
  420. package/dist/utils/result.js +37 -14
  421. package/dist/utils/schema.cjs +2 -3
  422. package/dist/utils/schema.d.ts +2 -1
  423. package/dist/utils/schema.d.ts.map +1 -1
  424. package/dist/utils/schema.js +1 -2
  425. package/dist/utils/service-initializer.cjs +87 -61
  426. package/dist/utils/service-initializer.d.ts +4 -2
  427. package/dist/utils/service-initializer.d.ts.map +1 -1
  428. package/dist/utils/service-initializer.js +69 -43
  429. package/package.json +7 -3
  430. package/dist/Dexto.cjs +0 -251
  431. package/dist/Dexto.d.ts +0 -191
  432. package/dist/Dexto.d.ts.map +0 -1
  433. package/dist/Dexto.js +0 -228
  434. package/dist/agent/registry/error-codes.cjs +0 -44
  435. package/dist/agent/registry/error-codes.d.ts +0 -21
  436. package/dist/agent/registry/error-codes.d.ts.map +0 -1
  437. package/dist/agent/registry/error-codes.js +0 -21
  438. package/dist/agent/registry/errors.cjs +0 -188
  439. package/dist/agent/registry/errors.d.ts +0 -63
  440. package/dist/agent/registry/errors.d.ts.map +0 -1
  441. package/dist/agent/registry/errors.js +0 -165
  442. package/dist/agent/registry/registry.cjs +0 -479
  443. package/dist/agent/registry/registry.d.ts +0 -130
  444. package/dist/agent/registry/registry.d.ts.map +0 -1
  445. package/dist/agent/registry/registry.js +0 -453
  446. package/dist/agent/registry/types.cjs +0 -74
  447. package/dist/agent/registry/types.d.ts +0 -142
  448. package/dist/agent/registry/types.d.ts.map +0 -1
  449. package/dist/agent/registry/types.js +0 -48
  450. package/dist/agent/registry/user-registry.cjs +0 -140
  451. package/dist/agent/registry/user-registry.d.ts +0 -34
  452. package/dist/agent/registry/user-registry.d.ts.map +0 -1
  453. package/dist/agent/registry/user-registry.js +0 -105
  454. package/dist/approval/providers/event-based-approval-provider.cjs +0 -156
  455. package/dist/approval/providers/event-based-approval-provider.d.ts +0 -39
  456. package/dist/approval/providers/event-based-approval-provider.d.ts.map +0 -1
  457. package/dist/approval/providers/event-based-approval-provider.js +0 -133
  458. package/dist/approval/providers/factory.d.ts.map +0 -1
  459. package/dist/approval/providers/noop-approval-provider.cjs +0 -54
  460. package/dist/approval/providers/noop-approval-provider.d.ts +0 -18
  461. package/dist/approval/providers/noop-approval-provider.d.ts.map +0 -1
  462. package/dist/approval/providers/noop-approval-provider.js +0 -31
  463. package/dist/config/agent-resolver.cjs +0 -153
  464. package/dist/config/agent-resolver.d.ts +0 -14
  465. package/dist/config/agent-resolver.d.ts.map +0 -1
  466. package/dist/config/agent-resolver.js +0 -123
  467. package/dist/config/error-codes.cjs +0 -39
  468. package/dist/config/error-codes.d.ts +0 -16
  469. package/dist/config/error-codes.d.ts.map +0 -1
  470. package/dist/config/error-codes.js +0 -16
  471. package/dist/config/errors.cjs +0 -126
  472. package/dist/config/errors.d.ts +0 -34
  473. package/dist/config/errors.d.ts.map +0 -1
  474. package/dist/config/errors.js +0 -103
  475. package/dist/config/index.cjs +0 -26
  476. package/dist/config/index.d.ts +0 -4
  477. package/dist/config/index.d.ts.map +0 -1
  478. package/dist/config/index.js +0 -3
  479. package/dist/config/loader.cjs +0 -119
  480. package/dist/config/loader.d.ts +0 -16
  481. package/dist/config/loader.d.ts.map +0 -1
  482. package/dist/config/loader.js +0 -86
  483. package/dist/config/writer.cjs +0 -182
  484. package/dist/config/writer.d.ts +0 -35
  485. package/dist/config/writer.d.ts.map +0 -1
  486. package/dist/config/writer.js +0 -147
  487. package/dist/preferences/constants.d.ts +0 -2
  488. package/dist/preferences/constants.d.ts.map +0 -1
  489. package/dist/preferences/constants.js +0 -5
  490. package/dist/preferences/error-codes.d.ts +0 -8
  491. package/dist/preferences/error-codes.d.ts.map +0 -1
  492. package/dist/preferences/error-codes.js +0 -12
  493. package/dist/preferences/errors.cjs +0 -75
  494. package/dist/preferences/errors.d.ts +0 -18
  495. package/dist/preferences/errors.d.ts.map +0 -1
  496. package/dist/preferences/errors.js +0 -51
  497. package/dist/preferences/index.cjs +0 -55
  498. package/dist/preferences/index.d.ts +0 -6
  499. package/dist/preferences/index.d.ts.map +0 -1
  500. package/dist/preferences/index.js +0 -32
  501. package/dist/preferences/loader.cjs +0 -138
  502. package/dist/preferences/loader.d.ts +0 -51
  503. package/dist/preferences/loader.d.ts.map +0 -1
  504. package/dist/preferences/loader.js +0 -110
  505. package/dist/preferences/schemas.cjs +0 -75
  506. package/dist/preferences/schemas.d.ts +0 -110
  507. package/dist/preferences/schemas.d.ts.map +0 -1
  508. package/dist/preferences/schemas.js +0 -49
  509. package/dist/utils/api-key-store.cjs +0 -56
  510. package/dist/utils/api-key-store.d.ts +0 -24
  511. package/dist/utils/api-key-store.d.ts.map +0 -1
  512. package/dist/utils/api-key-store.js +0 -31
  513. package/dist/utils/env.cjs +0 -154
  514. package/dist/utils/env.d.ts +0 -28
  515. package/dist/utils/env.d.ts.map +0 -1
  516. package/dist/utils/env.js +0 -119
  517. package/dist/utils/port-utils.cjs +0 -37
  518. package/dist/utils/port-utils.d.ts +0 -10
  519. package/dist/utils/port-utils.d.ts.map +0 -1
  520. package/dist/utils/port-utils.js +0 -14
  521. package/dist/utils/port-utils.spec.cjs +0 -26
  522. package/dist/utils/port-utils.spec.js +0 -25
  523. /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,