@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,525 @@
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 vercel_exports = {};
20
+ __export(vercel_exports, {
21
+ VercelLLMService: () => VercelLLMService
22
+ });
23
+ module.exports = __toCommonJS(vercel_exports);
24
+ var import_ai = require("ai");
25
+ var import_logger = require("../../logger/index.js");
26
+ var import_ai2 = require("ai");
27
+ var import_manager = require("../../context/manager.js");
28
+ var import_utils = require("../../context/utils.js");
29
+ var import_registry = require("../registry.js");
30
+ var import_DextoRuntimeError = require("../../errors/DextoRuntimeError.js");
31
+ var import_error_codes = require("../error-codes.js");
32
+ var import_types4 = require("../../errors/types.js");
33
+ var import_error_conversion = require("../../utils/error-conversion.js");
34
+ var import_error_codes2 = require("../../tools/error-codes.js");
35
+ var import_vercel = require("../formatters/vercel.js");
36
+ var import_factory = require("../tokenizer/factory.js");
37
+ class VercelLLMService {
38
+ model;
39
+ config;
40
+ toolManager;
41
+ contextManager;
42
+ sessionEventBus;
43
+ sessionId;
44
+ toolSupportCache = /* @__PURE__ */ new Map();
45
+ // Map of toolCallId -> queue of raw results to emit with that callId
46
+ rawResultsByCallId = /* @__PURE__ */ new Map();
47
+ /**
48
+ * Helper to extract model ID from LanguageModel union type (string | LanguageModelV2)
49
+ */
50
+ getModelId() {
51
+ return typeof this.model === "string" ? this.model : this.model.modelId;
52
+ }
53
+ constructor(toolManager, model, promptManager, historyProvider, sessionEventBus, config, sessionId) {
54
+ this.model = model;
55
+ this.config = config;
56
+ this.toolManager = toolManager;
57
+ this.sessionEventBus = sessionEventBus;
58
+ this.sessionId = sessionId;
59
+ const formatter = new import_vercel.VercelMessageFormatter();
60
+ const tokenizer = (0, import_factory.createTokenizer)(config.provider, this.getModelId());
61
+ const maxInputTokens = (0, import_registry.getEffectiveMaxInputTokens)(config);
62
+ this.contextManager = new import_manager.ContextManager(
63
+ config,
64
+ formatter,
65
+ promptManager,
66
+ maxInputTokens,
67
+ tokenizer,
68
+ historyProvider,
69
+ sessionId
70
+ );
71
+ import_logger.logger.debug(
72
+ `[VercelLLMService] Initialized for model: ${this.getModelId()}, provider: ${this.config.provider}, temperature: ${this.config.temperature}, maxOutputTokens: ${this.config.maxOutputTokens}`
73
+ );
74
+ }
75
+ getAllTools() {
76
+ return this.toolManager.getAllTools();
77
+ }
78
+ formatTools(tools) {
79
+ import_logger.logger.debug(`Formatting tools for vercel`);
80
+ return Object.keys(tools).reduce((acc, toolName) => {
81
+ const tool = tools[toolName];
82
+ if (tool) {
83
+ acc[toolName] = {
84
+ inputSchema: (0, import_ai2.jsonSchema)(tool.parameters),
85
+ execute: async (args, options) => {
86
+ try {
87
+ const rawResult = await this.toolManager.executeTool(
88
+ toolName,
89
+ args,
90
+ this.sessionId
91
+ );
92
+ const callId = options.toolCallId;
93
+ const queue = this.rawResultsByCallId.get(callId) ?? [];
94
+ queue.push(rawResult);
95
+ this.rawResultsByCallId.set(callId, queue);
96
+ const safeContent = (0, import_utils.sanitizeToolResultToContent)(rawResult);
97
+ const summaryText = (0, import_utils.summarizeToolContentForText)(safeContent);
98
+ return summaryText;
99
+ } catch (err) {
100
+ if (err instanceof import_DextoRuntimeError.DextoRuntimeError && err.code === import_error_codes2.ToolErrorCode.EXECUTION_DENIED) {
101
+ return { error: err.message, denied: true };
102
+ }
103
+ if (err instanceof import_DextoRuntimeError.DextoRuntimeError && err.code === import_error_codes2.ToolErrorCode.CONFIRMATION_TIMEOUT) {
104
+ return { error: err.message, denied: true, timeout: true };
105
+ }
106
+ const message = err instanceof Error ? err.message : String(err);
107
+ return { error: message };
108
+ }
109
+ },
110
+ ...tool.description && { description: tool.description }
111
+ };
112
+ }
113
+ return acc;
114
+ }, {});
115
+ }
116
+ async validateToolSupport() {
117
+ const modelKey = `${this.config.provider}:${this.getModelId()}:${this.config.baseURL ?? ""}`;
118
+ if (this.toolSupportCache.has(modelKey)) {
119
+ return this.toolSupportCache.get(modelKey);
120
+ }
121
+ if (!this.config.baseURL) {
122
+ import_logger.logger.debug(`Skipping tool validation for ${modelKey} - no custom baseURL`);
123
+ this.toolSupportCache.set(modelKey, true);
124
+ return true;
125
+ }
126
+ import_logger.logger.debug(`Testing tool support for custom endpoint model: ${modelKey}`);
127
+ const testTool = {
128
+ test_tool: {
129
+ inputSchema: (0, import_ai2.jsonSchema)({
130
+ type: "object",
131
+ properties: {},
132
+ additionalProperties: false
133
+ }),
134
+ execute: async () => ({ result: "test" })
135
+ }
136
+ };
137
+ try {
138
+ await (0, import_ai.generateText)({
139
+ model: this.model,
140
+ messages: [{ role: "user", content: "Hello" }],
141
+ tools: testTool,
142
+ stopWhen: (0, import_ai.stepCountIs)(1)
143
+ });
144
+ this.toolSupportCache.set(modelKey, true);
145
+ import_logger.logger.debug(`Model ${modelKey} supports tools`);
146
+ return true;
147
+ } catch (error) {
148
+ const errorMessage = error instanceof Error ? error.message : String(error);
149
+ if (errorMessage.includes("does not support tools")) {
150
+ this.toolSupportCache.set(modelKey, false);
151
+ import_logger.logger.debug(`Model ${modelKey} does not support tools`);
152
+ return false;
153
+ }
154
+ import_logger.logger.debug(
155
+ `Tool validation error for ${modelKey}, assuming supported: ${errorMessage}`
156
+ );
157
+ this.toolSupportCache.set(modelKey, true);
158
+ return true;
159
+ }
160
+ }
161
+ async completeTask(textInput, options, imageData, fileData, stream) {
162
+ import_logger.logger.debug(
163
+ `[VercelLLMService] addUserMessage(text ~${textInput.length} chars, image=${Boolean(
164
+ imageData
165
+ )}, file=${Boolean(fileData)})`
166
+ );
167
+ await this.contextManager.addUserMessage(textInput, imageData, fileData);
168
+ const tools = await this.toolManager.getAllTools();
169
+ import_logger.logger.silly(
170
+ `[VercelLLMService] Tools before formatting: ${JSON.stringify(tools, null, 2)}`
171
+ );
172
+ const formattedTools = this.formatTools(tools);
173
+ import_logger.logger.silly(
174
+ `[VercelLLMService] Formatted tools: ${JSON.stringify(formattedTools, null, 2)}`
175
+ );
176
+ let fullResponse = "";
177
+ this.sessionEventBus.emit("llmservice:thinking");
178
+ const prepared = await this.contextManager.getFormattedMessagesWithCompression(
179
+ { mcpManager: this.toolManager.getMcpManager() },
180
+ { provider: this.config.provider, model: this.getModelId() }
181
+ );
182
+ const formattedMessages = prepared.formattedMessages;
183
+ const tokensUsed = prepared.tokensUsed;
184
+ import_logger.logger.silly(
185
+ `Messages (potentially compressed): ${JSON.stringify(formattedMessages, null, 2)}`
186
+ );
187
+ import_logger.logger.silly(`Tools: ${JSON.stringify(formattedTools, null, 2)}`);
188
+ import_logger.logger.debug(`Estimated tokens being sent to Vercel provider: ${tokensUsed}`);
189
+ if (stream) {
190
+ fullResponse = await this.streamText(
191
+ formattedMessages,
192
+ formattedTools,
193
+ this.config.maxIterations,
194
+ options?.signal
195
+ );
196
+ } else {
197
+ fullResponse = await this.generateText(
198
+ formattedMessages,
199
+ formattedTools,
200
+ this.config.maxIterations,
201
+ options?.signal
202
+ );
203
+ }
204
+ if (options?.signal?.aborted) {
205
+ return fullResponse;
206
+ }
207
+ return fullResponse || `Reached maximum number of steps (${this.config.maxIterations}) without a final response.`;
208
+ }
209
+ async generateText(messages, tools, maxSteps = 50, signal) {
210
+ let stepIteration = 0;
211
+ const estimatedTokens = Math.ceil(JSON.stringify(messages, null, 2).length / 4);
212
+ import_logger.logger.debug(
213
+ `vercel generateText:Generating text with messages (${estimatedTokens} estimated tokens)`
214
+ );
215
+ const temperature = this.config.temperature;
216
+ const maxOutputTokens = this.config.maxOutputTokens;
217
+ const supportsTools = await this.validateToolSupport();
218
+ const effectiveTools = supportsTools ? tools : {};
219
+ if (!supportsTools && Object.keys(tools).length > 0) {
220
+ import_logger.logger.debug(
221
+ `Model ${this.getModelId()} does not support tools, using empty tools object for generation`
222
+ );
223
+ }
224
+ try {
225
+ const includeMaxOutputTokens = typeof maxOutputTokens === "number";
226
+ const response = await (0, import_ai.generateText)({
227
+ model: this.model,
228
+ messages,
229
+ tools: effectiveTools,
230
+ ...signal ? { abortSignal: signal } : {},
231
+ onStepFinish: (step) => {
232
+ import_logger.logger.debug(`Step iteration: ${stepIteration}`);
233
+ stepIteration++;
234
+ import_logger.logger.debug(`Step finished, text: ${step.text}`);
235
+ import_logger.logger.debug(
236
+ `Step finished, step tool calls: ${JSON.stringify(step.toolCalls, null, 2)}`
237
+ );
238
+ import_logger.logger.debug(
239
+ `Step finished, step tool results: ${JSON.stringify(step.toolResults, null, 2)}`
240
+ );
241
+ if (step.toolCalls && step.toolCalls.length > 0) {
242
+ for (const toolCall of step.toolCalls) {
243
+ this.sessionEventBus.emit("llmservice:toolCall", {
244
+ toolName: toolCall.toolName,
245
+ args: toolCall.input,
246
+ callId: toolCall.toolCallId
247
+ });
248
+ }
249
+ }
250
+ if (step.toolResults && step.toolResults.length > 0) {
251
+ for (const toolResult of step.toolResults) {
252
+ const callId = toolResult.toolCallId;
253
+ const sanitized = toolResult.output;
254
+ let raw;
255
+ if (callId) {
256
+ const q = this.rawResultsByCallId.get(callId) ?? [];
257
+ raw = q.shift();
258
+ if (q.length > 0) this.rawResultsByCallId.set(callId, q);
259
+ else this.rawResultsByCallId.delete(callId);
260
+ }
261
+ this.sessionEventBus.emit("llmservice:toolResult", {
262
+ toolName: toolResult.toolName,
263
+ result: raw ?? sanitized,
264
+ callId,
265
+ success: true
266
+ });
267
+ }
268
+ }
269
+ },
270
+ stopWhen: (0, import_ai.stepCountIs)(maxSteps),
271
+ ...includeMaxOutputTokens ? { maxOutputTokens } : {},
272
+ ...temperature !== void 0 && { temperature }
273
+ });
274
+ this.sessionEventBus.emit("llmservice:response", {
275
+ content: response.text,
276
+ ...response.reasoningText && { reasoning: response.reasoningText },
277
+ provider: this.config.provider,
278
+ model: this.getModelId(),
279
+ router: "vercel",
280
+ tokenUsage: {
281
+ ...response.totalUsage.inputTokens !== void 0 && {
282
+ inputTokens: response.totalUsage.inputTokens
283
+ },
284
+ ...response.totalUsage.outputTokens !== void 0 && {
285
+ outputTokens: response.totalUsage.outputTokens
286
+ },
287
+ ...response.totalUsage.reasoningTokens !== void 0 && {
288
+ reasoningTokens: response.totalUsage.reasoningTokens
289
+ },
290
+ ...response.totalUsage.totalTokens !== void 0 && {
291
+ totalTokens: response.totalUsage.totalTokens
292
+ }
293
+ }
294
+ });
295
+ await this.contextManager.processLLMResponse(response);
296
+ if (typeof response.totalUsage.totalTokens === "number") {
297
+ this.contextManager.updateActualTokenCount(response.totalUsage.totalTokens);
298
+ }
299
+ return response.text;
300
+ } catch (err) {
301
+ this.mapProviderError(err, "generate");
302
+ }
303
+ }
304
+ mapProviderError(err, phase) {
305
+ if (import_ai.APICallError.isInstance?.(err)) {
306
+ const status = err.statusCode;
307
+ const headers = err.responseHeaders || {};
308
+ const retryAfter = headers["retry-after"] ? Number(headers["retry-after"]) : void 0;
309
+ const body = typeof err.responseBody === "string" ? err.responseBody : JSON.stringify(err.responseBody ?? "");
310
+ if (status === 429) {
311
+ throw new import_DextoRuntimeError.DextoRuntimeError(
312
+ import_error_codes.LLMErrorCode.RATE_LIMIT_EXCEEDED,
313
+ import_types4.ErrorScope.LLM,
314
+ import_types4.ErrorType.RATE_LIMIT,
315
+ `Rate limit exceeded${body ? ` - ${body}` : ""}`,
316
+ {
317
+ sessionId: this.sessionId,
318
+ provider: this.config.provider,
319
+ model: this.getModelId(),
320
+ status,
321
+ retryAfter,
322
+ body,
323
+ phase
324
+ }
325
+ );
326
+ }
327
+ if (status === 408) {
328
+ throw new import_DextoRuntimeError.DextoRuntimeError(
329
+ import_error_codes.LLMErrorCode.GENERATION_FAILED,
330
+ import_types4.ErrorScope.LLM,
331
+ import_types4.ErrorType.TIMEOUT,
332
+ `Provider timed out${body ? ` - ${body}` : ""}`,
333
+ {
334
+ sessionId: this.sessionId,
335
+ provider: this.config.provider,
336
+ model: this.getModelId(),
337
+ status,
338
+ body,
339
+ phase
340
+ }
341
+ );
342
+ }
343
+ throw new import_DextoRuntimeError.DextoRuntimeError(
344
+ import_error_codes.LLMErrorCode.GENERATION_FAILED,
345
+ import_types4.ErrorScope.LLM,
346
+ import_types4.ErrorType.THIRD_PARTY,
347
+ `Provider error ${status}${body ? ` - ${body}` : ""}`,
348
+ {
349
+ sessionId: this.sessionId,
350
+ provider: this.config.provider,
351
+ model: this.getModelId(),
352
+ status,
353
+ body,
354
+ phase
355
+ }
356
+ );
357
+ }
358
+ throw err;
359
+ }
360
+ // Updated streamText to behave like generateText - returns string and handles message processing internally
361
+ async streamText(messages, tools, maxSteps = 10, signal) {
362
+ let stepIteration = 0;
363
+ const temperature = this.config.temperature;
364
+ const maxOutputTokens = this.config.maxOutputTokens;
365
+ const supportsTools = await this.validateToolSupport();
366
+ const effectiveTools = supportsTools ? tools : {};
367
+ if (!supportsTools && Object.keys(tools).length > 0) {
368
+ import_logger.logger.debug(
369
+ `Model ${this.getModelId()} does not support tools, using empty tools object for streaming`
370
+ );
371
+ }
372
+ let streamErr;
373
+ const includeMaxOutputTokens = typeof maxOutputTokens === "number";
374
+ const response = (0, import_ai.streamText)({
375
+ model: this.model,
376
+ messages,
377
+ tools: effectiveTools,
378
+ ...signal ? { abortSignal: signal } : {},
379
+ onChunk: (chunk) => {
380
+ import_logger.logger.debug(`Chunk type: ${chunk.chunk.type}`);
381
+ if (chunk.chunk.type === "text-delta") {
382
+ this.sessionEventBus.emit("llmservice:chunk", {
383
+ type: "text",
384
+ content: chunk.chunk.text,
385
+ isComplete: false
386
+ });
387
+ } else if (chunk.chunk.type === "reasoning-delta") {
388
+ this.sessionEventBus.emit("llmservice:chunk", {
389
+ type: "reasoning",
390
+ content: chunk.chunk.text,
391
+ isComplete: false
392
+ });
393
+ }
394
+ },
395
+ // TODO: Add onAbort handler when we implement partial response handling.
396
+ // Vercel triggers onAbort instead of onError for cancelled streams.
397
+ // This is where cancellation logic should be handled properly.
398
+ onError: (error) => {
399
+ const err = (0, import_error_conversion.toError)(error);
400
+ import_logger.logger.error(`Error in streamText: ${err?.stack ?? err}`, null, "red");
401
+ this.sessionEventBus.emit("llmservice:error", {
402
+ error: err,
403
+ context: "streamText",
404
+ recoverable: false
405
+ });
406
+ streamErr = error;
407
+ },
408
+ onStepFinish: (step) => {
409
+ import_logger.logger.debug(`Step iteration: ${stepIteration}`);
410
+ stepIteration++;
411
+ import_logger.logger.debug(`Step finished, text: ${step.text}`);
412
+ import_logger.logger.debug(
413
+ `Step finished, step tool calls: ${JSON.stringify(step.toolCalls, null, 2)}`
414
+ );
415
+ import_logger.logger.debug(
416
+ `Step finished, step tool results: ${JSON.stringify(step.toolResults, null, 2)}`
417
+ );
418
+ if (step.toolCalls && step.toolCalls.length > 0) {
419
+ for (const toolCall of step.toolCalls) {
420
+ this.sessionEventBus.emit("llmservice:toolCall", {
421
+ toolName: toolCall.toolName,
422
+ args: toolCall.input,
423
+ callId: toolCall.toolCallId
424
+ });
425
+ }
426
+ }
427
+ if (step.toolResults && step.toolResults.length > 0) {
428
+ for (const toolResult of step.toolResults) {
429
+ const callId = toolResult.toolCallId;
430
+ const sanitized = toolResult.output;
431
+ let raw;
432
+ if (callId) {
433
+ const q = this.rawResultsByCallId.get(callId) ?? [];
434
+ raw = q.shift();
435
+ if (q.length > 0) this.rawResultsByCallId.set(callId, q);
436
+ else this.rawResultsByCallId.delete(callId);
437
+ }
438
+ this.sessionEventBus.emit("llmservice:toolResult", {
439
+ toolName: toolResult.toolName,
440
+ result: raw ?? sanitized,
441
+ callId,
442
+ success: true
443
+ });
444
+ }
445
+ }
446
+ },
447
+ // No onFinish: we finalize after the stream completes below.
448
+ stopWhen: (0, import_ai.stepCountIs)(maxSteps),
449
+ ...includeMaxOutputTokens ? { maxOutputTokens } : {},
450
+ ...temperature !== void 0 && { temperature }
451
+ });
452
+ const [finalText, usage, reasoningText] = await Promise.all([
453
+ response.text,
454
+ response.totalUsage,
455
+ response.reasoningText
456
+ ]);
457
+ response.totalUsage;
458
+ if (streamErr) {
459
+ return "";
460
+ }
461
+ this.sessionEventBus.emit("llmservice:response", {
462
+ content: finalText,
463
+ ...reasoningText && { reasoning: reasoningText },
464
+ provider: this.config.provider,
465
+ model: this.getModelId(),
466
+ router: "vercel",
467
+ tokenUsage: {
468
+ ...usage.inputTokens !== void 0 && { inputTokens: usage.inputTokens },
469
+ ...usage.outputTokens !== void 0 && { outputTokens: usage.outputTokens },
470
+ ...usage.reasoningTokens !== void 0 && {
471
+ reasoningTokens: usage.reasoningTokens
472
+ },
473
+ ...usage.totalTokens !== void 0 && { totalTokens: usage.totalTokens }
474
+ }
475
+ });
476
+ if (typeof usage.totalTokens === "number") {
477
+ this.contextManager.updateActualTokenCount(usage.totalTokens);
478
+ }
479
+ await this.contextManager.processLLMStreamResponse(response);
480
+ import_logger.logger.silly(`streamText response object: ${JSON.stringify(response, null, 2)}`);
481
+ return finalText;
482
+ }
483
+ /**
484
+ * Get configuration information about the LLM service
485
+ * @returns Configuration object with provider and model information
486
+ */
487
+ getConfig() {
488
+ const configuredMaxTokens = this.contextManager.getMaxInputTokens();
489
+ let modelMaxInputTokens;
490
+ try {
491
+ modelMaxInputTokens = (0, import_registry.getMaxInputTokensForModel)(
492
+ this.config.provider,
493
+ // Use our internal provider name
494
+ this.getModelId()
495
+ );
496
+ } catch (error) {
497
+ if (error instanceof import_DextoRuntimeError.DextoRuntimeError && error.code === import_error_codes.LLMErrorCode.MODEL_UNKNOWN) {
498
+ modelMaxInputTokens = configuredMaxTokens;
499
+ import_logger.logger.debug(
500
+ `Could not find model ${this.getModelId()} in LLM registry to get max tokens. Using configured max tokens: ${configuredMaxTokens}.`
501
+ );
502
+ } else {
503
+ throw error;
504
+ }
505
+ }
506
+ return {
507
+ router: "vercel",
508
+ provider: this.config.provider,
509
+ // Use our internal provider name
510
+ model: this.model,
511
+ configuredMaxInputTokens: configuredMaxTokens,
512
+ modelMaxInputTokens
513
+ };
514
+ }
515
+ /**
516
+ * Get the context manager for external access
517
+ */
518
+ getContextManager() {
519
+ return this.contextManager;
520
+ }
521
+ }
522
+ // Annotate the CommonJS export names for ESM import in node:
523
+ 0 && (module.exports = {
524
+ VercelLLMService
525
+ });
@@ -0,0 +1,72 @@
1
+ import { LanguageModel, ToolSet as ToolSet$1, ModelMessage } from 'ai';
2
+ import { ToolManager } from '../../tools/tool-manager.cjs';
3
+ import { ILLMService, LLMServiceConfig } from './types.cjs';
4
+ import { ToolSet } from '../../tools/types.cjs';
5
+ import { ContextManager } from '../../context/manager.cjs';
6
+ import { ImageData, FileData } from '../../context/types.cjs';
7
+ import { SessionEventBus } from '../../events/index.cjs';
8
+ import { IConversationHistoryProvider } from '../../session/history/types.cjs';
9
+ import { PromptManager } from '../../systemPrompt/manager.cjs';
10
+ import { ValidatedLLMConfig } from '../schemas.cjs';
11
+ import '../../mcp/manager.cjs';
12
+ import '../../mcp/schemas.cjs';
13
+ import 'zod';
14
+ import '../../mcp/types.cjs';
15
+ import '@modelcontextprotocol/sdk/client/index.js';
16
+ import '@modelcontextprotocol/sdk/types.js';
17
+ import 'json-schema';
18
+ import '../../tools/internal-tools/registry.cjs';
19
+ import '../../search/search-service.cjs';
20
+ import '../../storage/backend/database-backend.cjs';
21
+ import '../../search/types.cjs';
22
+ import '../types.cjs';
23
+ import '../../tools/schemas.cjs';
24
+ import '../../tools/confirmation/types.cjs';
25
+ import '../../tools/confirmation/allowed-tools-provider/types.cjs';
26
+ import '../formatters/types.cjs';
27
+ import '../tokenizer/types.cjs';
28
+ import '../../context/compression/types.cjs';
29
+ import '../../systemPrompt/types.cjs';
30
+ import 'events';
31
+ import '../../agent/schemas.cjs';
32
+ import '../../systemPrompt/schemas.cjs';
33
+
34
+ /**
35
+ * Vercel AI SDK implementation of LLMService
36
+ * TODO: improve token counting logic across all LLM services - approximation isn't matching vercel actual token count properly
37
+ */
38
+ declare class VercelLLMService implements ILLMService {
39
+ private model;
40
+ private config;
41
+ private toolManager;
42
+ private contextManager;
43
+ private sessionEventBus;
44
+ private readonly sessionId;
45
+ private toolSupportCache;
46
+ private rawResultsByCallId;
47
+ /**
48
+ * Helper to extract model ID from LanguageModel union type (string | LanguageModelV2)
49
+ */
50
+ private getModelId;
51
+ constructor(toolManager: ToolManager, model: LanguageModel, promptManager: PromptManager, historyProvider: IConversationHistoryProvider, sessionEventBus: SessionEventBus, config: ValidatedLLMConfig, sessionId: string);
52
+ getAllTools(): Promise<ToolSet>;
53
+ formatTools(tools: ToolSet): ToolSet$1;
54
+ private validateToolSupport;
55
+ completeTask(textInput: string, options: {
56
+ signal?: AbortSignal;
57
+ }, imageData?: ImageData, fileData?: FileData, stream?: boolean): Promise<string>;
58
+ generateText(messages: ModelMessage[], tools: ToolSet$1, maxSteps?: number, signal?: AbortSignal): Promise<string>;
59
+ private mapProviderError;
60
+ streamText(messages: ModelMessage[], tools: ToolSet$1, maxSteps?: number, signal?: AbortSignal): Promise<string>;
61
+ /**
62
+ * Get configuration information about the LLM service
63
+ * @returns Configuration object with provider and model information
64
+ */
65
+ getConfig(): LLMServiceConfig;
66
+ /**
67
+ * Get the context manager for external access
68
+ */
69
+ getContextManager(): ContextManager<unknown>;
70
+ }
71
+
72
+ export { VercelLLMService };
@@ -0,0 +1,72 @@
1
+ import { LanguageModel, ToolSet as ToolSet$1, ModelMessage } from 'ai';
2
+ import { ToolManager } from '../../tools/tool-manager.js';
3
+ import { ILLMService, LLMServiceConfig } from './types.js';
4
+ import { ToolSet } from '../../tools/types.js';
5
+ import { ContextManager } from '../../context/manager.js';
6
+ import { ImageData, FileData } from '../../context/types.js';
7
+ import { SessionEventBus } from '../../events/index.js';
8
+ import { IConversationHistoryProvider } from '../../session/history/types.js';
9
+ import { PromptManager } from '../../systemPrompt/manager.js';
10
+ import { ValidatedLLMConfig } from '../schemas.js';
11
+ import '../../mcp/manager.js';
12
+ import '../../mcp/schemas.js';
13
+ import 'zod';
14
+ import '../../mcp/types.js';
15
+ import '@modelcontextprotocol/sdk/client/index.js';
16
+ import '@modelcontextprotocol/sdk/types.js';
17
+ import 'json-schema';
18
+ import '../../tools/internal-tools/registry.js';
19
+ import '../../search/search-service.js';
20
+ import '../../storage/backend/database-backend.js';
21
+ import '../../search/types.js';
22
+ import '../types.js';
23
+ import '../../tools/schemas.js';
24
+ import '../../tools/confirmation/types.js';
25
+ import '../../tools/confirmation/allowed-tools-provider/types.js';
26
+ import '../formatters/types.js';
27
+ import '../tokenizer/types.js';
28
+ import '../../context/compression/types.js';
29
+ import '../../systemPrompt/types.js';
30
+ import 'events';
31
+ import '../../agent/schemas.js';
32
+ import '../../systemPrompt/schemas.js';
33
+
34
+ /**
35
+ * Vercel AI SDK implementation of LLMService
36
+ * TODO: improve token counting logic across all LLM services - approximation isn't matching vercel actual token count properly
37
+ */
38
+ declare class VercelLLMService implements ILLMService {
39
+ private model;
40
+ private config;
41
+ private toolManager;
42
+ private contextManager;
43
+ private sessionEventBus;
44
+ private readonly sessionId;
45
+ private toolSupportCache;
46
+ private rawResultsByCallId;
47
+ /**
48
+ * Helper to extract model ID from LanguageModel union type (string | LanguageModelV2)
49
+ */
50
+ private getModelId;
51
+ constructor(toolManager: ToolManager, model: LanguageModel, promptManager: PromptManager, historyProvider: IConversationHistoryProvider, sessionEventBus: SessionEventBus, config: ValidatedLLMConfig, sessionId: string);
52
+ getAllTools(): Promise<ToolSet>;
53
+ formatTools(tools: ToolSet): ToolSet$1;
54
+ private validateToolSupport;
55
+ completeTask(textInput: string, options: {
56
+ signal?: AbortSignal;
57
+ }, imageData?: ImageData, fileData?: FileData, stream?: boolean): Promise<string>;
58
+ generateText(messages: ModelMessage[], tools: ToolSet$1, maxSteps?: number, signal?: AbortSignal): Promise<string>;
59
+ private mapProviderError;
60
+ streamText(messages: ModelMessage[], tools: ToolSet$1, maxSteps?: number, signal?: AbortSignal): Promise<string>;
61
+ /**
62
+ * Get configuration information about the LLM service
63
+ * @returns Configuration object with provider and model information
64
+ */
65
+ getConfig(): LLMServiceConfig;
66
+ /**
67
+ * Get the context manager for external access
68
+ */
69
+ getContextManager(): ContextManager<unknown>;
70
+ }
71
+
72
+ export { VercelLLMService };