@dexto/core 1.4.0 → 1.5.1

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 (514) hide show
  1. package/README.md +36 -0
  2. package/dist/agent/DextoAgent.cjs +22 -3
  3. package/dist/agent/DextoAgent.d.ts +19 -2
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +23 -4
  6. package/dist/agent/index.cjs +4 -1
  7. package/dist/agent/index.d.ts +1 -1
  8. package/dist/agent/index.d.ts.map +1 -1
  9. package/dist/agent/index.js +5 -1
  10. package/dist/agent/schemas.cjs +90 -71
  11. package/dist/agent/schemas.d.ts +5959 -96
  12. package/dist/agent/schemas.d.ts.map +1 -1
  13. package/dist/agent/schemas.js +87 -66
  14. package/dist/approval/manager.cjs +165 -1
  15. package/dist/approval/manager.d.ts +91 -2
  16. package/dist/approval/manager.d.ts.map +1 -1
  17. package/dist/approval/manager.js +155 -1
  18. package/dist/approval/schemas.cjs +39 -3
  19. package/dist/approval/schemas.d.ts +238 -1
  20. package/dist/approval/schemas.d.ts.map +1 -1
  21. package/dist/approval/schemas.js +35 -3
  22. package/dist/approval/types.cjs +1 -0
  23. package/dist/approval/types.d.ts +26 -1
  24. package/dist/approval/types.d.ts.map +1 -1
  25. package/dist/approval/types.js +1 -0
  26. package/dist/context/compaction/factory.cjs +57 -0
  27. package/dist/context/compaction/factory.d.ts +17 -0
  28. package/dist/context/compaction/factory.d.ts.map +1 -0
  29. package/dist/context/compaction/factory.js +34 -0
  30. package/dist/context/compaction/index.cjs +49 -0
  31. package/dist/context/compaction/index.d.ts +11 -0
  32. package/dist/context/compaction/index.d.ts.map +1 -0
  33. package/dist/context/compaction/index.js +19 -0
  34. package/dist/context/{compression → compaction}/overflow.cjs +3 -3
  35. package/dist/context/{compression → compaction}/overflow.d.ts +4 -4
  36. package/dist/context/compaction/overflow.d.ts.map +1 -0
  37. package/dist/context/{compression → compaction}/overflow.js +2 -2
  38. package/dist/context/compaction/provider.cjs +16 -0
  39. package/dist/context/compaction/provider.d.ts +48 -0
  40. package/dist/context/compaction/provider.d.ts.map +1 -0
  41. package/dist/context/compaction/providers/noop-provider.cjs +48 -0
  42. package/dist/context/compaction/providers/noop-provider.d.ts +24 -0
  43. package/dist/context/compaction/providers/noop-provider.d.ts.map +1 -0
  44. package/dist/context/compaction/providers/noop-provider.js +24 -0
  45. package/dist/context/compaction/providers/reactive-overflow-provider.cjs +61 -0
  46. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +36 -0
  47. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +1 -0
  48. package/dist/context/compaction/providers/reactive-overflow-provider.js +37 -0
  49. package/dist/context/compaction/registry.cjs +39 -0
  50. package/dist/context/compaction/registry.d.ts +19 -0
  51. package/dist/context/compaction/registry.d.ts.map +1 -0
  52. package/dist/context/compaction/registry.js +16 -0
  53. package/dist/context/compaction/schemas.cjs +38 -0
  54. package/dist/context/compaction/schemas.d.ts +24 -0
  55. package/dist/context/compaction/schemas.d.ts.map +1 -0
  56. package/dist/context/compaction/schemas.js +14 -0
  57. package/dist/context/compaction/strategies/noop.cjs +36 -0
  58. package/dist/context/compaction/strategies/noop.d.ts +18 -0
  59. package/dist/context/compaction/strategies/noop.d.ts.map +1 -0
  60. package/dist/context/compaction/strategies/noop.js +13 -0
  61. package/dist/context/{compression → compaction/strategies}/reactive-overflow.cjs +3 -3
  62. package/dist/context/{compression → compaction/strategies}/reactive-overflow.d.ts +6 -6
  63. package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -0
  64. package/dist/context/{compression → compaction/strategies}/reactive-overflow.js +4 -4
  65. package/dist/context/{compression → compaction}/types.d.ts +4 -4
  66. package/dist/context/compaction/types.d.ts.map +1 -0
  67. package/dist/context/compaction/types.js +0 -0
  68. package/dist/context/error-codes.cjs +4 -0
  69. package/dist/context/error-codes.d.ts +4 -0
  70. package/dist/context/error-codes.d.ts.map +1 -1
  71. package/dist/context/error-codes.js +4 -0
  72. package/dist/context/errors.cjs +40 -0
  73. package/dist/context/errors.d.ts +14 -0
  74. package/dist/context/errors.d.ts.map +1 -1
  75. package/dist/context/errors.js +40 -0
  76. package/dist/context/index.cjs +3 -1
  77. package/dist/context/index.d.ts +1 -0
  78. package/dist/context/index.d.ts.map +1 -1
  79. package/dist/context/index.js +1 -0
  80. package/dist/context/types.d.ts +6 -0
  81. package/dist/context/types.d.ts.map +1 -1
  82. package/dist/context/utils.cjs +27 -7
  83. package/dist/context/utils.d.ts.map +1 -1
  84. package/dist/context/utils.js +27 -7
  85. package/dist/errors/result-bridge.cjs +2 -3
  86. package/dist/errors/result-bridge.d.ts.map +1 -1
  87. package/dist/errors/result-bridge.js +2 -3
  88. package/dist/events/index.cjs +6 -3
  89. package/dist/events/index.d.ts +35 -19
  90. package/dist/events/index.d.ts.map +1 -1
  91. package/dist/events/index.js +5 -3
  92. package/dist/filesystem/filesystem-service.cjs +39 -0
  93. package/dist/filesystem/filesystem-service.d.ts +32 -0
  94. package/dist/filesystem/filesystem-service.d.ts.map +1 -1
  95. package/dist/filesystem/filesystem-service.js +39 -0
  96. package/dist/filesystem/index.d.ts +1 -1
  97. package/dist/filesystem/index.d.ts.map +1 -1
  98. package/dist/filesystem/path-validator.cjs +69 -1
  99. package/dist/filesystem/path-validator.d.ts +43 -2
  100. package/dist/filesystem/path-validator.d.ts.map +1 -1
  101. package/dist/filesystem/path-validator.js +69 -1
  102. package/dist/image/define-image.cjs +146 -0
  103. package/dist/image/define-image.d.ts +71 -0
  104. package/dist/image/define-image.d.ts.map +1 -0
  105. package/dist/image/define-image.js +121 -0
  106. package/dist/image/index.cjs +32 -0
  107. package/dist/image/index.d.ts +53 -0
  108. package/dist/image/index.d.ts.map +1 -0
  109. package/dist/image/index.js +7 -0
  110. package/dist/image/types.cjs +16 -0
  111. package/dist/image/types.d.ts +231 -0
  112. package/dist/image/types.d.ts.map +1 -0
  113. package/dist/image/types.js +0 -0
  114. package/dist/index.cjs +5 -1
  115. package/dist/index.d.ts +2 -0
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +2 -0
  118. package/dist/llm/error-codes.cjs +1 -0
  119. package/dist/llm/error-codes.d.ts +1 -0
  120. package/dist/llm/error-codes.d.ts.map +1 -1
  121. package/dist/llm/error-codes.js +1 -0
  122. package/dist/llm/errors.cjs +24 -0
  123. package/dist/llm/errors.d.ts +19 -6
  124. package/dist/llm/errors.d.ts.map +1 -1
  125. package/dist/llm/errors.js +24 -0
  126. package/dist/llm/executor/provider-options.cjs +87 -0
  127. package/dist/llm/executor/provider-options.d.ts +49 -0
  128. package/dist/llm/executor/provider-options.d.ts.map +1 -0
  129. package/dist/llm/executor/provider-options.js +63 -0
  130. package/dist/llm/executor/stream-processor.cjs +22 -11
  131. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  132. package/dist/llm/executor/stream-processor.js +22 -11
  133. package/dist/llm/executor/turn-executor.cjs +60 -23
  134. package/dist/llm/executor/turn-executor.d.ts +7 -5
  135. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  136. package/dist/llm/executor/turn-executor.js +60 -23
  137. package/dist/llm/formatters/vercel.cjs +15 -3
  138. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  139. package/dist/llm/formatters/vercel.js +15 -3
  140. package/dist/llm/index.cjs +18 -1
  141. package/dist/llm/index.d.ts +2 -0
  142. package/dist/llm/index.d.ts.map +1 -1
  143. package/dist/llm/index.js +14 -0
  144. package/dist/llm/providers/local/ai-sdk-adapter.cjs +308 -0
  145. package/dist/llm/providers/local/ai-sdk-adapter.d.ts +29 -0
  146. package/dist/llm/providers/local/ai-sdk-adapter.d.ts.map +1 -0
  147. package/dist/llm/providers/local/ai-sdk-adapter.js +278 -0
  148. package/dist/llm/providers/local/downloader.cjs +291 -0
  149. package/dist/llm/providers/local/downloader.d.ts +82 -0
  150. package/dist/llm/providers/local/downloader.d.ts.map +1 -0
  151. package/dist/llm/providers/local/downloader.js +251 -0
  152. package/dist/llm/providers/local/error-codes.cjs +57 -0
  153. package/dist/llm/providers/local/error-codes.d.ts +66 -0
  154. package/dist/llm/providers/local/error-codes.d.ts.map +1 -0
  155. package/dist/llm/providers/local/error-codes.js +34 -0
  156. package/dist/llm/providers/local/errors.cjs +240 -0
  157. package/dist/llm/providers/local/errors.d.ts +31 -0
  158. package/dist/llm/providers/local/errors.d.ts.map +1 -0
  159. package/dist/llm/providers/local/errors.js +217 -0
  160. package/dist/llm/providers/local/gpu-detector.cjs +214 -0
  161. package/dist/llm/providers/local/gpu-detector.d.ts +28 -0
  162. package/dist/llm/providers/local/gpu-detector.d.ts.map +1 -0
  163. package/dist/llm/providers/local/gpu-detector.js +178 -0
  164. package/dist/llm/providers/local/index.cjs +147 -0
  165. package/dist/llm/providers/local/index.d.ts +21 -0
  166. package/dist/llm/providers/local/index.d.ts.map +1 -0
  167. package/dist/llm/providers/local/index.js +126 -0
  168. package/dist/llm/providers/local/node-llama-provider.cjs +216 -0
  169. package/dist/llm/providers/local/node-llama-provider.d.ts +90 -0
  170. package/dist/llm/providers/local/node-llama-provider.d.ts.map +1 -0
  171. package/dist/llm/providers/local/node-llama-provider.js +176 -0
  172. package/dist/llm/providers/local/ollama-provider.cjs +230 -0
  173. package/dist/llm/providers/local/ollama-provider.d.ts +70 -0
  174. package/dist/llm/providers/local/ollama-provider.d.ts.map +1 -0
  175. package/dist/llm/providers/local/ollama-provider.js +198 -0
  176. package/dist/llm/providers/local/registry.cjs +343 -0
  177. package/dist/llm/providers/local/registry.d.ts +51 -0
  178. package/dist/llm/providers/local/registry.d.ts.map +1 -0
  179. package/dist/llm/providers/local/registry.js +312 -0
  180. package/dist/llm/providers/local/schemas.cjs +169 -0
  181. package/dist/llm/providers/local/schemas.d.ts +395 -0
  182. package/dist/llm/providers/local/schemas.d.ts.map +1 -0
  183. package/dist/llm/providers/local/schemas.js +133 -0
  184. package/dist/llm/providers/local/types.cjs +16 -0
  185. package/dist/llm/providers/local/types.d.ts +219 -0
  186. package/dist/llm/providers/local/types.d.ts.map +1 -0
  187. package/dist/llm/providers/local/types.js +0 -0
  188. package/dist/llm/providers/openrouter-model-registry.cjs +350 -0
  189. package/dist/llm/providers/openrouter-model-registry.d.ts +120 -0
  190. package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -0
  191. package/dist/llm/providers/openrouter-model-registry.js +309 -0
  192. package/dist/llm/registry.cjs +604 -9
  193. package/dist/llm/registry.d.ts +35 -0
  194. package/dist/llm/registry.d.ts.map +1 -1
  195. package/dist/llm/registry.js +600 -9
  196. package/dist/llm/resolver.cjs +63 -5
  197. package/dist/llm/resolver.d.ts +3 -3
  198. package/dist/llm/resolver.d.ts.map +1 -1
  199. package/dist/llm/resolver.js +69 -6
  200. package/dist/llm/schemas.cjs +107 -81
  201. package/dist/llm/schemas.d.ts +181 -22
  202. package/dist/llm/schemas.d.ts.map +1 -1
  203. package/dist/llm/schemas.js +107 -81
  204. package/dist/llm/services/factory.cjs +87 -13
  205. package/dist/llm/services/factory.d.ts +4 -1
  206. package/dist/llm/services/factory.d.ts.map +1 -1
  207. package/dist/llm/services/factory.js +85 -12
  208. package/dist/llm/services/test-utils.integration.cjs +22 -2
  209. package/dist/llm/services/test-utils.integration.d.ts +7 -1
  210. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  211. package/dist/llm/services/test-utils.integration.js +26 -3
  212. package/dist/llm/services/vercel.cjs +8 -3
  213. package/dist/llm/services/vercel.d.ts +3 -2
  214. package/dist/llm/services/vercel.d.ts.map +1 -1
  215. package/dist/llm/services/vercel.js +8 -3
  216. package/dist/llm/types.cjs +11 -1
  217. package/dist/llm/types.d.ts +1 -1
  218. package/dist/llm/types.d.ts.map +1 -1
  219. package/dist/llm/types.js +11 -1
  220. package/dist/logger/logger.cjs +7 -3
  221. package/dist/logger/logger.d.ts.map +1 -1
  222. package/dist/logger/logger.js +7 -3
  223. package/dist/mcp/manager.cjs +8 -0
  224. package/dist/mcp/manager.d.ts +17 -0
  225. package/dist/mcp/manager.d.ts.map +1 -1
  226. package/dist/mcp/manager.js +8 -0
  227. package/dist/mcp/mcp-client.cjs +0 -3
  228. package/dist/mcp/mcp-client.d.ts.map +1 -1
  229. package/dist/mcp/mcp-client.js +0 -3
  230. package/dist/memory/schemas.d.ts +3 -3
  231. package/dist/plugins/error-codes.cjs +3 -0
  232. package/dist/plugins/error-codes.d.ts +7 -1
  233. package/dist/plugins/error-codes.d.ts.map +1 -1
  234. package/dist/plugins/error-codes.js +3 -0
  235. package/dist/plugins/index.cjs +7 -0
  236. package/dist/plugins/index.d.ts +4 -2
  237. package/dist/plugins/index.d.ts.map +1 -1
  238. package/dist/plugins/index.js +6 -1
  239. package/dist/plugins/manager.cjs +92 -7
  240. package/dist/plugins/manager.d.ts +10 -3
  241. package/dist/plugins/manager.d.ts.map +1 -1
  242. package/dist/plugins/manager.js +92 -7
  243. package/dist/plugins/registry.cjs +63 -0
  244. package/dist/plugins/registry.d.ts +101 -0
  245. package/dist/plugins/registry.d.ts.map +1 -0
  246. package/dist/plugins/registry.js +39 -0
  247. package/dist/plugins/schemas.cjs +17 -5
  248. package/dist/plugins/schemas.d.ts +62 -5
  249. package/dist/plugins/schemas.d.ts.map +1 -1
  250. package/dist/plugins/schemas.js +15 -4
  251. package/dist/providers/base-registry.cjs +147 -0
  252. package/dist/providers/base-registry.d.ts +147 -0
  253. package/dist/providers/base-registry.d.ts.map +1 -0
  254. package/dist/providers/base-registry.js +123 -0
  255. package/dist/providers/discovery.cjs +109 -0
  256. package/dist/providers/discovery.d.ts +96 -0
  257. package/dist/providers/discovery.d.ts.map +1 -0
  258. package/dist/providers/discovery.js +84 -0
  259. package/dist/providers/index.cjs +24 -0
  260. package/dist/providers/index.d.ts +32 -0
  261. package/dist/providers/index.d.ts.map +1 -0
  262. package/dist/providers/index.js +2 -0
  263. package/dist/resources/reference-parser.cjs +3 -3
  264. package/dist/resources/reference-parser.d.ts.map +1 -1
  265. package/dist/resources/reference-parser.js +3 -3
  266. package/dist/session/chat-session.cjs +20 -3
  267. package/dist/session/chat-session.d.ts.map +1 -1
  268. package/dist/session/chat-session.js +21 -4
  269. package/dist/session/history/database.cjs +49 -15
  270. package/dist/session/history/database.d.ts.map +1 -1
  271. package/dist/session/history/database.js +49 -15
  272. package/dist/session/session-manager.cjs +2 -1
  273. package/dist/session/session-manager.d.ts.map +1 -1
  274. package/dist/session/session-manager.js +2 -1
  275. package/dist/storage/blob/factory.cjs +8 -11
  276. package/dist/storage/blob/factory.d.ts +32 -6
  277. package/dist/storage/blob/factory.d.ts.map +1 -1
  278. package/dist/storage/blob/factory.js +8 -11
  279. package/dist/storage/blob/index.cjs +56 -0
  280. package/dist/storage/blob/index.d.ts +45 -0
  281. package/dist/storage/blob/index.d.ts.map +1 -0
  282. package/dist/storage/blob/index.js +30 -0
  283. package/dist/storage/blob/provider.cjs +16 -0
  284. package/dist/storage/blob/provider.d.ts +50 -0
  285. package/dist/storage/blob/provider.d.ts.map +1 -0
  286. package/dist/storage/blob/provider.js +0 -0
  287. package/dist/storage/blob/providers/index.cjs +31 -0
  288. package/dist/storage/blob/providers/index.d.ts +8 -0
  289. package/dist/storage/blob/providers/index.d.ts.map +1 -0
  290. package/dist/storage/blob/providers/index.js +7 -0
  291. package/dist/storage/blob/providers/local.cjs +39 -0
  292. package/dist/storage/blob/providers/local.d.ts +17 -0
  293. package/dist/storage/blob/providers/local.d.ts.map +1 -0
  294. package/dist/storage/blob/providers/local.js +16 -0
  295. package/dist/storage/blob/providers/memory.cjs +39 -0
  296. package/dist/storage/blob/providers/memory.d.ts +17 -0
  297. package/dist/storage/blob/providers/memory.d.ts.map +1 -0
  298. package/dist/storage/blob/providers/memory.js +16 -0
  299. package/dist/storage/blob/registry.cjs +50 -0
  300. package/dist/storage/blob/registry.d.ts +42 -0
  301. package/dist/storage/blob/registry.d.ts.map +1 -0
  302. package/dist/storage/blob/registry.js +26 -0
  303. package/dist/storage/blob/schemas.cjs +9 -12
  304. package/dist/storage/blob/schemas.d.ts +39 -34
  305. package/dist/storage/blob/schemas.d.ts.map +1 -1
  306. package/dist/storage/blob/schemas.js +6 -11
  307. package/dist/storage/cache/factory.cjs +8 -36
  308. package/dist/storage/cache/factory.d.ts +32 -7
  309. package/dist/storage/cache/factory.d.ts.map +1 -1
  310. package/dist/storage/cache/factory.js +8 -26
  311. package/dist/storage/cache/index.cjs +53 -0
  312. package/dist/storage/cache/index.d.ts +44 -0
  313. package/dist/storage/cache/index.d.ts.map +1 -0
  314. package/dist/storage/cache/index.js +28 -0
  315. package/dist/storage/cache/provider.cjs +16 -0
  316. package/dist/storage/cache/provider.d.ts +56 -0
  317. package/dist/storage/cache/provider.d.ts.map +1 -0
  318. package/dist/storage/cache/provider.js +0 -0
  319. package/dist/storage/cache/providers/index.cjs +31 -0
  320. package/dist/storage/cache/providers/index.d.ts +8 -0
  321. package/dist/storage/cache/providers/index.d.ts.map +1 -0
  322. package/dist/storage/cache/providers/index.js +7 -0
  323. package/dist/storage/cache/providers/memory.cjs +40 -0
  324. package/dist/storage/cache/providers/memory.d.ts +17 -0
  325. package/dist/storage/cache/providers/memory.d.ts.map +1 -0
  326. package/dist/storage/cache/providers/memory.js +17 -0
  327. package/dist/storage/cache/providers/redis.cjs +66 -0
  328. package/dist/storage/cache/providers/redis.d.ts +20 -0
  329. package/dist/storage/cache/providers/redis.d.ts.map +1 -0
  330. package/dist/storage/cache/providers/redis.js +33 -0
  331. package/dist/storage/cache/registry.cjs +50 -0
  332. package/dist/storage/cache/registry.d.ts +42 -0
  333. package/dist/storage/cache/registry.d.ts.map +1 -0
  334. package/dist/storage/cache/registry.js +26 -0
  335. package/dist/storage/cache/schemas.cjs +6 -2
  336. package/dist/storage/cache/schemas.d.ts +2 -3
  337. package/dist/storage/cache/schemas.d.ts.map +1 -1
  338. package/dist/storage/cache/schemas.js +3 -1
  339. package/dist/storage/database/factory.cjs +8 -47
  340. package/dist/storage/database/factory.d.ts +34 -8
  341. package/dist/storage/database/factory.d.ts.map +1 -1
  342. package/dist/storage/database/factory.js +8 -37
  343. package/dist/storage/database/index.cjs +58 -0
  344. package/dist/storage/database/index.d.ts +45 -0
  345. package/dist/storage/database/index.d.ts.map +1 -0
  346. package/dist/storage/database/index.js +37 -0
  347. package/dist/storage/database/postgres-store.cjs +174 -78
  348. package/dist/storage/database/postgres-store.d.ts +19 -0
  349. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  350. package/dist/storage/database/postgres-store.js +174 -78
  351. package/dist/storage/database/provider.cjs +16 -0
  352. package/dist/storage/database/provider.d.ts +56 -0
  353. package/dist/storage/database/provider.d.ts.map +1 -0
  354. package/dist/storage/database/provider.js +0 -0
  355. package/dist/storage/database/providers/index.cjs +34 -0
  356. package/dist/storage/database/providers/index.d.ts +9 -0
  357. package/dist/storage/database/providers/index.d.ts.map +1 -0
  358. package/dist/storage/database/providers/index.js +9 -0
  359. package/dist/storage/database/providers/memory.cjs +40 -0
  360. package/dist/storage/database/providers/memory.d.ts +16 -0
  361. package/dist/storage/database/providers/memory.d.ts.map +1 -0
  362. package/dist/storage/database/providers/memory.js +17 -0
  363. package/dist/storage/database/providers/postgres.cjs +62 -0
  364. package/dist/storage/database/providers/postgres.d.ts +19 -0
  365. package/dist/storage/database/providers/postgres.d.ts.map +1 -0
  366. package/dist/storage/database/providers/postgres.js +29 -0
  367. package/dist/storage/database/providers/sqlite.cjs +66 -0
  368. package/dist/storage/database/providers/sqlite.d.ts +20 -0
  369. package/dist/storage/database/providers/sqlite.d.ts.map +1 -0
  370. package/dist/storage/database/providers/sqlite.js +33 -0
  371. package/dist/storage/database/registry.cjs +50 -0
  372. package/dist/storage/database/registry.d.ts +42 -0
  373. package/dist/storage/database/registry.d.ts.map +1 -0
  374. package/dist/storage/database/registry.js +26 -0
  375. package/dist/storage/database/schemas.cjs +12 -3
  376. package/dist/storage/database/schemas.d.ts +11 -4
  377. package/dist/storage/database/schemas.d.ts.map +1 -1
  378. package/dist/storage/database/schemas.js +8 -2
  379. package/dist/storage/error-codes.cjs +6 -0
  380. package/dist/storage/error-codes.d.ts +7 -1
  381. package/dist/storage/error-codes.d.ts.map +1 -1
  382. package/dist/storage/error-codes.js +6 -0
  383. package/dist/storage/errors.cjs +80 -0
  384. package/dist/storage/errors.d.ts +24 -0
  385. package/dist/storage/errors.d.ts.map +1 -1
  386. package/dist/storage/errors.js +80 -0
  387. package/dist/storage/index.cjs +47 -4
  388. package/dist/storage/index.d.ts +34 -8
  389. package/dist/storage/index.d.ts.map +1 -1
  390. package/dist/storage/index.js +32 -3
  391. package/dist/storage/schemas.cjs +4 -0
  392. package/dist/storage/schemas.d.ts +24 -50
  393. package/dist/storage/schemas.d.ts.map +1 -1
  394. package/dist/storage/schemas.js +5 -1
  395. package/dist/storage/storage-manager.cjs +6 -6
  396. package/dist/storage/storage-manager.d.ts.map +1 -1
  397. package/dist/storage/storage-manager.js +3 -3
  398. package/dist/systemPrompt/in-built-prompts.cjs +7 -6
  399. package/dist/systemPrompt/in-built-prompts.d.ts +2 -2
  400. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  401. package/dist/systemPrompt/in-built-prompts.js +6 -5
  402. package/dist/systemPrompt/registry.cjs +2 -2
  403. package/dist/systemPrompt/registry.d.ts +1 -1
  404. package/dist/systemPrompt/registry.d.ts.map +1 -1
  405. package/dist/systemPrompt/registry.js +2 -2
  406. package/dist/systemPrompt/schemas.cjs +2 -2
  407. package/dist/systemPrompt/schemas.d.ts +13 -13
  408. package/dist/systemPrompt/schemas.js +2 -2
  409. package/dist/tools/custom-tool-registry.cjs +64 -0
  410. package/dist/tools/custom-tool-registry.d.ts +126 -0
  411. package/dist/tools/custom-tool-registry.d.ts.map +1 -0
  412. package/dist/tools/custom-tool-registry.js +40 -0
  413. package/dist/tools/custom-tool-schema-registry.cjs +164 -0
  414. package/dist/tools/custom-tool-schema-registry.d.ts +86 -0
  415. package/dist/tools/custom-tool-schema-registry.d.ts.map +1 -0
  416. package/dist/tools/custom-tool-schema-registry.js +140 -0
  417. package/dist/tools/error-codes.cjs +3 -0
  418. package/dist/tools/error-codes.d.ts +4 -1
  419. package/dist/tools/error-codes.d.ts.map +1 -1
  420. package/dist/tools/error-codes.js +3 -0
  421. package/dist/tools/errors.cjs +41 -0
  422. package/dist/tools/errors.d.ts +17 -0
  423. package/dist/tools/errors.d.ts.map +1 -1
  424. package/dist/tools/errors.js +41 -0
  425. package/dist/tools/index.cjs +13 -1
  426. package/dist/tools/index.d.ts +4 -0
  427. package/dist/tools/index.d.ts.map +1 -1
  428. package/dist/tools/index.js +11 -1
  429. package/dist/tools/internal-tools/constants.cjs +3 -9
  430. package/dist/tools/internal-tools/constants.d.ts +1 -1
  431. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  432. package/dist/tools/internal-tools/constants.js +3 -9
  433. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +113 -0
  434. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +30 -0
  435. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +1 -0
  436. package/dist/tools/internal-tools/implementations/get-resource-tool.js +90 -0
  437. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +91 -0
  438. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +24 -0
  439. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +1 -0
  440. package/dist/tools/internal-tools/implementations/list-resources-tool.js +68 -0
  441. package/dist/tools/internal-tools/provider.cjs +153 -23
  442. package/dist/tools/internal-tools/provider.d.ts +55 -10
  443. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  444. package/dist/tools/internal-tools/provider.js +153 -23
  445. package/dist/tools/internal-tools/registry.cjs +18 -43
  446. package/dist/tools/internal-tools/registry.d.ts +4 -4
  447. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  448. package/dist/tools/internal-tools/registry.js +18 -43
  449. package/dist/tools/schemas.cjs +20 -0
  450. package/dist/tools/schemas.d.ts +43 -1
  451. package/dist/tools/schemas.d.ts.map +1 -1
  452. package/dist/tools/schemas.js +16 -0
  453. package/dist/tools/tool-manager.cjs +140 -13
  454. package/dist/tools/tool-manager.d.ts +22 -3
  455. package/dist/tools/tool-manager.d.ts.map +1 -1
  456. package/dist/tools/tool-manager.js +140 -13
  457. package/dist/tools/types.d.ts +43 -0
  458. package/dist/tools/types.d.ts.map +1 -1
  459. package/dist/utils/api-key-resolver.cjs +19 -1
  460. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  461. package/dist/utils/api-key-resolver.js +19 -1
  462. package/dist/utils/index.cjs +0 -2
  463. package/dist/utils/index.d.ts +0 -1
  464. package/dist/utils/index.d.ts.map +1 -1
  465. package/dist/utils/index.js +0 -1
  466. package/dist/utils/redactor.cjs +18 -3
  467. package/dist/utils/redactor.d.ts +0 -7
  468. package/dist/utils/redactor.d.ts.map +1 -1
  469. package/dist/utils/redactor.js +18 -3
  470. package/dist/utils/service-initializer.cjs +9 -35
  471. package/dist/utils/service-initializer.d.ts.map +1 -1
  472. package/dist/utils/service-initializer.js +9 -35
  473. package/package.json +5 -2
  474. package/dist/context/compression/overflow.d.ts.map +0 -1
  475. package/dist/context/compression/reactive-overflow.d.ts.map +0 -1
  476. package/dist/context/compression/types.d.ts.map +0 -1
  477. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -130
  478. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +0 -13
  479. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +0 -1
  480. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +0 -97
  481. package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +0 -49
  482. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +0 -12
  483. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +0 -1
  484. package/dist/tools/internal-tools/implementations/bash-output-tool.js +0 -26
  485. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +0 -127
  486. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +0 -12
  487. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +0 -1
  488. package/dist/tools/internal-tools/implementations/edit-file-tool.js +0 -104
  489. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -70
  490. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +0 -12
  491. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +0 -1
  492. package/dist/tools/internal-tools/implementations/glob-files-tool.js +0 -47
  493. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -86
  494. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +0 -12
  495. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +0 -1
  496. package/dist/tools/internal-tools/implementations/grep-content-tool.js +0 -63
  497. package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +0 -47
  498. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +0 -12
  499. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +0 -1
  500. package/dist/tools/internal-tools/implementations/kill-process-tool.js +0 -24
  501. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +0 -63
  502. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +0 -12
  503. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +0 -1
  504. package/dist/tools/internal-tools/implementations/read-file-tool.js +0 -40
  505. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -124
  506. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +0 -12
  507. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +0 -1
  508. package/dist/tools/internal-tools/implementations/write-file-tool.js +0 -103
  509. package/dist/utils/env-file.cjs +0 -118
  510. package/dist/utils/env-file.d.ts +0 -5
  511. package/dist/utils/env-file.d.ts.map +0 -1
  512. package/dist/utils/env-file.js +0 -85
  513. /package/dist/context/{compression/types.js → compaction/provider.js} +0 -0
  514. /package/dist/context/{compression → compaction}/types.cjs +0 -0
