@dexto/core 1.2.6 → 1.4.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 (515) hide show
  1. package/README.md +55 -13
  2. package/dist/agent/DextoAgent.cjs +627 -228
  3. package/dist/agent/DextoAgent.d.ts +157 -34
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +625 -227
  6. package/dist/agent/agentCard.js +1 -1
  7. package/dist/agent/error-codes.cjs +1 -0
  8. package/dist/agent/error-codes.d.ts +2 -1
  9. package/dist/agent/error-codes.d.ts.map +1 -1
  10. package/dist/agent/error-codes.js +2 -1
  11. package/dist/agent/errors.cjs +13 -0
  12. package/dist/agent/errors.d.ts +4 -0
  13. package/dist/agent/errors.d.ts.map +1 -1
  14. package/dist/agent/errors.js +14 -1
  15. package/dist/agent/index.d.ts +1 -1
  16. package/dist/agent/index.d.ts.map +1 -1
  17. package/dist/agent/index.js +1 -1
  18. package/dist/agent/schemas.cjs +4 -1
  19. package/dist/agent/schemas.d.ts +92 -55
  20. package/dist/agent/schemas.d.ts.map +1 -1
  21. package/dist/agent/schemas.js +7 -3
  22. package/dist/agent/state-manager.cjs +5 -5
  23. package/dist/agent/state-manager.d.ts +4 -4
  24. package/dist/agent/state-manager.js +6 -6
  25. package/dist/agent/types.d.ts +24 -11
  26. package/dist/agent/types.d.ts.map +1 -1
  27. package/dist/approval/error-codes.js +1 -1
  28. package/dist/approval/errors.js +1 -1
  29. package/dist/approval/factory.js +1 -1
  30. package/dist/approval/index.js +1 -1
  31. package/dist/approval/manager.cjs +69 -3
  32. package/dist/approval/manager.d.ts +41 -3
  33. package/dist/approval/manager.d.ts.map +1 -1
  34. package/dist/approval/manager.js +70 -4
  35. package/dist/approval/schemas.cjs +20 -5
  36. package/dist/approval/schemas.d.ts +127 -52
  37. package/dist/approval/schemas.d.ts.map +1 -1
  38. package/dist/approval/schemas.js +21 -6
  39. package/dist/approval/types.d.ts +6 -0
  40. package/dist/approval/types.d.ts.map +1 -1
  41. package/dist/approval/types.js +1 -1
  42. package/dist/{chunk-C6A6W6XS.js → chunk-PTJYTZNU.js} +44 -1
  43. package/dist/{llm/tokenizer/factory.cjs → context/compression/overflow.cjs} +20 -21
  44. package/dist/context/compression/overflow.d.ts +33 -0
  45. package/dist/context/compression/overflow.d.ts.map +1 -0
  46. package/dist/context/compression/overflow.js +19 -0
  47. package/dist/context/compression/reactive-overflow.cjs +201 -0
  48. package/dist/context/compression/reactive-overflow.d.ts +81 -0
  49. package/dist/context/compression/reactive-overflow.d.ts.map +1 -0
  50. package/dist/context/compression/reactive-overflow.js +178 -0
  51. package/dist/context/compression/types.d.ts +9 -7
  52. package/dist/context/compression/types.d.ts.map +1 -1
  53. package/dist/context/error-codes.cjs +3 -0
  54. package/dist/context/error-codes.d.ts +4 -1
  55. package/dist/context/error-codes.d.ts.map +1 -1
  56. package/dist/context/error-codes.js +4 -1
  57. package/dist/context/errors.cjs +28 -0
  58. package/dist/context/errors.d.ts +7 -0
  59. package/dist/context/errors.d.ts.map +1 -1
  60. package/dist/context/errors.js +29 -1
  61. package/dist/context/index.js +1 -1
  62. package/dist/context/manager.cjs +287 -323
  63. package/dist/context/manager.d.ts +65 -111
  64. package/dist/context/manager.d.ts.map +1 -1
  65. package/dist/context/manager.js +287 -328
  66. package/dist/context/media-helpers.js +1 -1
  67. package/dist/context/types.cjs +49 -0
  68. package/dist/context/types.d.ts +185 -72
  69. package/dist/context/types.d.ts.map +1 -1
  70. package/dist/context/types.js +35 -0
  71. package/dist/context/utils.cjs +266 -283
  72. package/dist/context/utils.d.ts +32 -18
  73. package/dist/context/utils.d.ts.map +1 -1
  74. package/dist/context/utils.js +266 -283
  75. package/dist/errors/DextoBaseError.js +1 -1
  76. package/dist/errors/DextoRuntimeError.js +1 -1
  77. package/dist/errors/DextoValidationError.js +1 -1
  78. package/dist/errors/index.js +1 -1
  79. package/dist/errors/result-bridge.js +1 -1
  80. package/dist/errors/types.cjs +1 -0
  81. package/dist/errors/types.d.ts +4 -2
  82. package/dist/errors/types.d.ts.map +1 -1
  83. package/dist/errors/types.js +2 -1
  84. package/dist/events/index.cjs +22 -2
  85. package/dist/events/index.d.ts +170 -62
  86. package/dist/events/index.d.ts.map +1 -1
  87. package/dist/events/index.js +23 -3
  88. package/dist/filesystem/error-codes.js +1 -1
  89. package/dist/filesystem/errors.js +1 -1
  90. package/dist/filesystem/filesystem-service.js +1 -1
  91. package/dist/filesystem/index.js +1 -1
  92. package/dist/filesystem/path-validator.js +1 -1
  93. package/dist/index.browser.cjs +23 -8
  94. package/dist/index.browser.d.ts +4 -3
  95. package/dist/index.browser.d.ts.map +1 -1
  96. package/dist/index.browser.js +20 -3
  97. package/dist/index.js +1 -1
  98. package/dist/llm/error-codes.cjs +0 -1
  99. package/dist/llm/error-codes.d.ts +0 -1
  100. package/dist/llm/error-codes.d.ts.map +1 -1
  101. package/dist/llm/error-codes.js +1 -2
  102. package/dist/llm/errors.cjs +10 -10
  103. package/dist/llm/errors.d.ts +5 -6
  104. package/dist/llm/errors.d.ts.map +1 -1
  105. package/dist/llm/errors.js +12 -12
  106. package/dist/llm/executor/stream-processor.cjs +367 -0
  107. package/dist/llm/executor/stream-processor.d.ts +55 -0
  108. package/dist/llm/executor/stream-processor.d.ts.map +1 -0
  109. package/dist/llm/executor/stream-processor.js +344 -0
  110. package/dist/llm/executor/tool-output-truncator.cjs +75 -0
  111. package/dist/llm/executor/tool-output-truncator.d.ts +27 -0
  112. package/dist/llm/executor/tool-output-truncator.d.ts.map +1 -0
  113. package/dist/llm/executor/tool-output-truncator.js +48 -0
  114. package/dist/llm/executor/turn-executor.cjs +753 -0
  115. package/dist/llm/executor/turn-executor.d.ts +166 -0
  116. package/dist/llm/executor/turn-executor.d.ts.map +1 -0
  117. package/dist/llm/executor/turn-executor.js +684 -0
  118. package/dist/llm/executor/types.d.ts +27 -0
  119. package/dist/llm/executor/types.d.ts.map +1 -0
  120. package/dist/llm/formatters/vercel.cjs +20 -186
  121. package/dist/llm/formatters/vercel.d.ts +2 -14
  122. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  123. package/dist/llm/formatters/vercel.js +19 -185
  124. package/dist/llm/registry.cjs +36 -45
  125. package/dist/llm/registry.d.ts +53 -39
  126. package/dist/llm/registry.d.ts.map +1 -1
  127. package/dist/llm/registry.js +34 -42
  128. package/dist/llm/resolver.cjs +1 -31
  129. package/dist/llm/resolver.d.ts.map +1 -1
  130. package/dist/llm/resolver.js +2 -34
  131. package/dist/llm/schemas.cjs +2 -17
  132. package/dist/llm/schemas.d.ts +10 -23
  133. package/dist/llm/schemas.d.ts.map +1 -1
  134. package/dist/llm/schemas.js +5 -22
  135. package/dist/llm/services/factory.cjs +3 -92
  136. package/dist/llm/services/factory.d.ts +14 -4
  137. package/dist/llm/services/factory.d.ts.map +1 -1
  138. package/dist/llm/services/factory.js +4 -83
  139. package/dist/llm/services/test-utils.integration.cjs +6 -8
  140. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  141. package/dist/llm/services/test-utils.integration.js +7 -9
  142. package/dist/llm/services/types.d.ts +1 -28
  143. package/dist/llm/services/types.d.ts.map +1 -1
  144. package/dist/llm/services/vercel.cjs +54 -468
  145. package/dist/llm/services/vercel.d.ts +38 -21
  146. package/dist/llm/services/vercel.d.ts.map +1 -1
  147. package/dist/llm/services/vercel.js +56 -475
  148. package/dist/llm/types.cjs +0 -3
  149. package/dist/llm/types.d.ts +8 -8
  150. package/dist/llm/types.d.ts.map +1 -1
  151. package/dist/llm/types.js +1 -3
  152. package/dist/llm/validation.js +1 -1
  153. package/dist/logger/browser.js +1 -1
  154. package/dist/logger/factory.js +1 -1
  155. package/dist/logger/index.js +1 -1
  156. package/dist/logger/logger.js +1 -1
  157. package/dist/logger/v2/dexto-logger.cjs +34 -6
  158. package/dist/logger/v2/dexto-logger.d.ts +20 -2
  159. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  160. package/dist/logger/v2/dexto-logger.js +35 -7
  161. package/dist/logger/v2/error-codes.js +1 -1
  162. package/dist/logger/v2/errors.js +1 -1
  163. package/dist/logger/v2/schemas.cjs +1 -1
  164. package/dist/logger/v2/schemas.js +2 -2
  165. package/dist/logger/v2/test-utils.cjs +70 -0
  166. package/dist/logger/v2/test-utils.d.ts +17 -0
  167. package/dist/logger/v2/test-utils.d.ts.map +1 -0
  168. package/dist/logger/v2/test-utils.js +46 -0
  169. package/dist/logger/v2/transport-factory.js +1 -1
  170. package/dist/logger/v2/transports/console-transport.js +1 -1
  171. package/dist/logger/v2/transports/file-transport.cjs +6 -0
  172. package/dist/logger/v2/transports/file-transport.d.ts +4 -0
  173. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  174. package/dist/logger/v2/transports/file-transport.js +7 -1
  175. package/dist/logger/v2/types.cjs +1 -0
  176. package/dist/logger/v2/types.d.ts +18 -2
  177. package/dist/logger/v2/types.d.ts.map +1 -1
  178. package/dist/logger/v2/types.js +2 -1
  179. package/dist/mcp/error-codes.cjs +1 -0
  180. package/dist/mcp/error-codes.d.ts +1 -0
  181. package/dist/mcp/error-codes.d.ts.map +1 -1
  182. package/dist/mcp/error-codes.js +2 -1
  183. package/dist/mcp/errors.cjs +13 -0
  184. package/dist/mcp/errors.d.ts +7 -0
  185. package/dist/mcp/errors.d.ts.map +1 -1
  186. package/dist/mcp/errors.js +14 -1
  187. package/dist/mcp/manager.cjs +4 -0
  188. package/dist/mcp/manager.d.ts.map +1 -1
  189. package/dist/mcp/manager.js +5 -1
  190. package/dist/mcp/mcp-client.js +1 -1
  191. package/dist/mcp/resolver.js +1 -1
  192. package/dist/mcp/schemas.cjs +6 -0
  193. package/dist/mcp/schemas.d.ts +52 -0
  194. package/dist/mcp/schemas.d.ts.map +1 -1
  195. package/dist/mcp/schemas.js +6 -1
  196. package/dist/memory/error-codes.js +1 -1
  197. package/dist/memory/errors.js +1 -1
  198. package/dist/memory/index.js +1 -1
  199. package/dist/memory/manager.js +1 -1
  200. package/dist/memory/schemas.d.ts +2 -2
  201. package/dist/memory/schemas.js +1 -1
  202. package/dist/plugins/builtins/content-policy.js +1 -1
  203. package/dist/plugins/builtins/response-sanitizer.js +1 -1
  204. package/dist/plugins/error-codes.cjs +1 -0
  205. package/dist/plugins/error-codes.d.ts +3 -1
  206. package/dist/plugins/error-codes.d.ts.map +1 -1
  207. package/dist/plugins/error-codes.js +2 -1
  208. package/dist/plugins/index.js +1 -1
  209. package/dist/plugins/loader.cjs +25 -5
  210. package/dist/plugins/loader.d.ts.map +1 -1
  211. package/dist/plugins/loader.js +26 -6
  212. package/dist/plugins/manager.js +1 -1
  213. package/dist/plugins/registrations/builtins.js +1 -1
  214. package/dist/plugins/schemas.d.ts +3 -3
  215. package/dist/plugins/schemas.js +1 -1
  216. package/dist/plugins/types.d.ts +0 -1
  217. package/dist/plugins/types.d.ts.map +1 -1
  218. package/dist/process/command-validator.js +1 -1
  219. package/dist/process/error-codes.js +1 -1
  220. package/dist/process/errors.js +1 -1
  221. package/dist/process/index.js +1 -1
  222. package/dist/process/process-service.cjs +78 -26
  223. package/dist/process/process-service.d.ts +6 -1
  224. package/dist/process/process-service.d.ts.map +1 -1
  225. package/dist/process/process-service.js +79 -27
  226. package/dist/process/types.d.ts +2 -2
  227. package/dist/process/types.d.ts.map +1 -1
  228. package/dist/prompts/error-codes.cjs +1 -0
  229. package/dist/prompts/error-codes.d.ts +2 -1
  230. package/dist/prompts/error-codes.d.ts.map +1 -1
  231. package/dist/prompts/error-codes.js +2 -1
  232. package/dist/prompts/errors.cjs +15 -0
  233. package/dist/prompts/errors.d.ts +4 -0
  234. package/dist/prompts/errors.d.ts.map +1 -1
  235. package/dist/prompts/errors.js +16 -1
  236. package/dist/prompts/index.js +1 -1
  237. package/dist/prompts/name-validation.js +1 -1
  238. package/dist/prompts/prompt-manager.cjs +13 -2
  239. package/dist/prompts/prompt-manager.d.ts +7 -0
  240. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  241. package/dist/prompts/prompt-manager.js +14 -3
  242. package/dist/prompts/providers/config-prompt-provider.cjs +12 -3
  243. package/dist/prompts/providers/config-prompt-provider.d.ts +2 -1
  244. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  245. package/dist/prompts/providers/config-prompt-provider.js +13 -4
  246. package/dist/prompts/providers/custom-prompt-provider.cjs +2 -2
  247. package/dist/prompts/providers/custom-prompt-provider.d.ts +1 -1
  248. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  249. package/dist/prompts/providers/custom-prompt-provider.js +3 -3
  250. package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
  251. package/dist/prompts/schemas.d.ts +12 -0
  252. package/dist/prompts/schemas.d.ts.map +1 -1
  253. package/dist/prompts/schemas.js +1 -1
  254. package/dist/prompts/types.d.ts +2 -0
  255. package/dist/prompts/types.d.ts.map +1 -1
  256. package/dist/prompts/utils.js +1 -1
  257. package/dist/resources/error-codes.js +1 -1
  258. package/dist/resources/errors.js +1 -1
  259. package/dist/resources/handlers/blob-handler.js +1 -1
  260. package/dist/resources/handlers/factory.js +1 -1
  261. package/dist/resources/handlers/filesystem-handler.js +1 -1
  262. package/dist/resources/index.js +1 -1
  263. package/dist/resources/internal-provider.js +1 -1
  264. package/dist/resources/manager.js +1 -1
  265. package/dist/resources/reference-parser.js +1 -1
  266. package/dist/resources/schemas.js +1 -1
  267. package/dist/search/index.js +1 -1
  268. package/dist/search/search-service.js +1 -1
  269. package/dist/session/chat-session.cjs +149 -51
  270. package/dist/session/chat-session.d.ts +69 -29
  271. package/dist/session/chat-session.d.ts.map +1 -1
  272. package/dist/session/chat-session.js +150 -52
  273. package/dist/session/error-codes.js +1 -1
  274. package/dist/session/errors.js +1 -1
  275. package/dist/session/history/database.cjs +134 -21
  276. package/dist/session/history/database.d.ts +37 -8
  277. package/dist/session/history/database.d.ts.map +1 -1
  278. package/dist/session/history/database.js +135 -22
  279. package/dist/session/history/factory.js +1 -1
  280. package/dist/session/history/memory.cjs +18 -0
  281. package/dist/session/history/memory.d.ts +8 -0
  282. package/dist/session/history/memory.d.ts.map +1 -1
  283. package/dist/session/history/memory.js +19 -1
  284. package/dist/session/history/types.d.ts +13 -1
  285. package/dist/session/history/types.d.ts.map +1 -1
  286. package/dist/session/index.cjs +3 -0
  287. package/dist/session/index.d.ts +3 -0
  288. package/dist/session/index.d.ts.map +1 -1
  289. package/dist/session/index.js +3 -1
  290. package/dist/session/message-queue.cjs +201 -0
  291. package/dist/session/message-queue.d.ts +114 -0
  292. package/dist/session/message-queue.d.ts.map +1 -0
  293. package/dist/session/message-queue.js +178 -0
  294. package/dist/session/schemas.js +1 -1
  295. package/dist/session/session-manager.cjs +57 -7
  296. package/dist/session/session-manager.d.ts +18 -0
  297. package/dist/session/session-manager.d.ts.map +1 -1
  298. package/dist/session/session-manager.js +58 -8
  299. package/dist/session/title-generator.cjs +4 -8
  300. package/dist/session/title-generator.d.ts +1 -2
  301. package/dist/session/title-generator.d.ts.map +1 -1
  302. package/dist/session/title-generator.js +5 -9
  303. package/dist/session/types.cjs +16 -0
  304. package/dist/session/types.d.ts +14 -0
  305. package/dist/session/types.d.ts.map +1 -0
  306. package/dist/session/types.js +0 -0
  307. package/dist/storage/blob/factory.js +1 -1
  308. package/dist/storage/blob/local-blob-store.js +1 -1
  309. package/dist/storage/blob/memory-blob-store.js +1 -1
  310. package/dist/storage/blob/schemas.js +1 -1
  311. package/dist/storage/cache/factory.cjs +6 -2
  312. package/dist/storage/cache/factory.d.ts +2 -1
  313. package/dist/storage/cache/factory.d.ts.map +1 -1
  314. package/dist/storage/cache/factory.js +7 -3
  315. package/dist/storage/cache/memory-cache-store.js +1 -1
  316. package/dist/storage/cache/redis-store.js +1 -1
  317. package/dist/storage/cache/schemas.js +1 -1
  318. package/dist/storage/database/factory.cjs +11 -17
  319. package/dist/storage/database/factory.d.ts +2 -1
  320. package/dist/storage/database/factory.d.ts.map +1 -1
  321. package/dist/storage/database/factory.js +12 -18
  322. package/dist/storage/database/memory-database-store.js +1 -1
  323. package/dist/storage/database/postgres-store.cjs +12 -0
  324. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  325. package/dist/storage/database/postgres-store.js +13 -1
  326. package/dist/storage/database/schemas.js +1 -1
  327. package/dist/storage/database/sqlite-store.cjs +8 -0
  328. package/dist/storage/database/sqlite-store.d.ts.map +1 -1
  329. package/dist/storage/database/sqlite-store.js +9 -1
  330. package/dist/storage/error-codes.cjs +1 -0
  331. package/dist/storage/error-codes.d.ts +1 -0
  332. package/dist/storage/error-codes.d.ts.map +1 -1
  333. package/dist/storage/error-codes.js +2 -1
  334. package/dist/storage/errors.cjs +17 -0
  335. package/dist/storage/errors.d.ts +9 -0
  336. package/dist/storage/errors.d.ts.map +1 -1
  337. package/dist/storage/errors.js +18 -1
  338. package/dist/storage/index.js +1 -1
  339. package/dist/storage/schemas.js +1 -1
  340. package/dist/storage/storage-manager.js +1 -1
  341. package/dist/systemPrompt/contributors.js +1 -1
  342. package/dist/systemPrompt/error-codes.js +1 -1
  343. package/dist/systemPrompt/errors.js +1 -1
  344. package/dist/systemPrompt/in-built-prompts.js +1 -1
  345. package/dist/systemPrompt/index.js +1 -1
  346. package/dist/systemPrompt/manager.js +1 -1
  347. package/dist/systemPrompt/registry.js +1 -1
  348. package/dist/systemPrompt/schemas.d.ts +5 -5
  349. package/dist/systemPrompt/schemas.js +1 -1
  350. package/dist/telemetry/decorators.js +1 -1
  351. package/dist/{llm/tokenizer/default.cjs → telemetry/error-codes.cjs} +14 -19
  352. package/dist/telemetry/error-codes.d.ts +13 -0
  353. package/dist/telemetry/error-codes.d.ts.map +1 -0
  354. package/dist/telemetry/error-codes.js +13 -0
  355. package/dist/telemetry/errors.cjs +105 -0
  356. package/dist/telemetry/errors.d.ts +28 -0
  357. package/dist/telemetry/errors.d.ts.map +1 -0
  358. package/dist/telemetry/errors.js +82 -0
  359. package/dist/telemetry/exporters.js +1 -1
  360. package/dist/telemetry/index.js +1 -1
  361. package/dist/telemetry/schemas.js +1 -1
  362. package/dist/telemetry/telemetry.cjs +92 -26
  363. package/dist/telemetry/telemetry.d.ts +1 -1
  364. package/dist/telemetry/telemetry.d.ts.map +1 -1
  365. package/dist/telemetry/telemetry.js +75 -19
  366. package/dist/telemetry/utils.js +1 -1
  367. package/dist/tools/bash-pattern-utils.cjs +91 -0
  368. package/dist/tools/bash-pattern-utils.d.ts +58 -0
  369. package/dist/tools/bash-pattern-utils.d.ts.map +1 -0
  370. package/dist/tools/bash-pattern-utils.js +64 -0
  371. package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
  372. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -1
  373. package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -1
  374. package/dist/tools/display-types.cjs +60 -0
  375. package/dist/tools/display-types.d.ts +133 -0
  376. package/dist/tools/display-types.d.ts.map +1 -0
  377. package/dist/tools/display-types.js +32 -0
  378. package/dist/tools/error-codes.cjs +2 -0
  379. package/dist/tools/error-codes.d.ts +3 -1
  380. package/dist/tools/error-codes.d.ts.map +1 -1
  381. package/dist/tools/error-codes.js +3 -1
  382. package/dist/tools/errors.cjs +30 -0
  383. package/dist/tools/errors.d.ts +16 -0
  384. package/dist/tools/errors.d.ts.map +1 -1
  385. package/dist/tools/errors.js +31 -1
  386. package/dist/tools/index.cjs +2 -0
  387. package/dist/tools/index.d.ts +1 -0
  388. package/dist/tools/index.d.ts.map +1 -1
  389. package/dist/tools/index.js +2 -1
  390. package/dist/tools/internal-tools/constants.js +1 -1
  391. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +1 -1
  392. package/dist/tools/internal-tools/implementations/ask-user-tool.js +2 -2
  393. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +42 -18
  394. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +3 -3
  395. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -1
  396. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +43 -19
  397. package/dist/tools/internal-tools/implementations/bash-output-tool.js +1 -1
  398. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
  399. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +66 -1
  400. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -1
  401. package/dist/tools/internal-tools/implementations/edit-file-tool.js +67 -2
  402. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +14 -1
  403. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -1
  404. package/dist/tools/internal-tools/implementations/glob-files-tool.js +15 -2
  405. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +16 -1
  406. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -1
  407. package/dist/tools/internal-tools/implementations/grep-content-tool.js +17 -2
  408. package/dist/tools/internal-tools/implementations/kill-process-tool.js +1 -1
  409. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +9 -1
  410. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -1
  411. package/dist/tools/internal-tools/implementations/read-file-tool.js +10 -2
  412. package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -1
  413. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +69 -1
  414. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -1
  415. package/dist/tools/internal-tools/implementations/write-file-tool.js +72 -2
  416. package/dist/tools/internal-tools/provider.cjs +27 -10
  417. package/dist/tools/internal-tools/provider.d.ts +8 -5
  418. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  419. package/dist/tools/internal-tools/provider.js +28 -11
  420. package/dist/tools/internal-tools/registry.cjs +4 -3
  421. package/dist/tools/internal-tools/registry.d.ts +28 -7
  422. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  423. package/dist/tools/internal-tools/registry.js +5 -4
  424. package/dist/tools/schemas.cjs +17 -7
  425. package/dist/tools/schemas.d.ts +31 -4
  426. package/dist/tools/schemas.d.ts.map +1 -1
  427. package/dist/tools/schemas.js +15 -7
  428. package/dist/tools/tool-manager.cjs +140 -18
  429. package/dist/tools/tool-manager.d.ts +23 -1
  430. package/dist/tools/tool-manager.d.ts.map +1 -1
  431. package/dist/tools/tool-manager.js +145 -19
  432. package/dist/tools/types.d.ts +20 -11
  433. package/dist/tools/types.d.ts.map +1 -1
  434. package/dist/utils/api-key-resolver.js +1 -1
  435. package/dist/utils/async-context.js +1 -1
  436. package/dist/utils/debug.js +1 -1
  437. package/dist/{llm/tokenizer/types.cjs → utils/defer.cjs} +19 -10
  438. package/dist/utils/defer.d.ts +63 -0
  439. package/dist/utils/defer.d.ts.map +1 -0
  440. package/dist/utils/defer.js +19 -0
  441. package/dist/utils/env-file.js +1 -1
  442. package/dist/utils/error-conversion.js +1 -1
  443. package/dist/utils/execution-context.js +1 -1
  444. package/dist/utils/fs-walk.js +1 -1
  445. package/dist/utils/index.cjs +3 -1
  446. package/dist/utils/index.d.ts +1 -0
  447. package/dist/utils/index.d.ts.map +1 -1
  448. package/dist/utils/index.js +1 -0
  449. package/dist/utils/path.js +1 -1
  450. package/dist/utils/redactor.js +1 -1
  451. package/dist/utils/result.js +1 -1
  452. package/dist/utils/safe-stringify.js +1 -1
  453. package/dist/utils/schema-metadata.js +1 -1
  454. package/dist/utils/schema.d.ts +6 -0
  455. package/dist/utils/schema.d.ts.map +1 -1
  456. package/dist/utils/schema.js +1 -1
  457. package/dist/utils/service-initializer.cjs +6 -2
  458. package/dist/utils/service-initializer.d.ts.map +1 -1
  459. package/dist/utils/service-initializer.js +7 -3
  460. package/dist/utils/user-info.js +1 -1
  461. package/dist/utils/zod-schema-converter.js +1 -1
  462. package/package.json +54 -17
  463. package/dist/context/compression/middle-removal.cjs +0 -95
  464. package/dist/context/compression/middle-removal.d.ts +0 -47
  465. package/dist/context/compression/middle-removal.d.ts.map +0 -1
  466. package/dist/context/compression/middle-removal.js +0 -72
  467. package/dist/context/compression/oldest-removal.cjs +0 -83
  468. package/dist/context/compression/oldest-removal.d.ts +0 -42
  469. package/dist/context/compression/oldest-removal.d.ts.map +0 -1
  470. package/dist/context/compression/oldest-removal.js +0 -60
  471. package/dist/llm/formatters/anthropic.cjs +0 -257
  472. package/dist/llm/formatters/anthropic.d.ts +0 -46
  473. package/dist/llm/formatters/anthropic.d.ts.map +0 -1
  474. package/dist/llm/formatters/anthropic.js +0 -239
  475. package/dist/llm/formatters/factory.cjs +0 -50
  476. package/dist/llm/formatters/factory.d.ts +0 -10
  477. package/dist/llm/formatters/factory.d.ts.map +0 -1
  478. package/dist/llm/formatters/factory.js +0 -27
  479. package/dist/llm/formatters/openai.cjs +0 -196
  480. package/dist/llm/formatters/openai.d.ts +0 -39
  481. package/dist/llm/formatters/openai.d.ts.map +0 -1
  482. package/dist/llm/formatters/openai.js +0 -177
  483. package/dist/llm/formatters/types.d.ts +0 -41
  484. package/dist/llm/formatters/types.d.ts.map +0 -1
  485. package/dist/llm/services/anthropic.cjs +0 -511
  486. package/dist/llm/services/anthropic.d.ts +0 -48
  487. package/dist/llm/services/anthropic.d.ts.map +0 -1
  488. package/dist/llm/services/anthropic.js +0 -447
  489. package/dist/llm/services/openai.cjs +0 -611
  490. package/dist/llm/services/openai.d.ts +0 -48
  491. package/dist/llm/services/openai.d.ts.map +0 -1
  492. package/dist/llm/services/openai.js +0 -547
  493. package/dist/llm/tokenizer/anthropic.cjs +0 -43
  494. package/dist/llm/tokenizer/anthropic.d.ts +0 -19
  495. package/dist/llm/tokenizer/anthropic.d.ts.map +0 -1
  496. package/dist/llm/tokenizer/anthropic.js +0 -20
  497. package/dist/llm/tokenizer/default.d.ts +0 -14
  498. package/dist/llm/tokenizer/default.d.ts.map +0 -1
  499. package/dist/llm/tokenizer/default.js +0 -18
  500. package/dist/llm/tokenizer/factory.d.ts +0 -12
  501. package/dist/llm/tokenizer/factory.d.ts.map +0 -1
  502. package/dist/llm/tokenizer/factory.js +0 -21
  503. package/dist/llm/tokenizer/google.cjs +0 -52
  504. package/dist/llm/tokenizer/google.d.ts +0 -29
  505. package/dist/llm/tokenizer/google.d.ts.map +0 -1
  506. package/dist/llm/tokenizer/google.js +0 -29
  507. package/dist/llm/tokenizer/openai.cjs +0 -115
  508. package/dist/llm/tokenizer/openai.d.ts +0 -33
  509. package/dist/llm/tokenizer/openai.d.ts.map +0 -1
  510. package/dist/llm/tokenizer/openai.js +0 -91
  511. package/dist/llm/tokenizer/types.d.ts +0 -18
  512. package/dist/llm/tokenizer/types.d.ts.map +0 -1
  513. package/dist/llm/tokenizer/types.js +0 -10
  514. /package/dist/llm/{formatters → executor}/types.cjs +0 -0
  515. /package/dist/llm/{formatters → executor}/types.js +0 -0
