@dexto/core 1.4.0 → 1.5.0

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 (497) 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 +5911 -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 +2 -2
  89. package/dist/events/index.d.ts +16 -16
  90. package/dist/events/index.d.ts.map +1 -1
  91. package/dist/events/index.js +2 -2
  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/stream-processor.cjs +11 -3
  127. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  128. package/dist/llm/executor/stream-processor.js +11 -3
  129. package/dist/llm/executor/turn-executor.cjs +50 -23
  130. package/dist/llm/executor/turn-executor.d.ts +6 -5
  131. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  132. package/dist/llm/executor/turn-executor.js +50 -23
  133. package/dist/llm/formatters/vercel.cjs +6 -2
  134. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  135. package/dist/llm/formatters/vercel.js +6 -2
  136. package/dist/llm/index.cjs +18 -1
  137. package/dist/llm/index.d.ts +2 -0
  138. package/dist/llm/index.d.ts.map +1 -1
  139. package/dist/llm/index.js +14 -0
  140. package/dist/llm/providers/local/ai-sdk-adapter.cjs +308 -0
  141. package/dist/llm/providers/local/ai-sdk-adapter.d.ts +29 -0
  142. package/dist/llm/providers/local/ai-sdk-adapter.d.ts.map +1 -0
  143. package/dist/llm/providers/local/ai-sdk-adapter.js +278 -0
  144. package/dist/llm/providers/local/downloader.cjs +291 -0
  145. package/dist/llm/providers/local/downloader.d.ts +82 -0
  146. package/dist/llm/providers/local/downloader.d.ts.map +1 -0
  147. package/dist/llm/providers/local/downloader.js +251 -0
  148. package/dist/llm/providers/local/error-codes.cjs +57 -0
  149. package/dist/llm/providers/local/error-codes.d.ts +66 -0
  150. package/dist/llm/providers/local/error-codes.d.ts.map +1 -0
  151. package/dist/llm/providers/local/error-codes.js +34 -0
  152. package/dist/llm/providers/local/errors.cjs +240 -0
  153. package/dist/llm/providers/local/errors.d.ts +31 -0
  154. package/dist/llm/providers/local/errors.d.ts.map +1 -0
  155. package/dist/llm/providers/local/errors.js +217 -0
  156. package/dist/llm/providers/local/gpu-detector.cjs +214 -0
  157. package/dist/llm/providers/local/gpu-detector.d.ts +28 -0
  158. package/dist/llm/providers/local/gpu-detector.d.ts.map +1 -0
  159. package/dist/llm/providers/local/gpu-detector.js +178 -0
  160. package/dist/llm/providers/local/index.cjs +147 -0
  161. package/dist/llm/providers/local/index.d.ts +21 -0
  162. package/dist/llm/providers/local/index.d.ts.map +1 -0
  163. package/dist/llm/providers/local/index.js +126 -0
  164. package/dist/llm/providers/local/node-llama-provider.cjs +216 -0
  165. package/dist/llm/providers/local/node-llama-provider.d.ts +90 -0
  166. package/dist/llm/providers/local/node-llama-provider.d.ts.map +1 -0
  167. package/dist/llm/providers/local/node-llama-provider.js +176 -0
  168. package/dist/llm/providers/local/ollama-provider.cjs +230 -0
  169. package/dist/llm/providers/local/ollama-provider.d.ts +70 -0
  170. package/dist/llm/providers/local/ollama-provider.d.ts.map +1 -0
  171. package/dist/llm/providers/local/ollama-provider.js +198 -0
  172. package/dist/llm/providers/local/registry.cjs +343 -0
  173. package/dist/llm/providers/local/registry.d.ts +51 -0
  174. package/dist/llm/providers/local/registry.d.ts.map +1 -0
  175. package/dist/llm/providers/local/registry.js +312 -0
  176. package/dist/llm/providers/local/schemas.cjs +169 -0
  177. package/dist/llm/providers/local/schemas.d.ts +395 -0
  178. package/dist/llm/providers/local/schemas.d.ts.map +1 -0
  179. package/dist/llm/providers/local/schemas.js +133 -0
  180. package/dist/llm/providers/local/types.cjs +16 -0
  181. package/dist/llm/providers/local/types.d.ts +219 -0
  182. package/dist/llm/providers/local/types.d.ts.map +1 -0
  183. package/dist/llm/providers/local/types.js +0 -0
  184. package/dist/llm/providers/openrouter-model-registry.cjs +350 -0
  185. package/dist/llm/providers/openrouter-model-registry.d.ts +120 -0
  186. package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -0
  187. package/dist/llm/providers/openrouter-model-registry.js +309 -0
  188. package/dist/llm/registry.cjs +535 -9
  189. package/dist/llm/registry.d.ts +26 -0
  190. package/dist/llm/registry.d.ts.map +1 -1
  191. package/dist/llm/registry.js +532 -9
  192. package/dist/llm/resolver.cjs +63 -5
  193. package/dist/llm/resolver.d.ts +3 -3
  194. package/dist/llm/resolver.d.ts.map +1 -1
  195. package/dist/llm/resolver.js +69 -6
  196. package/dist/llm/schemas.cjs +90 -80
  197. package/dist/llm/schemas.d.ts +158 -22
  198. package/dist/llm/schemas.d.ts.map +1 -1
  199. package/dist/llm/schemas.js +90 -80
  200. package/dist/llm/services/factory.cjs +87 -13
  201. package/dist/llm/services/factory.d.ts +4 -1
  202. package/dist/llm/services/factory.d.ts.map +1 -1
  203. package/dist/llm/services/factory.js +85 -12
  204. package/dist/llm/services/test-utils.integration.cjs +22 -2
  205. package/dist/llm/services/test-utils.integration.d.ts +7 -1
  206. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  207. package/dist/llm/services/test-utils.integration.js +26 -3
  208. package/dist/llm/services/vercel.cjs +5 -2
  209. package/dist/llm/services/vercel.d.ts +3 -2
  210. package/dist/llm/services/vercel.d.ts.map +1 -1
  211. package/dist/llm/services/vercel.js +5 -2
  212. package/dist/llm/types.cjs +11 -1
  213. package/dist/llm/types.d.ts +1 -1
  214. package/dist/llm/types.d.ts.map +1 -1
  215. package/dist/llm/types.js +11 -1
  216. package/dist/mcp/manager.cjs +8 -0
  217. package/dist/mcp/manager.d.ts +17 -0
  218. package/dist/mcp/manager.d.ts.map +1 -1
  219. package/dist/mcp/manager.js +8 -0
  220. package/dist/mcp/mcp-client.cjs +0 -3
  221. package/dist/mcp/mcp-client.d.ts.map +1 -1
  222. package/dist/mcp/mcp-client.js +0 -3
  223. package/dist/memory/schemas.d.ts +1 -1
  224. package/dist/plugins/error-codes.cjs +3 -0
  225. package/dist/plugins/error-codes.d.ts +7 -1
  226. package/dist/plugins/error-codes.d.ts.map +1 -1
  227. package/dist/plugins/error-codes.js +3 -0
  228. package/dist/plugins/index.cjs +7 -0
  229. package/dist/plugins/index.d.ts +4 -2
  230. package/dist/plugins/index.d.ts.map +1 -1
  231. package/dist/plugins/index.js +6 -1
  232. package/dist/plugins/manager.cjs +92 -7
  233. package/dist/plugins/manager.d.ts +10 -3
  234. package/dist/plugins/manager.d.ts.map +1 -1
  235. package/dist/plugins/manager.js +92 -7
  236. package/dist/plugins/registry.cjs +63 -0
  237. package/dist/plugins/registry.d.ts +101 -0
  238. package/dist/plugins/registry.d.ts.map +1 -0
  239. package/dist/plugins/registry.js +39 -0
  240. package/dist/plugins/schemas.cjs +17 -5
  241. package/dist/plugins/schemas.d.ts +62 -5
  242. package/dist/plugins/schemas.d.ts.map +1 -1
  243. package/dist/plugins/schemas.js +15 -4
  244. package/dist/providers/base-registry.cjs +147 -0
  245. package/dist/providers/base-registry.d.ts +147 -0
  246. package/dist/providers/base-registry.d.ts.map +1 -0
  247. package/dist/providers/base-registry.js +123 -0
  248. package/dist/providers/discovery.cjs +95 -0
  249. package/dist/providers/discovery.d.ts +94 -0
  250. package/dist/providers/discovery.d.ts.map +1 -0
  251. package/dist/providers/discovery.js +70 -0
  252. package/dist/providers/index.cjs +24 -0
  253. package/dist/providers/index.d.ts +32 -0
  254. package/dist/providers/index.d.ts.map +1 -0
  255. package/dist/providers/index.js +2 -0
  256. package/dist/resources/reference-parser.cjs +3 -3
  257. package/dist/resources/reference-parser.d.ts.map +1 -1
  258. package/dist/resources/reference-parser.js +3 -3
  259. package/dist/session/chat-session.cjs +20 -3
  260. package/dist/session/chat-session.d.ts.map +1 -1
  261. package/dist/session/chat-session.js +21 -4
  262. package/dist/storage/blob/factory.cjs +8 -11
  263. package/dist/storage/blob/factory.d.ts +32 -6
  264. package/dist/storage/blob/factory.d.ts.map +1 -1
  265. package/dist/storage/blob/factory.js +8 -11
  266. package/dist/storage/blob/index.cjs +56 -0
  267. package/dist/storage/blob/index.d.ts +45 -0
  268. package/dist/storage/blob/index.d.ts.map +1 -0
  269. package/dist/storage/blob/index.js +30 -0
  270. package/dist/storage/blob/provider.cjs +16 -0
  271. package/dist/storage/blob/provider.d.ts +50 -0
  272. package/dist/storage/blob/provider.d.ts.map +1 -0
  273. package/dist/storage/blob/provider.js +0 -0
  274. package/dist/storage/blob/providers/index.cjs +31 -0
  275. package/dist/storage/blob/providers/index.d.ts +8 -0
  276. package/dist/storage/blob/providers/index.d.ts.map +1 -0
  277. package/dist/storage/blob/providers/index.js +7 -0
  278. package/dist/storage/blob/providers/local.cjs +39 -0
  279. package/dist/storage/blob/providers/local.d.ts +17 -0
  280. package/dist/storage/blob/providers/local.d.ts.map +1 -0
  281. package/dist/storage/blob/providers/local.js +16 -0
  282. package/dist/storage/blob/providers/memory.cjs +39 -0
  283. package/dist/storage/blob/providers/memory.d.ts +17 -0
  284. package/dist/storage/blob/providers/memory.d.ts.map +1 -0
  285. package/dist/storage/blob/providers/memory.js +16 -0
  286. package/dist/storage/blob/registry.cjs +50 -0
  287. package/dist/storage/blob/registry.d.ts +42 -0
  288. package/dist/storage/blob/registry.d.ts.map +1 -0
  289. package/dist/storage/blob/registry.js +26 -0
  290. package/dist/storage/blob/schemas.cjs +9 -12
  291. package/dist/storage/blob/schemas.d.ts +39 -34
  292. package/dist/storage/blob/schemas.d.ts.map +1 -1
  293. package/dist/storage/blob/schemas.js +6 -11
  294. package/dist/storage/cache/factory.cjs +8 -36
  295. package/dist/storage/cache/factory.d.ts +32 -7
  296. package/dist/storage/cache/factory.d.ts.map +1 -1
  297. package/dist/storage/cache/factory.js +8 -26
  298. package/dist/storage/cache/index.cjs +53 -0
  299. package/dist/storage/cache/index.d.ts +44 -0
  300. package/dist/storage/cache/index.d.ts.map +1 -0
  301. package/dist/storage/cache/index.js +28 -0
  302. package/dist/storage/cache/provider.cjs +16 -0
  303. package/dist/storage/cache/provider.d.ts +56 -0
  304. package/dist/storage/cache/provider.d.ts.map +1 -0
  305. package/dist/storage/cache/provider.js +0 -0
  306. package/dist/storage/cache/providers/index.cjs +31 -0
  307. package/dist/storage/cache/providers/index.d.ts +8 -0
  308. package/dist/storage/cache/providers/index.d.ts.map +1 -0
  309. package/dist/storage/cache/providers/index.js +7 -0
  310. package/dist/storage/cache/providers/memory.cjs +40 -0
  311. package/dist/storage/cache/providers/memory.d.ts +17 -0
  312. package/dist/storage/cache/providers/memory.d.ts.map +1 -0
  313. package/dist/storage/cache/providers/memory.js +17 -0
  314. package/dist/storage/cache/providers/redis.cjs +66 -0
  315. package/dist/storage/cache/providers/redis.d.ts +20 -0
  316. package/dist/storage/cache/providers/redis.d.ts.map +1 -0
  317. package/dist/storage/cache/providers/redis.js +33 -0
  318. package/dist/storage/cache/registry.cjs +50 -0
  319. package/dist/storage/cache/registry.d.ts +42 -0
  320. package/dist/storage/cache/registry.d.ts.map +1 -0
  321. package/dist/storage/cache/registry.js +26 -0
  322. package/dist/storage/cache/schemas.cjs +6 -2
  323. package/dist/storage/cache/schemas.d.ts +2 -3
  324. package/dist/storage/cache/schemas.d.ts.map +1 -1
  325. package/dist/storage/cache/schemas.js +3 -1
  326. package/dist/storage/database/factory.cjs +8 -47
  327. package/dist/storage/database/factory.d.ts +34 -8
  328. package/dist/storage/database/factory.d.ts.map +1 -1
  329. package/dist/storage/database/factory.js +8 -37
  330. package/dist/storage/database/index.cjs +58 -0
  331. package/dist/storage/database/index.d.ts +45 -0
  332. package/dist/storage/database/index.d.ts.map +1 -0
  333. package/dist/storage/database/index.js +37 -0
  334. package/dist/storage/database/provider.cjs +16 -0
  335. package/dist/storage/database/provider.d.ts +56 -0
  336. package/dist/storage/database/provider.d.ts.map +1 -0
  337. package/dist/storage/database/provider.js +0 -0
  338. package/dist/storage/database/providers/index.cjs +34 -0
  339. package/dist/storage/database/providers/index.d.ts +9 -0
  340. package/dist/storage/database/providers/index.d.ts.map +1 -0
  341. package/dist/storage/database/providers/index.js +9 -0
  342. package/dist/storage/database/providers/memory.cjs +40 -0
  343. package/dist/storage/database/providers/memory.d.ts +16 -0
  344. package/dist/storage/database/providers/memory.d.ts.map +1 -0
  345. package/dist/storage/database/providers/memory.js +17 -0
  346. package/dist/storage/database/providers/postgres.cjs +62 -0
  347. package/dist/storage/database/providers/postgres.d.ts +19 -0
  348. package/dist/storage/database/providers/postgres.d.ts.map +1 -0
  349. package/dist/storage/database/providers/postgres.js +29 -0
  350. package/dist/storage/database/providers/sqlite.cjs +66 -0
  351. package/dist/storage/database/providers/sqlite.d.ts +20 -0
  352. package/dist/storage/database/providers/sqlite.d.ts.map +1 -0
  353. package/dist/storage/database/providers/sqlite.js +33 -0
  354. package/dist/storage/database/registry.cjs +50 -0
  355. package/dist/storage/database/registry.d.ts +42 -0
  356. package/dist/storage/database/registry.d.ts.map +1 -0
  357. package/dist/storage/database/registry.js +26 -0
  358. package/dist/storage/database/schemas.cjs +8 -2
  359. package/dist/storage/database/schemas.d.ts +3 -4
  360. package/dist/storage/database/schemas.d.ts.map +1 -1
  361. package/dist/storage/database/schemas.js +4 -1
  362. package/dist/storage/error-codes.cjs +6 -0
  363. package/dist/storage/error-codes.d.ts +7 -1
  364. package/dist/storage/error-codes.d.ts.map +1 -1
  365. package/dist/storage/error-codes.js +6 -0
  366. package/dist/storage/errors.cjs +80 -0
  367. package/dist/storage/errors.d.ts +24 -0
  368. package/dist/storage/errors.d.ts.map +1 -1
  369. package/dist/storage/errors.js +80 -0
  370. package/dist/storage/index.cjs +47 -4
  371. package/dist/storage/index.d.ts +34 -8
  372. package/dist/storage/index.d.ts.map +1 -1
  373. package/dist/storage/index.js +32 -3
  374. package/dist/storage/schemas.cjs +4 -0
  375. package/dist/storage/schemas.d.ts +17 -50
  376. package/dist/storage/schemas.d.ts.map +1 -1
  377. package/dist/storage/schemas.js +5 -1
  378. package/dist/storage/storage-manager.cjs +6 -6
  379. package/dist/storage/storage-manager.d.ts.map +1 -1
  380. package/dist/storage/storage-manager.js +3 -3
  381. package/dist/systemPrompt/in-built-prompts.cjs +7 -6
  382. package/dist/systemPrompt/in-built-prompts.d.ts +2 -2
  383. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  384. package/dist/systemPrompt/in-built-prompts.js +6 -5
  385. package/dist/systemPrompt/registry.cjs +2 -2
  386. package/dist/systemPrompt/registry.d.ts +1 -1
  387. package/dist/systemPrompt/registry.d.ts.map +1 -1
  388. package/dist/systemPrompt/registry.js +2 -2
  389. package/dist/systemPrompt/schemas.cjs +2 -2
  390. package/dist/systemPrompt/schemas.d.ts +13 -13
  391. package/dist/systemPrompt/schemas.js +2 -2
  392. package/dist/tools/custom-tool-registry.cjs +64 -0
  393. package/dist/tools/custom-tool-registry.d.ts +120 -0
  394. package/dist/tools/custom-tool-registry.d.ts.map +1 -0
  395. package/dist/tools/custom-tool-registry.js +40 -0
  396. package/dist/tools/custom-tool-schema-registry.cjs +164 -0
  397. package/dist/tools/custom-tool-schema-registry.d.ts +86 -0
  398. package/dist/tools/custom-tool-schema-registry.d.ts.map +1 -0
  399. package/dist/tools/custom-tool-schema-registry.js +140 -0
  400. package/dist/tools/error-codes.cjs +3 -0
  401. package/dist/tools/error-codes.d.ts +4 -1
  402. package/dist/tools/error-codes.d.ts.map +1 -1
  403. package/dist/tools/error-codes.js +3 -0
  404. package/dist/tools/errors.cjs +41 -0
  405. package/dist/tools/errors.d.ts +17 -0
  406. package/dist/tools/errors.d.ts.map +1 -1
  407. package/dist/tools/errors.js +41 -0
  408. package/dist/tools/index.cjs +13 -1
  409. package/dist/tools/index.d.ts +4 -0
  410. package/dist/tools/index.d.ts.map +1 -1
  411. package/dist/tools/index.js +11 -1
  412. package/dist/tools/internal-tools/constants.cjs +3 -9
  413. package/dist/tools/internal-tools/constants.d.ts +1 -1
  414. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  415. package/dist/tools/internal-tools/constants.js +3 -9
  416. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +113 -0
  417. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +30 -0
  418. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +1 -0
  419. package/dist/tools/internal-tools/implementations/get-resource-tool.js +90 -0
  420. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +91 -0
  421. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +24 -0
  422. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +1 -0
  423. package/dist/tools/internal-tools/implementations/list-resources-tool.js +68 -0
  424. package/dist/tools/internal-tools/provider.cjs +150 -23
  425. package/dist/tools/internal-tools/provider.d.ts +55 -10
  426. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  427. package/dist/tools/internal-tools/provider.js +150 -23
  428. package/dist/tools/internal-tools/registry.cjs +18 -43
  429. package/dist/tools/internal-tools/registry.d.ts +4 -4
  430. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  431. package/dist/tools/internal-tools/registry.js +18 -43
  432. package/dist/tools/schemas.cjs +20 -0
  433. package/dist/tools/schemas.d.ts +43 -1
  434. package/dist/tools/schemas.d.ts.map +1 -1
  435. package/dist/tools/schemas.js +16 -0
  436. package/dist/tools/tool-manager.cjs +140 -13
  437. package/dist/tools/tool-manager.d.ts +22 -3
  438. package/dist/tools/tool-manager.d.ts.map +1 -1
  439. package/dist/tools/tool-manager.js +140 -13
  440. package/dist/tools/types.d.ts +43 -0
  441. package/dist/tools/types.d.ts.map +1 -1
  442. package/dist/utils/api-key-resolver.cjs +19 -1
  443. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  444. package/dist/utils/api-key-resolver.js +19 -1
  445. package/dist/utils/index.cjs +0 -2
  446. package/dist/utils/index.d.ts +0 -1
  447. package/dist/utils/index.d.ts.map +1 -1
  448. package/dist/utils/index.js +0 -1
  449. package/dist/utils/redactor.cjs +18 -3
  450. package/dist/utils/redactor.d.ts +0 -7
  451. package/dist/utils/redactor.d.ts.map +1 -1
  452. package/dist/utils/redactor.js +18 -3
  453. package/dist/utils/service-initializer.cjs +9 -35
  454. package/dist/utils/service-initializer.d.ts.map +1 -1
  455. package/dist/utils/service-initializer.js +9 -35
  456. package/package.json +5 -2
  457. package/dist/context/compression/overflow.d.ts.map +0 -1
  458. package/dist/context/compression/reactive-overflow.d.ts.map +0 -1
  459. package/dist/context/compression/types.d.ts.map +0 -1
  460. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -130
  461. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +0 -13
  462. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +0 -1
  463. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +0 -97
  464. package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +0 -49
  465. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +0 -12
  466. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +0 -1
  467. package/dist/tools/internal-tools/implementations/bash-output-tool.js +0 -26
  468. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +0 -127
  469. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +0 -12
  470. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +0 -1
  471. package/dist/tools/internal-tools/implementations/edit-file-tool.js +0 -104
  472. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -70
  473. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +0 -12
  474. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +0 -1
  475. package/dist/tools/internal-tools/implementations/glob-files-tool.js +0 -47
  476. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -86
  477. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +0 -12
  478. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +0 -1
  479. package/dist/tools/internal-tools/implementations/grep-content-tool.js +0 -63
  480. package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +0 -47
  481. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +0 -12
  482. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +0 -1
  483. package/dist/tools/internal-tools/implementations/kill-process-tool.js +0 -24
  484. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +0 -63
  485. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +0 -12
  486. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +0 -1
  487. package/dist/tools/internal-tools/implementations/read-file-tool.js +0 -40
  488. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -124
  489. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +0 -12
  490. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +0 -1
  491. package/dist/tools/internal-tools/implementations/write-file-tool.js +0 -103
  492. package/dist/utils/env-file.cjs +0 -118
  493. package/dist/utils/env-file.d.ts +0 -5
  494. package/dist/utils/env-file.d.ts.map +0 -1
  495. package/dist/utils/env-file.js +0 -85
  496. /package/dist/context/{compression/types.js → compaction/provider.js} +0 -0
  497. /package/dist/context/{compression → compaction}/types.cjs +0 -0
