@dexto/core 1.1.4 → 1.1.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 (597) hide show
  1. package/README.md +125 -0
  2. package/dist/agent/DextoAgent.cjs +793 -0
  3. package/dist/agent/DextoAgent.d.cts +473 -0
  4. package/dist/agent/DextoAgent.d.ts +473 -0
  5. package/dist/agent/DextoAgent.js +774 -0
  6. package/dist/agent/agentCard.cjs +44 -0
  7. package/dist/agent/agentCard.d.cts +20 -0
  8. package/dist/agent/agentCard.d.ts +20 -0
  9. package/dist/agent/agentCard.js +20 -0
  10. package/dist/agent/error-codes.cjs +35 -0
  11. package/dist/agent/error-codes.d.cts +14 -0
  12. package/dist/agent/error-codes.d.ts +14 -0
  13. package/dist/agent/error-codes.js +11 -0
  14. package/dist/agent/errors.cjs +84 -0
  15. package/dist/agent/errors.d.cts +40 -0
  16. package/dist/agent/errors.d.ts +40 -0
  17. package/dist/agent/errors.js +60 -0
  18. package/dist/agent/index.cjs +44 -0
  19. package/dist/agent/index.d.cts +60 -0
  20. package/dist/agent/index.d.ts +60 -0
  21. package/dist/agent/index.js +13 -0
  22. package/dist/agent/registry/error-codes.cjs +42 -0
  23. package/dist/agent/registry/error-codes.d.cts +20 -0
  24. package/dist/agent/registry/error-codes.d.ts +20 -0
  25. package/dist/agent/registry/error-codes.js +18 -0
  26. package/dist/agent/registry/errors.cjs +158 -0
  27. package/dist/agent/registry/errors.d.cts +67 -0
  28. package/dist/agent/registry/errors.d.ts +67 -0
  29. package/dist/{chunk-PI6XFMEW.js → agent/registry/errors.js} +43 -50
  30. package/dist/agent/registry/registry.cjs +291 -0
  31. package/dist/agent/registry/registry.d.cts +67 -0
  32. package/dist/agent/registry/registry.d.ts +67 -0
  33. package/dist/agent/registry/registry.js +256 -0
  34. package/dist/agent/registry/types.cjs +41 -0
  35. package/dist/agent/registry/types.d.cts +100 -0
  36. package/dist/agent/registry/types.d.ts +100 -0
  37. package/dist/agent/registry/types.js +16 -0
  38. package/dist/agent/schemas.cjs +113 -0
  39. package/dist/agent/schemas.d.cts +1502 -0
  40. package/dist/agent/schemas.d.ts +1502 -0
  41. package/dist/agent/schemas.js +88 -0
  42. package/dist/agent/state-manager.cjs +214 -0
  43. package/dist/agent/state-manager.d.cts +97 -0
  44. package/dist/agent/state-manager.d.ts +97 -0
  45. package/dist/agent/state-manager.js +190 -0
  46. package/dist/config/agent-resolver.cjs +153 -0
  47. package/dist/config/agent-resolver.d.cts +15 -0
  48. package/dist/config/agent-resolver.d.ts +15 -0
  49. package/dist/config/agent-resolver.js +122 -0
  50. package/dist/config/error-codes.cjs +39 -0
  51. package/dist/config/error-codes.d.cts +17 -0
  52. package/dist/config/error-codes.d.ts +17 -0
  53. package/dist/config/error-codes.js +15 -0
  54. package/dist/config/errors.cjs +126 -0
  55. package/dist/config/errors.d.cts +49 -0
  56. package/dist/config/errors.d.ts +49 -0
  57. package/dist/config/errors.js +102 -0
  58. package/dist/config/index.cjs +26 -0
  59. package/dist/config/index.d.cts +7 -0
  60. package/dist/config/index.d.ts +7 -0
  61. package/dist/config/index.js +3 -0
  62. package/dist/config/loader.cjs +119 -0
  63. package/dist/config/loader.d.cts +19 -0
  64. package/dist/config/loader.d.ts +19 -0
  65. package/dist/config/loader.js +85 -0
  66. package/dist/config/writer.cjs +182 -0
  67. package/dist/config/writer.d.cts +38 -0
  68. package/dist/config/writer.d.ts +38 -0
  69. package/dist/config/writer.js +146 -0
  70. package/dist/context/compression/middle-removal.cjs +95 -0
  71. package/dist/context/compression/middle-removal.d.cts +48 -0
  72. package/dist/context/compression/middle-removal.d.ts +48 -0
  73. package/dist/context/compression/middle-removal.js +71 -0
  74. package/dist/context/compression/oldest-removal.cjs +70 -0
  75. package/dist/context/compression/oldest-removal.d.cts +43 -0
  76. package/dist/context/compression/oldest-removal.d.ts +43 -0
  77. package/dist/context/compression/oldest-removal.js +46 -0
  78. package/dist/context/compression/types.cjs +16 -0
  79. package/dist/context/compression/types.d.cts +21 -0
  80. package/dist/context/compression/types.d.ts +21 -0
  81. package/dist/context/compression/types.js +0 -0
  82. package/dist/context/error-codes.cjs +41 -0
  83. package/dist/context/error-codes.d.cts +19 -0
  84. package/dist/context/error-codes.d.ts +19 -0
  85. package/dist/context/error-codes.js +17 -0
  86. package/dist/context/errors.cjs +146 -0
  87. package/dist/context/errors.d.cts +36 -0
  88. package/dist/context/errors.d.ts +36 -0
  89. package/dist/context/errors.js +122 -0
  90. package/dist/context/index.cjs +24 -0
  91. package/dist/context/index.d.cts +19 -0
  92. package/dist/context/index.d.ts +19 -0
  93. package/dist/context/index.js +2 -0
  94. package/dist/context/manager.cjs +516 -0
  95. package/dist/context/manager.d.cts +254 -0
  96. package/dist/context/manager.d.ts +254 -0
  97. package/dist/context/manager.js +492 -0
  98. package/dist/context/types.cjs +16 -0
  99. package/dist/context/types.d.cts +113 -0
  100. package/dist/context/types.d.ts +113 -0
  101. package/dist/context/types.js +0 -0
  102. package/dist/context/utils.cjs +406 -0
  103. package/dist/context/utils.d.cts +79 -0
  104. package/dist/context/utils.d.ts +79 -0
  105. package/dist/context/utils.js +374 -0
  106. package/dist/errors/DextoBaseError.cjs +36 -0
  107. package/dist/errors/DextoBaseError.d.cts +15 -0
  108. package/dist/errors/DextoBaseError.d.ts +15 -0
  109. package/dist/errors/DextoBaseError.js +12 -0
  110. package/dist/errors/DextoRuntimeError.cjs +50 -0
  111. package/dist/errors/DextoRuntimeError.d.cts +37 -0
  112. package/dist/errors/DextoRuntimeError.d.ts +37 -0
  113. package/dist/errors/DextoRuntimeError.js +26 -0
  114. package/dist/errors/DextoValidationError.cjs +118 -0
  115. package/dist/errors/DextoValidationError.d.cts +65 -0
  116. package/dist/errors/DextoValidationError.d.ts +65 -0
  117. package/dist/{chunk-XFQLRBHE.js → errors/DextoValidationError.js} +4 -32
  118. package/dist/errors/index.cjs +42 -0
  119. package/dist/errors/index.d.cts +18 -0
  120. package/dist/errors/index.d.ts +18 -0
  121. package/dist/errors/index.js +13 -0
  122. package/dist/errors/result-bridge.cjs +38 -0
  123. package/dist/errors/result-bridge.d.cts +39 -0
  124. package/dist/errors/result-bridge.d.ts +39 -0
  125. package/dist/errors/result-bridge.js +14 -0
  126. package/dist/errors/types.cjs +54 -0
  127. package/dist/errors/types.d.cts +62 -0
  128. package/dist/errors/types.d.ts +62 -0
  129. package/dist/errors/types.js +29 -0
  130. package/dist/events/index.cjs +169 -0
  131. package/dist/events/index.d.cts +272 -0
  132. package/dist/events/index.d.ts +272 -0
  133. package/dist/events/index.js +136 -0
  134. package/dist/index.browser.cjs +9 -220
  135. package/dist/index.browser.d.cts +53 -379
  136. package/dist/index.browser.d.ts +53 -379
  137. package/dist/index.browser.js +4 -210
  138. package/dist/index.cjs +31 -15266
  139. package/dist/index.d.cts +89 -6842
  140. package/dist/index.d.ts +89 -6842
  141. package/dist/index.js +14 -9914
  142. package/dist/llm/error-codes.cjs +48 -0
  143. package/dist/llm/error-codes.d.cts +26 -0
  144. package/dist/llm/error-codes.d.ts +26 -0
  145. package/dist/llm/error-codes.js +24 -0
  146. package/dist/llm/errors.cjs +108 -0
  147. package/dist/llm/errors.d.cts +58 -0
  148. package/dist/llm/errors.d.ts +58 -0
  149. package/dist/llm/errors.js +84 -0
  150. package/dist/llm/formatters/anthropic.cjs +246 -0
  151. package/dist/llm/formatters/anthropic.d.cts +45 -0
  152. package/dist/llm/formatters/anthropic.d.ts +45 -0
  153. package/dist/llm/formatters/anthropic.js +227 -0
  154. package/dist/llm/formatters/factory.cjs +51 -0
  155. package/dist/llm/formatters/factory.d.cts +12 -0
  156. package/dist/llm/formatters/factory.d.ts +12 -0
  157. package/dist/llm/formatters/factory.js +27 -0
  158. package/dist/llm/formatters/openai.cjs +167 -0
  159. package/dist/llm/formatters/openai.d.cts +38 -0
  160. package/dist/llm/formatters/openai.d.ts +38 -0
  161. package/dist/llm/formatters/openai.js +147 -0
  162. package/dist/llm/formatters/types.cjs +16 -0
  163. package/dist/llm/formatters/types.d.cts +43 -0
  164. package/dist/llm/formatters/types.d.ts +43 -0
  165. package/dist/llm/formatters/types.js +0 -0
  166. package/dist/llm/formatters/vercel.cjs +411 -0
  167. package/dist/llm/formatters/vercel.d.cts +48 -0
  168. package/dist/llm/formatters/vercel.d.ts +48 -0
  169. package/dist/llm/formatters/vercel.js +387 -0
  170. package/dist/llm/index.cjs +34 -0
  171. package/dist/llm/index.d.cts +39 -0
  172. package/dist/llm/index.d.ts +39 -0
  173. package/dist/llm/index.js +7 -0
  174. package/dist/llm/registry.cjs +881 -0
  175. package/dist/llm/registry.d.cts +176 -0
  176. package/dist/llm/registry.d.ts +176 -0
  177. package/dist/{chunk-J6AXCN3H.js → llm/registry.js} +25 -455
  178. package/dist/llm/resolver.cjs +154 -0
  179. package/dist/llm/resolver.d.cts +34 -0
  180. package/dist/llm/resolver.d.ts +34 -0
  181. package/dist/llm/resolver.js +136 -0
  182. package/dist/llm/schemas.cjs +188 -0
  183. package/dist/llm/schemas.d.cts +111 -0
  184. package/dist/llm/schemas.d.ts +111 -0
  185. package/dist/llm/schemas.js +172 -0
  186. package/dist/llm/services/anthropic.cjs +398 -0
  187. package/dist/llm/services/anthropic.d.cts +65 -0
  188. package/dist/llm/services/anthropic.d.ts +65 -0
  189. package/dist/llm/services/anthropic.js +374 -0
  190. package/dist/llm/services/factory.cjs +164 -0
  191. package/dist/llm/services/factory.d.cts +39 -0
  192. package/dist/llm/services/factory.d.ts +39 -0
  193. package/dist/llm/services/factory.js +130 -0
  194. package/dist/llm/services/index.cjs +22 -0
  195. package/dist/llm/services/index.d.cts +21 -0
  196. package/dist/llm/services/index.d.ts +21 -0
  197. package/dist/llm/services/index.js +1 -0
  198. package/dist/llm/services/openai.cjs +470 -0
  199. package/dist/llm/services/openai.d.cts +65 -0
  200. package/dist/llm/services/openai.d.ts +65 -0
  201. package/dist/llm/services/openai.js +446 -0
  202. package/dist/llm/services/test-utils.integration.cjs +169 -0
  203. package/dist/llm/services/test-utils.integration.d.cts +83 -0
  204. package/dist/llm/services/test-utils.integration.d.ts +83 -0
  205. package/dist/llm/services/test-utils.integration.js +142 -0
  206. package/dist/llm/services/types.cjs +16 -0
  207. package/dist/llm/services/types.d.cts +56 -0
  208. package/dist/llm/services/types.d.ts +56 -0
  209. package/dist/llm/services/types.js +0 -0
  210. package/dist/llm/services/vercel.cjs +525 -0
  211. package/dist/llm/services/vercel.d.cts +72 -0
  212. package/dist/llm/services/vercel.d.ts +72 -0
  213. package/dist/llm/services/vercel.js +506 -0
  214. package/dist/llm/tokenizer/anthropic.cjs +43 -0
  215. package/dist/llm/tokenizer/anthropic.d.cts +21 -0
  216. package/dist/llm/tokenizer/anthropic.d.ts +21 -0
  217. package/dist/llm/tokenizer/anthropic.js +19 -0
  218. package/dist/llm/tokenizer/default.cjs +41 -0
  219. package/dist/llm/tokenizer/default.d.cts +16 -0
  220. package/dist/llm/tokenizer/default.d.ts +16 -0
  221. package/dist/llm/tokenizer/default.js +17 -0
  222. package/dist/llm/tokenizer/factory.cjs +44 -0
  223. package/dist/llm/tokenizer/factory.d.cts +12 -0
  224. package/dist/llm/tokenizer/factory.d.ts +12 -0
  225. package/dist/llm/tokenizer/factory.js +20 -0
  226. package/dist/llm/tokenizer/google.cjs +52 -0
  227. package/dist/llm/tokenizer/google.d.cts +31 -0
  228. package/dist/llm/tokenizer/google.d.ts +31 -0
  229. package/dist/llm/tokenizer/google.js +28 -0
  230. package/dist/llm/tokenizer/openai.cjs +108 -0
  231. package/dist/llm/tokenizer/openai.d.cts +32 -0
  232. package/dist/llm/tokenizer/openai.d.ts +32 -0
  233. package/dist/llm/tokenizer/openai.js +83 -0
  234. package/dist/llm/tokenizer/types.cjs +33 -0
  235. package/dist/llm/tokenizer/types.d.cts +19 -0
  236. package/dist/llm/tokenizer/types.d.ts +19 -0
  237. package/dist/llm/tokenizer/types.js +9 -0
  238. package/dist/llm/types.cjs +42 -0
  239. package/dist/llm/types.d.cts +29 -0
  240. package/dist/llm/types.d.ts +29 -0
  241. package/dist/llm/types.js +16 -0
  242. package/dist/llm/validation.cjs +162 -0
  243. package/dist/llm/validation.d.cts +60 -0
  244. package/dist/llm/validation.d.ts +60 -0
  245. package/dist/llm/validation.js +138 -0
  246. package/dist/logger/browser.cjs +86 -0
  247. package/dist/logger/browser.d.cts +29 -0
  248. package/dist/logger/browser.d.ts +29 -0
  249. package/dist/logger/browser.js +61 -0
  250. package/dist/logger/index.cjs +22 -0
  251. package/dist/logger/index.d.cts +1 -0
  252. package/dist/logger/index.d.ts +1 -0
  253. package/dist/logger/index.js +1 -0
  254. package/dist/logger/logger.cjs +362 -0
  255. package/dist/logger/logger.d.cts +52 -0
  256. package/dist/logger/logger.d.ts +52 -0
  257. package/dist/logger/logger.js +327 -0
  258. package/dist/mcp/error-codes.cjs +38 -0
  259. package/dist/mcp/error-codes.d.cts +16 -0
  260. package/dist/mcp/error-codes.d.ts +16 -0
  261. package/dist/mcp/error-codes.js +14 -0
  262. package/dist/mcp/errors.cjs +131 -0
  263. package/dist/mcp/errors.d.cts +72 -0
  264. package/dist/mcp/errors.d.ts +72 -0
  265. package/dist/mcp/errors.js +107 -0
  266. package/dist/mcp/index.cjs +34 -0
  267. package/dist/mcp/index.d.cts +26 -0
  268. package/dist/mcp/index.d.ts +26 -0
  269. package/dist/mcp/index.js +7 -0
  270. package/dist/mcp/manager.cjs +473 -0
  271. package/dist/mcp/manager.d.cts +163 -0
  272. package/dist/mcp/manager.d.ts +163 -0
  273. package/dist/mcp/manager.js +449 -0
  274. package/dist/mcp/mcp-client.cjs +420 -0
  275. package/dist/mcp/mcp-client.d.cts +108 -0
  276. package/dist/mcp/mcp-client.d.ts +108 -0
  277. package/dist/mcp/mcp-client.js +396 -0
  278. package/dist/mcp/resolver.cjs +78 -0
  279. package/dist/mcp/resolver.d.cts +22 -0
  280. package/dist/mcp/resolver.d.ts +22 -0
  281. package/dist/mcp/resolver.js +56 -0
  282. package/dist/mcp/schemas.cjs +82 -0
  283. package/dist/mcp/schemas.d.cts +266 -0
  284. package/dist/mcp/schemas.d.ts +266 -0
  285. package/dist/mcp/schemas.js +54 -0
  286. package/dist/mcp/types.cjs +16 -0
  287. package/dist/mcp/types.d.cts +21 -0
  288. package/dist/mcp/types.d.ts +21 -0
  289. package/dist/mcp/types.js +0 -0
  290. package/dist/preferences/constants.cjs +28 -0
  291. package/dist/preferences/constants.d.cts +3 -0
  292. package/dist/preferences/constants.d.ts +3 -0
  293. package/dist/preferences/constants.js +4 -0
  294. package/dist/preferences/error-codes.cjs +35 -0
  295. package/dist/preferences/error-codes.d.cts +9 -0
  296. package/dist/preferences/error-codes.d.ts +9 -0
  297. package/dist/preferences/error-codes.js +11 -0
  298. package/dist/preferences/errors.cjs +75 -0
  299. package/dist/preferences/errors.d.cts +33 -0
  300. package/dist/preferences/errors.d.ts +33 -0
  301. package/dist/preferences/errors.js +50 -0
  302. package/dist/preferences/index.cjs +55 -0
  303. package/dist/preferences/index.d.cts +21 -0
  304. package/dist/preferences/index.d.ts +21 -0
  305. package/dist/preferences/index.js +31 -0
  306. package/dist/preferences/loader.cjs +136 -0
  307. package/dist/preferences/loader.d.cts +45 -0
  308. package/dist/preferences/loader.d.ts +45 -0
  309. package/dist/preferences/loader.js +107 -0
  310. package/dist/preferences/schemas.cjs +74 -0
  311. package/dist/preferences/schemas.d.cts +104 -0
  312. package/dist/preferences/schemas.d.ts +104 -0
  313. package/dist/preferences/schemas.js +47 -0
  314. package/dist/search/index.cjs +28 -0
  315. package/dist/search/index.d.cts +5 -0
  316. package/dist/search/index.d.ts +5 -0
  317. package/dist/search/index.js +4 -0
  318. package/dist/search/search-service.cjs +245 -0
  319. package/dist/search/search-service.d.cts +47 -0
  320. package/dist/search/search-service.d.ts +47 -0
  321. package/dist/search/search-service.js +221 -0
  322. package/dist/search/types.cjs +16 -0
  323. package/dist/search/types.d.cts +78 -0
  324. package/dist/search/types.d.ts +78 -0
  325. package/dist/search/types.js +0 -0
  326. package/dist/session/chat-session.cjs +354 -0
  327. package/dist/session/chat-session.d.cts +284 -0
  328. package/dist/session/chat-session.d.ts +284 -0
  329. package/dist/session/chat-session.js +333 -0
  330. package/dist/session/error-codes.cjs +35 -0
  331. package/dist/session/error-codes.d.cts +13 -0
  332. package/dist/session/error-codes.d.ts +13 -0
  333. package/dist/session/error-codes.js +11 -0
  334. package/dist/session/errors.cjs +93 -0
  335. package/dist/session/errors.d.cts +58 -0
  336. package/dist/session/errors.d.ts +58 -0
  337. package/dist/session/errors.js +69 -0
  338. package/dist/session/history/database.cjs +95 -0
  339. package/dist/session/history/database.d.cts +28 -0
  340. package/dist/session/history/database.d.ts +28 -0
  341. package/dist/session/history/database.js +71 -0
  342. package/dist/session/history/factory.cjs +31 -0
  343. package/dist/session/history/factory.d.cts +11 -0
  344. package/dist/session/history/factory.d.ts +11 -0
  345. package/dist/session/history/factory.js +7 -0
  346. package/dist/session/history/types.cjs +16 -0
  347. package/dist/session/history/types.d.cts +17 -0
  348. package/dist/session/history/types.d.ts +17 -0
  349. package/dist/session/history/types.js +0 -0
  350. package/dist/session/index.cjs +37 -0
  351. package/dist/session/index.d.cts +53 -0
  352. package/dist/session/index.d.ts +53 -0
  353. package/dist/session/index.js +10 -0
  354. package/dist/session/schemas.cjs +32 -0
  355. package/dist/session/schemas.d.cts +16 -0
  356. package/dist/session/schemas.d.ts +16 -0
  357. package/dist/session/schemas.js +8 -0
  358. package/dist/session/session-manager.cjs +481 -0
  359. package/dist/session/session-manager.d.cts +219 -0
  360. package/dist/session/session-manager.d.ts +219 -0
  361. package/dist/session/session-manager.js +457 -0
  362. package/dist/storage/backend/cache-backend.cjs +16 -0
  363. package/dist/storage/backend/cache-backend.d.cts +15 -0
  364. package/dist/storage/backend/cache-backend.d.ts +15 -0
  365. package/dist/storage/backend/cache-backend.js +0 -0
  366. package/dist/storage/backend/database-backend.cjs +16 -0
  367. package/dist/storage/backend/database-backend.d.cts +19 -0
  368. package/dist/storage/backend/database-backend.d.ts +19 -0
  369. package/dist/storage/backend/database-backend.js +0 -0
  370. package/dist/storage/backend/memory-backend.cjs +140 -0
  371. package/dist/storage/backend/memory-backend.d.cts +34 -0
  372. package/dist/storage/backend/memory-backend.d.ts +34 -0
  373. package/dist/storage/backend/memory-backend.js +116 -0
  374. package/dist/storage/backend/postgres-backend.cjs +231 -0
  375. package/dist/storage/backend/postgres-backend.d.cts +37 -0
  376. package/dist/storage/backend/postgres-backend.d.ts +37 -0
  377. package/dist/{postgres-backend-WMWS7RAT.js → storage/backend/postgres-backend.js} +3 -12
  378. package/dist/storage/backend/redis-backend.cjs +184 -0
  379. package/dist/storage/backend/redis-backend.d.cts +36 -0
  380. package/dist/storage/backend/redis-backend.d.ts +36 -0
  381. package/dist/{redis-backend-BNLN3XHX.js → storage/backend/redis-backend.js} +3 -12
  382. package/dist/storage/backend/sqlite-backend.cjs +271 -0
  383. package/dist/storage/backend/sqlite-backend.d.cts +35 -0
  384. package/dist/storage/backend/sqlite-backend.d.ts +35 -0
  385. package/dist/{sqlite-backend-AR6XNK2Q.js → storage/backend/sqlite-backend.js} +6 -17
  386. package/dist/storage/backend/types.cjs +16 -0
  387. package/dist/storage/backend/types.d.cts +14 -0
  388. package/dist/storage/backend/types.d.ts +14 -0
  389. package/dist/storage/backend/types.js +0 -0
  390. package/dist/storage/error-codes.cjs +36 -0
  391. package/dist/storage/error-codes.d.cts +14 -0
  392. package/dist/storage/error-codes.d.ts +14 -0
  393. package/dist/storage/error-codes.js +12 -0
  394. package/dist/storage/errors.cjs +104 -0
  395. package/dist/storage/errors.d.cts +63 -0
  396. package/dist/storage/errors.d.ts +63 -0
  397. package/dist/{chunk-F2QFAECT.js → storage/errors.js} +23 -30
  398. package/dist/storage/index.cjs +33 -0
  399. package/dist/storage/index.d.cts +7 -0
  400. package/dist/storage/index.d.ts +7 -0
  401. package/dist/storage/index.js +7 -0
  402. package/dist/storage/schemas.cjs +113 -0
  403. package/dist/storage/schemas.d.cts +856 -0
  404. package/dist/storage/schemas.d.ts +856 -0
  405. package/dist/storage/schemas.js +89 -0
  406. package/dist/storage/storage-manager.cjs +208 -0
  407. package/dist/storage/storage-manager.d.cts +52 -0
  408. package/dist/storage/storage-manager.d.ts +52 -0
  409. package/dist/storage/storage-manager.js +173 -0
  410. package/dist/storage/types.cjs +16 -0
  411. package/dist/storage/types.d.cts +5 -0
  412. package/dist/storage/types.d.ts +5 -0
  413. package/dist/storage/types.js +0 -0
  414. package/dist/systemPrompt/contributors.cjs +146 -0
  415. package/dist/systemPrompt/contributors.d.cts +44 -0
  416. package/dist/systemPrompt/contributors.d.ts +44 -0
  417. package/dist/systemPrompt/contributors.js +120 -0
  418. package/dist/systemPrompt/error-codes.cjs +35 -0
  419. package/dist/systemPrompt/error-codes.d.cts +13 -0
  420. package/dist/systemPrompt/error-codes.d.ts +13 -0
  421. package/dist/systemPrompt/error-codes.js +11 -0
  422. package/dist/systemPrompt/errors.cjs +93 -0
  423. package/dist/systemPrompt/errors.d.cts +55 -0
  424. package/dist/systemPrompt/errors.d.ts +55 -0
  425. package/dist/systemPrompt/errors.js +69 -0
  426. package/dist/systemPrompt/in-built-prompts.cjs +68 -0
  427. package/dist/systemPrompt/in-built-prompts.d.cts +28 -0
  428. package/dist/systemPrompt/in-built-prompts.d.ts +28 -0
  429. package/dist/systemPrompt/in-built-prompts.js +42 -0
  430. package/dist/systemPrompt/index.cjs +30 -0
  431. package/dist/systemPrompt/index.d.cts +14 -0
  432. package/dist/systemPrompt/index.d.ts +14 -0
  433. package/dist/systemPrompt/index.js +5 -0
  434. package/dist/systemPrompt/manager.cjs +93 -0
  435. package/dist/systemPrompt/manager.d.cts +31 -0
  436. package/dist/systemPrompt/manager.d.ts +31 -0
  437. package/dist/systemPrompt/manager.js +69 -0
  438. package/dist/systemPrompt/registry.cjs +51 -0
  439. package/dist/systemPrompt/registry.d.cts +20 -0
  440. package/dist/systemPrompt/registry.d.ts +20 -0
  441. package/dist/systemPrompt/registry.js +15 -0
  442. package/dist/systemPrompt/schemas.cjs +107 -0
  443. package/dist/systemPrompt/schemas.d.cts +401 -0
  444. package/dist/systemPrompt/schemas.d.ts +401 -0
  445. package/dist/systemPrompt/schemas.js +81 -0
  446. package/dist/systemPrompt/types.cjs +16 -0
  447. package/dist/systemPrompt/types.d.cts +19 -0
  448. package/dist/systemPrompt/types.d.ts +19 -0
  449. package/dist/systemPrompt/types.js +0 -0
  450. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +44 -0
  451. package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +19 -0
  452. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +19 -0
  453. package/dist/tools/confirmation/allowed-tools-provider/factory.js +20 -0
  454. package/dist/tools/confirmation/allowed-tools-provider/in-memory.cjs +62 -0
  455. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +17 -0
  456. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +17 -0
  457. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +38 -0
  458. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +68 -0
  459. package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +26 -0
  460. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +26 -0
  461. package/dist/tools/confirmation/allowed-tools-provider/storage.js +44 -0
  462. package/dist/tools/confirmation/allowed-tools-provider/types.cjs +16 -0
  463. package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +35 -0
  464. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +35 -0
  465. package/dist/tools/confirmation/allowed-tools-provider/types.js +0 -0
  466. package/dist/tools/confirmation/event-based-confirmation-provider.cjs +158 -0
  467. package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +41 -0
  468. package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +41 -0
  469. package/dist/tools/confirmation/event-based-confirmation-provider.js +134 -0
  470. package/dist/tools/confirmation/factory.cjs +52 -0
  471. package/dist/tools/confirmation/factory.d.cts +37 -0
  472. package/dist/tools/confirmation/factory.d.ts +37 -0
  473. package/dist/tools/confirmation/factory.js +28 -0
  474. package/dist/tools/confirmation/noop-confirmation-provider.cjs +49 -0
  475. package/dist/tools/confirmation/noop-confirmation-provider.d.cts +22 -0
  476. package/dist/tools/confirmation/noop-confirmation-provider.d.ts +22 -0
  477. package/dist/tools/confirmation/noop-confirmation-provider.js +25 -0
  478. package/dist/tools/confirmation/types.cjs +16 -0
  479. package/dist/tools/confirmation/types.d.cts +46 -0
  480. package/dist/tools/confirmation/types.d.ts +46 -0
  481. package/dist/tools/confirmation/types.js +0 -0
  482. package/dist/tools/error-codes.cjs +40 -0
  483. package/dist/tools/error-codes.d.cts +18 -0
  484. package/dist/tools/error-codes.d.ts +18 -0
  485. package/dist/tools/error-codes.js +16 -0
  486. package/dist/tools/errors.cjs +164 -0
  487. package/dist/tools/errors.d.cts +97 -0
  488. package/dist/tools/errors.d.ts +97 -0
  489. package/dist/tools/errors.js +140 -0
  490. package/dist/tools/index.cjs +37 -0
  491. package/dist/tools/index.d.cts +19 -0
  492. package/dist/tools/index.d.ts +19 -0
  493. package/dist/tools/index.js +8 -0
  494. package/dist/tools/internal-tools/implementations/search-history-tool.cjs +61 -0
  495. package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +15 -0
  496. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +15 -0
  497. package/dist/tools/internal-tools/implementations/search-history-tool.js +37 -0
  498. package/dist/tools/internal-tools/index.cjs +24 -0
  499. package/dist/tools/internal-tools/index.d.cts +13 -0
  500. package/dist/tools/internal-tools/index.d.ts +13 -0
  501. package/dist/tools/internal-tools/index.js +2 -0
  502. package/dist/tools/internal-tools/provider.cjs +159 -0
  503. package/dist/tools/internal-tools/provider.d.cts +66 -0
  504. package/dist/tools/internal-tools/provider.d.ts +66 -0
  505. package/dist/tools/internal-tools/provider.js +135 -0
  506. package/dist/tools/internal-tools/registry.cjs +43 -0
  507. package/dist/tools/internal-tools/registry.d.cts +45 -0
  508. package/dist/tools/internal-tools/registry.d.ts +45 -0
  509. package/dist/tools/internal-tools/registry.js +17 -0
  510. package/dist/tools/schemas.cjs +45 -0
  511. package/dist/tools/schemas.d.cts +21 -0
  512. package/dist/tools/schemas.d.ts +21 -0
  513. package/dist/tools/schemas.js +20 -0
  514. package/dist/tools/tool-manager.cjs +275 -0
  515. package/dist/tools/tool-manager.d.cts +106 -0
  516. package/dist/tools/tool-manager.d.ts +106 -0
  517. package/dist/tools/tool-manager.js +251 -0
  518. package/dist/tools/types.cjs +16 -0
  519. package/dist/tools/types.d.cts +66 -0
  520. package/dist/tools/types.d.ts +66 -0
  521. package/dist/tools/types.js +0 -0
  522. package/dist/utils/api-key-resolver.cjs +62 -0
  523. package/dist/utils/api-key-resolver.d.cts +23 -0
  524. package/dist/utils/api-key-resolver.d.ts +23 -0
  525. package/dist/utils/api-key-resolver.js +36 -0
  526. package/dist/utils/api-key-store.cjs +56 -0
  527. package/dist/utils/api-key-store.d.cts +26 -0
  528. package/dist/utils/api-key-store.d.ts +26 -0
  529. package/dist/utils/api-key-store.js +30 -0
  530. package/dist/utils/env.cjs +154 -0
  531. package/dist/utils/env.d.cts +29 -0
  532. package/dist/utils/env.d.ts +29 -0
  533. package/dist/utils/env.js +118 -0
  534. package/dist/utils/error-conversion.cjs +53 -0
  535. package/dist/utils/error-conversion.d.cts +13 -0
  536. package/dist/utils/error-conversion.d.ts +13 -0
  537. package/dist/utils/error-conversion.js +29 -0
  538. package/dist/utils/execution-context.cjs +85 -0
  539. package/dist/utils/execution-context.d.cts +21 -0
  540. package/dist/utils/execution-context.d.ts +21 -0
  541. package/dist/utils/execution-context.js +49 -0
  542. package/dist/{chunk-MVKLS3LM.js → utils/fs-walk.cjs} +27 -18
  543. package/dist/utils/fs-walk.d.cts +9 -0
  544. package/dist/utils/fs-walk.d.ts +9 -0
  545. package/dist/utils/fs-walk.js +18 -0
  546. package/dist/utils/index.cjs +44 -0
  547. package/dist/utils/index.d.cts +63 -0
  548. package/dist/utils/index.d.ts +63 -0
  549. package/dist/utils/index.js +12 -0
  550. package/dist/utils/path.cjs +197 -0
  551. package/dist/utils/path.d.cts +54 -0
  552. package/dist/utils/path.d.ts +54 -0
  553. package/dist/utils/path.js +159 -0
  554. package/dist/utils/port-utils.cjs +37 -0
  555. package/dist/utils/port-utils.d.cts +11 -0
  556. package/dist/utils/port-utils.d.ts +11 -0
  557. package/dist/utils/port-utils.js +13 -0
  558. package/dist/utils/port-utils.spec.cjs +26 -0
  559. package/dist/utils/port-utils.spec.d.cts +2 -0
  560. package/dist/utils/port-utils.spec.d.ts +2 -0
  561. package/dist/utils/port-utils.spec.js +25 -0
  562. package/dist/utils/redactor.cjs +105 -0
  563. package/dist/utils/redactor.d.cts +18 -0
  564. package/dist/utils/redactor.d.ts +18 -0
  565. package/dist/utils/redactor.js +81 -0
  566. package/dist/utils/result.cjs +115 -0
  567. package/dist/utils/result.d.cts +180 -0
  568. package/dist/utils/result.d.ts +180 -0
  569. package/dist/utils/result.js +82 -0
  570. package/dist/utils/safe-stringify.cjs +57 -0
  571. package/dist/utils/safe-stringify.d.cts +7 -0
  572. package/dist/utils/safe-stringify.d.ts +7 -0
  573. package/dist/utils/safe-stringify.js +33 -0
  574. package/dist/utils/schema.cjs +42 -0
  575. package/dist/utils/schema.d.cts +6 -0
  576. package/dist/utils/schema.d.ts +6 -0
  577. package/dist/utils/schema.js +18 -0
  578. package/dist/utils/service-initializer.cjs +119 -0
  579. package/dist/utils/service-initializer.d.cts +63 -0
  580. package/dist/utils/service-initializer.d.ts +63 -0
  581. package/dist/utils/service-initializer.js +95 -0
  582. package/dist/utils/user-info.cjs +30 -0
  583. package/dist/utils/user-info.d.cts +3 -0
  584. package/dist/utils/user-info.d.ts +3 -0
  585. package/dist/utils/user-info.js +6 -0
  586. package/dist/utils/zod-schema-converter.cjs +112 -0
  587. package/dist/utils/zod-schema-converter.d.cts +13 -0
  588. package/dist/utils/zod-schema-converter.d.ts +13 -0
  589. package/dist/utils/zod-schema-converter.js +87 -0
  590. package/package.json +2 -2
  591. package/dist/chunk-D62MHQBE.js +0 -2203
  592. package/dist/chunk-FCJVTIBV.js +0 -535
  593. package/dist/chunk-TPERKLLN.js +0 -75
  594. package/dist/errors-ZZ4Z3FKB.js +0 -10
  595. package/dist/loader-HBNEYPQZ.js +0 -20
  596. package/dist/path-TP7WBDED.js +0 -21
  597. package/dist/registry-Z4DFXODW.js +0 -14