@@ -22,19 +22,18 @@ __export(registry_exports, {
22
22
  LLM_REGISTRY: () => LLM_REGISTRY,
23
23
  MIME_TYPE_TO_FILE_TYPE: () => MIME_TYPE_TO_FILE_TYPE,
24
24
  acceptsAnyModel: () => acceptsAnyModel,
25
+ calculateCost: () => calculateCost,
25
26
  getAllSupportedModels: () => getAllSupportedModels,
26
27
  getAllowedMimeTypes: () => getAllowedMimeTypes,
27
28
  getDefaultModelForProvider: () => getDefaultModelForProvider,
28
29
  getEffectiveMaxInputTokens: () => getEffectiveMaxInputTokens,
29
30
  getMaxInputTokensForModel: () => getMaxInputTokensForModel,
31
+ getModelDisplayName: () => getModelDisplayName,
32
+ getModelPricing: () => getModelPricing,
30
33
  getProviderFromModel: () => getProviderFromModel,
31
34
  getSupportedFileTypesForModel: () => getSupportedFileTypesForModel,
32
35
  getSupportedModels: () => getSupportedModels,
33
36
  getSupportedProviders: () => getSupportedProviders,
34
- getSupportedRoutersForModel: () => getSupportedRoutersForModel,
35
- getSupportedRoutersForProvider: () => getSupportedRoutersForProvider,
36
- isRouterSupportedForModel: () => isRouterSupportedForModel,
37
- isRouterSupportedForProvider: () => isRouterSupportedForProvider,
38
37
  isValidProviderModel: () => isValidProviderModel,
39
38
  modelSupportsFileType: () => modelSupportsFileType,
40
39
  requiresBaseURL: () => requiresBaseURL,
@@ -332,7 +331,6 @@ const LLM_REGISTRY = {
332
331
  }
333
332
  }
334
333
  ],
