@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
@@ -36,8 +36,11 @@ __export(registry_exports, {
36
36
  getSupportedProviders: () => getSupportedProviders,
37
37
  isValidProviderModel: () => isValidProviderModel,
38
38
  modelSupportsFileType: () => modelSupportsFileType,
39
+ requiresApiKey: () => requiresApiKey,
39
40
  requiresBaseURL: () => requiresBaseURL,
41
+ stripBedrockRegionPrefix: () => stripBedrockRegionPrefix,
40
42
  supportsBaseURL: () => supportsBaseURL,
43
+ supportsCustomModels: () => supportsCustomModels,
41
44
  validateModelFileSupport: () => validateModelFileSupport
42
45
  });
43
46
  module.exports = __toCommonJS(registry_exports);
@@ -45,6 +48,7 @@ var import_errors = require("./errors.js");
45
48
  var import_error_codes = require("./error-codes.js");
46
49
  var import_DextoRuntimeError = require("../errors/DextoRuntimeError.js");
47
50
  var import_types = require("./types.js");
51
+ var import_openrouter_model_registry = require("./providers/openrouter-model-registry.js");
48
52
  const MIME_TYPE_TO_FILE_TYPE = {
49
53
  "application/pdf": "pdf",
50
54
  "audio/mp3": "audio",
@@ -274,6 +278,7 @@ const LLM_REGISTRY = {
274
278
  pricing: {
275
279
  inputPerM: 2.5,
276
280
  outputPerM: 10,
281
+ cacheReadPerM: 1.25,
277
282
  currency: "USD",
278
283
  unit: "per_million_tokens"
279
284
  }
@@ -339,8 +344,9 @@ const LLM_REGISTRY = {
339
344
  models: [],
340
345
  // Empty - accepts any model name for custom endpoints
341
346
  baseURLSupport: "required",
342
- supportedFileTypes: ["pdf", "image", "audio"]
347
+ supportedFileTypes: ["pdf", "image", "audio"],
343
348
  // Allow all types for custom endpoints - user assumes responsibility for model capabilities
349
+ supportsCustomModels: true
344
350
  },
345
351
  anthropic: {
346
352
  models: [
@@ -478,6 +484,20 @@ const LLM_REGISTRY = {
478
484
  },
479
485
  google: {
480
486
  models: [
487
+ {
488
+ name: "gemini-3-flash-preview",
489
+ displayName: "Gemini 3 Flash Preview",
490
+ maxInputTokens: 1048576,
491
+ default: true,
492
+ supportedFileTypes: ["pdf", "image", "audio"],
493
+ pricing: {
494
+ inputPerM: 0.5,
495
+ outputPerM: 3,
496
+ cacheReadPerM: 0.05,
497
+ currency: "USD",
498
+ unit: "per_million_tokens"
499
+ }
500
+ },
481
501
  {
482
502
  name: "gemini-3-pro-preview",
483
503
  displayName: "Gemini 3 Pro Preview",
@@ -486,6 +506,7 @@ const LLM_REGISTRY = {
486
506
  pricing: {
487
507
  inputPerM: 2,
488
508
  outputPerM: 12,
509
+ cacheReadPerM: 0.2,
489
510
  currency: "USD",
490
511
  unit: "per_million_tokens"
491
512
  }
@@ -498,6 +519,7 @@ const LLM_REGISTRY = {
498
519
  pricing: {
499
520
  inputPerM: 2,
500
521
  outputPerM: 120,
522
+ cacheReadPerM: 0.2,
501
523
  currency: "USD",
502
524
  unit: "per_million_tokens"
503
525
  }
@@ -506,7 +528,6 @@ const LLM_REGISTRY = {
506
528
  name: "gemini-2.5-pro",
507
529
  displayName: "Gemini 2.5 Pro",
508
530
  maxInputTokens: 1048576,
509
- default: true,
510
531
  supportedFileTypes: ["pdf", "image", "audio"],
511
532
  pricing: {
512
533
  inputPerM: 1.25,
@@ -524,6 +545,7 @@ const LLM_REGISTRY = {
524
545
  pricing: {
525
546
  inputPerM: 0.3,
526
547
  outputPerM: 2.5,
548
+ cacheReadPerM: 0.03,
527
549
  currency: "USD",
528
550
  unit: "per_million_tokens"
529
551
  }
@@ -563,6 +585,7 @@ const LLM_REGISTRY = {
563
585
  pricing: {
564
586
  inputPerM: 0.075,
565
587
  outputPerM: 0.3,
588
+ cacheReadPerM: 0.01875,
566
589
  currency: "USD",
567
590
  unit: "per_million_tokens"
568
591
  }
@@ -619,6 +642,7 @@ const LLM_REGISTRY = {
619
642
  pricing: {
620
643
  inputPerM: 1,
621
644
  outputPerM: 3,
645
+ cacheReadPerM: 0.5,
622
646
  currency: "USD",
623
647
  unit: "per_million_tokens"
624
648
  }
@@ -807,8 +831,462 @@ const LLM_REGISTRY = {
807
831
  baseURLSupport: "none",
808
832
  supportedFileTypes: []
809
833
  // Cohere currently doesn't support file uploads
834
+ },
835
+ // https://openrouter.ai/docs
836
+ // OpenRouter is a unified API gateway providing access to 100+ models from various providers.
837
+ // Model validation is handled dynamically via openrouter-model-registry.ts
838
+ openrouter: {
839
+ models: [],
840
+ // Empty - accepts any model name (validated against OpenRouter's catalog)
841
+ baseURLSupport: "none",
842
+ // Fixed endpoint - baseURL auto-injected in resolver, no user override allowed
843
+ supportedFileTypes: ["pdf", "image", "audio"],
844
+ // Allow all types - user assumes responsibility for model capabilities
845
+ supportsCustomModels: true
846
+ },
847
+ // https://docs.litellm.ai/
848
+ // LiteLLM is an OpenAI-compatible proxy that unifies 100+ LLM providers.
849
+ // User must host their own LiteLLM proxy and provide the baseURL.
850
+ litellm: {
851
+ models: [],
852
+ // Empty - accepts any model name (user's proxy determines available models)
853
+ baseURLSupport: "required",
854
+ // User must provide their LiteLLM proxy URL
855
+ supportedFileTypes: ["pdf", "image", "audio"],
856
+ // Allow all types - user assumes responsibility for model capabilities
857
+ supportsCustomModels: true
858
+ },
859
+ // https://glama.ai/
860
+ // Glama is an OpenAI-compatible gateway providing unified access to multiple LLM providers.
861
+ // Fixed endpoint: https://glama.ai/api/gateway/openai/v1
862
+ glama: {
863
+ models: [],
864
+ // Empty - accepts any model name (format: provider/model e.g., openai/gpt-4o)
865
+ baseURLSupport: "none",
866
+ // Fixed endpoint - baseURL auto-injected
867
+ supportedFileTypes: ["pdf", "image", "audio"],
868
+ // Allow all types - user assumes responsibility for model capabilities
869
+ supportsCustomModels: true
870
+ },
871
+ // https://cloud.google.com/vertex-ai
872
+ // Google Vertex AI - GCP-hosted gateway for Gemini and Claude models
873
+ // Supports both Google's Gemini models and Anthropic's Claude via partnership
874
+ //
875
+ // Setup instructions:
876
+ // 1. Create a Google Cloud account and project
877
+ // 2. Enable the Vertex AI API: gcloud services enable aiplatform.googleapis.com
878
+ // 3. Enable desired Claude models (requires Anthropic Model Garden)
879
+ // 4. Install Google Cloud CLI: https://cloud.google.com/sdk/docs/install
880
+ // 5. Configure ADC: gcloud auth application-default login
881
+ // 6. Set env vars: GOOGLE_VERTEX_PROJECT (required), GOOGLE_VERTEX_LOCATION (optional)
882
+ //
883
+ // TODO: Add dynamic model fetching via publishers.models.list API
884
+ // - Requires: projectId, region, ADC auth
885
+ // - Endpoints: GET projects/{project}/locations/{location}/publishers/{google,anthropic}/models
886
+ // - Note: API doesn't return aliases (e.g., gemini-2.0-flash), only versioned IDs
887
+ // - Docs: https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.models/list
888
+ // - Models: https://cloud.google.com/vertex-ai/generative-ai/docs/models
889
+ vertex: {
890
+ models: [
891
+ // Gemini 3 models on Vertex AI (Preview)
892
+ {
893
+ name: "gemini-3-flash-preview",
894
+ displayName: "Gemini 3 Flash (Vertex)",
895
+ maxInputTokens: 1048576,
896
+ default: true,
897
+ supportedFileTypes: ["pdf", "image", "audio"],
898
+ pricing: {
899
+ inputPerM: 0.5,
900
+ outputPerM: 3,
901
+ cacheReadPerM: 0.05,
902
+ currency: "USD",
903
+ unit: "per_million_tokens"
904
+ }
905
+ },
906
+ {
907
+ name: "gemini-3-pro-preview",
908
+ displayName: "Gemini 3 Pro (Vertex)",
909
+ maxInputTokens: 1048576,
910
+ supportedFileTypes: ["pdf", "image", "audio"],
911
+ pricing: {
912
+ inputPerM: 2,
913
+ outputPerM: 12,
914
+ cacheReadPerM: 0.2,
915
+ currency: "USD",
916
+ unit: "per_million_tokens"
917
+ }
918
+ },
919
+ // Gemini 2.x models on Vertex AI
920
+ {
921
+ name: "gemini-2.5-pro",
922
+ displayName: "Gemini 2.5 Pro (Vertex)",
923
+ maxInputTokens: 1048576,
924
+ supportedFileTypes: ["pdf", "image", "audio"],
925
+ pricing: {
926
+ inputPerM: 1.25,
927
+ outputPerM: 10,
928
+ cacheReadPerM: 0.31,
929
+ currency: "USD",
930
+ unit: "per_million_tokens"
931
+ }
932
+ },
933
+ {
934
+ name: "gemini-2.5-flash",
935
+ displayName: "Gemini 2.5 Flash (Vertex)",
936
+ maxInputTokens: 1048576,
937
+ supportedFileTypes: ["pdf", "image", "audio"],
938
+ pricing: {
939
+ inputPerM: 0.15,
940
+ outputPerM: 0.6,
941
+ cacheReadPerM: 0.0375,
942
+ currency: "USD",
943
+ unit: "per_million_tokens"
944
+ }
945
+ },
946
+ {
947
+ name: "gemini-2.0-flash",
948
+ displayName: "Gemini 2.0 Flash (Vertex)",
949
+ maxInputTokens: 1048576,
950
+ supportedFileTypes: ["pdf", "image", "audio"],
951
+ pricing: {
952
+ inputPerM: 0.1,
953
+ outputPerM: 0.4,
954
+ cacheReadPerM: 0.025,
955
+ currency: "USD",
956
+ unit: "per_million_tokens"
957
+ }
958
+ },
959
+ // Claude 4.5 models on Vertex AI (via Anthropic partnership)
960
+ // Note: Claude model IDs use @ suffix format on Vertex
961
+ {
962
+ name: "claude-opus-4-5@20251101",
963
+ displayName: "Claude 4.5 Opus (Vertex)",
964
+ maxInputTokens: 2e5,
965
+ supportedFileTypes: ["pdf", "image"],
966
+ pricing: {
967
+ inputPerM: 5,
968
+ outputPerM: 25,
969
+ cacheWritePerM: 6.25,
970
+ cacheReadPerM: 0.5,
971
+ currency: "USD",
972
+ unit: "per_million_tokens"
973
+ }
974
+ },
975
+ {
976
+ name: "claude-sonnet-4-5@20250929",
977
+ displayName: "Claude 4.5 Sonnet (Vertex)",
978
+ maxInputTokens: 2e5,
979
+ supportedFileTypes: ["pdf", "image"],
980
+ pricing: {
981
+ inputPerM: 3,
982
+ outputPerM: 15,
983
+ cacheWritePerM: 3.75,
984
+ cacheReadPerM: 0.3,
985
+ currency: "USD",
986
+ unit: "per_million_tokens"
987
+ }
988
+ },
989
+ {
990
+ name: "claude-haiku-4-5@20251001",
991
+ displayName: "Claude 4.5 Haiku (Vertex)",
992
+ maxInputTokens: 2e5,
993
+ supportedFileTypes: ["pdf", "image"],
994
+ pricing: {
995
+ inputPerM: 1,
996
+ outputPerM: 5,
997
+ cacheWritePerM: 1.25,
998
+ cacheReadPerM: 0.1,
999
+ currency: "USD",
1000
+ unit: "per_million_tokens"
1001
+ }
1002
+ },
1003
+ // Claude 4.1 and 4.0 models on Vertex AI
1004
+ {
1005
+ name: "claude-opus-4-1@20250805",
1006
+ displayName: "Claude 4.1 Opus (Vertex)",
1007
+ maxInputTokens: 2e5,
1008
+ supportedFileTypes: ["pdf", "image"],
1009
+ pricing: {
1010
+ inputPerM: 15,
1011
+ outputPerM: 75,
1012
+ cacheWritePerM: 18.75,
1013
+ cacheReadPerM: 1.5,
1014
+ currency: "USD",
1015
+ unit: "per_million_tokens"
1016
+ }
1017
+ },
1018
+ {
1019
+ name: "claude-opus-4@20250514",
1020
+ displayName: "Claude 4 Opus (Vertex)",
1021
+ maxInputTokens: 2e5,
1022
+ supportedFileTypes: ["pdf", "image"],
1023
+ pricing: {
1024
+ inputPerM: 15,
1025
+ outputPerM: 75,
1026
+ cacheWritePerM: 18.75,
1027
+ cacheReadPerM: 1.5,
1028
+ currency: "USD",
1029
+ unit: "per_million_tokens"
1030
+ }
1031
+ },
1032
+ {
1033
+ name: "claude-sonnet-4@20250514",
1034
+ displayName: "Claude 4 Sonnet (Vertex)",
1035
+ maxInputTokens: 2e5,
1036
+ supportedFileTypes: ["pdf", "image"],
1037
+ pricing: {
1038
+ inputPerM: 3,
1039
+ outputPerM: 15,
1040
+ cacheWritePerM: 3.75,
1041
+ cacheReadPerM: 0.3,
1042
+ currency: "USD",
1043
+ unit: "per_million_tokens"
1044
+ }
1045
+ },
1046
+ // Claude 3.x models on Vertex AI
1047
+ {
1048
+ name: "claude-3-7-sonnet@20250219",
1049
+ displayName: "Claude 3.7 Sonnet (Vertex)",
1050
+ maxInputTokens: 2e5,
1051
+ supportedFileTypes: ["pdf", "image"],
1052
+ pricing: {
1053
+ inputPerM: 3,
1054
+ outputPerM: 15,
1055
+ cacheWritePerM: 3.75,
1056
+ cacheReadPerM: 0.3,
1057
+ currency: "USD",
1058
+ unit: "per_million_tokens"
1059
+ }
1060
+ },
1061
+ {
1062
+ name: "claude-3-5-sonnet-v2@20241022",
1063
+ displayName: "Claude 3.5 Sonnet v2 (Vertex)",
1064
+ maxInputTokens: 2e5,
1065
+ supportedFileTypes: ["pdf", "image"],
1066
+ pricing: {
1067
+ inputPerM: 3,
1068
+ outputPerM: 15,
1069
+ cacheWritePerM: 3.75,
1070
+ cacheReadPerM: 0.3,
1071
+ currency: "USD",
1072
+ unit: "per_million_tokens"
1073
+ }
1074
+ },
1075
+ {
1076
+ name: "claude-3-5-haiku@20241022",
1077
+ displayName: "Claude 3.5 Haiku (Vertex)",
1078
+ maxInputTokens: 2e5,
1079
+ supportedFileTypes: ["pdf", "image"],
1080
+ pricing: {
1081
+ inputPerM: 0.8,
1082
+ outputPerM: 4,
1083
+ cacheWritePerM: 1,
1084
+ cacheReadPerM: 0.08,
1085
+ currency: "USD",
1086
+ unit: "per_million_tokens"
1087
+ }
1088
+ }
1089
+ ],
1090
+ baseURLSupport: "none",
1091
+ // Auto-constructed from projectId and region
1092
+ supportedFileTypes: ["pdf", "image", "audio"]
1093
+ },
1094
+ // Amazon Bedrock - AWS-hosted gateway for Claude, Nova, and more
1095
+ // Auth: AWS credentials (env vars) or Bedrock API key (AWS_BEARER_TOKEN_BEDROCK)
1096
+ //
1097
+ // Cross-region inference: Auto-added for anthropic.* and amazon.* models
1098
+ // supportsCustomModels: true allows users to add custom model IDs beyond the fixed list
1099
+ bedrock: {
1100
+ supportsCustomModels: true,
1101
+ models: [
1102
+ // Claude 4.5 models (latest)
1103
+ {
1104
+ name: "anthropic.claude-sonnet-4-5-20250929-v1:0",
1105
+ displayName: "Claude 4.5 Sonnet",
1106
+ maxInputTokens: 2e5,
1107
+ default: true,
1108
+ supportedFileTypes: ["pdf", "image"],
1109
+ pricing: {
1110
+ inputPerM: 3,
1111
+ outputPerM: 15,
1112
+ cacheWritePerM: 3.75,
1113
+ cacheReadPerM: 0.3,
1114
+ currency: "USD",
1115
+ unit: "per_million_tokens"
1116
+ }
1117
+ },
1118
+ {
1119
+ name: "anthropic.claude-haiku-4-5-20251001-v1:0",
1120
+ displayName: "Claude 4.5 Haiku",
1121
+ maxInputTokens: 2e5,
1122
+ supportedFileTypes: ["pdf", "image"],
1123
+ pricing: {
1124
+ inputPerM: 1,
1125
+ outputPerM: 5,
1126
+ cacheWritePerM: 1.25,
1127
+ cacheReadPerM: 0.1,
1128
+ currency: "USD",
1129
+ unit: "per_million_tokens"
1130
+ }
1131
+ },
1132
+ {
1133
+ name: "anthropic.claude-opus-4-5-20251101-v1:0",
1134
+ displayName: "Claude 4.5 Opus",
1135
+ maxInputTokens: 2e5,
1136
+ supportedFileTypes: ["pdf", "image"],
1137
+ pricing: {
1138
+ inputPerM: 5,
1139
+ outputPerM: 25,
1140
+ cacheWritePerM: 6.25,
1141
+ cacheReadPerM: 0.5,
1142
+ currency: "USD",
1143
+ unit: "per_million_tokens"
1144
+ }
1145
+ },
1146
+ // Amazon Nova models
1147
+ {
1148
+ name: "amazon.nova-premier-v1:0",
1149
+ displayName: "Nova Premier",
1150
+ maxInputTokens: 1e6,
1151
+ supportedFileTypes: ["image"],
1152
+ pricing: {
1153
+ inputPerM: 2.5,
1154
+ outputPerM: 12.5,
1155
+ currency: "USD",
1156
+ unit: "per_million_tokens"
1157
+ }
1158
+ },
1159
+ {
1160
+ name: "amazon.nova-pro-v1:0",
1161
+ displayName: "Nova Pro",
1162
+ maxInputTokens: 3e5,
1163
+ supportedFileTypes: ["pdf", "image"],
1164
+ pricing: {
1165
+ inputPerM: 0.8,
1166
+ outputPerM: 3.2,
1167
+ cacheReadPerM: 0.2,
1168
+ currency: "USD",
1169
+ unit: "per_million_tokens"
1170
+ }
1171
+ },
1172
+ {
1173
+ name: "amazon.nova-lite-v1:0",
1174
+ displayName: "Nova Lite",
1175
+ maxInputTokens: 3e5,
1176
+ supportedFileTypes: ["pdf", "image"],
1177
+ pricing: {
1178
+ inputPerM: 0.06,
1179
+ outputPerM: 0.24,
1180
+ cacheReadPerM: 0.015,
1181
+ currency: "USD",
1182
+ unit: "per_million_tokens"
1183
+ }
1184
+ },
1185
+ {
1186
+ name: "amazon.nova-micro-v1:0",
1187
+ displayName: "Nova Micro",
1188
+ maxInputTokens: 128e3,
1189
+ supportedFileTypes: [],
1190
+ pricing: {
1191
+ inputPerM: 0.035,
1192
+ outputPerM: 0.14,
1193
+ cacheReadPerM: 875e-5,
1194
+ currency: "USD",
1195
+ unit: "per_million_tokens"
1196
+ }
1197
+ },
1198
+ // OpenAI GPT-OSS
1199
+ {
1200
+ name: "openai.gpt-oss-120b-1:0",
1201
+ displayName: "GPT-OSS 120B",
1202
+ maxInputTokens: 128e3,
1203
+ supportedFileTypes: [],
1204
+ pricing: {
1205
+ inputPerM: 0.15,
1206
+ outputPerM: 0.6,
1207
+ currency: "USD",
1208
+ unit: "per_million_tokens"
1209
+ }
1210
+ },
1211
+ {
1212
+ name: "openai.gpt-oss-20b-1:0",
1213
+ displayName: "GPT-OSS 20B",
1214
+ maxInputTokens: 128e3,
1215
+ supportedFileTypes: [],
1216
+ pricing: {
1217
+ inputPerM: 0.07,
1218
+ outputPerM: 0.3,
1219
+ currency: "USD",
1220
+ unit: "per_million_tokens"
1221
+ }
1222
+ },
1223
+ // Qwen
1224
+ {
1225
+ name: "qwen.qwen3-coder-30b-a3b-v1:0",
1226
+ displayName: "Qwen3 Coder 30B",
1227
+ maxInputTokens: 262144,
1228
+ supportedFileTypes: [],
1229
+ pricing: {
1230
+ inputPerM: 0.15,
1231
+ outputPerM: 0.6,
1232
+ currency: "USD",
1233
+ unit: "per_million_tokens"
1234
+ }
1235
+ },
1236
+ {
1237
+ name: "qwen.qwen3-coder-480b-a35b-v1:0",
1238
+ displayName: "Qwen3 Coder 480B",
1239
+ maxInputTokens: 262144,
1240
+ supportedFileTypes: [],
1241
+ pricing: {
1242
+ inputPerM: 0.22,
1243
+ outputPerM: 1.8,
1244
+ currency: "USD",
1245
+ unit: "per_million_tokens"
1246
+ }
1247
+ }
1248
+ ],
1249
+ baseURLSupport: "none",
1250
+ // Auto-constructed from region
1251
+ supportedFileTypes: ["pdf", "image"]
1252
+ },
1253
+ // Native local model execution via node-llama-cpp
1254
+ // Runs GGUF models directly on the machine using Metal/CUDA/Vulkan acceleration
1255
+ // Models are downloaded from HuggingFace and stored in ~/.dexto/models/
1256
+ local: {
1257
+ models: [],
1258
+ // Populated dynamically from local model registry
1259
+ baseURLSupport: "none",
1260
+ // No external server needed
1261
+ supportedFileTypes: ["image"],
1262
+ // Vision support depends on model capabilities
1263
+ supportsCustomModels: true
1264
+ // Allow any GGUF model path
1265
+ },
1266
+ // Ollama server integration
1267
+ // Uses Ollama's OpenAI-compatible API for local model inference
1268
+ // Requires Ollama to be installed and running (default: http://localhost:11434)
1269
+ ollama: {
1270
+ models: [],
1271
+ // Populated dynamically from Ollama API
1272
+ baseURLSupport: "optional",
1273
+ // Default: http://localhost:11434, can be customized
1274
+ supportedFileTypes: ["image"],
1275
+ // Vision support depends on model
1276
+ supportsCustomModels: true
1277
+ // Accept any Ollama model name
810
1278
  }
1279
+ // TODO: Add 'dexto' provider (similar to openrouter, uses https://api.dexto.ai/v1)
811
1280
  };
1281
+ function stripBedrockRegionPrefix(model) {
1282
+ if (model.startsWith("eu.") || model.startsWith("us.")) {
1283
+ return model.slice(3);
1284
+ }
1285
+ if (model.startsWith("global.")) {
1286
+ return model.slice(7);
1287
+ }
1288
+ return model;
1289
+ }
812
1290
  function getDefaultModelForProvider(provider) {
813
1291
  const providerInfo = LLM_REGISTRY[provider];
814
1292
  return providerInfo.models.find((m) => m.default)?.name || null;
@@ -822,7 +1300,8 @@ function getSupportedModels(provider) {
822
1300
  }
823
1301
  function getMaxInputTokensForModel(provider, model, logger) {
824
1302
  const providerInfo = LLM_REGISTRY[provider];
825
- const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
1303
+ const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
1304
+ const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
826
1305
  if (!modelInfo) {
827
1306
  const supportedModels = getSupportedModels(provider).join(", ");
828
1307
  logger?.error(
@@ -835,13 +1314,14 @@ function getMaxInputTokensForModel(provider, model, logger) {
835
1314
  }
836
1315
  function isValidProviderModel(provider, model) {
837
1316
  const providerInfo = LLM_REGISTRY[provider];
838
- return providerInfo.models.some((m) => m.name.toLowerCase() === model.toLowerCase());
1317
+ const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
1318
+ return providerInfo.models.some((m) => m.name.toLowerCase() === normalizedModel);
839
1319
  }
840
1320
  function getProviderFromModel(model) {
841
- const lowerModel = model.toLowerCase();
1321
+ const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
842
1322
  for (const provider of import_types.LLM_PROVIDERS) {
843
1323
  const info = LLM_REGISTRY[provider];
844
- if (info.models.some((m) => m.name.toLowerCase() === lowerModel)) {
1324
+ if (info.models.some((m) => m.name.toLowerCase() === normalizedModel)) {
845
1325
  return provider;
846
1326
  }
847
1327
  }
@@ -862,12 +1342,34 @@ function acceptsAnyModel(provider) {
862
1342
  const providerInfo = LLM_REGISTRY[provider];
863
1343
  return providerInfo.models.length === 0;
864
1344
  }
1345
+ function supportsCustomModels(provider) {
1346
+ const providerInfo = LLM_REGISTRY[provider];
1347
+ return providerInfo.supportsCustomModels === true;
1348
+ }
1349
+ const API_KEY_OPTIONAL_PROVIDERS = /* @__PURE__ */ new Set([
1350
+ "local",
1351
+ // Native node-llama-cpp execution - no auth needed
1352
+ "ollama",
1353
+ // Ollama server - no auth needed by default
1354
+ "openai-compatible",
1355
+ // vLLM, LocalAI - often no auth needed
1356
+ "litellm",
1357
+ // Self-hosted proxy - handles auth internally
1358
+ "vertex",
1359
+ // Uses Google Cloud ADC (Application Default Credentials)
1360
+ "bedrock"
1361
+ // Uses AWS credentials (access key + secret or IAM role)
1362
+ ]);
1363
+ function requiresApiKey(provider) {
1364
+ return !API_KEY_OPTIONAL_PROVIDERS.has(provider);
1365
+ }
865
1366
  function getSupportedFileTypesForModel(provider, model) {
866
1367
  const providerInfo = LLM_REGISTRY[provider];
867
1368
  if (acceptsAnyModel(provider)) {
868
1369
  return providerInfo.supportedFileTypes;
869
1370
  }
870
- const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
1371
+ const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
1372
+ const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
871
1373
  if (!modelInfo) {
872
1374
  throw import_errors.LLMError.unknownModel(provider, model);
873
1375
  }
@@ -946,6 +1448,19 @@ function getEffectiveMaxInputTokens(config, logger) {
946
1448
  }
947
1449
  }
948
1450
  }
1451
+ if (config.provider === "openrouter") {
1452
+ const contextLength = (0, import_openrouter_model_registry.getOpenRouterModelContextLength)(config.model);
1453
+ if (contextLength !== null) {
1454
+ logger.debug(
1455
+ `Using maxInputTokens from OpenRouter registry for ${config.model}: ${contextLength}`
1456
+ );
1457
+ return contextLength;
1458
+ }
1459
+ logger.warn(
1460
+ `OpenRouter model ${config.model} not found in cache, defaulting to ${DEFAULT_MAX_INPUT_TOKENS} tokens`
1461
+ );
1462
+ return DEFAULT_MAX_INPUT_TOKENS;
1463
+ }
949
1464
  if (config.baseURL) {
950
1465
  logger.warn(
951
1466
  `baseURL is set but maxInputTokens is missing. Defaulting to ${DEFAULT_MAX_INPUT_TOKENS}. Provide 'maxInputTokens' in configuration to avoid default fallback.`
@@ -970,6 +1485,12 @@ function getEffectiveMaxInputTokens(config, logger) {
970
1485
  return registryMaxInputTokens;
971
1486
  } catch (error) {
972
1487
  if (error instanceof import_DextoRuntimeError.DextoRuntimeError && error.code === import_error_codes.LLMErrorCode.MODEL_UNKNOWN) {
1488
+ if (supportsCustomModels(config.provider)) {
1489
+ logger.debug(
1490
+ `Custom model ${config.model} not in ${config.provider} registry, defaulting to ${DEFAULT_MAX_INPUT_TOKENS} tokens`
1491
+ );
1492
+ return DEFAULT_MAX_INPUT_TOKENS;
1493
+ }
973
1494
  logger.error(
974
1495
  `Registry lookup failed for ${config.provider}/${config.model}: ${error.message}. Effective maxInputTokens cannot be determined.`
975
1496
  );
@@ -985,7 +1506,8 @@ function getModelPricing(provider, model) {
985
1506
  if (acceptsAnyModel(provider)) {
986
1507
  return void 0;
987
1508
  }
988
- const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
1509
+ const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
1510
+ const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
989
1511
  return modelInfo?.pricing;
990
1512
  }
991
1513
  function getModelDisplayName(model, provider) {
@@ -999,7 +1521,8 @@ function getModelDisplayName(model, provider) {
999
1521
  if (!providerInfo || acceptsAnyModel(resolvedProvider)) {
1000
1522
  return model;
1001
1523
  }
1002
- const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
1524
+ const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
1525
+ const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
1003
1526
  return modelInfo?.displayName ?? model;
1004
1527
  }
1005
1528
  function calculateCost(usage, pricing) {
@@ -1030,7 +1553,10 @@ function calculateCost(usage, pricing) {
1030
1553
  getSupportedProviders,
1031
1554
  isValidProviderModel,
1032
1555
  modelSupportsFileType,
1556
+ requiresApiKey,
1033
1557
  requiresBaseURL,
1558
+ stripBedrockRegionPrefix,
1034
1559
  supportsBaseURL,
1560
+ supportsCustomModels,
1035
1561
  validateModelFileSupport
1036
1562
  });