@@ -0,0 +1,130 @@
1
+ import { LLMError } from "../errors.js";
2
+ import { createOpenAI } from "@ai-sdk/openai";
3
+ import { createGoogleGenerativeAI } from "@ai-sdk/google";
4
+ import { createAnthropic } from "@ai-sdk/anthropic";
5
+ import { createGroq } from "@ai-sdk/groq";
6
+ import { createXai } from "@ai-sdk/xai";
7
+ import { VercelLLMService } from "./vercel.js";
8
+ import { OpenAIService } from "./openai.js";
9
+ import { AnthropicService } from "./anthropic.js";
10
+ import { createCohere } from "@ai-sdk/cohere";
11
+ import OpenAI from "openai";
12
+ import Anthropic from "@anthropic-ai/sdk";
13
+ function _createInBuiltLLMService(config, toolManager, promptManager, historyProvider, sessionEventBus, sessionId) {
14
+ const apiKey = config.apiKey;
15
+ switch (config.provider.toLowerCase()) {
16
+ case "openai": {
17
+ const openai = new OpenAI({ apiKey });
18
+ return new OpenAIService(
19
+ toolManager,
20
+ openai,
21
+ promptManager,
22
+ historyProvider,
23
+ sessionEventBus,
24
+ config,
25
+ sessionId
26
+ );
27
+ }
28
+ case "openai-compatible": {
29
+ const baseURL = getOpenAICompatibleBaseURL(config);
30
+ const openai = new OpenAI({ apiKey, baseURL });
31
+ return new OpenAIService(
32
+ toolManager,
33
+ openai,
34
+ promptManager,
35
+ historyProvider,
36
+ sessionEventBus,
37
+ config,
38
+ sessionId
39
+ );
40
+ }
41
+ case "anthropic": {
42
+ const anthropic = new Anthropic({ apiKey });
43
+ return new AnthropicService(
44
+ toolManager,
45
+ anthropic,
46
+ promptManager,
47
+ historyProvider,
48
+ sessionEventBus,
49
+ config,
50
+ sessionId
51
+ );
52
+ }
53
+ default:
54
+ throw LLMError.unsupportedRouter("in-built", config.provider);
55
+ }
56
+ }
57
+ function _createVercelModel(llmConfig) {
58
+ const provider = llmConfig.provider;
59
+ const model = llmConfig.model;
60
+ const apiKey = llmConfig.apiKey;
61
+ switch (provider.toLowerCase()) {
62
+ case "openai": {
63
+ return createOpenAI({ apiKey })(model);
64
+ }
65
+ case "openai-compatible": {
66
+ const baseURL = getOpenAICompatibleBaseURL(llmConfig);
67
+ if (!baseURL) {
68
+ throw LLMError.baseUrlMissing("openai-compatible");
69
+ }
70
+ return createOpenAI({ apiKey, baseURL })(model);
71
+ }
72
+ case "anthropic":
73
+ return createAnthropic({ apiKey })(model);
74
+ case "google":
75
+ return createGoogleGenerativeAI({ apiKey })(model);
76
+ case "groq":
77
+ return createGroq({ apiKey })(model);
78
+ case "xai":
79
+ return createXai({ apiKey })(model);
80
+ case "cohere":
81
+ return createCohere({ apiKey })(model);
82
+ default:
83
+ throw LLMError.unsupportedRouter("vercel", provider);
84
+ }
85
+ }
86
+ function getOpenAICompatibleBaseURL(llmConfig) {
87
+ if (llmConfig.baseURL) {
88
+ return llmConfig.baseURL.replace(/\/$/, "");
89
+ }
90
+ if (process.env.OPENAI_BASE_URL) {
91
+ return process.env.OPENAI_BASE_URL.replace(/\/$/, "");
92
+ }
93
+ return "";
94
+ }
95
+ function _createVercelLLMService(config, toolManager, promptManager, historyProvider, sessionEventBus, sessionId) {
96
+ const model = _createVercelModel(config);
97
+ return new VercelLLMService(
98
+ toolManager,
99
+ model,
100
+ promptManager,
101
+ historyProvider,
102
+ sessionEventBus,
103
+ config,
104
+ sessionId
105
+ );
106
+ }
107
+ function createLLMService(config, router, toolManager, promptManager, historyProvider, sessionEventBus, sessionId) {
108
+ if (router === "vercel") {
109
+ return _createVercelLLMService(
110
+ config,
111
+ toolManager,
112
+ promptManager,
113
+ historyProvider,
114
+ sessionEventBus,
115
+ sessionId
116
+ );
117
+ } else {
118
+ return _createInBuiltLLMService(
119
+ config,
120
+ toolManager,
121
+ promptManager,
122
+ historyProvider,
123
+ sessionEventBus,
124
+ sessionId
125
+ );
126
+ }
127
+ }
128
+ export {
129
+ createLLMService
130
+ };
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var services_exports = {};
17
+ module.exports = __toCommonJS(services_exports);
18
+ __reExport(services_exports, require("./types.js"), module.exports);
19
+ // Annotate the CommonJS export names for ESM import in node:
20
+ 0 && (module.exports = {
21
+ ...require("./types.js")
22
+ });
@@ -0,0 +1,21 @@
1
+ export { ILLMService, LLMServiceConfig } from './types.cjs';
2
+ import 'ai';
3
+ import '../../tools/types.cjs';
4
+ import 'json-schema';
5
+ import 'zod';
6
+ import '../../context/types.cjs';
7
+ import '../types.cjs';
8
+ import '../../context/manager.cjs';
9
+ import '../formatters/types.cjs';
10
+ import '../tokenizer/types.cjs';
11
+ import '../../context/compression/types.cjs';
12
+ import '../../systemPrompt/types.cjs';
13
+ import '../../mcp/manager.cjs';
14
+ import '../../mcp/schemas.cjs';
15
+ import '../../mcp/types.cjs';
16
+ import '@modelcontextprotocol/sdk/client/index.js';
17
+ import '@modelcontextprotocol/sdk/types.js';
18
+ import '../../systemPrompt/manager.cjs';
19
+ import '../../systemPrompt/schemas.cjs';
20
+ import '../../session/history/types.cjs';
21
+ import '../schemas.cjs';
@@ -0,0 +1,21 @@
1
+ export { ILLMService, LLMServiceConfig } from './types.js';
2
+ import 'ai';
3
+ import '../../tools/types.js';
4
+ import 'json-schema';
5
+ import 'zod';
6
+ import '../../context/types.js';
7
+ import '../types.js';
8
+ import '../../context/manager.js';
9
+ import '../formatters/types.js';
10
+ import '../tokenizer/types.js';
11
+ import '../../context/compression/types.js';
12
+ import '../../systemPrompt/types.js';
13
+ import '../../mcp/manager.js';
14
+ import '../../mcp/schemas.js';
15
+ import '../../mcp/types.js';
16
+ import '@modelcontextprotocol/sdk/client/index.js';
17
+ import '@modelcontextprotocol/sdk/types.js';
18
+ import '../../systemPrompt/manager.js';
19
+ import '../../systemPrompt/schemas.js';
20
+ import '../../session/history/types.js';
21
+ import '../schemas.js';
@@ -0,0 +1 @@
1
+ export * from "./types.js";
@@ -0,0 +1,470 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var openai_exports = {};
20
+ __export(openai_exports, {
21
+ OpenAIService: () => OpenAIService
22
+ });
23
+ module.exports = __toCommonJS(openai_exports);
24
+ var import_logger = require("../../logger/index.js");
25
+ var import_manager = require("../../context/manager.js");
26
+ var import_registry = require("../registry.js");
27
+ var import_DextoRuntimeError = require("../../errors/DextoRuntimeError.js");
28
+ var import_error_codes = require("../error-codes.js");
29
+ var import_openai2 = require("../formatters/openai.js");
30
+ var import_factory = require("../tokenizer/factory.js");
31
+ class OpenAIService {
32
+ openai;
33
+ config;
34
+ toolManager;
35
+ contextManager;
36
+ sessionEventBus;
37
+ sessionId;
38
+ constructor(toolManager, openai, promptManager, historyProvider, sessionEventBus, config, sessionId) {
39
+ this.config = config;
40
+ this.openai = openai;
41
+ this.toolManager = toolManager;
42
+ this.sessionEventBus = sessionEventBus;
43
+ this.sessionId = sessionId;
44
+ const formatter = new import_openai2.OpenAIMessageFormatter();
45
+ const tokenizer = (0, import_factory.createTokenizer)(config.provider, config.model);
46
+ const maxInputTokens = (0, import_registry.getEffectiveMaxInputTokens)(config);
47
+ this.contextManager = new import_manager.ContextManager(
48
+ config,
49
+ formatter,
50
+ promptManager,
51
+ maxInputTokens,
52
+ tokenizer,
53
+ historyProvider,
54
+ sessionId
55
+ );
56
+ }
57
+ getAllTools() {
58
+ return this.toolManager.getAllTools();
59
+ }
60
+ async completeTask(textInput, options, imageData, fileData, stream) {
61
+ await this.contextManager.addUserMessage(textInput, imageData, fileData);
62
+ const rawTools = await this.toolManager.getAllTools();
63
+ const formattedTools = this.formatToolsForOpenAI(rawTools);
64
+ import_logger.logger.silly(`Formatted tools: ${JSON.stringify(formattedTools, null, 2)}`);
65
+ this.sessionEventBus.emit("llmservice:thinking");
66
+ let iterationCount = 0;
67
+ let totalTokens = 0;
68
+ let inputTokens = 0;
69
+ let outputTokens = 0;
70
+ let reasoningTokens = 0;
71
+ let fullResponse = "";
72
+ const context = stream ? "OpenAI streaming API call" : "OpenAI API call";
73
+ try {
74
+ while (iterationCount < this.config.maxIterations) {
75
+ if (options?.signal?.aborted) {
76
+ throw Object.assign(new Error("Aborted"), {
77
+ name: "AbortError",
78
+ aborted: true
79
+ });
80
+ }
81
+ iterationCount++;
82
+ const { message, usage } = stream ? await this.getAIStreamingResponseWithRetries(formattedTools, options?.signal) : await this.getAIResponseWithRetries(formattedTools, options?.signal);
83
+ if (usage) {
84
+ totalTokens += usage.total_tokens ?? 0;
85
+ inputTokens += usage.prompt_tokens ?? 0;
86
+ outputTokens += usage.completion_tokens ?? 0;
87
+ reasoningTokens += usage.completion_tokens_details?.reasoning_tokens ?? 0;
88
+ }
89
+ if (!message.tool_calls || message.tool_calls.length === 0) {
90
+ const responseText = message.content || "";
91
+ const finalContent = stream ? fullResponse + responseText : responseText;
92
+ await this.contextManager.addAssistantMessage(finalContent, void 0, {
93
+ tokenUsage: totalTokens > 0 ? {
94
+ totalTokens,
95
+ inputTokens,
96
+ outputTokens,
97
+ reasoningTokens
98
+ } : void 0
99
+ });
100
+ if (totalTokens > 0) {
101
+ this.contextManager.updateActualTokenCount(totalTokens);
102
+ }
103
+ this.sessionEventBus.emit("llmservice:response", {
104
+ content: finalContent,
105
+ provider: this.config.provider,
106
+ model: this.config.model,
107
+ router: "in-built",
108
+ tokenUsage: { totalTokens, inputTokens, outputTokens, reasoningTokens }
109
+ });
110
+ return finalContent;
111
+ }
112
+ const functionToolCalls = message.tool_calls.filter(
113
+ (toolCall) => {
114
+ import_logger.logger.debug(`Tool call type received: ${toolCall.type}`);
115
+ return toolCall.type === "function";
116
+ }
117
+ );
118
+ if (message.tool_calls.length > functionToolCalls.length) {
119
+ import_logger.logger.warn(
120
+ `Filtered out ${message.tool_calls.length - functionToolCalls.length} non-function tool calls`
121
+ );
122
+ }
123
+ await this.contextManager.addAssistantMessage(
124
+ message.content,
125
+ functionToolCalls.length > 0 ? functionToolCalls : void 0,
126
+ {}
127
+ );
128
+ if (stream && message.content) {
129
+ fullResponse += message.content;
130
+ }
131
+ for (const toolCall of functionToolCalls) {
132
+ if (options?.signal?.aborted) {
133
+ throw Object.assign(new Error("Aborted"), {
134
+ name: "AbortError",
135
+ aborted: true
136
+ });
137
+ }
138
+ import_logger.logger.debug(`Tool call initiated - Type: ${toolCall.type}`);
139
+ import_logger.logger.debug(`Tool call details: ${JSON.stringify(toolCall, null, 2)}`);
140
+ const toolName = toolCall.function.name;
141
+ let args = {};
142
+ try {
143
+ args = JSON.parse(toolCall.function.arguments);
144
+ } catch (e) {
145
+ import_logger.logger.error(`Error parsing arguments for ${toolName}:`, e);
146
+ await this.contextManager.addToolResult(toolCall.id, toolName, {
147
+ error: `Failed to parse arguments: ${e}`
148
+ });
149
+ this.sessionEventBus.emit("llmservice:toolResult", {
150
+ toolName,
151
+ result: { error: `Failed to parse arguments: ${e}` },
152
+ callId: toolCall.id,
153
+ success: false
154
+ });
155
+ continue;
156
+ }
157
+ this.sessionEventBus.emit("llmservice:toolCall", {
158
+ toolName,
159
+ args,
160
+ callId: toolCall.id
161
+ });
162
+ try {
163
+ const result = await this.toolManager.executeTool(
164
+ toolName,
165
+ args,
166
+ this.sessionId
167
+ );
168
+ await this.contextManager.addToolResult(toolCall.id, toolName, result);
169
+ this.sessionEventBus.emit("llmservice:toolResult", {
170
+ toolName,
171
+ result,
172
+ callId: toolCall.id,
173
+ success: true
174
+ });
175
+ } catch (error) {
176
+ const errorMessage = error instanceof Error ? error.message : String(error);
177
+ import_logger.logger.error(`Tool execution error for ${toolName}: ${errorMessage}`);
178
+ await this.contextManager.addToolResult(toolCall.id, toolName, {
179
+ error: errorMessage
180
+ });
181
+ this.sessionEventBus.emit("llmservice:toolResult", {
182
+ toolName,
183
+ result: { error: errorMessage },
184
+ callId: toolCall.id,
185
+ success: false
186
+ });
187
+ }
188
+ }
189
+ }
190
+ import_logger.logger.warn(`Reached maximum iterations (${this.config.maxIterations}) for task.`);
191
+ const finalResponse = fullResponse || "Task completed but reached maximum tool call iterations.";
192
+ await this.contextManager.addAssistantMessage(finalResponse, void 0, {
193
+ tokenUsage: totalTokens > 0 ? {
194
+ totalTokens,
195
+ inputTokens,
196
+ outputTokens,
197
+ reasoningTokens
198
+ } : void 0
199
+ });
200
+ if (totalTokens > 0) {
201
+ this.contextManager.updateActualTokenCount(totalTokens);
202
+ }
203
+ this.sessionEventBus.emit("llmservice:response", {
204
+ content: finalResponse,
205
+ provider: this.config.provider,
206
+ model: this.config.model,
207
+ router: "in-built",
208
+ tokenUsage: { totalTokens, inputTokens, outputTokens, reasoningTokens }
209
+ });
210
+ return finalResponse;
211
+ } catch (error) {
212
+ if (error instanceof Error && (error.name === "AbortError" || error.aborted === true)) {
213
+ throw error;
214
+ }
215
+ const errorMessage = error instanceof Error ? error.message : String(error);
216
+ import_logger.logger.error(`Error in ${context}: ${errorMessage}`, { error });
217
+ if (!stream) {
218
+ import_logger.logger.warn(
219
+ `If this error is due to token overflow, consider configuring 'maxInputTokens' in your LLMConfig.`
220
+ );
221
+ }
222
+ this.sessionEventBus.emit("llmservice:error", {
223
+ error: error instanceof Error ? error : new Error(errorMessage),
224
+ context,
225
+ recoverable: false
226
+ });
227
+ const errorResponse = `Error processing ${stream ? "streaming " : ""}request: ${errorMessage}`;
228
+ await this.contextManager.addAssistantMessage(errorResponse, void 0, {});
229
+ return errorResponse;
230
+ }
231
+ }
232
+ /**
233
+ * Get configuration information about the LLM service
234
+ * @returns Configuration object with provider and model information
235
+ */
236
+ getConfig() {
237
+ const configuredMaxInputTokens = this.contextManager.getMaxInputTokens();
238
+ let modelMaxInputTokens;
239
+ try {
240
+ modelMaxInputTokens = (0, import_registry.getMaxInputTokensForModel)(
241
+ this.config.provider,
242
+ this.config.model
243
+ );
244
+ } catch (error) {
245
+ if (error instanceof import_DextoRuntimeError.DextoRuntimeError && error.code === import_error_codes.LLMErrorCode.MODEL_UNKNOWN) {
246
+ modelMaxInputTokens = configuredMaxInputTokens;
247
+ import_logger.logger.debug(
248
+ `Could not find model ${this.config.model} in LLM registry to get max tokens. Using configured max tokens: ${configuredMaxInputTokens}.`
249
+ );
250
+ } else {
251
+ throw error;
252
+ }
253
+ }
254
+ return {
255
+ router: "in-built",
256
+ provider: this.config.provider,
257
+ model: this.config.model,
258
+ configuredMaxInputTokens,
259
+ modelMaxInputTokens
260
+ };
261
+ }
262
+ // Helper methods
263
+ async getAIResponseWithRetries(tools, signal) {
264
+ let attempts = 0;
265
+ const MAX_ATTEMPTS = 3;
266
+ import_logger.logger.debug(`Tools size in getAIResponseWithRetries: ${tools.length}`);
267
+ while (attempts < MAX_ATTEMPTS) {
268
+ attempts++;
269
+ try {
270
+ const {
271
+ formattedMessages,
272
+ systemPrompt: _systemPrompt,
273
+ tokensUsed
274
+ } = await this.contextManager.getFormattedMessagesWithCompression(
275
+ { mcpManager: this.toolManager.getMcpManager() },
276
+ { provider: this.config.provider, model: this.config.model }
277
+ );
278
+ import_logger.logger.silly(
279
+ `Message history (potentially compressed) in getAIResponseWithRetries: ${JSON.stringify(formattedMessages, null, 2)}`
280
+ );
281
+ import_logger.logger.debug(`Estimated tokens being sent to OpenAI: ${tokensUsed}`);
282
+ const response = await this.openai.chat.completions.create(
283
+ {
284
+ model: this.config.model,
285
+ messages: formattedMessages,
286
+ tools: attempts === 1 ? tools : [],
287
+ // Only offer tools on first attempt
288
+ tool_choice: attempts === 1 ? "auto" : "none"
289
+ // Disable tool choice on retry
290
+ },
291
+ signal ? { signal } : void 0
292
+ );
293
+ import_logger.logger.silly(
294
+ "OPENAI CHAT COMPLETION RESPONSE: ",
295
+ JSON.stringify(response, null, 2)
296
+ );
297
+ const message = response.choices[0]?.message;
298
+ if (!message) {
299
+ throw new Error("Received empty message from OpenAI API");
300
+ }
301
+ const usage = response.usage;
302
+ return { message, ...usage && { usage } };
303
+ } catch (error) {
304
+ if (error instanceof Error && (error.name === "AbortError" || error.aborted === true)) {
305
+ throw error;
306
+ }
307
+ const apiError = error;
308
+ import_logger.logger.error(
309
+ `Error in OpenAI API call (Attempt ${attempts}/${MAX_ATTEMPTS}): ${apiError.message || JSON.stringify(apiError, null, 2)}`,
310
+ { status: apiError.status, headers: apiError.headers }
311
+ );
312
+ if (apiError.status === 400 && apiError.code === "context_length_exceeded") {
313
+ import_logger.logger.warn(
314
+ `Context length exceeded. ContextManager compression might not be sufficient. Error details: ${JSON.stringify(apiError.error)}`
315
+ );
316
+ }
317
+ if (attempts >= MAX_ATTEMPTS) {
318
+ import_logger.logger.error(
319
+ `Failed to get response from OpenAI after ${MAX_ATTEMPTS} attempts.`
320
+ );
321
+ throw error;
322
+ }
323
+ await new Promise((resolve) => setTimeout(resolve, 500 * attempts));
324
+ }
325
+ }
326
+ throw new Error("Failed to get response after maximum retry attempts");
327
+ }
328
+ async getAIStreamingResponseWithRetries(tools, signal) {
329
+ let attempts = 0;
330
+ const MAX_ATTEMPTS = 3;
331
+ while (attempts < MAX_ATTEMPTS) {
332
+ attempts++;
333
+ try {
334
+ const {
335
+ formattedMessages,
336
+ systemPrompt: _systemPrompt,
337
+ tokensUsed
338
+ } = await this.contextManager.getFormattedMessagesWithCompression(
339
+ { mcpManager: this.toolManager.getMcpManager() },
340
+ { provider: this.config.provider, model: this.config.model }
341
+ );
342
+ import_logger.logger.silly(
343
+ `Streaming message history (potentially compressed): ${JSON.stringify(formattedMessages, null, 2)}`
344
+ );
345
+ import_logger.logger.debug(`Estimated tokens being sent to OpenAI streaming: ${tokensUsed}`);
346
+ const stream = await this.openai.chat.completions.create(
347
+ {
348
+ model: this.config.model,
349
+ messages: formattedMessages,
350
+ tools: attempts === 1 ? tools : [],
351
+ // Only offer tools on first attempt
352
+ tool_choice: attempts === 1 ? "auto" : "none",
353
+ // Disable tool choice on retry
354
+ stream: true,
355
+ stream_options: {
356
+ include_usage: true
357
+ }
358
+ },
359
+ signal ? { signal } : void 0
360
+ );
361
+ let content = "";
362
+ let toolCalls = [];
363
+ let usage;
364
+ for await (const chunk of stream) {
365
+ if (signal?.aborted) {
366
+ throw Object.assign(new Error("Aborted"), {
367
+ name: "AbortError",
368
+ aborted: true
369
+ });
370
+ }
371
+ const delta = chunk.choices[0]?.delta;
372
+ if (delta?.content) {
373
+ content += delta.content;
374
+ this.sessionEventBus.emit("llmservice:chunk", {
375
+ type: "text",
376
+ content: delta.content,
377
+ isComplete: false
378
+ });
379
+ }
380
+ if (delta?.tool_calls) {
381
+ for (const toolCall of delta.tool_calls) {
382
+ const index = toolCall.index;
383
+ if (typeof index !== "number") {
384
+ continue;
385
+ }
386
+ if (!toolCalls[index]) {
387
+ toolCalls[index] = {
388
+ id: `pending-${index}`,
389
+ type: "function",
390
+ function: { name: "", arguments: "" }
391
+ };
392
+ }
393
+ if (toolCall.id) {
394
+ toolCalls[index].id = toolCall.id;
395
+ }
396
+ const existingToolCall = toolCalls[index];
397
+ if (existingToolCall.type === "function" && toolCall.function) {
398
+ if (toolCall.function.name) {
399
+ existingToolCall.function.name = toolCall.function.name;
400
+ }
401
+ if (toolCall.function.arguments) {
402
+ existingToolCall.function.arguments += toolCall.function.arguments;
403
+ }
404
+ }
405
+ }
406
+ }
407
+ if (chunk.usage) {
408
+ usage = chunk.usage;
409
+ }
410
+ }
411
+ if (content) {
412
+ this.sessionEventBus.emit("llmservice:chunk", {
413
+ type: "text",
414
+ content: "",
415
+ isComplete: true
416
+ });
417
+ }
418
+ const message = {
419
+ role: "assistant",
420
+ content: content || null,
421
+ refusal: null,
422
+ ...toolCalls.length > 0 && { tool_calls: toolCalls }
423
+ };
424
+ import_logger.logger.debug(`OpenAI streaming completed. Usage info: ${usage}`);
425
+ return { message, ...usage && { usage } };
426
+ } catch (error) {
427
+ const apiError = error;
428
+ import_logger.logger.error(
429
+ `Error in OpenAI streaming API call (Attempt ${attempts}/${MAX_ATTEMPTS}): ${apiError.message || JSON.stringify(apiError, null, 2)}`,
430
+ { status: apiError.status, headers: apiError.headers }
431
+ );
432
+ if (apiError.status === 400 && apiError.message?.includes("maximum context length")) {
433
+ import_logger.logger.warn(
434
+ `Context length exceeded in streaming. ContextManager compression might not be sufficient. Error details: ${JSON.stringify(apiError.error)}`
435
+ );
436
+ }
437
+ if (attempts >= MAX_ATTEMPTS) {
438
+ import_logger.logger.error(
439
+ `Failed to get streaming response from OpenAI after ${MAX_ATTEMPTS} attempts.`
440
+ );
441
+ throw error;
442
+ }
443
+ await new Promise((resolve) => setTimeout(resolve, 500 * attempts));
444
+ }
445
+ }
446
+ throw new Error("Failed to get streaming response after maximum retry attempts");
447
+ }
448
+ formatToolsForOpenAI(tools) {
449
+ return Object.entries(tools).map(([name, tool]) => {
450
+ return {
451
+ type: "function",
452
+ function: {
453
+ name,
454
+ description: tool.description || "",
455
+ parameters: tool.parameters
456
+ }
457
+ };
458
+ });
459
+ }
460
+ /**
461
+ * Get the context manager for external access
462
+ */
463
+ getContextManager() {
464
+ return this.contextManager;
465
+ }
466
+ }
467
+ // Annotate the CommonJS export names for ESM import in node:
468
+ 0 && (module.exports = {
469
+ OpenAIService
470
+ });