335
- supportedRouters: ["vercel", "in-built"],
336
334
  baseURLSupport: "none",
337
335
  supportedFileTypes: []
338
336
  // No defaults - models must explicitly specify support
@@ -340,7 +338,6 @@ const LLM_REGISTRY = {
340
338
  "openai-compatible": {
341
339
  models: [],
342
340
  // Empty - accepts any model name for custom endpoints
343
- supportedRouters: ["vercel", "in-built"],
344
341
  baseURLSupport: "required",
345
342
  supportedFileTypes: ["pdf", "image", "audio"]
346
343
  // Allow all types for custom endpoints - user assumes responsibility for model capabilities
@@ -475,7 +472,6 @@ const LLM_REGISTRY = {
475
472
  }
476
473
  }
477
474
  ],
478
- supportedRouters: ["vercel", "in-built"],
479
475
  baseURLSupport: "none",
480
476
  supportedFileTypes: []
481
477
  // No defaults - models must explicitly specify support
@@ -572,7 +568,6 @@ const LLM_REGISTRY = {
572
568
  }
573
569
  }
574
570
  ],
575
- supportedRouters: ["vercel"],
576
571
  baseURLSupport: "none",
577
572
  supportedFileTypes: []
578
573
  // No defaults - models must explicitly specify support