@@ -18,7 +18,8 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var factory_exports = {};
20
20
  __export(factory_exports, {
21
- createLLMService: () => createLLMService
21
+ createLLMService: () => createLLMService,
22
+ createVercelModel: () => createVercelModel
22
23
  });
23
24
  module.exports = __toCommonJS(factory_exports);
24
25
  var import_errors = require("../errors.js");
@@ -27,33 +28,104 @@ var import_google = require("@ai-sdk/google");
27
28
  var import_anthropic = require("@ai-sdk/anthropic");
28
29
  var import_groq = require("@ai-sdk/groq");
29
30
  var import_xai = require("@ai-sdk/xai");
31
+ var import_google_vertex = require("@ai-sdk/google-vertex");
32
+ var import_anthropic2 = require("@ai-sdk/google-vertex/anthropic");
33
+ var import_amazon_bedrock = require("@ai-sdk/amazon-bedrock");
30
34
  var import_vercel = require("./vercel.js");
31
35
  var import_cohere = require("@ai-sdk/cohere");
32
- function _createVercelModel(llmConfig) {
36
+ var import_ai_sdk_adapter = require("../providers/local/ai-sdk-adapter.js");
37
+ var import_registry = require("../registry.js");
38
+ var import_api_key_resolver = require("../../utils/api-key-resolver.js");
39
+ function createVercelModel(llmConfig) {
33
40
  const provider = llmConfig.provider;
34
41
  const model = llmConfig.model;
35
42
  const apiKey = llmConfig.apiKey;
43
+ if ((0, import_registry.requiresApiKey)(provider) && !apiKey?.trim()) {
44
+ const envVar = (0, import_api_key_resolver.getPrimaryApiKeyEnvVar)(provider);
45
+ throw import_errors.LLMError.apiKeyMissing(provider, envVar);
46
+ }
36
47
  switch (provider.toLowerCase()) {
37
48
  case "openai": {
38
- return (0, import_openai.createOpenAI)({ apiKey })(model);
49
+ return (0, import_openai.createOpenAI)({ apiKey: apiKey ?? "" })(model);
39
50
  }
40
51
  case "openai-compatible": {
41
52
  const baseURL = getOpenAICompatibleBaseURL(llmConfig);
42
53
  if (!baseURL) {
43
54
  throw import_errors.LLMError.baseUrlMissing("openai-compatible");
44
55
  }
45
- return (0, import_openai.createOpenAI)({ apiKey, baseURL }).chat(model);
56
+ return (0, import_openai.createOpenAI)({ apiKey: apiKey ?? "", baseURL }).chat(model);
57
+ }
58
+ case "openrouter": {
59
+ const baseURL = llmConfig.baseURL || "https://openrouter.ai/api/v1";
60
+ return (0, import_openai.createOpenAI)({ apiKey: apiKey ?? "", baseURL }).chat(model);
61
+ }
62
+ case "litellm": {
63
+ const baseURL = llmConfig.baseURL;
64
+ if (!baseURL) {
65
+ throw import_errors.LLMError.baseUrlMissing("litellm");
66
+ }
67
+ return (0, import_openai.createOpenAI)({ apiKey: apiKey ?? "", baseURL }).chat(model);
68
+ }
69
+ case "glama": {
70
+ const baseURL = "https://glama.ai/api/gateway/openai/v1";
71
+ return (0, import_openai.createOpenAI)({ apiKey: apiKey ?? "", baseURL }).chat(model);
72
+ }
73
+ case "vertex": {
74
+ const projectId = process.env.GOOGLE_VERTEX_PROJECT;
75
+ if (!projectId) {
76
+ throw import_errors.LLMError.missingConfig(
77
+ "vertex",
78
+ "GOOGLE_VERTEX_PROJECT environment variable"
79
+ );
80
+ }
81
+ const location = process.env.GOOGLE_VERTEX_LOCATION;
82
+ if (model.includes("claude")) {
83
+ return (0, import_anthropic2.createVertexAnthropic)({
84
+ project: projectId,
85
+ location: location || "us-east5"
86
+ })(model);
87
+ }
88
+ return (0, import_google_vertex.createVertex)({
89
+ project: projectId,
90
+ location: location || "us-central1"
91
+ })(model);
46
92
  }
93
+ case "bedrock": {
94
+ const region = process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION;
95
+ if (!region) {
96
+ throw import_errors.LLMError.missingConfig(
97
+ "bedrock",
98
+ "AWS_REGION or AWS_DEFAULT_REGION environment variable"
99
+ );
100
+ }
101
+ let modelId = model;
102
+ const hasRegionPrefix = model.startsWith("eu.") || model.startsWith("us.") || model.startsWith("global.");
103
+ if (!hasRegionPrefix) {
104
+ const prefix = region.startsWith("eu-") ? "eu." : "us.";
105
+ modelId = `${prefix}${model}`;
106
+ }
107
+ return (0, import_amazon_bedrock.createAmazonBedrock)({ region })(modelId);
108
+ }
109
+ // TODO: Add 'dexto' case (similar to openrouter, uses https://api.dexto.ai/v1)
47
110
  case "anthropic":
48
- return (0, import_anthropic.createAnthropic)({ apiKey })(model);
111
+ return (0, import_anthropic.createAnthropic)({ apiKey: apiKey ?? "" })(model);
49
112
  case "google":
50
- return (0, import_google.createGoogleGenerativeAI)({ apiKey })(model);
113
+ return (0, import_google.createGoogleGenerativeAI)({ apiKey: apiKey ?? "" })(model);
51
114
  case "groq":
52
- return (0, import_groq.createGroq)({ apiKey })(model);
115
+ return (0, import_groq.createGroq)({ apiKey: apiKey ?? "" })(model);
53
116
  case "xai":
54
- return (0, import_xai.createXai)({ apiKey })(model);
117
+ return (0, import_xai.createXai)({ apiKey: apiKey ?? "" })(model);
55
118
  case "cohere":
56
- return (0, import_cohere.createCohere)({ apiKey })(model);
119
+ return (0, import_cohere.createCohere)({ apiKey: apiKey ?? "" })(model);
120
+ case "ollama": {
121
+ const baseURL = llmConfig.baseURL || "http://localhost:11434/v1";
122
+ return (0, import_openai.createOpenAI)({ apiKey: "ollama", baseURL }).chat(model);
123
+ }
124
+ case "local": {
125
+ return (0, import_ai_sdk_adapter.createLocalLanguageModel)({
126
+ modelId: model
127
+ });
128
+ }
57
129
  default:
58
130
  throw import_errors.LLMError.unsupportedProvider(provider);
59
131
  }
@@ -67,8 +139,8 @@ function getOpenAICompatibleBaseURL(llmConfig) {
67
139
  }
68
140
  return "";
69
141
  }
70
- function createLLMService(config, toolManager, systemPromptManager, historyProvider, sessionEventBus, sessionId, resourceManager, logger) {
71
- const model = _createVercelModel(config);
142
+ function createLLMService(config, toolManager, systemPromptManager, historyProvider, sessionEventBus, sessionId, resourceManager, logger, compactionStrategy) {
143
+ const model = createVercelModel(config);
72
144
  return new import_vercel.VercelLLMService(
73
145
  toolManager,
74
146
  model,
@@ -78,10 +150,12 @@ function createLLMService(config, toolManager, systemPromptManager, historyProvi
78
150
  config,
79
151
  sessionId,
80
152
  resourceManager,
81
- logger
153
+ logger,
154
+ compactionStrategy
82
155
  );
83
156
  }
84
157
  // Annotate the CommonJS export names for ESM import in node:
85
158
  0 && (module.exports = {
86
- createLLMService
159
+ createLLMService,
160
+ createVercelModel
87
161
  });
@@ -1,10 +1,12 @@
1
1
  import { ToolManager } from '../../tools/tool-manager.js';
2
2
  import { ValidatedLLMConfig } from '../schemas.js';
3
3
  import { VercelLLMService } from './vercel.js';
4
+ import { LanguageModel } from 'ai';
4
5
  import { SessionEventBus } from '../../events/index.js';
5
6
  import type { IConversationHistoryProvider } from '../../session/history/types.js';
6
7
  import type { SystemPromptManager } from '../../systemPrompt/manager.js';
7
8
  import type { IDextoLogger } from '../../logger/v2/types.js';
9
+ export declare function createVercelModel(llmConfig: ValidatedLLMConfig): LanguageModel;
8
10
  /**
9
11
  * Create an LLM service instance using the Vercel AI SDK.
10
12
  * All providers are routed through the unified Vercel service.
@@ -17,7 +19,8 @@ import type { IDextoLogger } from '../../logger/v2/types.js';
17
19
  * @param sessionId Session ID
18
20
  * @param resourceManager Resource manager for blob storage and resource access
19
21
  * @param logger Logger instance for dependency injection
22
+ * @param compactionStrategy Optional compaction strategy for context management
20
23
  * @returns VercelLLMService instance
21
24
  */
22
- export declare function createLLMService(config: ValidatedLLMConfig, toolManager: ToolManager, systemPromptManager: SystemPromptManager, historyProvider: IConversationHistoryProvider, sessionEventBus: SessionEventBus, sessionId: string, resourceManager: import('../../resources/index.js').ResourceManager, logger: IDextoLogger): VercelLLMService;
25
+ export declare function createLLMService(config: ValidatedLLMConfig, toolManager: ToolManager, systemPromptManager: SystemPromptManager, historyProvider: IConversationHistoryProvider, sessionEventBus: SessionEventBus, sessionId: string, resourceManager: import('../../resources/index.js').ResourceManager, logger: IDextoLogger, compactionStrategy?: import('../../context/compaction/types.js').ICompactionStrategy | null): VercelLLMService;
23
26
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/llm/services/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAOnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAsD7D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,kBAAkB,EAC1B,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,4BAA4B,EAC7C,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,OAAO,0BAA0B,EAAE,eAAe,EACnE,MAAM,EAAE,YAAY,GACrB,gBAAgB,CAclB"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/llm/services/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAUnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI7D,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,GAAG,aAAa,CAoJ9E;AAoBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,kBAAkB,EAC1B,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,4BAA4B,EAC7C,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,OAAO,0BAA0B,EAAE,eAAe,EACnE,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,OAAO,mCAAmC,EAAE,mBAAmB,GAAG,IAAI,GAC5F,gBAAgB,CAelB"}
@@ -5,33 +5,104 @@ import { createGoogleGenerativeAI } from "@ai-sdk/google";
5
5
  import { createAnthropic } from "@ai-sdk/anthropic";
6
6
  import { createGroq } from "@ai-sdk/groq";
7
7
  import { createXai } from "@ai-sdk/xai";
8
+ import { createVertex } from "@ai-sdk/google-vertex";
9
+ import { createVertexAnthropic } from "@ai-sdk/google-vertex/anthropic";
10
+ import { createAmazonBedrock } from "@ai-sdk/amazon-bedrock";
8
11
  import { VercelLLMService } from "./vercel.js";
9
12
  import { createCohere } from "@ai-sdk/cohere";
10
- function _createVercelModel(llmConfig) {
13
+ import { createLocalLanguageModel } from "../providers/local/ai-sdk-adapter.js";
14
+ import { requiresApiKey } from "../registry.js";
15
+ import { getPrimaryApiKeyEnvVar } from "../../utils/api-key-resolver.js";
16
+ function createVercelModel(llmConfig) {
11
17
  const provider = llmConfig.provider;
12
18
  const model = llmConfig.model;
13
19
  const apiKey = llmConfig.apiKey;
20
+ if (requiresApiKey(provider) && !apiKey?.trim()) {
21
+ const envVar = getPrimaryApiKeyEnvVar(provider);
22
+ throw LLMError.apiKeyMissing(provider, envVar);
23
+ }
14
24
  switch (provider.toLowerCase()) {
15
25
  case "openai": {
16
- return createOpenAI({ apiKey })(model);
26
+ return createOpenAI({ apiKey: apiKey ?? "" })(model);
17
27
  }
18
28
  case "openai-compatible": {
19
29
  const baseURL = getOpenAICompatibleBaseURL(llmConfig);
20
30
  if (!baseURL) {
21
31
  throw LLMError.baseUrlMissing("openai-compatible");
22
32
  }
23
- return createOpenAI({ apiKey, baseURL }).chat(model);
33
+ return createOpenAI({ apiKey: apiKey ?? "", baseURL }).chat(model);
34
+ }
35
+ case "openrouter": {
36
+ const baseURL = llmConfig.baseURL || "https://openrouter.ai/api/v1";
37
+ return createOpenAI({ apiKey: apiKey ?? "", baseURL }).chat(model);
38
+ }
39
+ case "litellm": {
40
+ const baseURL = llmConfig.baseURL;
41
+ if (!baseURL) {
42
+ throw LLMError.baseUrlMissing("litellm");
43
+ }
44
+ return createOpenAI({ apiKey: apiKey ?? "", baseURL }).chat(model);
45
+ }
46
+ case "glama": {
47
+ const baseURL = "https://glama.ai/api/gateway/openai/v1";
48
+ return createOpenAI({ apiKey: apiKey ?? "", baseURL }).chat(model);
49
+ }
50
+ case "vertex": {
51
+ const projectId = process.env.GOOGLE_VERTEX_PROJECT;
52
+ if (!projectId) {
53
+ throw LLMError.missingConfig(
54
+ "vertex",
55
+ "GOOGLE_VERTEX_PROJECT environment variable"
56
+ );
57
+ }
58
+ const location = process.env.GOOGLE_VERTEX_LOCATION;
59
+ if (model.includes("claude")) {
60
+ return createVertexAnthropic({
61
+ project: projectId,
62
+ location: location || "us-east5"
63
+ })(model);
64
+ }
65
+ return createVertex({
66
+ project: projectId,
67
+ location: location || "us-central1"
68
+ })(model);
24
69
  }
70
+ case "bedrock": {
71
+ const region = process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION;
72
+ if (!region) {
73
+ throw LLMError.missingConfig(
74
+ "bedrock",
75
+ "AWS_REGION or AWS_DEFAULT_REGION environment variable"
76
+ );
77
+ }
78
+ let modelId = model;
79
+ const hasRegionPrefix = model.startsWith("eu.") || model.startsWith("us.") || model.startsWith("global.");
80
+ if (!hasRegionPrefix) {
81
+ const prefix = region.startsWith("eu-") ? "eu." : "us.";
82
+ modelId = `${prefix}${model}`;
83
+ }
84
+ return createAmazonBedrock({ region })(modelId);
85
+ }
86
+ // TODO: Add 'dexto' case (similar to openrouter, uses https://api.dexto.ai/v1)
25
87
  case "anthropic":
26
- return createAnthropic({ apiKey })(model);
88
+ return createAnthropic({ apiKey: apiKey ?? "" })(model);
27
89
  case "google":
28
- return createGoogleGenerativeAI({ apiKey })(model);
90
+ return createGoogleGenerativeAI({ apiKey: apiKey ?? "" })(model);
29
91
  case "groq":
30
- return createGroq({ apiKey })(model);
92
+ return createGroq({ apiKey: apiKey ?? "" })(model);
31
93
  case "xai":
32
- return createXai({ apiKey })(model);
94
+ return createXai({ apiKey: apiKey ?? "" })(model);
33
95
  case "cohere":
34
- return createCohere({ apiKey })(model);
96
+ return createCohere({ apiKey: apiKey ?? "" })(model);
97
+ case "ollama": {
98
+ const baseURL = llmConfig.baseURL || "http://localhost:11434/v1";
99
+ return createOpenAI({ apiKey: "ollama", baseURL }).chat(model);
100
+ }
101
+ case "local": {
102
+ return createLocalLanguageModel({
103
+ modelId: model
104
+ });
105
+ }
35
106
  default:
36
107
  throw LLMError.unsupportedProvider(provider);
37
108
  }
@@ -45,8 +116,8 @@ function getOpenAICompatibleBaseURL(llmConfig) {
45
116
  }
46
117
  return "";
47
118
  }
48
- function createLLMService(config, toolManager, systemPromptManager, historyProvider, sessionEventBus, sessionId, resourceManager, logger) {
49
- const model = _createVercelModel(config);
119
+ function createLLMService(config, toolManager, systemPromptManager, historyProvider, sessionEventBus, sessionId, resourceManager, logger, compactionStrategy) {
120
+ const model = createVercelModel(config);
50
121
  return new VercelLLMService(
51
122
  toolManager,
52
123
  model,
@@ -56,9 +127,11 @@ function createLLMService(config, toolManager, systemPromptManager, historyProvi
56
127
  config,
57
128
  sessionId,
58
129
  resourceManager,
59
- logger
130
+ logger,
131
+ compactionStrategy
60
132
  );
61
133
  }
62
134
  export {
63
- createLLMService
135
+ createLLMService,
136
+ createVercelModel
64
137
  };
@@ -21,6 +21,7 @@ __export(test_utils_integration_exports, {
21
21
  TestConfigs: () => TestConfigs,
22
22
  cleanupTestEnvironment: () => cleanupTestEnvironment,
23
23
  createTestEnvironment: () => createTestEnvironment,
24
+ providerRequiresApiKey: () => providerRequiresApiKey,
24
25
  requiresApiKey: () => requiresApiKey
25
26
  });
26
27
  module.exports = __toCommonJS(test_utils_integration_exports);
@@ -146,7 +147,7 @@ const TestConfigs = {
146
147
  */
147
148
  createVercelConfig(provider = "openai", model) {
148
149
  const apiKey = (0, import_api_key_resolver.resolveApiKeyForProvider)(provider);
149
- if (!apiKey) {
150
+ if (!apiKey && providerRequiresApiKey(provider)) {
150
151
  throw new Error(
151
152
  `${(0, import_api_key_resolver.getPrimaryApiKeyEnvVar)(provider)} environment variable is required for Vercel integration tests with ${provider}`
152
153
  );
@@ -158,7 +159,21 @@ const TestConfigs = {
158
159
  groq: "llama-3.1-8b-instant",
159
160
  xai: "grok-beta",
160
161
  cohere: "command-r",
161
- "openai-compatible": "gpt-5-mini"
162
+ "openai-compatible": "gpt-5-mini",
163
+ openrouter: "anthropic/claude-3.5-haiku",
164
+ // OpenRouter model format: provider/model
165
+ litellm: "gpt-4",
166
+ // LiteLLM model names follow the provider's convention
167
+ glama: "openai/gpt-4o",
168
+ // Glama model format: provider/model
169
+ vertex: "gemini-2.5-pro",
170
+ // Vertex AI uses ADC auth, not API keys
171
+ bedrock: "anthropic.claude-3-5-haiku-20241022-v1:0",
172
+ // Bedrock uses AWS credentials, not API keys
173
+ local: "llama-3.2-3b-q4",
174
+ // Native node-llama-cpp GGUF models
175
+ ollama: "llama3.2"
176
+ // Ollama server models
162
177
  };
163
178
  return {
164
179
  systemPrompt: "You are a helpful assistant for testing purposes.",
@@ -198,6 +213,10 @@ const TestConfigs = {
198
213
  };
199
214
  }
200
215
  };
216
+ function providerRequiresApiKey(provider) {
217
+ const envVars = import_api_key_resolver.PROVIDER_API_KEY_MAP[provider];
218
+ return envVars && envVars.length > 0;
219
+ }
201
220
  function requiresApiKey(provider) {
202
221
  return !!(0, import_api_key_resolver.resolveApiKeyForProvider)(provider);
203
222
  }
@@ -209,5 +228,6 @@ async function cleanupTestEnvironment(_env) {
209
228
  TestConfigs,
210
229
  cleanupTestEnvironment,
211
230
  createTestEnvironment,
231
+ providerRequiresApiKey,
212
232
  requiresApiKey
213
233
  });
@@ -32,7 +32,13 @@ export declare const TestConfigs: {
32
32
  readonly createVercelConfig: (provider?: LLMProvider, model?: string) => AgentConfig;
33
33
  };
34
34
  /**
35
- * Helper to skip tests if API keys are not available
35
+ * Helper to check if a provider requires an API key
36
+ * Providers with empty arrays in PROVIDER_API_KEY_MAP don't require API keys (e.g., local, ollama, vertex)
37
+ */
38
+ export declare function providerRequiresApiKey(provider: LLMProvider): boolean;
39
+ /**
40
+ * Helper to check if API key is available for a provider
41
+ * Used to skip tests when API keys are not configured
36
42
  */
37
43
  export declare function requiresApiKey(provider: LLMProvider): boolean;
38
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.integration.d.ts","sourceRoot":"","sources":["../../../src/llm/services/test-utils.integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,WAAW,EACnB,SAAS,GAAE,MAAuB,GACnC,OAAO,CAAC,eAAe,CAAC,CAe1B;AAKD;;GAEG;AACH,eAAO,MAAM,WAAW;IACpB;;OAEG;uCACmB,WAAW;IA4CjC;;OAEG;0CACsB,WAAW;IA4CpC;;OAEG;6CAC0B,WAAW,UAAqB,MAAM,KAAG,WAAW;CAqD3E,CAAC;AAEX;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjF"}
1
+ {"version":3,"file":"test-utils.integration.d.ts","sourceRoot":"","sources":["../../../src/llm/services/test-utils.integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAMvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,WAAW,EACnB,SAAS,GAAE,MAAuB,GACnC,OAAO,CAAC,eAAe,CAAC,CAe1B;AAKD;;GAEG;AACH,eAAO,MAAM,WAAW;IACpB;;OAEG;uCACmB,WAAW;IA4CjC;;OAEG;0CACsB,WAAW;IA4CpC;;OAEG;6CAC0B,WAAW,UAAqB,MAAM,KAAG,WAAW;CA6D3E,CAAC;AAEX;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAGrE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjF"}
@@ -1,6 +1,10 @@
1
1
  import "../../chunk-PTJYTZNU.js";
2
2
  import { DextoAgent } from "../../agent/DextoAgent.js";
3
- import { resolveApiKeyForProvider, getPrimaryApiKeyEnvVar } from "../../utils/api-key-resolver.js";
3
+ import {
4
+ resolveApiKeyForProvider,
5
+ getPrimaryApiKeyEnvVar,
6
+ PROVIDER_API_KEY_MAP
7
+ } from "../../utils/api-key-resolver.js";
4
8
  async function createTestEnvironment(config, sessionId = "test-session") {
5
9
  const agent = new DextoAgent(config);
6
10
  await agent.start();
@@ -121,7 +125,7 @@ const TestConfigs = {
121
125
  */
122
126
  createVercelConfig(provider = "openai", model) {
123
127
  const apiKey = resolveApiKeyForProvider(provider);
124
- if (!apiKey) {
128
+ if (!apiKey && providerRequiresApiKey(provider)) {
125
129
  throw new Error(
126
130
  `${getPrimaryApiKeyEnvVar(provider)} environment variable is required for Vercel integration tests with ${provider}`
127
131
  );
@@ -133,7 +137,21 @@ const TestConfigs = {
133
137
  groq: "llama-3.1-8b-instant",
134
138
  xai: "grok-beta",
135
139
  cohere: "command-r",
136
- "openai-compatible": "gpt-5-mini"
140
+ "openai-compatible": "gpt-5-mini",
141
+ openrouter: "anthropic/claude-3.5-haiku",
142
+ // OpenRouter model format: provider/model
143
+ litellm: "gpt-4",
144
+ // LiteLLM model names follow the provider's convention
145
+ glama: "openai/gpt-4o",
146
+ // Glama model format: provider/model
147
+ vertex: "gemini-2.5-pro",
148
+ // Vertex AI uses ADC auth, not API keys
149
+ bedrock: "anthropic.claude-3-5-haiku-20241022-v1:0",
150
+ // Bedrock uses AWS credentials, not API keys
151
+ local: "llama-3.2-3b-q4",
152
+ // Native node-llama-cpp GGUF models
153
+ ollama: "llama3.2"
154
+ // Ollama server models
137
155
  };
138
156
  return {
139
157
  systemPrompt: "You are a helpful assistant for testing purposes.",
@@ -173,6 +191,10 @@ const TestConfigs = {
173
191
  };
174
192
  }
175
193
  };
194
+ function providerRequiresApiKey(provider) {
195
+ const envVars = PROVIDER_API_KEY_MAP[provider];
196
+ return envVars && envVars.length > 0;
197
+ }
176
198
  function requiresApiKey(provider) {
177
199
  return !!resolveApiKeyForProvider(provider);
178
200
  }
@@ -183,5 +205,6 @@ export {
183
205
  TestConfigs,
184
206
  cleanupTestEnvironment,
185
207
  createTestEnvironment,
208
+ providerRequiresApiKey,
186
209
  requiresApiKey
187
210
  };
@@ -91,13 +91,14 @@ class VercelLLMService {
91
91
  logger;
92
92
  resourceManager;
93
93
  messageQueue;
94
+ compactionStrategy;
94
95
  /**
95
96
  * Helper to extract model ID from LanguageModel union type (string | LanguageModelV2)
96
97
  */
97
98
  getModelId() {
98
99
  return typeof this.model === "string" ? this.model : this.model.modelId;
99
100
  }
100
- constructor(toolManager, model, systemPromptManager, historyProvider, sessionEventBus, config, sessionId, resourceManager, logger) {
101
+ constructor(toolManager, model, systemPromptManager, historyProvider, sessionEventBus, config, sessionId, resourceManager, logger, compactionStrategy) {
101
102
  this.logger = logger.createChild(import_types2.DextoLogComponent.LLM);
102
103
  this.model = model;
103
104
  this.config = config;
@@ -105,6 +106,7 @@ class VercelLLMService {
105
106
  this.sessionEventBus = sessionEventBus;
106
107
  this.sessionId = sessionId;
107
108
  this.resourceManager = resourceManager;
109
+ this.compactionStrategy = compactionStrategy ?? null;
108
110
  this.messageQueue = new import_message_queue.MessageQueueService(this.sessionEventBus, this.logger);
109
111
  const formatter = new import_vercel.VercelMessageFormatter(this.logger);
110
112
  const maxInputTokens = (0, import_registry.getEffectiveMaxInputTokens)(config, this.logger);
@@ -140,14 +142,17 @@ class VercelLLMService {
140
142
  maxSteps: this.config.maxIterations,
141
143
  maxOutputTokens: this.config.maxOutputTokens,
142
144
  temperature: this.config.temperature,
143
- baseURL: this.config.baseURL
145
+ baseURL: this.config.baseURL,
146
+ // Provider-specific options
147
+ reasoningEffort: this.config.reasoningEffort
144
148
  },
145
149
  { provider: this.config.provider, model: this.getModelId() },
146
150
  this.logger,
147
151
  this.messageQueue,
148
152
  void 0,
149
153
  // modelLimits - TurnExecutor will use defaults
150
- externalSignal
154
+ externalSignal,
155
+ this.compactionStrategy
151
156
  );
152
157
  }
153
158
  /**
@@ -18,7 +18,7 @@ import type { ContentInput } from '../../agent/types.js';
18
18
  * - Tool execution with multimodal support
19
19
  * - Streaming with llm:chunk events
20
20
  * - Message persistence via StreamProcessor
21
- * - Reactive compression on overflow
21
+ * - Reactive compaction on overflow
22
22
  * - Tool output pruning
23
23
  * - Message queue injection
24
24
  *
@@ -35,11 +35,12 @@ export declare class VercelLLMService {
35
35
  private logger;
36
36
  private resourceManager;
37
37
  private messageQueue;
38
+ private compactionStrategy;
38
39
  /**
39
40
  * Helper to extract model ID from LanguageModel union type (string | LanguageModelV2)
40
41
  */
41
42
  private getModelId;
42
- constructor(toolManager: ToolManager, model: LanguageModel, systemPromptManager: SystemPromptManager, historyProvider: IConversationHistoryProvider, sessionEventBus: SessionEventBus, config: ValidatedLLMConfig, sessionId: string, resourceManager: ResourceManager, logger: IDextoLogger);
43
+ constructor(toolManager: ToolManager, model: LanguageModel, systemPromptManager: SystemPromptManager, historyProvider: IConversationHistoryProvider, sessionEventBus: SessionEventBus, config: ValidatedLLMConfig, sessionId: string, resourceManager: ResourceManager, logger: IDextoLogger, compactionStrategy?: import('../../context/compaction/types.js').ICompactionStrategy | null);
43
44
  getAllTools(): Promise<ToolSet>;
44
45
  /**
45
46
  * Create a TurnExecutor instance for executing the agent loop.
@@ -1 +1 @@
1
- {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/services/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,qBAIa,gBAAgB;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAE1C;;OAEG;IACH,OAAO,CAAC,UAAU;gBAKd,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,aAAa,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,4BAA4B,EAC7C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,YAAY;IAiCxB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;;;;;;OAOG;IACG,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAsDxF;;;OAGG;IACH,SAAS,IAAI,gBAAgB;IA+B7B;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;IAI5C;;OAEG;IACH,eAAe,IAAI,mBAAmB;CAGzC"}
1
+ {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/services/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,qBAIa,gBAAgB;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,kBAAkB,CAEf;IAEX;;OAEG;IACH,OAAO,CAAC,UAAU;gBAKd,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,aAAa,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,4BAA4B,EAC7C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,OAAO,mCAAmC,EAAE,mBAAmB,GAAG,IAAI;IAkC/F,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyB1B;;;;;;;OAOG;IACG,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAsDxF;;;OAGG;IACH,SAAS,IAAI,gBAAgB;IA+B7B;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;IAI5C;;OAEG;IACH,eAAe,IAAI,mBAAmB;CAGzC"}
@@ -28,13 +28,14 @@ class VercelLLMService {
28
28
  logger;
29
29
  resourceManager;
30
30
  messageQueue;
31
+ compactionStrategy;
31
32
  /**
32
33
  * Helper to extract model ID from LanguageModel union type (string | LanguageModelV2)
33
34
  */
34
35
  getModelId() {
35
36
  return typeof this.model === "string" ? this.model : this.model.modelId;
36
37
  }
37
- constructor(toolManager, model, systemPromptManager, historyProvider, sessionEventBus, config, sessionId, resourceManager, logger) {
38
+ constructor(toolManager, model, systemPromptManager, historyProvider, sessionEventBus, config, sessionId, resourceManager, logger, compactionStrategy) {
38
39
  this.logger = logger.createChild(DextoLogComponent.LLM);
39
40
  this.model = model;
40
41
  this.config = config;
@@ -42,6 +43,7 @@ class VercelLLMService {
42
43
  this.sessionEventBus = sessionEventBus;
43
44
  this.sessionId = sessionId;
44
45
  this.resourceManager = resourceManager;
46
+ this.compactionStrategy = compactionStrategy ?? null;
45
47
  this.messageQueue = new MessageQueueService(this.sessionEventBus, this.logger);
46
48
  const formatter = new VercelMessageFormatter(this.logger);
47
49
  const maxInputTokens = getEffectiveMaxInputTokens(config, this.logger);
@@ -77,14 +79,17 @@ class VercelLLMService {
77
79
  maxSteps: this.config.maxIterations,
78
80
  maxOutputTokens: this.config.maxOutputTokens,
79
81
  temperature: this.config.temperature,
80
- baseURL: this.config.baseURL
82
+ baseURL: this.config.baseURL,
83
+ // Provider-specific options
84
+ reasoningEffort: this.config.reasoningEffort
81
85
  },
82
86
  { provider: this.config.provider, model: this.getModelId() },
83
87
  this.logger,
84
88
  this.messageQueue,
85
89
  void 0,
86
90
  // modelLimits - TurnExecutor will use defaults
87
- externalSignal
91
+ externalSignal,
92
+ this.compactionStrategy
88
93
  );
89
94
  }
90
95
  /**
@@ -29,7 +29,17 @@ const LLM_PROVIDERS = [
29
29
  "google",
30
30
  "groq",
31
31
  "xai",
32
- "cohere"
32
+ "cohere",
33
+ "openrouter",
34
+ "litellm",
35
+ "glama",
36
+ "vertex",
37
+ "bedrock",
38
+ "local",
39
+ // Native node-llama-cpp execution (GGUF models)
40
+ "ollama"
41
+ // Ollama server integration
42
+ // TODO: Add 'dexto' provider (similar to openrouter, uses https://api.dexto.ai/v1)
33
43
  ];
34
44
  const SUPPORTED_FILE_TYPES = ["pdf", "image", "audio"];
35
45
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,4 +1,4 @@
1
- export declare const LLM_PROVIDERS: readonly ["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere"];
1
+ export declare const LLM_PROVIDERS: readonly ["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere", "openrouter", "litellm", "glama", "vertex", "bedrock", "local", "ollama"];
2
2
  export type LLMProvider = (typeof LLM_PROVIDERS)[number];
3
3
  export declare const SUPPORTED_FILE_TYPES: readonly ["pdf", "image", "audio"];
4
4
  export type SupportedFileType = (typeof SUPPORTED_FILE_TYPES)[number];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,0FAQhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,oBAAoB,oCAAqC,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACvB,mDAAmD;IACnD,QAAQ,EAAE,WAAW,CAAC;IAEtB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,oKAgBhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,oBAAoB,oCAAqC,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACvB,mDAAmD;IACnD,QAAQ,EAAE,WAAW,CAAC;IAEtB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
package/dist/llm/types.js CHANGED
@@ -6,7 +6,17 @@ const LLM_PROVIDERS = [
6
6
  "google",
7
7
  "groq",
8
8
  "xai",
9
- "cohere"
9
+ "cohere",
10
+ "openrouter",
11
+ "litellm",
12
+ "glama",
13
+ "vertex",
14
+ "bedrock",
15
+ "local",
16
+ // Native node-llama-cpp execution (GGUF models)
17
+ "ollama"
18
+ // Ollama server integration
19
+ // TODO: Add 'dexto' provider (similar to openrouter, uses https://api.dexto.ai/v1)
10
20
  ];
11
21
  const SUPPORTED_FILE_TYPES = ["pdf", "image", "audio"];
12
22
  export {
@@ -375,9 +375,13 @@ ${import_chalk.default.white(JSON.stringify(args, null, 2))}`,
375
375
  console.log(`\u{1F4AC} ${import_chalk.default.bold("Session:")} ${import_chalk.default.blue(info.sessionId)}`);
376
376
  }
377
377
  if (info.logLevel && info.logFile) {
378
- console.log(
379
- `\u{1F4CB} ${import_chalk.default.bold("Log Level:")} ${import_chalk.default.cyan(info.logLevel)} ${import_chalk.default.dim(`(file: ${info.logFile})`)}`
380
- );
378
+ if (process.env.DEXTO_PRIVACY_MODE === "true") {
379
+ console.log(`\u{1F4CB} ${import_chalk.default.bold("Log Level:")} ${import_chalk.default.cyan(info.logLevel)}`);
380
+ } else {
381
+ console.log(
382
+ `\u{1F4CB} ${import_chalk.default.bold("Log Level:")} ${import_chalk.default.cyan(info.logLevel)} ${import_chalk.default.dim(`(file: ${info.logFile})`)}`
383
+ );
384
+ }
381
385
  }
382
386
  }
383
387
  displayError(message, error) {