@dexto/core 1.2.4 → 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
@@ -4,7 +4,7 @@ import {
4
4
  __runInitializers
5
5
  } from "../../chunk-C6A6W6XS.js";
6
6
  var _OpenAIService_decorators, _init;
7
- import { logger } from "../../logger/index.js";
7
+ import { DextoLogComponent } from "../../logger/v2/types.js";
8
8
  import { ContextManager } from "../../context/manager.js";
9
9
  import { getMaxInputTokensForModel, getEffectiveMaxInputTokens } from "../registry.js";
10
10
  import { DextoRuntimeError } from "../../errors/DextoRuntimeError.js";
@@ -13,7 +13,7 @@ import { OpenAIMessageFormatter } from "../formatters/openai.js";
13
13
  import { createTokenizer } from "../tokenizer/factory.js";
14
14
  import { shouldIncludeRawToolResult } from "../../utils/debug.js";
15
15
  import { InstrumentClass } from "../../telemetry/decorators.js";
16
- import { trace } from "@opentelemetry/api";
16
+ import { trace, context, propagation } from "@opentelemetry/api";
17
17
  _OpenAIService_decorators = [InstrumentClass({
18
18
  prefix: "llm.openai",
19
19
  excludeMethods: ["getAllTools", "formatToolsForOpenAI", "getConfig", "getContextManager"]
@@ -25,15 +25,17 @@ class OpenAIService {
25
25
  contextManager;
26
26
  sessionEventBus;
27
27
  sessionId;
28
- constructor(toolManager, openai, systemPromptManager, historyProvider, sessionEventBus, config, sessionId, resourceManager) {
28
+ logger;
29
+ constructor(toolManager, openai, systemPromptManager, historyProvider, sessionEventBus, config, sessionId, resourceManager, logger) {
30
+ this.logger = logger.createChild(DextoLogComponent.LLM);
29
31
  this.config = config;
30
32
  this.openai = openai;
31
33
  this.toolManager = toolManager;
32
34
  this.sessionEventBus = sessionEventBus;
33
35
  this.sessionId = sessionId;
34
- const formatter = new OpenAIMessageFormatter();
35
- const tokenizer = createTokenizer(config.provider, config.model);
36
- const maxInputTokens = getEffectiveMaxInputTokens(config);
36
+ const formatter = new OpenAIMessageFormatter(this.logger);
37
+ const tokenizer = createTokenizer(config.provider, config.model, this.logger);
38
+ const maxInputTokens = getEffectiveMaxInputTokens(config, this.logger);
37
39
  this.contextManager = new ContextManager(
38
40
  config,
39
41
  formatter,
@@ -42,7 +44,8 @@ class OpenAIService {
42
44
  tokenizer,
43
45
  historyProvider,
44
46
  sessionId,
45
- resourceManager
47
+ resourceManager,
48
+ this.logger
46
49
  // compressionStrategies uses default
47
50
  );
48
51
  }
@@ -50,222 +53,256 @@ class OpenAIService {
50
53
  return this.toolManager.getAllTools();
51
54
  }
52
55
  async completeTask(textInput, options, imageData, fileData, stream) {
53
- await this.contextManager.addUserMessage(textInput, imageData, fileData);
54
- const rawTools = await this.toolManager.getAllTools();
55
- const formattedTools = this.formatToolsForOpenAI(rawTools);
56
- logger.silly(`Formatted tools: ${JSON.stringify(formattedTools, null, 2)}`);
57
- this.sessionEventBus.emit("llmservice:thinking");
58
- let iterationCount = 0;
59
- let totalTokens = 0;
60
- let inputTokens = 0;
61
- let outputTokens = 0;
62
- let reasoningTokens = 0;
63
- let fullResponse = "";
64
- const context = stream ? "OpenAI streaming API call" : "OpenAI API call";
65
- try {
66
- while (iterationCount < this.config.maxIterations) {
67
- if (options?.signal?.aborted) {
68
- throw Object.assign(new Error("Aborted"), {
69
- name: "AbortError",
70
- aborted: true
71
- });
72
- }
73
- iterationCount++;
74
- const { message, usage } = stream ? await this.getAIStreamingResponseWithRetries(formattedTools, options?.signal) : await this.getAIResponseWithRetries(formattedTools, options?.signal);
75
- if (usage) {
76
- totalTokens += usage.total_tokens ?? 0;
77
- inputTokens += usage.prompt_tokens ?? 0;
78
- outputTokens += usage.completion_tokens ?? 0;
79
- reasoningTokens += usage.completion_tokens_details?.reasoning_tokens ?? 0;
80
- }
81
- if (!message.tool_calls || message.tool_calls.length === 0) {
82
- const responseText = message.content || "";
83
- const finalContent = stream ? fullResponse + responseText : responseText;
84
- await this.contextManager.addAssistantMessage(finalContent, void 0, {
85
- tokenUsage: totalTokens > 0 ? {
86
- totalTokens,
87
- inputTokens,
88
- outputTokens,
89
- reasoningTokens
90
- } : void 0
91
- });
92
- if (totalTokens > 0) {
93
- this.contextManager.updateActualTokenCount(totalTokens);
94
- }
95
- this.sessionEventBus.emit("llmservice:response", {
96
- content: finalContent,
97
- provider: this.config.provider,
98
- model: this.config.model,
99
- router: "in-built",
100
- tokenUsage: { totalTokens, inputTokens, outputTokens, reasoningTokens }
101
- });
102
- const activeSpan2 = trace.getActiveSpan();
103
- if (activeSpan2 && totalTokens > 0) {
104
- const attributes = {
105
- "gen_ai.usage.total_tokens": totalTokens
106
- };
107
- if (inputTokens > 0) {
108
- attributes["gen_ai.usage.input_tokens"] = inputTokens;
109
- }
110
- if (outputTokens > 0) {
111
- attributes["gen_ai.usage.output_tokens"] = outputTokens;
112
- }
113
- if (reasoningTokens > 0) {
114
- attributes["gen_ai.usage.reasoning_tokens"] = reasoningTokens;
115
- }
116
- activeSpan2.setAttributes(attributes);
117
- }
118
- return finalContent;
119
- }
120
- const functionToolCalls = message.tool_calls.filter(
121
- (toolCall) => {
122
- logger.debug(`Tool call type received: ${toolCall.type}`);
123
- return toolCall.type === "function";
124
- }
125
- );
126
- if (message.tool_calls.length > functionToolCalls.length) {
127
- logger.warn(
128
- `Filtered out ${message.tool_calls.length - functionToolCalls.length} non-function tool calls`
129
- );
130
- }
131
- await this.contextManager.addAssistantMessage(
132
- message.content,
133
- functionToolCalls.length > 0 ? functionToolCalls : void 0,
134
- {}
135
- );
136
- if (stream && message.content) {
137
- fullResponse += message.content;
138
- }
139
- for (const toolCall of functionToolCalls) {
56
+ const activeSpan = trace.getActiveSpan();
57
+ const currentContext = context.active();
58
+ const provider = this.config.provider;
59
+ const model = this.config.model;
60
+ if (activeSpan) {
61
+ activeSpan.setAttribute("llm.provider", provider);
62
+ activeSpan.setAttribute("llm.model", model);
63
+ }
64
+ const existingBaggage = propagation.getBaggage(currentContext);
65
+ const baggageEntries = {};
66
+ if (existingBaggage) {
67
+ existingBaggage.getAllEntries().forEach(([key, entry]) => {
68
+ baggageEntries[key] = entry;
69
+ });
70
+ }
71
+ baggageEntries["llm.provider"] = { value: provider };
72
+ baggageEntries["llm.model"] = { value: model };
73
+ const updatedContext = propagation.setBaggage(
74
+ currentContext,
75
+ propagation.createBaggage(baggageEntries)
76
+ );
77
+ return await context.with(updatedContext, async () => {
78
+ await this.contextManager.addUserMessage(textInput, imageData, fileData);
79
+ const rawTools = await this.toolManager.getAllTools();
80
+ const formattedTools = this.formatToolsForOpenAI(rawTools);
81
+ this.logger.silly(`Formatted tools: ${JSON.stringify(formattedTools, null, 2)}`);
82
+ this.sessionEventBus.emit("llm:thinking");
83
+ let iterationCount = 0;
84
+ let totalTokens = 0;
85
+ let inputTokens = 0;
86
+ let outputTokens = 0;
87
+ let reasoningTokens = 0;
88
+ let fullResponse = "";
89
+ const contextStr = stream ? "OpenAI streaming API call" : "OpenAI API call";
90
+ try {
91
+ while (iterationCount < this.config.maxIterations) {
140
92
  if (options?.signal?.aborted) {
141
93
  throw Object.assign(new Error("Aborted"), {
142
94
  name: "AbortError",
143
95
  aborted: true
144
96
  });
145
97
  }
146
- logger.debug(`Tool call initiated - Type: ${toolCall.type}`);
147
- logger.debug(`Tool call details: ${JSON.stringify(toolCall, null, 2)}`);
148
- const toolName = toolCall.function.name;
149
- let args = {};
150
- try {
151
- args = JSON.parse(toolCall.function.arguments);
152
- } catch (e) {
153
- logger.error(`Error parsing arguments for ${toolName}:`, e);
154
- const sanitized = await this.contextManager.addToolResult(
155
- toolCall.id,
156
- toolName,
157
- { error: `Failed to parse arguments: ${e}` },
158
- { success: false }
159
- );
160
- this.sessionEventBus.emit("llmservice:toolResult", {
161
- toolName,
162
- callId: toolCall.id,
163
- success: false,
164
- sanitized,
165
- ...shouldIncludeRawToolResult() ? { rawResult: { error: `Failed to parse arguments: ${e}` } } : {}
98
+ iterationCount++;
99
+ const { message, usage } = stream ? await this.getAIStreamingResponseWithRetries(
100
+ formattedTools,
101
+ options?.signal
102
+ ) : await this.getAIResponseWithRetries(formattedTools, options?.signal);
103
+ if (usage) {
104
+ totalTokens += usage.total_tokens ?? 0;
105
+ inputTokens += usage.prompt_tokens ?? 0;
106
+ outputTokens += usage.completion_tokens ?? 0;
107
+ reasoningTokens += usage.completion_tokens_details?.reasoning_tokens ?? 0;
108
+ }
109
+ if (!message.tool_calls || message.tool_calls.length === 0) {
110
+ const responseText = message.content || "";
111
+ const finalContent = stream ? fullResponse + responseText : responseText;
112
+ await this.contextManager.addAssistantMessage(finalContent, void 0, {
113
+ tokenUsage: totalTokens > 0 ? {
114
+ totalTokens,
115
+ inputTokens,
116
+ outputTokens,
117
+ reasoningTokens
118
+ } : void 0
166
119
  });
167
- continue;
120
+ if (totalTokens > 0) {
121
+ this.contextManager.updateActualTokenCount(totalTokens);
122
+ }
123
+ this.sessionEventBus.emit("llm:response", {
124
+ content: finalContent,
125
+ provider: this.config.provider,
126
+ model: this.config.model,
127
+ router: "in-built",
128
+ tokenUsage: { totalTokens, inputTokens, outputTokens, reasoningTokens }
129
+ });
130
+ const activeSpan3 = trace.getActiveSpan();
131
+ if (activeSpan3 && totalTokens > 0) {
132
+ const attributes = {
133
+ "gen_ai.usage.total_tokens": totalTokens
134
+ };
135
+ if (inputTokens > 0) {
136
+ attributes["gen_ai.usage.input_tokens"] = inputTokens;
137
+ }
138
+ if (outputTokens > 0) {
139
+ attributes["gen_ai.usage.output_tokens"] = outputTokens;
140
+ }
141
+ if (reasoningTokens > 0) {
142
+ attributes["gen_ai.usage.reasoning_tokens"] = reasoningTokens;
143
+ }
144
+ activeSpan3.setAttributes(attributes);
145
+ }
146
+ return finalContent;
168
147
  }
169
- this.sessionEventBus.emit("llmservice:toolCall", {
170
- toolName,
171
- args,
172
- callId: toolCall.id
173
- });
174
- try {
175
- const result = await this.toolManager.executeTool(
176
- toolName,
177
- args,
178
- this.sessionId
179
- );
180
- const sanitized = await this.contextManager.addToolResult(
181
- toolCall.id,
182
- toolName,
183
- result,
184
- { success: true }
148
+ const functionToolCalls = message.tool_calls.filter(
149
+ (toolCall) => {
150
+ this.logger.debug(`Tool call type received: ${toolCall.type}`);
151
+ return toolCall.type === "function";
152
+ }
153
+ );
154
+ if (message.tool_calls.length > functionToolCalls.length) {
155
+ this.logger.warn(
156
+ `Filtered out ${message.tool_calls.length - functionToolCalls.length} non-function tool calls`
185
157
  );
186
- this.sessionEventBus.emit("llmservice:toolResult", {
187
- toolName,
188
- callId: toolCall.id,
189
- success: true,
190
- sanitized,
191
- ...shouldIncludeRawToolResult() ? { rawResult: result } : {}
192
- });
193
- } catch (error) {
194
- const errorMessage = error instanceof Error ? error.message : String(error);
195
- logger.error(`Tool execution error for ${toolName}: ${errorMessage}`);
196
- const sanitized = await this.contextManager.addToolResult(
197
- toolCall.id,
198
- toolName,
199
- { error: errorMessage },
200
- { success: false }
158
+ }
159
+ await this.contextManager.addAssistantMessage(
160
+ message.content,
161
+ functionToolCalls.length > 0 ? functionToolCalls : void 0,
162
+ {}
163
+ );
164
+ if (stream && message.content) {
165
+ fullResponse += message.content;
166
+ }
167
+ for (const toolCall of functionToolCalls) {
168
+ if (options?.signal?.aborted) {
169
+ throw Object.assign(new Error("Aborted"), {
170
+ name: "AbortError",
171
+ aborted: true
172
+ });
173
+ }
174
+ this.logger.debug(`Tool call initiated - Type: ${toolCall.type}`);
175
+ this.logger.debug(
176
+ `Tool call details: ${JSON.stringify(toolCall, null, 2)}`
201
177
  );
202
- this.sessionEventBus.emit("llmservice:toolResult", {
178
+ const toolName = toolCall.function.name;
179
+ let args = {};
180
+ try {
181
+ args = JSON.parse(toolCall.function.arguments);
182
+ } catch (e) {
183
+ this.logger.error(`Error parsing arguments for ${toolName}:`, {
184
+ error: e instanceof Error ? e.message : String(e)
185
+ });
186
+ const sanitized = await this.contextManager.addToolResult(
187
+ toolCall.id,
188
+ toolName,
189
+ { error: `Failed to parse arguments: ${e}` },
190
+ { success: false }
191
+ );
192
+ this.sessionEventBus.emit("llm:tool-result", {
193
+ toolName,
194
+ callId: toolCall.id,
195
+ success: false,
196
+ sanitized,
197
+ ...shouldIncludeRawToolResult() ? { rawResult: { error: `Failed to parse arguments: ${e}` } } : {}
198
+ });
199
+ continue;
200
+ }
201
+ this.sessionEventBus.emit("llm:tool-call", {
203
202
  toolName,
204
- callId: toolCall.id,
205
- success: false,
206
- sanitized,
207
- ...shouldIncludeRawToolResult() ? { rawResult: { error: errorMessage } } : {}
203
+ args,
204
+ callId: toolCall.id
208
205
  });
206
+ try {
207
+ const result = await this.toolManager.executeTool(
208
+ toolName,
209
+ args,
210
+ this.sessionId
211
+ );
212
+ const sanitized = await this.contextManager.addToolResult(
213
+ toolCall.id,
214
+ toolName,
215
+ result,
216
+ { success: true }
217
+ );
218
+ this.sessionEventBus.emit("llm:tool-result", {
219
+ toolName,
220
+ callId: toolCall.id,
221
+ success: true,
222
+ sanitized,
223
+ ...shouldIncludeRawToolResult() ? { rawResult: result } : {}
224
+ });
225
+ } catch (error) {
226
+ const errorMessage = error instanceof Error ? error.message : String(error);
227
+ this.logger.error(
228
+ `Tool execution error for ${toolName}: ${errorMessage}`
229
+ );
230
+ const sanitized = await this.contextManager.addToolResult(
231
+ toolCall.id,
232
+ toolName,
233
+ { error: errorMessage },
234
+ { success: false }
235
+ );
236
+ this.sessionEventBus.emit("llm:tool-result", {
237
+ toolName,
238
+ callId: toolCall.id,
239
+ success: false,
240
+ sanitized,
241
+ ...shouldIncludeRawToolResult() ? { rawResult: { error: errorMessage } } : {}
242
+ });
243
+ }
209
244
  }
210
245
  }
211
- }
212
- logger.warn(`Reached maximum iterations (${this.config.maxIterations}) for task.`);
213
- const finalResponse = fullResponse || "Task completed but reached maximum tool call iterations.";
214
- await this.contextManager.addAssistantMessage(finalResponse, void 0, {
215
- tokenUsage: totalTokens > 0 ? {
216
- totalTokens,
217
- inputTokens,
218
- outputTokens,
219
- reasoningTokens
220
- } : void 0
221
- });
222
- if (totalTokens > 0) {
223
- this.contextManager.updateActualTokenCount(totalTokens);
224
- }
225
- this.sessionEventBus.emit("llmservice:response", {
226
- content: finalResponse,
227
- provider: this.config.provider,
228
- model: this.config.model,
229
- router: "in-built",
230
- tokenUsage: { totalTokens, inputTokens, outputTokens, reasoningTokens }
231
- });
232
- const activeSpan = trace.getActiveSpan();
233
- if (activeSpan && totalTokens > 0) {
234
- const attributes = {
235
- "gen_ai.usage.total_tokens": totalTokens
236
- };
237
- if (inputTokens > 0) {
238
- attributes["gen_ai.usage.input_tokens"] = inputTokens;
246
+ this.logger.warn(
247
+ `Reached maximum iterations (${this.config.maxIterations}) for task.`
248
+ );
249
+ const finalResponse = fullResponse || "Task completed but reached maximum tool call iterations.";
250
+ await this.contextManager.addAssistantMessage(finalResponse, void 0, {
251
+ tokenUsage: totalTokens > 0 ? {
252
+ totalTokens,
253
+ inputTokens,
254
+ outputTokens,
255
+ reasoningTokens
256
+ } : void 0
257
+ });
258
+ if (totalTokens > 0) {
259
+ this.contextManager.updateActualTokenCount(totalTokens);
239
260
  }
240
- if (outputTokens > 0) {
241
- attributes["gen_ai.usage.output_tokens"] = outputTokens;
261
+ this.sessionEventBus.emit("llm:response", {
262
+ content: finalResponse,
263
+ provider: this.config.provider,
264
+ model: this.config.model,
265
+ router: "in-built",
266
+ tokenUsage: { totalTokens, inputTokens, outputTokens, reasoningTokens }
267
+ });
268
+ const activeSpan2 = trace.getActiveSpan();
269
+ if (activeSpan2 && totalTokens > 0) {
270
+ const attributes = {
271
+ "gen_ai.usage.total_tokens": totalTokens
272
+ };
273
+ if (inputTokens > 0) {
274
+ attributes["gen_ai.usage.input_tokens"] = inputTokens;
275
+ }
276
+ if (outputTokens > 0) {
277
+ attributes["gen_ai.usage.output_tokens"] = outputTokens;
278
+ }
279
+ if (reasoningTokens > 0) {
280
+ attributes["gen_ai.usage.reasoning_tokens"] = reasoningTokens;
281
+ }
282
+ activeSpan2.setAttributes(attributes);
242
283
  }
243
- if (reasoningTokens > 0) {
244
- attributes["gen_ai.usage.reasoning_tokens"] = reasoningTokens;
284
+ return finalResponse;
285
+ } catch (error) {
286
+ if (error instanceof Error && (error.name === "AbortError" || error.aborted === true)) {
287
+ throw error;
245
288
  }
246
- activeSpan.setAttributes(attributes);
247
- }
248
- return finalResponse;
249
- } catch (error) {
250
- if (error instanceof Error && (error.name === "AbortError" || error.aborted === true)) {
251
- throw error;
252
- }
253
- const errorMessage = error instanceof Error ? error.message : String(error);
254
- logger.error(`Error in ${context}: ${errorMessage}`, { error });
255
- if (!stream) {
256
- logger.warn(
257
- `If this error is due to token overflow, consider configuring 'maxInputTokens' in your LLMConfig.`
258
- );
289
+ const errorMessage = error instanceof Error ? error.message : String(error);
290
+ this.logger.error(`Error in ${contextStr}: ${errorMessage}`, { error });
291
+ if (!stream) {
292
+ this.logger.warn(
293
+ `If this error is due to token overflow, consider configuring 'maxInputTokens' in your LLMConfig.`
294
+ );
295
+ }
296
+ this.sessionEventBus.emit("llm:error", {
297
+ error: error instanceof Error ? error : new Error(errorMessage),
298
+ context: contextStr,
299
+ recoverable: false
300
+ });
301
+ const errorResponse = `Error processing ${stream ? "streaming " : ""}request: ${errorMessage}`;
302
+ await this.contextManager.addAssistantMessage(errorResponse, void 0, {});
303
+ return errorResponse;
259
304
  }
260
- this.sessionEventBus.emit("llmservice:error", {
261
- error: error instanceof Error ? error : new Error(errorMessage),
262
- context,
263
- recoverable: false
264
- });
265
- const errorResponse = `Error processing ${stream ? "streaming " : ""}request: ${errorMessage}`;
266
- await this.contextManager.addAssistantMessage(errorResponse, void 0, {});
267
- return errorResponse;
268
- }
305
+ });
269
306
  }
270
307
  /**
271
308
  * Get configuration information about the LLM service
@@ -277,12 +314,13 @@ class OpenAIService {
277
314
  try {
278
315
  modelMaxInputTokens = getMaxInputTokensForModel(
279
316
  this.config.provider,
280
- this.config.model
317
+ this.config.model,
318
+ this.logger
281
319
  );
282
320
  } catch (error) {
283
321
  if (error instanceof DextoRuntimeError && error.code === LLMErrorCode.MODEL_UNKNOWN) {
284
322
  modelMaxInputTokens = configuredMaxInputTokens;
285
- logger.debug(
323
+ this.logger.debug(
286
324
  `Could not find model ${this.config.model} in LLM registry to get max tokens. Using configured max tokens: ${configuredMaxInputTokens}.`
287
325
  );
288
326
  } else {
@@ -301,7 +339,7 @@ class OpenAIService {
301
339
  async getAIResponseWithRetries(tools, signal) {
302
340
  let attempts = 0;
303
341
  const MAX_ATTEMPTS = 3;
304
- logger.debug(`Tools size in getAIResponseWithRetries: ${tools.length}`);
342
+ this.logger.debug(`Tools size in getAIResponseWithRetries: ${tools.length}`);
305
343
  while (attempts < MAX_ATTEMPTS) {
306
344
  attempts++;
307
345
  try {
@@ -313,10 +351,10 @@ class OpenAIService {
313
351
  { mcpManager: this.toolManager.getMcpManager() },
314
352
  { provider: this.config.provider, model: this.config.model }
315
353
  );
316
- logger.silly(
354
+ this.logger.silly(
317
355
  `Message history (potentially compressed) in getAIResponseWithRetries: ${JSON.stringify(formattedMessages, null, 2)}`
318
356
  );
319
- logger.debug(`Estimated tokens being sent to OpenAI: ${tokensUsed}`);
357
+ this.logger.debug(`Estimated tokens being sent to OpenAI: ${tokensUsed}`);
320
358
  const response = await this.openai.chat.completions.create(
321
359
  {
322
360
  model: this.config.model,
@@ -328,9 +366,8 @@ class OpenAIService {
328
366
  },
329
367
  signal ? { signal } : void 0
330
368
  );
331
- logger.silly(
332
- "OPENAI CHAT COMPLETION RESPONSE: ",
333
- JSON.stringify(response, null, 2)
369
+ this.logger.silly(
370
+ `OPENAI CHAT COMPLETION RESPONSE: ${JSON.stringify(response, null, 2)}`
334
371
  );
335
372
  const message = response.choices[0]?.message;
336
373
  if (!message) {
@@ -343,17 +380,17 @@ class OpenAIService {
343
380
  throw error;
344
381
  }
345
382
  const apiError = error;
346
- logger.error(
383
+ this.logger.error(
347
384
  `Error in OpenAI API call (Attempt ${attempts}/${MAX_ATTEMPTS}): ${apiError.message || JSON.stringify(apiError, null, 2)}`,
348
385
  { status: apiError.status, headers: apiError.headers }
349
386
  );
350
387
  if (apiError.status === 400 && apiError.code === "context_length_exceeded") {
351
- logger.warn(
388
+ this.logger.warn(
352
389
  `Context length exceeded. ContextManager compression might not be sufficient. Error details: ${JSON.stringify(apiError.error)}`
353
390
  );
354
391
  }
355
392
  if (attempts >= MAX_ATTEMPTS) {
356
- logger.error(
393
+ this.logger.error(
357
394
  `Failed to get response from OpenAI after ${MAX_ATTEMPTS} attempts.`
358
395
  );
359
396
  throw error;
@@ -377,10 +414,10 @@ class OpenAIService {
377
414
  { mcpManager: this.toolManager.getMcpManager() },
378
415
  { provider: this.config.provider, model: this.config.model }
379
416
  );
380
- logger.silly(
417
+ this.logger.silly(
381
418
  `Streaming message history (potentially compressed): ${JSON.stringify(formattedMessages, null, 2)}`
382
419
  );
383
- logger.debug(`Estimated tokens being sent to OpenAI streaming: ${tokensUsed}`);
420
+ this.logger.debug(`Estimated tokens being sent to OpenAI streaming: ${tokensUsed}`);
384
421
  const stream = await this.openai.chat.completions.create(
385
422
  {
386
423
  model: this.config.model,
@@ -409,8 +446,8 @@ class OpenAIService {
409
446
  const delta = chunk.choices[0]?.delta;
410
447
  if (delta?.content) {
411
448
  content += delta.content;
412
- this.sessionEventBus.emit("llmservice:chunk", {
413
- type: "text",
449
+ this.sessionEventBus.emit("llm:chunk", {
450
+ chunkType: "text",
414
451
  content: delta.content,
415
452
  isComplete: false
416
453
  });
@@ -447,8 +484,8 @@ class OpenAIService {
447
484
  }
448
485
  }
449
486
  if (content) {
450
- this.sessionEventBus.emit("llmservice:chunk", {
451
- type: "text",
487
+ this.sessionEventBus.emit("llm:chunk", {
488
+ chunkType: "text",
452
489
  content: "",
453
490
  isComplete: true
454
491
  });
@@ -459,21 +496,21 @@ class OpenAIService {
459
496
  refusal: null,
460
497
  ...toolCalls.length > 0 && { tool_calls: toolCalls }
461
498
  };
462
- logger.debug(`OpenAI streaming completed. Usage info: ${usage}`);
499
+ this.logger.debug(`OpenAI streaming completed. Usage info: ${usage}`);
463
500
  return { message, ...usage && { usage } };
464
501
  } catch (error) {
465
502
  const apiError = error;
466
- logger.error(
503
+ this.logger.error(
467
504
  `Error in OpenAI streaming API call (Attempt ${attempts}/${MAX_ATTEMPTS}): ${apiError.message || JSON.stringify(apiError, null, 2)}`,
468
505
  { status: apiError.status, headers: apiError.headers }
469
506
  );
470
507
  if (apiError.status === 400 && apiError.message?.includes("maximum context length")) {
471
- logger.warn(
508
+ this.logger.warn(
472
509
  `Context length exceeded in streaming. ContextManager compression might not be sufficient. Error details: ${JSON.stringify(apiError.error)}`
473
510
  );
474
511
  }
475
512
  if (attempts >= MAX_ATTEMPTS) {
476
- logger.error(
513
+ this.logger.error(
477
514
  `Failed to get streaming response from OpenAI after ${MAX_ATTEMPTS} attempts.`
478
515
  );
479
516
  throw error;