@@ -690,7 +685,6 @@ const LLM_REGISTRY = {
690
685
  }
691
686
  }
692
687
  ],
693
- supportedRouters: ["vercel"],
694
688
  baseURLSupport: "none",
695
689
  supportedFileTypes: []
696
690
  // Groq currently doesn't support file uploads
@@ -753,7 +747,6 @@ const LLM_REGISTRY = {
753
747
  }
754
748
  }
755
749
  ],
756
- supportedRouters: ["vercel"],
757
750
  baseURLSupport: "none",
758
751
  supportedFileTypes: []
759
752
  // XAI currently doesn't support file uploads
@@ -811,7 +804,6 @@ const LLM_REGISTRY = {
811
804
  }
812
805
  }
813
806
  ],
814
- supportedRouters: ["vercel"],
815
807
  baseURLSupport: "none",
816
808
  supportedFileTypes: []
817
809
  // Cohere currently doesn't support file uploads
@@ -858,10 +850,6 @@ function getProviderFromModel(model) {
858
850
  function getAllSupportedModels() {
859
851
  return Object.values(LLM_REGISTRY).flatMap((info) => info.models.map((m) => m.name));
860
852
  }
861
- function getSupportedRoutersForProvider(provider) {
862
- const providerInfo = LLM_REGISTRY[provider];
863
- return providerInfo.supportedRouters;
864
- }
865
853
  function supportsBaseURL(provider) {
866
854
  const providerInfo = LLM_REGISTRY[provider];
867
855
  return providerInfo.baseURLSupport !== "none";
@@ -918,32 +906,6 @@ function validateModelFileSupport(provider, model, mimeType) {
918
906
  };
919
907
  }
920
908
  }
