@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
@@ -10,7 +10,7 @@ import {
10
10
  APICallError,
11
11
  stepCountIs
12
12
  } from "ai";
13
- import { logger } from "../../logger/index.js";
13
+ import { DextoLogComponent } from "../../logger/v2/types.js";
14
14
  import { jsonSchema } from "ai";
15
15
  import { ContextManager } from "../../context/manager.js";
16
16
  import { summarizeToolContentForText } from "../../context/utils.js";
@@ -24,7 +24,7 @@ import { ToolErrorCode } from "../../tools/error-codes.js";
24
24
  import { VercelMessageFormatter } from "../formatters/vercel.js";
25
25
  import { createTokenizer } from "../tokenizer/factory.js";
26
26
  import { InstrumentClass } from "../../telemetry/decorators.js";
27
- import { trace } from "@opentelemetry/api";
27
+ import { trace, context, propagation } from "@opentelemetry/api";
28
28
  _VercelLLMService_decorators = [InstrumentClass({
29
29
  prefix: "llm.vercel",
30
30
  excludeMethods: ["getModelId", "getAllTools", "formatTools", "validateToolSupport"]
@@ -37,21 +37,23 @@ class VercelLLMService {
37
37
  sessionEventBus;
38
38
  sessionId;
39
39
  toolSupportCache = /* @__PURE__ */ new Map();
40
+ logger;
40
41
  /**
41
42
  * Helper to extract model ID from LanguageModel union type (string | LanguageModelV2)
42
43
  */
43
44
  getModelId() {
44
45
  return typeof this.model === "string" ? this.model : this.model.modelId;
45
46
  }
46
- constructor(toolManager, model, systemPromptManager, historyProvider, sessionEventBus, config, sessionId, resourceManager) {
47
+ constructor(toolManager, model, systemPromptManager, historyProvider, sessionEventBus, config, sessionId, resourceManager, logger) {
48
+ this.logger = logger.createChild(DextoLogComponent.LLM);
47
49
  this.model = model;
48
50
  this.config = config;
49
51
  this.toolManager = toolManager;
50
52
  this.sessionEventBus = sessionEventBus;
51
53
  this.sessionId = sessionId;
52
- const formatter = new VercelMessageFormatter();
53
- const tokenizer = createTokenizer(config.provider, this.getModelId());
54
- const maxInputTokens = getEffectiveMaxInputTokens(config);
54
+ const formatter = new VercelMessageFormatter(this.logger);
55
+ const tokenizer = createTokenizer(config.provider, this.getModelId(), this.logger);
56
+ const maxInputTokens = getEffectiveMaxInputTokens(config, this.logger);
55
57
  this.contextManager = new ContextManager(
56
58
  config,
57
59
  formatter,
@@ -60,10 +62,11 @@ class VercelLLMService {
60
62
  tokenizer,
61
63
  historyProvider,
62
64
  sessionId,
63
- resourceManager
65
+ resourceManager,
66
+ this.logger
64
67
  // compressionStrategies uses default
65
68
  );
66
- logger.debug(
69
+ this.logger.debug(
67
70
  `[VercelLLMService] Initialized for model: ${this.getModelId()}, provider: ${this.config.provider}, temperature: ${this.config.temperature}, maxOutputTokens: ${this.config.maxOutputTokens}`
68
71
  );
69
72
  }
@@ -71,7 +74,7 @@ class VercelLLMService {
71
74
  return this.toolManager.getAllTools();
72
75
  }
73
76
  formatTools(tools) {
74
- logger.debug(`Formatting tools for vercel`);
77
+ this.logger.debug(`Formatting tools for vercel`);
75
78
  return Object.keys(tools).reduce((acc, toolName) => {
76
79
  const tool = tools[toolName];
77
80
  if (tool) {
@@ -80,10 +83,10 @@ class VercelLLMService {
80
83
  execute: async (args, options) => {
81
84
  const callId = options.toolCallId;
82
85
  try {
83
- logger.debug(
86
+ this.logger.debug(
84
87
  `[vercel] Emitting toolCall event for ${toolName} with callId ${callId}`
85
88
  );
86
- this.sessionEventBus.emit("llmservice:toolCall", {
89
+ this.sessionEventBus.emit("llm:tool-call", {
87
90
  toolName,
88
91
  args,
89
92
  callId
@@ -99,10 +102,10 @@ class VercelLLMService {
99
102
  rawResult,
100
103
  { success: true }
101
104
  );
102
- logger.debug(
105
+ this.logger.debug(
103
106
  `[vercel] Emitting toolResult event for ${toolName} with callId ${callId}`
104
107
  );
105
- this.sessionEventBus.emit("llmservice:toolResult", {
108
+ this.sessionEventBus.emit("llm:tool-result", {
106
109
  toolName,
107
110
  callId,
108
111
  success: true,
@@ -131,7 +134,7 @@ class VercelLLMService {
131
134
  errorResult,
132
135
  { success: false }
133
136
  );
134
- this.sessionEventBus.emit("llmservice:toolResult", {
137
+ this.sessionEventBus.emit("llm:tool-result", {
135
138
  toolName,
136
139
  callId,
137
140
  success: false,
@@ -139,7 +142,7 @@ class VercelLLMService {
139
142
  ...shouldIncludeRawToolResult() ? { rawResult: errorResult } : {}
140
143
  });
141
144
  } catch (persistErr) {
142
- logger.error(
145
+ this.logger.error(
143
146
  `Failed to persist error result for ${toolName}: ${String(persistErr)}`
144
147
  );
145
148
  }
@@ -158,11 +161,11 @@ class VercelLLMService {
158
161
  return this.toolSupportCache.get(modelKey);
159
162
  }
160
163
  if (!this.config.baseURL) {
161
- logger.debug(`Skipping tool validation for ${modelKey} - no custom baseURL`);
164
+ this.logger.debug(`Skipping tool validation for ${modelKey} - no custom baseURL`);
162
165
  this.toolSupportCache.set(modelKey, true);
163
166
  return true;
164
167
  }
165
- logger.debug(`Testing tool support for custom endpoint model: ${modelKey}`);
168
+ this.logger.debug(`Testing tool support for custom endpoint model: ${modelKey}`);
166
169
  const testTool = {
167
170
  test_tool: {
168
171
  inputSchema: jsonSchema({
@@ -181,16 +184,16 @@ class VercelLLMService {
181
184
  stopWhen: stepCountIs(1)
182
185
  });
183
186
  this.toolSupportCache.set(modelKey, true);
184
- logger.debug(`Model ${modelKey} supports tools`);
187
+ this.logger.debug(`Model ${modelKey} supports tools`);
185
188
  return true;
186
189
  } catch (error) {
187
190
  const errorMessage = error instanceof Error ? error.message : String(error);
188
191
  if (errorMessage.includes("does not support tools")) {
189
192
  this.toolSupportCache.set(modelKey, false);
190
- logger.debug(`Model ${modelKey} does not support tools`);
193
+ this.logger.debug(`Model ${modelKey} does not support tools`);
191
194
  return false;
192
195
  }
193
- logger.debug(
196
+ this.logger.debug(
194
197
  `Tool validation error for ${modelKey}, assuming supported: ${errorMessage}`
195
198
  );
196
199
  this.toolSupportCache.set(modelKey, true);
@@ -198,57 +201,80 @@ class VercelLLMService {
198
201
  }
199
202
  }
200
203
  async completeTask(textInput, options, imageData, fileData, stream) {
201
- logger.debug(
202
- `[VercelLLMService] addUserMessage(text ~${textInput.length} chars, image=${Boolean(
203
- imageData
204
- )}, file=${Boolean(fileData)})`
205
- );
206
- await this.contextManager.addUserMessage(textInput, imageData, fileData);
207
- const tools = await this.toolManager.getAllTools();
208
- logger.silly(
209
- `[VercelLLMService] Tools before formatting: ${JSON.stringify(tools, null, 2)}`
210
- );
211
- const formattedTools = this.formatTools(tools);
212
- logger.silly(
213
- `[VercelLLMService] Formatted tools: ${JSON.stringify(formattedTools, null, 2)}`
214
- );
215
- let fullResponse = "";
216
- this.sessionEventBus.emit("llmservice:thinking");
217
- const prepared = await this.contextManager.getFormattedMessagesWithCompression(
218
- { mcpManager: this.toolManager.getMcpManager() },
219
- { provider: this.config.provider, model: this.getModelId() }
220
- );
221
- const formattedMessages = prepared.formattedMessages;
222
- const tokensUsed = prepared.tokensUsed;
223
- logger.silly(
224
- `Messages (potentially compressed): ${JSON.stringify(formattedMessages, null, 2)}`
204
+ const activeSpan = trace.getActiveSpan();
205
+ const currentContext = context.active();
206
+ const provider = this.config.provider;
207
+ const model = this.getModelId();
208
+ if (activeSpan) {
209
+ activeSpan.setAttribute("llm.provider", provider);
210
+ activeSpan.setAttribute("llm.model", model);
211
+ }
212
+ const existingBaggage = propagation.getBaggage(currentContext);
213
+ const baggageEntries = {};
214
+ if (existingBaggage) {
215
+ existingBaggage.getAllEntries().forEach(([key, entry]) => {
216
+ baggageEntries[key] = entry;
217
+ });
218
+ }
219
+ baggageEntries["llm.provider"] = { value: provider };
220
+ baggageEntries["llm.model"] = { value: model };
221
+ const updatedContext = propagation.setBaggage(
222
+ currentContext,
223
+ propagation.createBaggage(baggageEntries)
225
224
  );
226
- logger.silly(`Tools: ${JSON.stringify(formattedTools, null, 2)}`);
227
- logger.debug(`Estimated tokens being sent to Vercel provider: ${tokensUsed}`);
228
- if (stream) {
229
- fullResponse = await this.streamText(
230
- formattedMessages,
231
- formattedTools,
232
- this.config.maxIterations,
233
- options?.signal
225
+ return await context.with(updatedContext, async () => {
226
+ await this.contextManager.addUserMessage(textInput, imageData, fileData);
227
+ const tools = await this.toolManager.getAllTools();
228
+ this.logger.silly(
229
+ `[VercelLLMService] Tools before formatting: ${JSON.stringify(tools, null, 2)}`
234
230
  );
235
- } else {
236
- fullResponse = await this.generateText(
237
- formattedMessages,
238
- formattedTools,
239
- this.config.maxIterations,
240
- options?.signal
231
+ const formattedTools = this.formatTools(tools);
232
+ this.logger.silly(
233
+ `[VercelLLMService] Formatted tools: ${JSON.stringify(formattedTools, null, 2)}`
241
234
  );
242
- }
243
- if (options?.signal?.aborted) {
244
- return fullResponse;
245
- }
246
- return fullResponse || `Reached maximum number of steps (${this.config.maxIterations}) without a final response.`;
235
+ let fullResponse = "";
236
+ this.sessionEventBus.emit("llm:thinking");
237
+ const prepared = await this.contextManager.getFormattedMessagesWithCompression(
238
+ { mcpManager: this.toolManager.getMcpManager() },
239
+ { provider: this.config.provider, model: this.getModelId() }
240
+ );
241
+ const formattedMessages = prepared.formattedMessages;
242
+ const tokensUsed = prepared.tokensUsed;
243
+ this.logger.silly(
244
+ `Messages (potentially compressed): ${JSON.stringify(formattedMessages, null, 2)}`
245
+ );
246
+ this.logger.silly(`Tools: ${JSON.stringify(formattedTools, null, 2)}`);
247
+ this.logger.debug(`Estimated tokens being sent to Vercel provider: ${tokensUsed}`);
248
+ if (stream) {
249
+ fullResponse = await this.streamText(
250
+ formattedMessages,
251
+ formattedTools,
252
+ this.config.maxIterations,
253
+ options?.signal
254
+ );
255
+ } else {
256
+ fullResponse = await this.generateText(
257
+ formattedMessages,
258
+ formattedTools,
259
+ this.config.maxIterations,
260
+ options?.signal
261
+ );
262
+ }
263
+ if (options?.signal?.aborted) {
264
+ return fullResponse;
265
+ }
266
+ return fullResponse || `Reached maximum number of steps (${this.config.maxIterations}) without a final response.`;
267
+ });
247
268
  }
248
269
  async generateText(messages, tools, maxSteps = 50, signal) {
270
+ const activeSpan = trace.getActiveSpan();
271
+ if (activeSpan) {
272
+ activeSpan.setAttribute("llm.provider", this.config.provider);
273
+ activeSpan.setAttribute("llm.model", this.getModelId());
274
+ }
249
275
  let stepIteration = 0;
250
276
  const estimatedTokens = Math.ceil(JSON.stringify(messages, null, 2).length / 4);
251
- logger.debug(
277
+ this.logger.debug(
252
278
  `vercel generateText:Generating text with messages (${estimatedTokens} estimated tokens)`
253
279
  );
254
280
  const temperature = this.config.temperature;
@@ -256,7 +282,7 @@ class VercelLLMService {
256
282
  const supportsTools = await this.validateToolSupport();
257
283
  const effectiveTools = supportsTools ? tools : {};
258
284
  if (!supportsTools && Object.keys(tools).length > 0) {
259
- logger.debug(
285
+ this.logger.debug(
260
286
  `Model ${this.getModelId()} does not support tools, using empty tools object for generation`
261
287
  );
262
288
  }
@@ -268,13 +294,13 @@ class VercelLLMService {
268
294
  tools: effectiveTools,
269
295
  ...signal ? { abortSignal: signal } : {},
270
296
  onStepFinish: async (step) => {
271
- logger.debug(`Step iteration: ${stepIteration}`);
297
+ this.logger.debug(`Step iteration: ${stepIteration}`);
272
298
  stepIteration++;
273
- logger.debug(`Step finished, text: ${step.text}`);
274
- logger.debug(
299
+ this.logger.debug(`Step finished, text: ${step.text}`);
300
+ this.logger.debug(
275
301
  `Step finished, step tool calls: ${JSON.stringify(step.toolCalls, null, 2)}`
276
302
  );
277
- logger.debug(
303
+ this.logger.debug(
278
304
  `Step finished, step tool results: ${JSON.stringify(step.toolResults, null, 2)}`
279
305
  );
280
306
  },
@@ -282,7 +308,7 @@ class VercelLLMService {
282
308
  ...includeMaxOutputTokens ? { maxOutputTokens } : {},
283
309
  ...temperature !== void 0 && { temperature }
284
310
  });
285
- this.sessionEventBus.emit("llmservice:response", {
311
+ this.sessionEventBus.emit("llm:response", {
286
312
  content: response.text,
287
313
  ...response.reasoningText && { reasoning: response.reasoningText },
288
314
  provider: this.config.provider,
@@ -303,8 +329,8 @@ class VercelLLMService {
303
329
  }
304
330
  }
305
331
  });
306
- const activeSpan = trace.getActiveSpan();
307
- if (activeSpan) {
332
+ const activeSpan2 = trace.getActiveSpan();
333
+ if (activeSpan2) {
308
334
  const attributes = {};
309
335
  if (response.totalUsage.inputTokens !== void 0) {
310
336
  attributes["gen_ai.usage.input_tokens"] = response.totalUsage.inputTokens;
@@ -318,7 +344,7 @@ class VercelLLMService {
318
344
  if (response.totalUsage.reasoningTokens !== void 0) {
319
345
  attributes["gen_ai.usage.reasoning_tokens"] = response.totalUsage.reasoningTokens;
320
346
  }
321
- activeSpan.setAttributes(attributes);
347
+ activeSpan2.setAttributes(attributes);
322
348
  }
323
349
  await this.contextManager.processLLMResponse(response);
324
350
  if (typeof response.totalUsage.totalTokens === "number") {
@@ -326,17 +352,24 @@ class VercelLLMService {
326
352
  }
327
353
  return response.text;
328
354
  } catch (err) {
329
- this.mapProviderError(err, "generate");
355
+ const error = this.mapProviderError(err, "generate");
356
+ this.sessionEventBus.emit("llm:error", {
357
+ error,
358
+ context: "generateText",
359
+ recoverable: false
360
+ });
361
+ return "";
330
362
  }
331
363
  }
332
364
  mapProviderError(err, phase) {
333
365
  if (APICallError.isInstance?.(err)) {
366
+ this.logger.error(`APICallError in mapProviderError: ${JSON.stringify(err, null, 2)}`);
334
367
  const status = err.statusCode;
335
368
  const headers = err.responseHeaders || {};
336
369
  const retryAfter = headers["retry-after"] ? Number(headers["retry-after"]) : void 0;
337
370
  const body = typeof err.responseBody === "string" ? err.responseBody : JSON.stringify(err.responseBody ?? "");
338
371
  if (status === 429) {
339
- throw new DextoRuntimeError(
372
+ return new DextoRuntimeError(
340
373
  LLMErrorCode.RATE_LIMIT_EXCEEDED,
341
374
  ErrorScope.LLM,
342
375
  ErrorType.RATE_LIMIT,
@@ -353,7 +386,7 @@ class VercelLLMService {
353
386
  );
354
387
  }
355
388
  if (status === 408) {
356
- throw new DextoRuntimeError(
389
+ return new DextoRuntimeError(
357
390
  LLMErrorCode.GENERATION_FAILED,
358
391
  ErrorScope.LLM,
359
392
  ErrorType.TIMEOUT,
@@ -368,7 +401,7 @@ class VercelLLMService {
368
401
  }
369
402
  );
370
403
  }
371
- throw new DextoRuntimeError(
404
+ return new DextoRuntimeError(
372
405
  LLMErrorCode.GENERATION_FAILED,
373
406
  ErrorScope.LLM,
374
407
  ErrorType.THIRD_PARTY,
@@ -383,38 +416,44 @@ class VercelLLMService {
383
416
  }
384
417
  );
385
418
  }
386
- throw err;
419
+ return toError(err, this.logger);
387
420
  }
388
421
  // Updated streamText to behave like generateText - returns string and handles message processing internally
389
422
  async streamText(messages, tools, maxSteps = 10, signal) {
423
+ const activeSpan = trace.getActiveSpan();
424
+ if (activeSpan) {
425
+ activeSpan.setAttribute("llm.provider", this.config.provider);
426
+ activeSpan.setAttribute("llm.model", this.getModelId());
427
+ }
390
428
  let stepIteration = 0;
391
429
  const temperature = this.config.temperature;
392
430
  const maxOutputTokens = this.config.maxOutputTokens;
393
431
  const supportsTools = await this.validateToolSupport();
394
432
  const effectiveTools = supportsTools ? tools : {};
395
433
  if (!supportsTools && Object.keys(tools).length > 0) {
396
- logger.debug(
434
+ this.logger.debug(
397
435
  `Model ${this.getModelId()} does not support tools, using empty tools object for streaming`
398
436
  );
399
437
  }
400
438
  let streamErr;
401
439
  const includeMaxOutputTokens = typeof maxOutputTokens === "number";
402
- const response = streamText({
440
+ let response;
441
+ response = streamText({
403
442
  model: this.model,
404
443
  messages,
405
444
  tools: effectiveTools,
406
445
  ...signal ? { abortSignal: signal } : {},
407
446
  onChunk: (chunk) => {
408
- logger.debug(`Chunk type: ${chunk.chunk.type}`);
447
+ this.logger.debug(`Chunk type: ${chunk.chunk.type}`);
409
448
  if (chunk.chunk.type === "text-delta") {
410
- this.sessionEventBus.emit("llmservice:chunk", {
411
- type: "text",
449
+ this.sessionEventBus.emit("llm:chunk", {
450
+ chunkType: "text",
412
451
  content: chunk.chunk.text,
413
452
  isComplete: false
414
453
  });
415
454
  } else if (chunk.chunk.type === "reasoning-delta") {
416
- this.sessionEventBus.emit("llmservice:chunk", {
417
- type: "reasoning",
455
+ this.sessionEventBus.emit("llm:chunk", {
456
+ chunkType: "reasoning",
418
457
  content: chunk.chunk.text,
419
458
  isComplete: false
420
459
  });
@@ -424,9 +463,9 @@ class VercelLLMService {
424
463
  // Vercel triggers onAbort instead of onError for cancelled streams.
425
464
  // This is where cancellation logic should be handled properly.
426
465
  onError: (error) => {
427
- const err = toError(error);
428
- logger.error(`Error in streamText: ${err?.stack ?? err}`, null, "red");
429
- this.sessionEventBus.emit("llmservice:error", {
466
+ const err = this.mapProviderError(error, "stream");
467
+ this.logger.error(`Error in streamText after parsing: ${err.toString()}`);
468
+ this.sessionEventBus.emit("llm:error", {
430
469
  error: err,
431
470
  context: "streamText",
432
471
  recoverable: false
@@ -434,13 +473,13 @@ class VercelLLMService {
434
473
  streamErr = error;
435
474
  },
436
475
  onStepFinish: async (step) => {
437
- logger.debug(`Step iteration: ${stepIteration}`);
476
+ this.logger.debug(`Step iteration: ${stepIteration}`);
438
477
  stepIteration++;
439
- logger.debug(`Step finished, text: ${step.text}`);
440
- logger.debug(
478
+ this.logger.debug(`Step finished, text: ${step.text}`);
479
+ this.logger.debug(
441
480
  `Step finished, step tool calls: ${JSON.stringify(step.toolCalls, null, 2)}`
442
481
  );
443
- logger.debug(
482
+ this.logger.debug(
444
483
  `Step finished, step tool results: ${JSON.stringify(step.toolResults, null, 2)}`
445
484
  );
446
485
  },
@@ -449,16 +488,28 @@ class VercelLLMService {
449
488
  ...includeMaxOutputTokens ? { maxOutputTokens } : {},
450
489
  ...temperature !== void 0 && { temperature }
451
490
  });
452
- const [finalText, usage, reasoningText] = await Promise.all([
453
- response.text,
454
- response.totalUsage,
455
- response.reasoningText
456
- ]);
457
- response.totalUsage;
458
491
  if (streamErr) {
459
492
  return "";
460
493
  }
461
- this.sessionEventBus.emit("llmservice:response", {
494
+ let finalText;
495
+ let usage;
496
+ let reasoningText;
497
+ try {
498
+ [finalText, usage, reasoningText] = await Promise.all([
499
+ response.text,
500
+ response.totalUsage,
501
+ response.reasoningText
502
+ ]);
503
+ } catch (_error) {
504
+ this.logger.debug(
505
+ `streamText finalization failed while awaiting text/usage/reasoning: ${String(_error)}`
506
+ );
507
+ return "";
508
+ }
509
+ this.logger.debug(`streamText finalText: ${finalText}`);
510
+ this.logger.debug(`streamText usage: ${JSON.stringify(usage, null, 2)}`);
511
+ this.logger.debug(`streamText reasoningText: ${reasoningText}`);
512
+ this.sessionEventBus.emit("llm:response", {
462
513
  content: finalText,
463
514
  ...reasoningText && { reasoning: reasoningText },
464
515
  provider: this.config.provider,
@@ -473,8 +524,8 @@ class VercelLLMService {
473
524
  ...usage.totalTokens !== void 0 && { totalTokens: usage.totalTokens }
474
525
  }
475
526
  });
476
- const activeSpan = trace.getActiveSpan();
477
- if (activeSpan) {
527
+ const activeSpan2 = trace.getActiveSpan();
528
+ if (activeSpan2) {
478
529
  const attributes = {};
479
530
  if (usage.inputTokens !== void 0) {
480
531
  attributes["gen_ai.usage.input_tokens"] = usage.inputTokens;
@@ -488,13 +539,13 @@ class VercelLLMService {
488
539
  if (usage.reasoningTokens !== void 0) {
489
540
  attributes["gen_ai.usage.reasoning_tokens"] = usage.reasoningTokens;
490
541
  }
491
- activeSpan.setAttributes(attributes);
542
+ activeSpan2.setAttributes(attributes);
492
543
  }
493
544
  if (typeof usage.totalTokens === "number") {
494
545
  this.contextManager.updateActualTokenCount(usage.totalTokens);
495
546
  }
496
547
  await this.contextManager.processLLMStreamResponse(response);
497
- logger.silly(`streamText response object: ${JSON.stringify(response, null, 2)}`);
548
+ this.logger.silly(`streamText response object: ${JSON.stringify(response, null, 2)}`);
498
549
  return finalText;
499
550
  }
500
551
  /**
@@ -508,12 +559,13 @@ class VercelLLMService {
508
559
  modelMaxInputTokens = getMaxInputTokensForModel(
509
560
  this.config.provider,
510
561
  // Use our internal provider name
511
- this.getModelId()
562
+ this.getModelId(),
563
+ this.logger
512
564
  );
513
565
  } catch (error) {
514
566
  if (error instanceof DextoRuntimeError && error.code === LLMErrorCode.MODEL_UNKNOWN) {
515
567
  modelMaxInputTokens = configuredMaxTokens;
516
- logger.debug(
568
+ this.logger.debug(
517
569
  `Could not find model ${this.getModelId()} in LLM registry to get max tokens. Using configured max tokens: ${configuredMaxTokens}.`
518
570
  );
519
571
  } else {
@@ -25,10 +25,10 @@ var import_openai = require("./openai.js");
25
25
  var import_anthropic = require("./anthropic.js");
26
26
  var import_google = require("./google.js");
27
27
  var import_default = require("./default.js");
28
- function createTokenizer(provider, model) {
28
+ function createTokenizer(provider, model, logger) {
29
29
  switch (provider) {
30
30
  case "openai":
31
- return new import_openai.OpenAITokenizer(model);
31
+ return new import_openai.OpenAITokenizer(model, logger);
32
32
  case "anthropic":
33
33
  return new import_anthropic.AnthropicTokenizer();
34
34
  case "google":
@@ -1,10 +1,12 @@
1
1
  import { ITokenizer } from './types.js';
2
2
  import type { LLMProvider } from '../types.js';
3
+ import type { IDextoLogger } from '../../logger/v2/types.js';
3
4
  /**
4
5
  * Creates the appropriate tokenizer for the specified provider and model
5
6
  * @param provider The LLM provider name (case-insensitive)
6
7
  * @param model The specific model name (used by some tokenizers)
8
+ * @param logger The logger instance for logging
7
9
  * @returns An appropriate tokenizer implementation, or DefaultTokenizer if no specific implementation exists
8
10
  */
9
- export declare function createTokenizer(provider: LLMProvider, model: string): ITokenizer;
11
+ export declare function createTokenizer(provider: LLMProvider, model: string, logger: IDextoLogger): ITokenizer;
10
12
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/llm/tokenizer/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAchF"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/llm/tokenizer/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,GACrB,UAAU,CAcZ"}
@@ -3,10 +3,10 @@ import { OpenAITokenizer } from "./openai.js";
3
3
  import { AnthropicTokenizer } from "./anthropic.js";
4
4
  import { GoogleTokenizer } from "./google.js";
5
5
  import { DefaultTokenizer } from "./default.js";
6
- function createTokenizer(provider, model) {
6
+ function createTokenizer(provider, model, logger) {
7
7
  switch (provider) {
8
8
  case "openai":
9
- return new OpenAITokenizer(model);
9
+ return new OpenAITokenizer(model, logger);
10
10
  case "anthropic":
11
11
  return new AnthropicTokenizer();
12
12
  case "google":
@@ -23,7 +23,7 @@ __export(openai_exports, {
23
23
  module.exports = __toCommonJS(openai_exports);
24
24
  var import_types = require("./types.js");
25
25
  var import_module = require("module");
26
- var import_logger = require("../../logger/index.js");
26
+ var import_types2 = require("../../logger/v2/types.js");
27
27
  const import_meta = {};
28
28
  const FALLBACK_ENCODING = "cl100k_base";
29
29
  class OpenAITokenizer {
@@ -31,29 +31,36 @@ class OpenAITokenizer {
31
31
  // Store original model name for context/logging
32
32
  encoding;
33
33
  // Tiktoken encoding instance
34
+ logger;
34
35
  /**
35
36
  * Initializes the tokenizer for a specific OpenAI model or compatible model.
36
37
  * @param model The OpenAI model name (e.g., 'gpt-5') or a custom model name.
38
+ * @param logger The logger instance for logging.
37
39
  * @throws TokenizationError if tiktoken initialization fails for both specific model and fallback.
38
40
  */
39
- constructor(model) {
41
+ constructor(model, logger) {
40
42
  this.modelName = model;
43
+ this.logger = logger.createChild(import_types2.DextoLogComponent.LLM);
41
44
  try {
42
45
  const { encoding_for_model } = loadTiktoken();
43
46
  this.encoding = encoding_for_model(model);
44
- import_logger.logger.debug(`Initialized tiktoken with specific encoding for model: ${model}`);
47
+ this.logger.debug(`Initialized tiktoken with specific encoding for model: ${model}`);
45
48
  } catch (error) {
46
- import_logger.logger.warn(
49
+ this.logger.warn(
47
50
  `Could not get specific encoding for model '${this.modelName}'. Falling back to '${FALLBACK_ENCODING}'. Error: ${error instanceof Error ? error.message : String(error)}`
48
51
  );
49
52
  try {
50
53
  const { get_encoding } = loadTiktoken();
51
54
  this.encoding = get_encoding(FALLBACK_ENCODING);
52
- import_logger.logger.debug(`Initialized tiktoken with fallback encoding: ${FALLBACK_ENCODING}`);
55
+ this.logger.debug(
56
+ `Initialized tiktoken with fallback encoding: ${FALLBACK_ENCODING}`
57
+ );
53
58
  } catch (fallbackError) {
54
- import_logger.logger.error(
59
+ this.logger.error(
55
60
  `Failed to initialize tiktoken with specific model '${this.modelName}' or fallback '${FALLBACK_ENCODING}'.`,
56
- fallbackError
61
+ {
62
+ error: fallbackError instanceof Error ? fallbackError.message : String(fallbackError)
63
+ }
57
64
  );
58
65
  throw new import_types.TokenizationError(
59
66
  `Failed to initialize tiktoken for model '${this.modelName}' using specific or fallback encoding ('${FALLBACK_ENCODING}'): ${fallbackError instanceof Error ? fallbackError.message : String(fallbackError)}`
@@ -73,9 +80,9 @@ class OpenAITokenizer {
73
80
  const tokens = this.encoding.encode(text);
74
81
  return tokens.length;
75
82
  } catch (error) {
76
- import_logger.logger.error(
83
+ this.logger.error(
77
84
  `Tiktoken encoding failed for model ${this.modelName} (using encoding: ${this.encoding.name}):`,
78
- error
85
+ { error: error instanceof Error ? error.message : String(error) }
79
86
  );
80
87
  throw new import_types.TokenizationError(
81
88
  `Encoding failed for text snippet using model ${this.modelName}.`
@@ -1,4 +1,5 @@
1
1
  import { ITokenizer } from './types.js';
2
+ import type { IDextoLogger } from '../../logger/v2/types.js';
2
3
  /**
3
4
  * Tokenizer for OpenAI models using the tiktoken library.
4
5
  * Attempts to use the specific model's encoding, falls back to a common base encoding ('cl100k_base')
@@ -7,12 +8,14 @@ import { ITokenizer } from './types.js';
7
8
  export declare class OpenAITokenizer implements ITokenizer {
8
9
  private modelName;
9
10
  private encoding;
11
+ private logger;
10
12
  /**
11
13
  * Initializes the tokenizer for a specific OpenAI model or compatible model.
12
14
  * @param model The OpenAI model name (e.g., 'gpt-5') or a custom model name.
15
+ * @param logger The logger instance for logging.
13
16
  * @throws TokenizationError if tiktoken initialization fails for both specific model and fallback.
14
17
  */
15
- constructor(model: string);
18
+ constructor(model: string, logger: IDextoLogger);
16
19
  /**
17
20
  * Counts the tokens in the text using the determined encoding.
18
21
  * @param text Text content to count tokens for
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/llm/tokenizer/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AAQ3D;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAC9C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAW;IAE3B;;;;OAIG;gBACS,KAAK,EAAE,MAAM;IA6BzB;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAgBjC;;;OAGG;IACH,IAAI,IAAI,IAAI;IAMZ,eAAe,IAAI,MAAM;CAG5B"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/llm/tokenizer/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAM7D;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAC9C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAe;IAE7B;;;;;OAKG;gBACS,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;IAqC/C;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAgBjC;;;OAGG;IACH,IAAI,IAAI,IAAI;IAMZ,eAAe,IAAI,MAAM;CAG5B"}