@@ -24,6 +24,15 @@ class LLMError {
24
24
  { provider }
25
25
  );
26
26
  }
27
+ static missingConfig(provider, configName) {
28
+ return new DextoRuntimeError(
29
+ LLMErrorCode.CONFIG_MISSING,
30
+ ErrorScope.LLM,
31
+ ErrorType.USER,
32
+ `Provider '${provider}' requires ${configName}`,
33
+ { provider, configName }
34
+ );
35
+ }
27
36
  static unsupportedProvider(provider) {
28
37
  const availableProviders = getSupportedProviders();
29
38
  return new DextoRuntimeError(
@@ -34,6 +43,21 @@ class LLMError {
34
43
  { provider, availableProviders }
35
44
  );
36
45
  }
46
+ /**
47
+ * Runtime error when API key is missing for a provider that requires it.
48
+ * This occurs when relaxed validation allowed the app to start without an API key,
49
+ * and the user then tries to use the LLM functionality.
50
+ */
51
+ static apiKeyMissing(provider, envVar) {
52
+ return new DextoRuntimeError(
53
+ LLMErrorCode.API_KEY_MISSING,
54
+ ErrorScope.LLM,
55
+ ErrorType.USER,
56
+ `API key required for provider '${provider}'`,
57
+ { provider, envVar },
58
+ `Set the ${envVar} environment variable or configure it in Settings`
59
+ );
60
+ }
37
61
  static modelProviderUnknown(model) {
38
62
  const availableProviders = getSupportedProviders();
39
63
  return new DextoRuntimeError(
@@ -88,22 +88,30 @@ class StreamProcessor {
88
88
  });
89
89
  }
90
90
  break;
91
- case "tool-call":
91
+ case "tool-call": {
92
92
  if (!this.assistantMessageId) {
93
93
  this.assistantMessageId = await this.createAssistantMessage();
94
94
  }
95
- await this.contextManager.addToolCall(this.assistantMessageId, {
95
+ const toolCall = {
96
96
  id: event.toolCallId,
97
97
  type: "function",
98
98
  function: {
99
99
  name: event.toolName,
100
100
  arguments: JSON.stringify(event.input)
101
101
  }
102
- });
102
+ };
103
+ const shouldPersistProviderMetadata = this.config.provider === "google" || this.config.provider === "vertex";
104
+ if (shouldPersistProviderMetadata && event.providerMetadata) {
105
+ toolCall.providerOptions = {
106
+ ...event.providerMetadata
107
+ };
108
+ }
109
+ await this.contextManager.addToolCall(this.assistantMessageId, toolCall);
103
110
  this.pendingToolCalls.set(event.toolCallId, {
104
111
  toolName: event.toolName
105
112
  });
106
113
  break;
114
+ }
107
115
  case "tool-result": {
108
116
  const rawResult = event.output;
109
117
  this.logger.debug("Tool result received", {
@@ -1 +1 @@
1
- {"version":3,"file":"stream-processor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/stream-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,IAAI,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAmB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAe;IAwBpB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,gBAAgB,CAAC;IA9B7B,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,YAAY,CAAmE;IACvF,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,MAAM,CAAe;IAC7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAgD;IAExE;;;;;;;;;OASG;gBAES,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,qBAAqB,EACrC,MAAM,EAAE,YAAY,EACZ,SAAS,GAAE,OAAc,EACzB,gBAAgB,CAAC,EAAE,GAAG,CAC1B,MAAM,EACN;QAAE,eAAe,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,CAAA;KAAE,CACzE,YAAA;IAKC,OAAO,CACT,QAAQ,EAAE,MAAM,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,GACzD,OAAO,CAAC,qBAAqB,CAAC;YAmYnB,sBAAsB;YAKtB,gBAAgB;IAO9B;;;;OAIG;YACW,2BAA2B;CAmC5C"}
1
+ {"version":3,"file":"stream-processor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/stream-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,IAAI,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAmB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAe;IAwBpB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,gBAAgB,CAAC;IA9B7B,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,YAAY,CAAmE;IACvF,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,MAAM,CAAe;IAC7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAgD;IAExE;;;;;;;;;OASG;gBAES,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,qBAAqB,EACrC,MAAM,EAAE,YAAY,EACZ,SAAS,GAAE,OAAc,EACzB,gBAAgB,CAAC,EAAE,GAAG,CAC1B,MAAM,EACN;QAAE,eAAe,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,CAAA;KAAE,CACzE,YAAA;IAKC,OAAO,CACT,QAAQ,EAAE,MAAM,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,GACzD,OAAO,CAAC,qBAAqB,CAAC;YAoZnB,sBAAsB;YAKtB,gBAAgB;IAO9B;;;;OAIG;YACW,2BAA2B;CAmC5C"}
@@ -66,22 +66,30 @@ class StreamProcessor {
66
66
  });
67
67
  }
68
68
  break;
69
- case "tool-call":
69
+ case "tool-call": {
70
70
  if (!this.assistantMessageId) {
71
71
  this.assistantMessageId = await this.createAssistantMessage();
72
72
  }
73
- await this.contextManager.addToolCall(this.assistantMessageId, {
73
+ const toolCall = {
74
74
  id: event.toolCallId,
75
75
  type: "function",
76
76
  function: {
77
77
  name: event.toolName,
78
78
  arguments: JSON.stringify(event.input)
79
79
  }
80
- });
80
+ };
81
+ const shouldPersistProviderMetadata = this.config.provider === "google" || this.config.provider === "vertex";
82
+ if (shouldPersistProviderMetadata && event.providerMetadata) {
83
+ toolCall.providerOptions = {
84
+ ...event.providerMetadata
85
+ };
86
+ }
87
+ await this.contextManager.addToolCall(this.assistantMessageId, toolCall);
81
88
  this.pendingToolCalls.set(event.toolCallId, {
82
89
  toolName: event.toolName
83
90
  });
84
91
  break;
92
+ }
85
93
  case "tool-result": {
86
94
  const rawResult = event.output;
87
95
  this.logger.debug("Tool result received", {
@@ -85,11 +85,12 @@ var import_DextoRuntimeError = require("../../errors/DextoRuntimeError.js");
85
85
  var import_types7 = require("../../errors/types.js");
86
86
  var import_error_codes = require("../error-codes.js");
87
87
  var import_error_conversion = require("../../utils/error-conversion.js");
88
- var import_overflow = require("../../context/compression/overflow.js");
89
- var import_reactive_overflow = require("../../context/compression/reactive-overflow.js");
88
+ var import_overflow = require("../../context/compaction/overflow.js");
89
+ var import_reactive_overflow = require("../../context/compaction/strategies/reactive-overflow.js");
90
90
  const toolSupportCache = /* @__PURE__ */ new Map();
91
+ const LOCAL_PROVIDERS = ["ollama", "local"];
91
92
  class TurnExecutor {
92
- constructor(model, toolManager, contextManager, eventBus, resourceManager, sessionId, config, llmContext, logger, messageQueue, modelLimits, externalSignal) {
93
+ constructor(model, toolManager, contextManager, eventBus, resourceManager, sessionId, config, llmContext, logger, messageQueue, modelLimits, externalSignal, compactionStrategy) {
93
94
  this.model = model;
94
95
  this.toolManager = toolManager;
95
96
  this.contextManager = contextManager;
@@ -103,8 +104,10 @@ class TurnExecutor {
103
104
  this.externalSignal = externalSignal;
104
105
  this.logger = logger.createChild(import_types4.DextoLogComponent.EXECUTOR);
105
106
  this.stepAbortController = new AbortController();
106
- if (modelLimits) {
107
- this.compressionStrategy = new import_reactive_overflow.ReactiveOverflowStrategy(model, {}, this.logger);
107
+ if (compactionStrategy !== void 0) {
108
+ this.compactionStrategy = compactionStrategy;
109
+ } else if (modelLimits) {
110
+ this.compactionStrategy = new import_reactive_overflow.ReactiveOverflowStrategy(model, {}, this.logger);
108
111
  }
109
112
  }
110
113
  logger;
@@ -113,8 +116,7 @@ class TurnExecutor {
113
116
  * This allows soft cancel (abort current step) while still continuing with queued messages.
114
117
  */
115
118
  stepAbortController;
116
- // TODO: improve compression configurability
117
- compressionStrategy = null;
119
+ compactionStrategy = null;
118
120
  /**
119
121
  * Map to track approval metadata by toolCallId.
120
122
  * Used to pass approval info from tool execution to result persistence.
@@ -147,6 +149,24 @@ class TurnExecutor {
147
149
  let lastText = "";
148
150
  this.eventBus.emit("llm:thinking");
149
151
  const supportsTools = await this.validateToolSupport();
152
+ if (!supportsTools) {
153
+ const modelKey = `${this.llmContext.provider}:${this.llmContext.model}`;
154
+ this.eventBus.emit("llm:unsupported-input", {
155
+ errors: [
156
+ `Model '${modelKey}' does not support tool calling.`,
157
+ "You can still chat, but the model will not be able to use tools or execute commands."
158
+ ],
159
+ provider: this.llmContext.provider,
160
+ model: this.llmContext.model,
161
+ details: {
162
+ feature: "tool-calling",
163
+ supported: false
164
+ }
165
+ });
166
+ this.logger.warn(
167
+ `Model ${modelKey} does not support tools - continuing without tool calling`
168
+ );
169
+ }
150
170
  let currentAbortHandler = null;
151
171
  try {
152
172
  while (true) {
@@ -299,20 +319,25 @@ class TurnExecutor {
299
319
  * Validates if the current model supports tools.
300
320
  * Uses a static cache to avoid repeated validation calls.
301
321
  *
302
- * For models using custom baseURL endpoints, makes a test call to verify tool support.
303
- * Built-in providers without baseURL are assumed to support tools.
322
+ * For local providers (Ollama, local) and custom baseURL endpoints, makes a test call to verify tool support.
323
+ * Known cloud providers without baseURL are assumed to support tools.
304
324
  */
305
325
  async validateToolSupport() {
306
326
  const modelKey = `${this.llmContext.provider}:${this.llmContext.model}:${this.config.baseURL ?? ""}`;
307
327
  if (toolSupportCache.has(modelKey)) {
308
328
  return toolSupportCache.get(modelKey);
309
329
  }
310
- if (!this.config.baseURL) {
311
- this.logger.debug(`Skipping tool validation for ${modelKey} - no custom baseURL`);
330
+ const isLocalProvider = LOCAL_PROVIDERS.includes(this.llmContext.provider);
331
+ if (!this.config.baseURL && !isLocalProvider) {
332
+ this.logger.debug(
333
+ `Skipping tool validation for ${modelKey} - known cloud provider without custom baseURL`
334
+ );
312
335
  toolSupportCache.set(modelKey, true);
313
336
  return true;
314
337
  }
315
- this.logger.debug(`Testing tool support for custom endpoint model: ${modelKey}`);
338
+ this.logger.debug(
339
+ `Testing tool support for ${isLocalProvider ? "local provider" : "custom endpoint"} model: ${modelKey}`
340
+ );
316
341
  const testTool = {
317
342
  test_tool: {
318
343
  inputSchema: (0, import_ai.jsonSchema)({
@@ -342,7 +367,9 @@ class TurnExecutor {
342
367
  const errorMessage = error instanceof Error ? error.message : String(error);
343
368
  if (errorMessage.includes("does not support tools")) {
344
369
  toolSupportCache.set(modelKey, false);
345
- this.logger.debug(`Model ${modelKey} does not support tools`);
370
+ this.logger.debug(
371
+ `Detected that model ${modelKey} does not support tool calling - tool functionality will be disabled`
372
+ );
346
373
  return false;
347
374
  }
348
375
  this.logger.debug(
@@ -623,7 +650,7 @@ class TurnExecutor {
623
650
  * Check if context has overflowed based on actual token usage from API.
624
651
  */
625
652
  checkAndHandleOverflow(tokens) {
626
- if (!this.modelLimits || !this.compressionStrategy) {
653
+ if (!this.modelLimits || !this.compactionStrategy) {
627
654
  return false;
628
655
  }
629
656
  return (0, import_overflow.isOverflow)(tokens, this.modelLimits);
@@ -638,16 +665,16 @@ class TurnExecutor {
638
665
  * @param originalTokens The actual input token count from API that triggered overflow
639
666
  */
640
667
  async compress(originalTokens) {
641
- if (!this.compressionStrategy) {
668
+ if (!this.compactionStrategy) {
642
669
  return;
643
670
  }
644
671
  this.logger.info(
645
672
  `Context overflow detected (${originalTokens} tokens), running compression`
646
673
  );
647
674
  const history = await this.contextManager.getHistory();
648
- const summaryMessages = await this.compressionStrategy.compress(history);
675
+ const summaryMessages = await this.compactionStrategy.compact(history);
649
676
  if (summaryMessages.length === 0) {
650
- this.logger.debug("Compression returned no summary (history too short)");
677
+ this.logger.debug("Compaction returned no summary (history too short)");
651
678
  return;
652
679
  }
653
680
  for (const summary of summaryMessages) {
@@ -656,17 +683,17 @@ class TurnExecutor {
656
683
  const { filterCompacted, estimateMessagesTokens } = await import("../../context/utils.js");
657
684
  const updatedHistory = await this.contextManager.getHistory();
658
685
  const filteredHistory = filterCompacted(updatedHistory);
659
- const compressedTokens = estimateMessagesTokens(filteredHistory);
660
- this.eventBus.emit("context:compressed", {
686
+ const compactedTokens = estimateMessagesTokens(filteredHistory);
687
+ this.eventBus.emit("context:compacted", {
661
688
  originalTokens,
662
- compressedTokens,
689
+ compactedTokens,
663
690
  originalMessages: history.length,
664
- compressedMessages: filteredHistory.length,
665
- strategy: this.compressionStrategy.name,
691
+ compactedMessages: filteredHistory.length,
692
+ strategy: this.compactionStrategy.name,
666
693
  reason: "overflow"
667
694
  });
668
695
  this.logger.info(
669
- `Compression complete: ${originalTokens} \u2192 ~${compressedTokens} tokens (${history.length} \u2192 ${filteredHistory.length} messages after filtering)`
696
+ `Compaction complete: ${originalTokens} \u2192 ~${compactedTokens} tokens (${history.length} \u2192 ${filteredHistory.length} messages after filtering)`
670
697
  );
671
698
  }
672
699
  /**
@@ -8,7 +8,8 @@ import type { ResourceManager } from '../../resources/index.js';
8
8
  import { DynamicContributorContext } from '../../systemPrompt/types.js';
9
9
  import { LLMContext } from '../types.js';
10
10
  import type { MessageQueueService } from '../../session/message-queue.js';
11
- import { type ModelLimits } from '../../context/compression/overflow.js';
11
+ import { type ModelLimits } from '../../context/compaction/overflow.js';
12
+ import type { ICompactionStrategy } from '../../context/compaction/types.js';
12
13
  /**
13
14
  * TurnExecutor orchestrates the agent loop using `stopWhen: stepCountIs(1)`.
14
15
  *
@@ -39,7 +40,7 @@ export declare class TurnExecutor {
39
40
  * This allows soft cancel (abort current step) while still continuing with queued messages.
40
41
  */
41
42
  private stepAbortController;
42
- private compressionStrategy;
43
+ private compactionStrategy;
43
44
  /**
44
45
  * Map to track approval metadata by toolCallId.
45
46
  * Used to pass approval info from tool execution to result persistence.
@@ -50,7 +51,7 @@ export declare class TurnExecutor {
50
51
  maxOutputTokens?: number | undefined;
51
52
  temperature?: number | undefined;
52
53
  baseURL?: string | undefined;
53
- }, llmContext: LLMContext, logger: IDextoLogger, messageQueue: MessageQueueService, modelLimits?: ModelLimits | undefined, externalSignal?: AbortSignal | undefined);
54
+ }, llmContext: LLMContext, logger: IDextoLogger, messageQueue: MessageQueueService, modelLimits?: ModelLimits | undefined, externalSignal?: AbortSignal | undefined, compactionStrategy?: ICompactionStrategy | null);
54
55
  /**
55
56
  * Get StreamProcessor config from TurnExecutor state.
56
57
  */
@@ -77,8 +78,8 @@ export declare class TurnExecutor {
77
78
  * Validates if the current model supports tools.
78
79
  * Uses a static cache to avoid repeated validation calls.
79
80
  *
80
- * For models using custom baseURL endpoints, makes a test call to verify tool support.
81
- * Built-in providers without baseURL are assumed to support tools.
81
+ * For local providers (Ollama, local) and custom baseURL endpoints, makes a test call to verify tool support.
82
+ * Known cloud providers without baseURL are assumed to support tools.
82
83
  */
83
84
  private validateToolSupport;
84
85
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"turn-executor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/turn-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-executor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/turn-executor.ts"],"names":[],"mappings":"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"}
@@ -17,11 +17,12 @@ import { DextoRuntimeError } from "../../errors/DextoRuntimeError.js";
17
17
  import { ErrorScope, ErrorType } from "../../errors/types.js";
18
18
  import { LLMErrorCode } from "../error-codes.js";
19
19
  import { toError } from "../../utils/error-conversion.js";
20
- import { isOverflow } from "../../context/compression/overflow.js";
21
- import { ReactiveOverflowStrategy } from "../../context/compression/reactive-overflow.js";
20
+ import { isOverflow } from "../../context/compaction/overflow.js";
21
+ import { ReactiveOverflowStrategy } from "../../context/compaction/strategies/reactive-overflow.js";
22
22
  const toolSupportCache = /* @__PURE__ */ new Map();
23
+ const LOCAL_PROVIDERS = ["ollama", "local"];
23
24
  class TurnExecutor {
24
- constructor(model, toolManager, contextManager, eventBus, resourceManager, sessionId, config, llmContext, logger, messageQueue, modelLimits, externalSignal) {
25
+ constructor(model, toolManager, contextManager, eventBus, resourceManager, sessionId, config, llmContext, logger, messageQueue, modelLimits, externalSignal, compactionStrategy) {
25
26
  this.model = model;
26
27
  this.toolManager = toolManager;
27
28
  this.contextManager = contextManager;
@@ -35,8 +36,10 @@ class TurnExecutor {
35
36
  this.externalSignal = externalSignal;
36
37
  this.logger = logger.createChild(DextoLogComponent.EXECUTOR);
37
38
  this.stepAbortController = new AbortController();
38
- if (modelLimits) {
39
- this.compressionStrategy = new ReactiveOverflowStrategy(model, {}, this.logger);
39
+ if (compactionStrategy !== void 0) {
40
+ this.compactionStrategy = compactionStrategy;
41
+ } else if (modelLimits) {
42
+ this.compactionStrategy = new ReactiveOverflowStrategy(model, {}, this.logger);
40
43
  }
41
44
  }
42
45
  logger;
@@ -45,8 +48,7 @@ class TurnExecutor {
45
48
  * This allows soft cancel (abort current step) while still continuing with queued messages.
46
49
  */
47
50
  stepAbortController;
48
- // TODO: improve compression configurability
49
- compressionStrategy = null;
51
+ compactionStrategy = null;
50
52
  /**
51
53
  * Map to track approval metadata by toolCallId.
52
54
  * Used to pass approval info from tool execution to result persistence.
@@ -79,6 +81,24 @@ class TurnExecutor {
79
81
  let lastText = "";
80
82
  this.eventBus.emit("llm:thinking");
81
83
  const supportsTools = await this.validateToolSupport();
84
+ if (!supportsTools) {
85
+ const modelKey = `${this.llmContext.provider}:${this.llmContext.model}`;
86
+ this.eventBus.emit("llm:unsupported-input", {
87
+ errors: [
88
+ `Model '${modelKey}' does not support tool calling.`,
89
+ "You can still chat, but the model will not be able to use tools or execute commands."
90
+ ],
91
+ provider: this.llmContext.provider,
92
+ model: this.llmContext.model,
93
+ details: {
94
+ feature: "tool-calling",
95
+ supported: false
96
+ }
97
+ });
98
+ this.logger.warn(
99
+ `Model ${modelKey} does not support tools - continuing without tool calling`
100
+ );
101
+ }
82
102
  let currentAbortHandler = null;
83
103
  try {
84
104
  while (true) {
@@ -231,20 +251,25 @@ class TurnExecutor {
231
251
  * Validates if the current model supports tools.
232
252
  * Uses a static cache to avoid repeated validation calls.
233
253
  *
234
- * For models using custom baseURL endpoints, makes a test call to verify tool support.
235
- * Built-in providers without baseURL are assumed to support tools.
254
+ * For local providers (Ollama, local) and custom baseURL endpoints, makes a test call to verify tool support.
255
+ * Known cloud providers without baseURL are assumed to support tools.
236
256
  */
237
257
  async validateToolSupport() {
238
258
  const modelKey = `${this.llmContext.provider}:${this.llmContext.model}:${this.config.baseURL ?? ""}`;
239
259
  if (toolSupportCache.has(modelKey)) {
240
260
  return toolSupportCache.get(modelKey);
241
261
  }
242
- if (!this.config.baseURL) {
243
- this.logger.debug(`Skipping tool validation for ${modelKey} - no custom baseURL`);
262
+ const isLocalProvider = LOCAL_PROVIDERS.includes(this.llmContext.provider);
263
+ if (!this.config.baseURL && !isLocalProvider) {
264
+ this.logger.debug(
265
+ `Skipping tool validation for ${modelKey} - known cloud provider without custom baseURL`
266
+ );
244
267
  toolSupportCache.set(modelKey, true);
245
268
  return true;
246
269
  }
247
- this.logger.debug(`Testing tool support for custom endpoint model: ${modelKey}`);
270
+ this.logger.debug(
271
+ `Testing tool support for ${isLocalProvider ? "local provider" : "custom endpoint"} model: ${modelKey}`
272
+ );
248
273
  const testTool = {
249
274
  test_tool: {
250
275
  inputSchema: jsonSchema({
@@ -274,7 +299,9 @@ class TurnExecutor {
274
299
  const errorMessage = error instanceof Error ? error.message : String(error);
275
300
  if (errorMessage.includes("does not support tools")) {
276
301
  toolSupportCache.set(modelKey, false);
277
- this.logger.debug(`Model ${modelKey} does not support tools`);
302
+ this.logger.debug(
303
+ `Detected that model ${modelKey} does not support tool calling - tool functionality will be disabled`
304
+ );
278
305
  return false;
279
306
  }
280
307
  this.logger.debug(
@@ -555,7 +582,7 @@ class TurnExecutor {
555
582
  * Check if context has overflowed based on actual token usage from API.
556
583
  */
557
584
  checkAndHandleOverflow(tokens) {
558
- if (!this.modelLimits || !this.compressionStrategy) {
585
+ if (!this.modelLimits || !this.compactionStrategy) {
559
586
  return false;
560
587
  }
561
588
  return isOverflow(tokens, this.modelLimits);
@@ -570,16 +597,16 @@ class TurnExecutor {
570
597
  * @param originalTokens The actual input token count from API that triggered overflow
571
598
  */
572
599
  async compress(originalTokens) {
573
- if (!this.compressionStrategy) {
600
+ if (!this.compactionStrategy) {
574
601
  return;
575
602
  }
576
603
  this.logger.info(
577
604
  `Context overflow detected (${originalTokens} tokens), running compression`
578
605
  );
579
606
  const history = await this.contextManager.getHistory();
580
- const summaryMessages = await this.compressionStrategy.compress(history);
607
+ const summaryMessages = await this.compactionStrategy.compact(history);
581
608
  if (summaryMessages.length === 0) {
582
- this.logger.debug("Compression returned no summary (history too short)");
609
+ this.logger.debug("Compaction returned no summary (history too short)");
583
610
  return;
584
611
  }
585
612
  for (const summary of summaryMessages) {
@@ -588,17 +615,17 @@ class TurnExecutor {
588
615
  const { filterCompacted, estimateMessagesTokens } = await import("../../context/utils.js");
589
616
  const updatedHistory = await this.contextManager.getHistory();
590
617
  const filteredHistory = filterCompacted(updatedHistory);
591
- const compressedTokens = estimateMessagesTokens(filteredHistory);
592
- this.eventBus.emit("context:compressed", {
618
+ const compactedTokens = estimateMessagesTokens(filteredHistory);
619
+ this.eventBus.emit("context:compacted", {
593
620
  originalTokens,
594
- compressedTokens,
621
+ compactedTokens,
595
622
  originalMessages: history.length,
596
- compressedMessages: filteredHistory.length,
597
- strategy: this.compressionStrategy.name,
623
+ compactedMessages: filteredHistory.length,
624
+ strategy: this.compactionStrategy.name,
598
625
  reason: "overflow"
599
626
  });
600
627
  this.logger.info(
601
- `Compression complete: ${originalTokens} \u2192 ~${compressedTokens} tokens (${history.length} \u2192 ${filteredHistory.length} messages after filtering)`
628
+ `Compaction complete: ${originalTokens} \u2192 ~${compactedTokens} tokens (${history.length} \u2192 ${filteredHistory.length} messages after filtering)`
602
629
  );
603
630
  }
604
631
  /**
@@ -183,12 +183,16 @@ class VercelMessageFormatter {
183
183
  } else {
184
184
  parsed = rawArgs ?? {};
185
185
  }
186
- contentParts.push({
186
+ const toolCallPart = {
187
187
  type: "tool-call",
188
188
  toolCallId: toolCall.id,
189
189
  toolName: toolCall.function.name,
190
190
  input: parsed
191
- });
191
+ };
192
+ if (toolCall.providerOptions) {
193
+ toolCallPart.providerOptions = toolCall.providerOptions;
194
+ }
195
+ contentParts.push(toolCallPart);
192
196
  }
193
197
  const firstToolCall = msg.toolCalls?.[0];
194
198
  if (firstToolCall) {
@@ -1 +1 @@
1
- {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/formatters/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAiD,MAAM,IAAI,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAiC,MAAM,wBAAwB,CAAC;AAE7F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAmB7D;;;;;;;;;;GAUG;AACH,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAGhC;;;;;;OAMG;IACH,MAAM,CACF,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,EACpC,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC5B,YAAY,EAAE;IAwIjB;;;;;;OAMG;IACH,kBAAkB,IAAI,IAAI;IAK1B,OAAO,CAAC,sBAAsB;IAuE9B,OAAO,CAAC,iBAAiB;CAoE5B"}
1
+ {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/formatters/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAiD,MAAM,IAAI,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAiC,MAAM,wBAAwB,CAAC;AAE7F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAmB7D;;;;;;;;;;GAUG;AACH,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAGhC;;;;;;OAMG;IACH,MAAM,CACF,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,EACpC,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC5B,YAAY,EAAE;IAwIjB;;;;;;OAMG;IACH,kBAAkB,IAAI,IAAI;IAK1B,OAAO,CAAC,sBAAsB;IA8E9B,OAAO,CAAC,iBAAiB;CAoE5B"}
@@ -161,12 +161,16 @@ class VercelMessageFormatter {
161
161
  } else {
162
162
  parsed = rawArgs ?? {};
163
163
  }
164
- contentParts.push({
164
+ const toolCallPart = {
165
165
  type: "tool-call",
166
166
  toolCallId: toolCall.id,
167
167
  toolName: toolCall.function.name,
168
168
  input: parsed
169
- });
169
+ };
170
+ if (toolCall.providerOptions) {
171
+ toolCallPart.providerOptions = toolCall.providerOptions;
172
+ }
173
+ contentParts.push(toolCallPart);
170
174
  }
171
175
  const firstToolCall = msg.toolCalls?.[0];
172
176
  if (firstToolCall) {
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
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
+ };
6
10
  var __copyProps = (to, from, except, desc) => {
7
11
  if (from && typeof from === "object" || typeof from === "function") {
8
12
  for (let key of __getOwnPropNames(from))
@@ -14,6 +18,12 @@ var __copyProps = (to, from, except, desc) => {
14
18
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
20
  var llm_exports = {};
21
+ __export(llm_exports, {
22
+ getOpenRouterModelContextLength: () => import_openrouter_model_registry.getOpenRouterModelContextLength,
23
+ getOpenRouterModelInfo: () => import_openrouter_model_registry.getOpenRouterModelInfo,
24
+ lookupOpenRouterModel: () => import_openrouter_model_registry.lookupOpenRouterModel,
25
+ refreshOpenRouterModelCache: () => import_openrouter_model_registry.refreshOpenRouterModelCache
26
+ });
17
27
  module.exports = __toCommonJS(llm_exports);
18
28
  __reExport(llm_exports, require("./errors.js"), module.exports);
19
29
  __reExport(llm_exports, require("./error-codes.js"), module.exports);
@@ -22,13 +32,20 @@ __reExport(llm_exports, require("./validation.js"), module.exports);
22
32
  __reExport(llm_exports, require("./types.js"), module.exports);
23
33
  __reExport(llm_exports, require("./services/index.js"), module.exports);
24
34
  __reExport(llm_exports, require("./schemas.js"), module.exports);
35
+ var import_openrouter_model_registry = require("./providers/openrouter-model-registry.js");
36
+ __reExport(llm_exports, require("./providers/local/index.js"), module.exports);
25
37
  // Annotate the CommonJS export names for ESM import in node:
26
38
  0 && (module.exports = {
39
+ getOpenRouterModelContextLength,
40
+ getOpenRouterModelInfo,
41
+ lookupOpenRouterModel,
42
+ refreshOpenRouterModelCache,
27
43
  ...require("./errors.js"),
28
44
  ...require("./error-codes.js"),
29
45
  ...require("./registry.js"),
30
46
  ...require("./validation.js"),
31
47
  ...require("./types.js"),
32
48
  ...require("./services/index.js"),
33
- ...require("./schemas.js")
49
+ ...require("./schemas.js"),
50
+ ...require("./providers/local/index.js")
34
51
  });
@@ -5,4 +5,6 @@ export * from './validation.js';
5
5
  export * from './types.js';
6
6
  export * from './services/index.js';
7
7
  export * from './schemas.js';
8
+ export { lookupOpenRouterModel, refreshOpenRouterModelCache, getOpenRouterModelContextLength, getOpenRouterModelInfo, type LookupStatus, type OpenRouterModelInfo, } from './providers/openrouter-model-registry.js';
9
+ export * from './providers/local/index.js';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,OAAO,EACH,qBAAqB,EACrB,2BAA2B,EAC3B,+BAA+B,EAC/B,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GAC3B,MAAM,0CAA0C,CAAC;AAGlD,cAAc,4BAA4B,CAAC"}
package/dist/llm/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import "../chunk-PTJYTZNU.js";
1
2
  export * from "./errors.js";
2
3
  export * from "./error-codes.js";
3
4
  export * from "./registry.js";
@@ -5,3 +6,16 @@ export * from "./validation.js";
5
6
  export * from "./types.js";
6
7
  export * from "./services/index.js";
7
8
  export * from "./schemas.js";
9
+ import {
10
+ lookupOpenRouterModel,
11
+ refreshOpenRouterModelCache,
12
+ getOpenRouterModelContextLength,
13
+ getOpenRouterModelInfo
14
+ } from "./providers/openrouter-model-registry.js";
15
+ export * from "./providers/local/index.js";
16
+ export {
17
+ getOpenRouterModelContextLength,
18
+ getOpenRouterModelInfo,
19
+ lookupOpenRouterModel,
20
+ refreshOpenRouterModelCache
21
+ };