921
- function isRouterSupportedForModel(provider, model, router) {
922
- const providerInfo = LLM_REGISTRY[provider];
923
- const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
924
- if (!modelInfo) {
925
- return isRouterSupportedForProvider(provider, router);
926
- }
927
- if (modelInfo.supportedRouters) {
928
- return modelInfo.supportedRouters.includes(router);
929
- }
930
- return isRouterSupportedForProvider(provider, router);
931
- }
932
- function getSupportedRoutersForModel(provider, model) {
933
- const providerInfo = LLM_REGISTRY[provider];
934
- const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
935
- if (!modelInfo) {
936
- return getSupportedRoutersForProvider(provider);
937
- }
938
- if (modelInfo.supportedRouters) {
939
- return modelInfo.supportedRouters;
940
- }
941
- return getSupportedRoutersForProvider(provider);
942
- }
943
- function isRouterSupportedForProvider(provider, router) {
944
- const supportedRouters = getSupportedRoutersForProvider(provider);
945
- return supportedRouters.includes(router);
946
- }
947
909
  function getEffectiveMaxInputTokens(config, logger) {
948
910
  const configuredMaxInputTokens = config.maxInputTokens;
949
911
  if (configuredMaxInputTokens != null) {
@@ -1018,25 +980,54 @@ function getEffectiveMaxInputTokens(config, logger) {
1018
980
  }
1019
981
  }
1020
982
  }
983
+ function getModelPricing(provider, model) {
984
+ const providerInfo = LLM_REGISTRY[provider];
985
+ if (acceptsAnyModel(provider)) {
986
+ return void 0;
987
+ }
988
+ const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
989
+ return modelInfo?.pricing;
990
+ }
991
+ function getModelDisplayName(model, provider) {
992
+ let resolvedProvider;
993
+ try {
994
+ resolvedProvider = provider ?? getProviderFromModel(model);
995
+ } catch {
996
+ return model;
997
+ }
998
+ const providerInfo = LLM_REGISTRY[resolvedProvider];
999
+ if (!providerInfo || acceptsAnyModel(resolvedProvider)) {
1000
+ return model;
1001
+ }
1002
+ const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
1003
+ return modelInfo?.displayName ?? model;
1004
+ }
1005
+ function calculateCost(usage, pricing) {
1006
+ const inputCost = (usage.inputTokens ?? 0) * pricing.inputPerM / 1e6;
1007
+ const outputCost = (usage.outputTokens ?? 0) * pricing.outputPerM / 1e6;
1008
+ const cacheReadCost = (usage.cacheReadTokens ?? 0) * (pricing.cacheReadPerM ?? 0) / 1e6;
1009
+ const cacheWriteCost = (usage.cacheWriteTokens ?? 0) * (pricing.cacheWritePerM ?? 0) / 1e6;
1010
+ const reasoningCost = (usage.reasoningTokens ?? 0) * pricing.outputPerM / 1e6;
1011
+ return inputCost + outputCost + cacheReadCost + cacheWriteCost + reasoningCost;
1012
+ }
1021
1013
  // Annotate the CommonJS export names for ESM import in node:
1022
1014
  0 && (module.exports = {
1023
1015
  DEFAULT_MAX_INPUT_TOKENS,
1024
1016
  LLM_REGISTRY,
1025
1017
  MIME_TYPE_TO_FILE_TYPE,
1026
1018
  acceptsAnyModel,
1019
+ calculateCost,
1027
1020
  getAllSupportedModels,
1028
1021
  getAllowedMimeTypes,
1029
1022
  getDefaultModelForProvider,
1030
1023
  getEffectiveMaxInputTokens,
1031
1024
  getMaxInputTokensForModel,
1025
+ getModelDisplayName,
1026
+ getModelPricing,
1032
1027
  getProviderFromModel,
1033
1028
  getSupportedFileTypesForModel,
1034
1029
  getSupportedModels,
1035
1030
  getSupportedProviders,
1036
- getSupportedRoutersForModel,
1037
- getSupportedRoutersForProvider,
1038
- isRouterSupportedForModel,
1039
- isRouterSupportedForProvider,
1040
1031
  isValidProviderModel,
1041
1032
  modelSupportsFileType,
1042
1033
  requiresBaseURL,
@@ -1,27 +1,44 @@
1
+ /**
2
+ * LLM Model Registry
3
+ *
4
+ * TODO: maxOutputTokens - Currently we rely on @ai-sdk/anthropic (and other provider SDKs)
5
+ * to set appropriate maxOutputTokens defaults per model. As of v2.0.56, @ai-sdk/anthropic
6
+ * has getModelCapabilities() which sets correct limits (e.g., 64000 for claude-haiku-4-5).
7
+ *
8
+ * If we need finer control or want to support models before the SDK does, we could:
9
+ * 1. Add maxOutputTokens to ModelInfo interface
10
+ * 2. Create getMaxOutputTokensForModel() / getEffectiveMaxOutputTokens() helpers
11
+ * 3. Pass explicit maxOutputTokens in TurnExecutor when config doesn't specify one
12
+ *
13
+ * For now, keeping SDK dependency is simpler and auto-updates with SDK releases.
14
+ */
1
15
  import { LLMConfig } from './schemas.js';
2
- import { type LLMProvider, type LLMRouter, type SupportedFileType } from './types.js';
16
+ import { type LLMProvider, type SupportedFileType, type TokenUsage } from './types.js';
3
17
  import type { IDextoLogger } from '../logger/v2/types.js';
18
+ /**
19
+ * Pricing metadata for a model (USD per 1M tokens).
20
+ * Optional; when omitted, pricing is unknown.
21
+ */
22
+ export interface ModelPricing {
23
+ inputPerM: number;
24
+ outputPerM: number;
25
+ cacheReadPerM?: number;
26
+ cacheWritePerM?: number;
27
+ currency?: 'USD';
28
+ unit?: 'per_million_tokens';
29
+ }
4
30
  export interface ModelInfo {
5
31
  name: string;
6
32
  maxInputTokens: number;
7
33
  default?: boolean;
8
34
  supportedFileTypes: SupportedFileType[];
9
- supportedRouters?: LLMRouter[];
10
35
  displayName?: string;
11
- pricing?: {
12
- inputPerM: number;
13
- outputPerM: number;
14
- cacheReadPerM?: number;
15
- cacheWritePerM?: number;
16
- currency?: 'USD';
17
- unit?: 'per_million_tokens';
18
- };
36
+ pricing?: ModelPricing;
19
37
  }
20
38
  export declare const MIME_TYPE_TO_FILE_TYPE: Record<string, SupportedFileType>;
21
39
  export declare function getAllowedMimeTypes(): string[];
22
40
  export interface ProviderInfo {
23
41
  models: ModelInfo[];
24
- supportedRouters: LLMRouter[];
25
42
  baseURLSupport: 'none' | 'optional' | 'required';
26
43
  supportedFileTypes: SupportedFileType[];
27
44
  }
@@ -84,12 +101,6 @@ export declare function getProviderFromModel(model: string): LLMProvider;
84
101
  * Returns a flat array of all supported model names from all providers.
85
102
  */
86
103
  export declare function getAllSupportedModels(): string[];
87
- /**
88
- * Gets the supported routers for a given provider.
89
- * @param provider The name of the provider.
90
- * @returns An array of supported router names for the provider
91
- */
92
- export declare function getSupportedRoutersForProvider(provider: LLMProvider): LLMRouter[];
93
104
  /**
94
105
  * Checks if a provider supports custom baseURL.
95
106
  * @param provider The name of the provider.
@@ -136,28 +147,6 @@ export declare function validateModelFileSupport(provider: LLMProvider, model: s
136
147
  fileType?: SupportedFileType;
137
148
  error?: string;
138
149
  };
139
- /**
140
- * Checks if a specific model supports a specific router.
141
- * @param provider The name of the provider.
142
- * @param model The name of the model.
143
- * @param router The router name to check.
144
- * @returns True if the model supports the router, false otherwise.
145
- */
146
- export declare function isRouterSupportedForModel(provider: LLMProvider, model: string, router: LLMRouter): boolean;
147
- /**
148
- * Gets the supported routers for a specific model.
149
- * @param provider The name of the provider.
150
- * @param model The name of the model.
151
- * @returns An array of supported router names for the model.
152
- */
153
- export declare function getSupportedRoutersForModel(provider: LLMProvider, model: string): LLMRouter[];
154
- /**
155
- * Checks if a provider supports a specific router.
156
- * @param provider The name of the provider.
157
- * @param router The router name to check.
158
- * @returns True if the provider supports the router, false otherwise.
159
- */
160
- export declare function isRouterSupportedForProvider(provider: LLMProvider, router: LLMRouter): boolean;
161
150
  /**
162
151
  * Determines the effective maximum input token limit based on configuration.
163
152
  * Priority:
@@ -173,4 +162,29 @@ export declare function isRouterSupportedForProvider(provider: LLMProvider, rout
173
162
  * TODO: make more readable
174
163
  */
175
164
  export declare function getEffectiveMaxInputTokens(config: LLMConfig, logger: IDextoLogger): number;
165
+ /**
166
+ * Gets the pricing information for a specific model.
167
+ *
168
+ * TODO: When adding gateway providers (openrouter, vercel-ai, dexto, etc.),
169
+ * each gateway will be its own provider with its own pricing in the registry.
170
+ * The gateway's pricing includes any markup, so no separate "gateway multiplier" logic is needed.
171
+ * Example: provider: 'dexto' would have models with Dexto's pricing (base + markup baked in).
172
+ *
173
+ * @param provider The name of the provider.
174
+ * @param model The name of the model.
175
+ * @returns The pricing information for the model, or undefined if not available.
176
+ */
177
+ export declare function getModelPricing(provider: LLMProvider, model: string): ModelPricing | undefined;
178
+ /**
179
+ * Gets the display name for a model, falling back to the model ID if not found.
180
+ */
181
+ export declare function getModelDisplayName(model: string, provider?: LLMProvider): string;
182
+ /**
183
+ * Calculates the cost for a given token usage based on model pricing.
184
+ *
185
+ * @param usage Token usage counts.
186
+ * @param pricing Model pricing (per million tokens).
187
+ * @returns Cost in USD.
188
+ */
189
+ export declare function calculateCost(usage: TokenUsage, pricing: ModelPricing): number;
176
190
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/llm/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/llm/registry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { LLMError } from "./errors.js";
3
3
  import { LLMErrorCode } from "./error-codes.js";
4
4
  import { DextoRuntimeError } from "../errors/DextoRuntimeError.js";
@@ -291,7 +291,6 @@ const LLM_REGISTRY = {
291
291
  }
292
292
  }
293
293
  ],
294
- supportedRouters: ["vercel", "in-built"],
295
294
  baseURLSupport: "none",
296
295
  supportedFileTypes: []
297
296
  // No defaults - models must explicitly specify support
@@ -299,7 +298,6 @@ const LLM_REGISTRY = {
299
298
  "openai-compatible": {
300
299
  models: [],
301
300
  // Empty - accepts any model name for custom endpoints
302
- supportedRouters: ["vercel", "in-built"],
303
301
  baseURLSupport: "required",
304
302
  supportedFileTypes: ["pdf", "image", "audio"]
305
303
  // Allow all types for custom endpoints - user assumes responsibility for model capabilities
@@ -434,7 +432,6 @@ const LLM_REGISTRY = {
434
432
  }
435
433
  }
436
434
  ],
437
- supportedRouters: ["vercel", "in-built"],
438
435
  baseURLSupport: "none",
439
436
  supportedFileTypes: []
440
437
  // No defaults - models must explicitly specify support
@@ -531,7 +528,6 @@ const LLM_REGISTRY = {
531
528
  }
532
529
  }
533
530
  ],
534
- supportedRouters: ["vercel"],
535
531
  baseURLSupport: "none",
536
532
  supportedFileTypes: []
537
533
  // No defaults - models must explicitly specify support
@@ -649,7 +645,6 @@ const LLM_REGISTRY = {
649
645
  }
650
646
  }
651
647
  ],
652
- supportedRouters: ["vercel"],
653
648
  baseURLSupport: "none",
654
649
  supportedFileTypes: []
655
650
  // Groq currently doesn't support file uploads
@@ -712,7 +707,6 @@ const LLM_REGISTRY = {
712
707
  }
713
708
  }
714
709
  ],
715
- supportedRouters: ["vercel"],
716
710
  baseURLSupport: "none",
717
711
  supportedFileTypes: []
718
712
  // XAI currently doesn't support file uploads
@@ -770,7 +764,6 @@ const LLM_REGISTRY = {
770
764
  }
771
765
  }
772
766
  ],
773
- supportedRouters: ["vercel"],
774
767
  baseURLSupport: "none",
775
768
  supportedFileTypes: []
776
769
  // Cohere currently doesn't support file uploads
@@ -817,10 +810,6 @@ function getProviderFromModel(model) {
817
810
  function getAllSupportedModels() {
818
811
  return Object.values(LLM_REGISTRY).flatMap((info) => info.models.map((m) => m.name));
819
812
  }
820
- function getSupportedRoutersForProvider(provider) {
821
- const providerInfo = LLM_REGISTRY[provider];
822
- return providerInfo.supportedRouters;
823
- }
824
813
  function supportsBaseURL(provider) {
825
814
  const providerInfo = LLM_REGISTRY[provider];
826
815
  return providerInfo.baseURLSupport !== "none";
@@ -877,32 +866,6 @@ function validateModelFileSupport(provider, model, mimeType) {
877
866
  };
878
867
  }
879
868
  }
880
- function isRouterSupportedForModel(provider, model, router) {
881
- const providerInfo = LLM_REGISTRY[provider];
882
- const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
883
- if (!modelInfo) {
884
- return isRouterSupportedForProvider(provider, router);
885
- }
886
- if (modelInfo.supportedRouters) {
887
- return modelInfo.supportedRouters.includes(router);
888
- }
889
- return isRouterSupportedForProvider(provider, router);
890
- }
891
- function getSupportedRoutersForModel(provider, model) {
892
- const providerInfo = LLM_REGISTRY[provider];
893
- const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
894
- if (!modelInfo) {
895
- return getSupportedRoutersForProvider(provider);
896
- }
897
- if (modelInfo.supportedRouters) {
898
- return modelInfo.supportedRouters;
899
- }
900
- return getSupportedRoutersForProvider(provider);
901
- }
902
- function isRouterSupportedForProvider(provider, router) {
903
- const supportedRouters = getSupportedRoutersForProvider(provider);
904
- return supportedRouters.includes(router);
905
- }
906
869
  function getEffectiveMaxInputTokens(config, logger) {
907
870
  const configuredMaxInputTokens = config.maxInputTokens;
908
871
  if (configuredMaxInputTokens != null) {
@@ -977,24 +940,53 @@ function getEffectiveMaxInputTokens(config, logger) {
977
940
  }
978
941
  }
979
942
  }
943
+ function getModelPricing(provider, model) {
944
+ const providerInfo = LLM_REGISTRY[provider];
945
+ if (acceptsAnyModel(provider)) {
946
+ return void 0;
947
+ }
948
+ const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
949
+ return modelInfo?.pricing;
950
+ }
951
+ function getModelDisplayName(model, provider) {
952
+ let resolvedProvider;
953
+ try {
954
+ resolvedProvider = provider ?? getProviderFromModel(model);
955
+ } catch {
956
+ return model;
957
+ }
958
+ const providerInfo = LLM_REGISTRY[resolvedProvider];
959
+ if (!providerInfo || acceptsAnyModel(resolvedProvider)) {
960
+ return model;
961
+ }
962
+ const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
963
+ return modelInfo?.displayName ?? model;
964
+ }
965
+ function calculateCost(usage, pricing) {
966
+ const inputCost = (usage.inputTokens ?? 0) * pricing.inputPerM / 1e6;
967
+ const outputCost = (usage.outputTokens ?? 0) * pricing.outputPerM / 1e6;
968
+ const cacheReadCost = (usage.cacheReadTokens ?? 0) * (pricing.cacheReadPerM ?? 0) / 1e6;
969
+ const cacheWriteCost = (usage.cacheWriteTokens ?? 0) * (pricing.cacheWritePerM ?? 0) / 1e6;
970
+ const reasoningCost = (usage.reasoningTokens ?? 0) * pricing.outputPerM / 1e6;
971
+ return inputCost + outputCost + cacheReadCost + cacheWriteCost + reasoningCost;
972
+ }
980
973
  export {
981
974
  DEFAULT_MAX_INPUT_TOKENS,
982
975
  LLM_REGISTRY,
983
976
  MIME_TYPE_TO_FILE_TYPE,
984
977
  acceptsAnyModel,
978
+ calculateCost,
985
979
  getAllSupportedModels,
986
980
  getAllowedMimeTypes,
987
981
  getDefaultModelForProvider,
988
982
  getEffectiveMaxInputTokens,
989
983
  getMaxInputTokensForModel,
984
+ getModelDisplayName,
985
+ getModelPricing,
990
986
  getProviderFromModel,
991
987
  getSupportedFileTypesForModel,
992
988
  getSupportedModels,
993
989
  getSupportedProviders,
994
- getSupportedRoutersForModel,
995
- getSupportedRoutersForProvider,
996
- isRouterSupportedForModel,
997
- isRouterSupportedForProvider,
998
990
  isValidProviderModel,
999
991
  modelSupportsFileType,
1000
992
  requiresBaseURL,
@@ -80,41 +80,12 @@ function resolveLLMConfig(previous, updates, logger) {
80
80
  context: { provider, model }
81
81
  });
82
82
  }
83
- let router = updates.router;
84
- if (!router) {
85
- if (provider !== previous.provider && !(0, import_registry.isRouterSupportedForModel)(provider, model, previous.router)) {
86
- const supported = (0, import_registry.getSupportedRoutersForModel)(provider, model);
87
- if (supported.length === 0) {
88
- warnings.push({
89
- code: import_error_codes.LLMErrorCode.ROUTER_UNSUPPORTED,
90
- message: `No routers supported for model '${model}' (${provider})`,
91
- severity: "error",
92
- scope: import_types.ErrorScope.LLM,
93
- type: import_types.ErrorType.USER,
94
- context: router ? { provider, model, router } : { provider, model }
95
- });
96
- } else {
97
- router = supported.includes("vercel") ? "vercel" : supported[0];
98
- warnings.push({
99
- code: import_error_codes.LLMErrorCode.ROUTER_UNSUPPORTED,
100
- message: `Router changed to '${router}' for model '${model}' (${provider})`,
101
- severity: "warning",
102
- scope: import_types.ErrorScope.LLM,
103
- type: import_types.ErrorType.USER,
104
- context: { provider, model, router }
105
- });
106
- }
107
- } else {
108
- router = previous.router;
109
- }
110
- }
111
83
  const maxInputTokens = updates.maxInputTokens ?? (0, import_registry.getEffectiveMaxInputTokens)({ provider, model, apiKey: apiKey || previous.apiKey }, logger);
112
84
  return {
113
85
  candidate: {
114
86
  provider,
115
87
  model,
116
88
  apiKey,
117
- router,
118
89
  baseURL: updates.baseURL ?? previous.baseURL,
119
90
  maxIterations: updates.maxIterations ?? previous.maxIterations,
120
91
  maxInputTokens,
@@ -139,8 +110,7 @@ function validateLLMConfig(candidate, warnings) {
139
110
  type: import_types.ErrorType.USER,
140
111
  context: {
141
112
  provider: candidate.provider,
142
- model: candidate.model,
143
- ...candidate.router && { router: candidate.router }
113
+ model: candidate.model
144
114
  }
145
115
  });
146
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/llm/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiD,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAyB,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAWxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,wBAAgB,2BAA2B,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,YAAY,GACrB,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAU9C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,YAAY,GACrB;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAA;CAAE,CAsH/D;AAGD,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,GACpC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CA2B9C"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/llm/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiD,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAyB,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AASxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,wBAAgB,2BAA2B,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,YAAY,GACrB,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAU9C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,YAAY,GACrB;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAA;CAAE,CA+E/D;AAGD,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,GACpC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CA0B9C"}
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { hasErrors, splitIssues, ok, fail, zodToIssues } from "../utils/result.js";
3
3
  import { ErrorScope, ErrorType } from "../errors/types.js";
4
4
  import { LLMErrorCode } from "./error-codes.js";
@@ -6,8 +6,6 @@ import { LLMConfigSchema } from "./schemas.js";
6
6
  import {
7
7
  getDefaultModelForProvider,
8
8
  acceptsAnyModel,
9
- isRouterSupportedForModel,
10
- getSupportedRoutersForModel,
11
9
  getProviderFromModel,
12
10
  isValidProviderModel,
13
11
  getEffectiveMaxInputTokens
@@ -64,41 +62,12 @@ function resolveLLMConfig(previous, updates, logger) {
64
62
  context: { provider, model }
65
63
  });
66
64
  }
67
- let router = updates.router;
68
- if (!router) {
69
- if (provider !== previous.provider && !isRouterSupportedForModel(provider, model, previous.router)) {
70
- const supported = getSupportedRoutersForModel(provider, model);
71
- if (supported.length === 0) {
72
- warnings.push({
73
- code: LLMErrorCode.ROUTER_UNSUPPORTED,
74
- message: `No routers supported for model '${model}' (${provider})`,
75
- severity: "error",
76
- scope: ErrorScope.LLM,
77
- type: ErrorType.USER,
78
- context: router ? { provider, model, router } : { provider, model }
79
- });
80
- } else {
81
- router = supported.includes("vercel") ? "vercel" : supported[0];
82
- warnings.push({
83
- code: LLMErrorCode.ROUTER_UNSUPPORTED,
84
- message: `Router changed to '${router}' for model '${model}' (${provider})`,
85
- severity: "warning",
86
- scope: ErrorScope.LLM,
87
- type: ErrorType.USER,
88
- context: { provider, model, router }
89
- });
90
- }
91
- } else {
92
- router = previous.router;
93
- }
94
- }
95
65
  const maxInputTokens = updates.maxInputTokens ?? getEffectiveMaxInputTokens({ provider, model, apiKey: apiKey || previous.apiKey }, logger);
96
66
  return {
97
67
  candidate: {
98
68
  provider,
99
69
  model,
100
70
  apiKey,
101
- router,
102
71
  baseURL: updates.baseURL ?? previous.baseURL,
103
72
  maxIterations: updates.maxIterations ?? previous.maxIterations,
104
73
  maxInputTokens,
@@ -123,8 +92,7 @@ function validateLLMConfig(candidate, warnings) {
123
92
  type: ErrorType.USER,
124
93
  context: {
125
94
  provider: candidate.provider,
126
- model: candidate.model,
127
- ...candidate.router && { router: candidate.router }
95
+ model: candidate.model
128
96
  }
129
97
  });
130
98
  }
@@ -39,7 +39,6 @@ const LLMConfigFields = {
39
39
  "API key for provider; can be given directly or via $ENV reference"
40
40
  ),
41
41
  maxIterations: import_zod.z.coerce.number().int().positive().describe("Max iterations for agentic loops"),
42
- router: import_zod.z.enum(import_types2.LLM_ROUTERS).describe("Router to use (vercel | in-built)"),
43
42
  baseURL: import_result.OptionalURL.describe(
44
43
  "Base URL for provider (e.g., https://api.openai.com/v1). Only certain providers support this."
45
44
  ),
@@ -56,7 +55,6 @@ const LLMConfigBaseSchema = import_zod.z.object({
56
55
  apiKey: LLMConfigFields.apiKey,
57
56
  // Apply defaults only for complete config validation
58
57
  maxIterations: import_zod.z.coerce.number().int().positive().default(50),
59
- router: import_zod.z.enum(import_types2.LLM_ROUTERS).default("vercel"),
60
58
  baseURL: LLMConfigFields.baseURL,
61
59
  maxInputTokens: LLMConfigFields.maxInputTokens,
62
60
  maxOutputTokens: LLMConfigFields.maxOutputTokens,
@@ -164,25 +162,12 @@ const LLMConfigSchema = LLMConfigBaseSchema.superRefine((data, ctx) => {
164
162
  }
165
163
  }
166
164
  }
167
- if (!(0, import_registry.isRouterSupportedForModel)(data.provider, data.model, data.router)) {
168
- const supportedRouters = (0, import_registry.getSupportedRoutersForModel)(data.provider, data.model);
169
- ctx.addIssue({
170
- code: import_zod.z.ZodIssueCode.custom,
171
- path: ["router"],
172
- message: `Model '${data.model}' (${data.provider}) does not support router '${data.router}'. Supported: ${supportedRouters.join(", ")}`,
173
- params: {
174
- code: import_error_codes.LLMErrorCode.ROUTER_UNSUPPORTED,
175
- scope: import_types.ErrorScope.LLM,
176
- type: import_types.ErrorType.USER
177
- }
178
- });
179
- }
180
165
  }).brand();
181
166
  const LLMUpdatesSchema = import_zod.z.object({ ...LLMConfigFields }).partial().superRefine((data, ctx) => {
182
- if (!data.model && !data.provider && !data.router) {
167
+ if (!data.model && !data.provider) {
183
168
  ctx.addIssue({
184
169
  code: import_zod.z.ZodIssueCode.custom,
185
- message: "At least model, provider, or router must be specified for LLM switch",
170
+ message: "At least model or provider must be specified for LLM switch",
186
171
  path: []
187
172
  });
188
173
  }