@dexto/core 1.5.7 → 1.6.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 (697) hide show
  1. package/README.md +19 -8
  2. package/dist/agent/DextoAgent.cjs +383 -153
  3. package/dist/agent/DextoAgent.d.ts +112 -60
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +380 -150
  6. package/dist/{context/compaction/provider.cjs → agent/agent-options.cjs} +2 -2
  7. package/dist/agent/agent-options.d.ts +53 -0
  8. package/dist/agent/agent-options.d.ts.map +1 -0
  9. package/dist/agent/agentCard.cjs +1 -1
  10. package/dist/agent/errors.cjs +2 -2
  11. package/dist/agent/errors.d.ts.map +1 -1
  12. package/dist/agent/index.cjs +1 -6
  13. package/dist/agent/index.d.ts +3 -2
  14. package/dist/agent/index.d.ts.map +1 -1
  15. package/dist/agent/index.js +1 -7
  16. package/dist/{storage/blob/provider.cjs → agent/runtime-config.cjs} +2 -2
  17. package/dist/agent/runtime-config.d.ts +53 -0
  18. package/dist/agent/runtime-config.d.ts.map +1 -0
  19. package/dist/agent/schemas.cjs +2 -99
  20. package/dist/agent/schemas.d.ts +10 -9160
  21. package/dist/agent/schemas.d.ts.map +1 -1
  22. package/dist/agent/schemas.js +1 -104
  23. package/dist/agent/state-manager.d.ts +5 -5
  24. package/dist/agent/state-manager.d.ts.map +1 -1
  25. package/dist/approval/error-codes.cjs +1 -1
  26. package/dist/approval/error-codes.d.ts +1 -1
  27. package/dist/approval/error-codes.d.ts.map +1 -1
  28. package/dist/approval/error-codes.js +1 -1
  29. package/dist/approval/errors.cjs +5 -5
  30. package/dist/approval/errors.d.ts +2 -2
  31. package/dist/approval/errors.d.ts.map +1 -1
  32. package/dist/approval/errors.js +5 -5
  33. package/dist/approval/index.cjs +8 -8
  34. package/dist/approval/index.d.ts +2 -2
  35. package/dist/approval/index.d.ts.map +1 -1
  36. package/dist/approval/index.js +8 -8
  37. package/dist/approval/manager.cjs +77 -57
  38. package/dist/approval/manager.d.ts +41 -43
  39. package/dist/approval/manager.d.ts.map +1 -1
  40. package/dist/approval/manager.js +75 -55
  41. package/dist/approval/schemas.cjs +26 -25
  42. package/dist/approval/schemas.d.ts +35 -15
  43. package/dist/approval/schemas.d.ts.map +1 -1
  44. package/dist/approval/schemas.js +22 -21
  45. package/dist/approval/types.cjs +1 -1
  46. package/dist/approval/types.d.ts +14 -14
  47. package/dist/approval/types.d.ts.map +1 -1
  48. package/dist/approval/types.js +1 -1
  49. package/dist/context/compaction/index.cjs +2 -23
  50. package/dist/context/compaction/index.d.ts +1 -7
  51. package/dist/context/compaction/index.d.ts.map +1 -1
  52. package/dist/context/compaction/index.js +1 -16
  53. package/dist/context/compaction/strategies/noop.cjs +19 -1
  54. package/dist/context/compaction/strategies/noop.d.ts +13 -3
  55. package/dist/context/compaction/strategies/noop.d.ts.map +1 -1
  56. package/dist/context/compaction/strategies/noop.js +19 -1
  57. package/dist/context/compaction/strategies/{reactive-overflow.cjs → reactive-overflow-compaction.cjs} +67 -64
  58. package/dist/context/compaction/strategies/{reactive-overflow.d.ts → reactive-overflow-compaction.d.ts} +19 -36
  59. package/dist/context/compaction/strategies/reactive-overflow-compaction.d.ts.map +1 -0
  60. package/dist/context/compaction/strategies/{reactive-overflow.js → reactive-overflow-compaction.js} +63 -60
  61. package/dist/context/compaction/types.d.ts +40 -8
  62. package/dist/context/compaction/types.d.ts.map +1 -1
  63. package/dist/context/manager.cjs +5 -3
  64. package/dist/context/manager.d.ts +4 -3
  65. package/dist/context/manager.d.ts.map +1 -1
  66. package/dist/context/manager.js +5 -3
  67. package/dist/context/types.d.ts +2 -0
  68. package/dist/context/types.d.ts.map +1 -1
  69. package/dist/context/utils.cjs +70 -43
  70. package/dist/context/utils.d.ts +14 -14
  71. package/dist/context/utils.d.ts.map +1 -1
  72. package/dist/context/utils.js +69 -42
  73. package/dist/errors/result-bridge.d.ts +2 -2
  74. package/dist/errors/result-bridge.d.ts.map +1 -1
  75. package/dist/errors/types.cjs +1 -1
  76. package/dist/errors/types.d.ts +3 -3
  77. package/dist/errors/types.d.ts.map +1 -1
  78. package/dist/errors/types.js +1 -1
  79. package/dist/events/index.cjs +15 -2
  80. package/dist/events/index.d.ts +78 -7
  81. package/dist/events/index.d.ts.map +1 -1
  82. package/dist/events/index.js +15 -2
  83. package/dist/{plugins → hooks}/builtins/content-policy.cjs +7 -6
  84. package/dist/hooks/builtins/content-policy.d.ts +24 -0
  85. package/dist/hooks/builtins/content-policy.d.ts.map +1 -0
  86. package/dist/{plugins → hooks}/builtins/content-policy.js +6 -5
  87. package/dist/{plugins → hooks}/builtins/response-sanitizer.cjs +3 -3
  88. package/dist/hooks/builtins/response-sanitizer.d.ts +22 -0
  89. package/dist/hooks/builtins/response-sanitizer.d.ts.map +1 -0
  90. package/dist/{plugins → hooks}/builtins/response-sanitizer.js +2 -2
  91. package/dist/hooks/error-codes.cjs +43 -0
  92. package/dist/hooks/error-codes.d.ts +34 -0
  93. package/dist/hooks/error-codes.d.ts.map +1 -0
  94. package/dist/hooks/error-codes.js +20 -0
  95. package/dist/{storage/cache/providers/memory.cjs → hooks/index.cjs} +15 -18
  96. package/dist/hooks/index.d.ts +14 -0
  97. package/dist/hooks/index.d.ts.map +1 -0
  98. package/dist/hooks/index.js +11 -0
  99. package/dist/hooks/manager.cjs +354 -0
  100. package/dist/hooks/manager.d.ts +103 -0
  101. package/dist/hooks/manager.d.ts.map +1 -0
  102. package/dist/hooks/manager.js +331 -0
  103. package/dist/{plugins → hooks}/types.d.ts +36 -34
  104. package/dist/hooks/types.d.ts.map +1 -0
  105. package/dist/index.browser.cjs +13 -12
  106. package/dist/index.browser.d.ts +6 -6
  107. package/dist/index.browser.d.ts.map +1 -1
  108. package/dist/index.browser.js +8 -7
  109. package/dist/index.cjs +5 -7
  110. package/dist/index.d.ts +2 -3
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +2 -3
  113. package/dist/llm/curation-config.cjs +82 -0
  114. package/dist/llm/curation-config.d.ts +13 -0
  115. package/dist/llm/curation-config.d.ts.map +1 -0
  116. package/dist/llm/curation-config.js +59 -0
  117. package/dist/llm/curation.cjs +57 -0
  118. package/dist/llm/curation.d.ts +16 -0
  119. package/dist/llm/curation.d.ts.map +1 -0
  120. package/dist/llm/curation.js +34 -0
  121. package/dist/llm/errors.cjs +2 -2
  122. package/dist/llm/errors.d.ts +8 -8
  123. package/dist/llm/errors.js +1 -1
  124. package/dist/llm/executor/provider-options.cjs +1 -1
  125. package/dist/llm/executor/provider-options.js +1 -1
  126. package/dist/llm/executor/stream-processor.cjs +131 -11
  127. package/dist/llm/executor/stream-processor.d.ts +7 -5
  128. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  129. package/dist/llm/executor/stream-processor.js +131 -11
  130. package/dist/llm/executor/turn-executor.cjs +57 -56
  131. package/dist/llm/executor/turn-executor.d.ts +7 -8
  132. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  133. package/dist/llm/executor/turn-executor.js +57 -56
  134. package/dist/llm/formatters/vercel.cjs +2 -2
  135. package/dist/llm/formatters/vercel.d.ts +2 -2
  136. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  137. package/dist/llm/index.cjs +14 -3
  138. package/dist/llm/index.d.ts +3 -1
  139. package/dist/llm/index.d.ts.map +1 -1
  140. package/dist/llm/index.js +13 -2
  141. package/dist/llm/providers/local/schemas.d.ts +10 -10
  142. package/dist/llm/registry/auto-update.cjs +263 -0
  143. package/dist/llm/registry/auto-update.d.ts +27 -0
  144. package/dist/llm/registry/auto-update.d.ts.map +1 -0
  145. package/dist/llm/registry/auto-update.js +227 -0
  146. package/dist/llm/registry/index.cjs +806 -0
  147. package/dist/llm/{registry.d.ts → registry/index.d.ts} +21 -43
  148. package/dist/llm/registry/index.d.ts.map +1 -0
  149. package/dist/llm/registry/index.js +756 -0
  150. package/dist/llm/registry/models.generated.cjs +4861 -0
  151. package/dist/llm/registry/models.generated.d.ts +431 -0
  152. package/dist/llm/registry/models.generated.d.ts.map +1 -0
  153. package/dist/llm/registry/models.generated.js +4838 -0
  154. package/dist/{storage/database/providers/index.cjs → llm/registry/models.manual.cjs} +22 -12
  155. package/dist/llm/registry/models.manual.d.ts +22 -0
  156. package/dist/llm/registry/models.manual.d.ts.map +1 -0
  157. package/dist/llm/registry/models.manual.js +21 -0
  158. package/dist/llm/registry/sync.cjs +354 -0
  159. package/dist/llm/registry/sync.d.ts +41 -0
  160. package/dist/llm/registry/sync.d.ts.map +1 -0
  161. package/dist/llm/registry/sync.js +328 -0
  162. package/dist/llm/resolver.cjs +29 -20
  163. package/dist/llm/resolver.d.ts +4 -4
  164. package/dist/llm/resolver.d.ts.map +1 -1
  165. package/dist/llm/resolver.js +28 -20
  166. package/dist/llm/schemas.cjs +69 -94
  167. package/dist/llm/schemas.d.ts +19 -158
  168. package/dist/llm/schemas.d.ts.map +1 -1
  169. package/dist/llm/schemas.js +67 -91
  170. package/dist/llm/services/factory.cjs +6 -7
  171. package/dist/llm/services/factory.d.ts +3 -4
  172. package/dist/llm/services/factory.d.ts.map +1 -1
  173. package/dist/llm/services/factory.js +6 -7
  174. package/dist/llm/services/vercel.cjs +11 -15
  175. package/dist/llm/services/vercel.d.ts +7 -7
  176. package/dist/llm/services/vercel.d.ts.map +1 -1
  177. package/dist/llm/services/vercel.js +11 -15
  178. package/dist/llm/types.cjs +1 -1
  179. package/dist/llm/types.d.ts +1 -1
  180. package/dist/llm/types.d.ts.map +1 -1
  181. package/dist/llm/types.js +1 -1
  182. package/dist/llm/validation.cjs +2 -2
  183. package/dist/llm/validation.d.ts +2 -2
  184. package/dist/llm/validation.d.ts.map +1 -1
  185. package/dist/llm/validation.js +1 -1
  186. package/dist/logger/browser.cjs +4 -4
  187. package/dist/logger/browser.d.ts +4 -4
  188. package/dist/logger/browser.d.ts.map +1 -1
  189. package/dist/logger/browser.js +3 -3
  190. package/dist/{context/compaction/providers/noop-provider.cjs → logger/default-logger-factory.cjs} +16 -22
  191. package/dist/logger/default-logger-factory.d.ts +301 -0
  192. package/dist/logger/default-logger-factory.d.ts.map +1 -0
  193. package/dist/logger/default-logger-factory.js +18 -0
  194. package/dist/logger/factory.d.ts +2 -2
  195. package/dist/logger/factory.d.ts.map +1 -1
  196. package/dist/logger/index.cjs +7 -2
  197. package/dist/logger/index.d.ts +5 -3
  198. package/dist/logger/index.d.ts.map +1 -1
  199. package/dist/logger/index.js +8 -2
  200. package/dist/logger/logger.cjs +4 -4
  201. package/dist/logger/logger.d.ts +4 -4
  202. package/dist/logger/logger.d.ts.map +1 -1
  203. package/dist/logger/logger.js +3 -3
  204. package/dist/logger/v2/dexto-logger.d.ts +3 -3
  205. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  206. package/dist/logger/v2/schemas.d.ts +12 -12
  207. package/dist/logger/v2/test-utils.d.ts +5 -5
  208. package/dist/logger/v2/test-utils.d.ts.map +1 -1
  209. package/dist/logger/v2/transport-factory.d.ts +3 -3
  210. package/dist/logger/v2/transport-factory.d.ts.map +1 -1
  211. package/dist/logger/v2/transports/console-transport.d.ts +2 -2
  212. package/dist/logger/v2/transports/console-transport.d.ts.map +1 -1
  213. package/dist/logger/v2/transports/file-transport.d.ts +2 -2
  214. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  215. package/dist/logger/v2/transports/silent-transport.d.ts +2 -2
  216. package/dist/logger/v2/transports/silent-transport.d.ts.map +1 -1
  217. package/dist/logger/v2/types.cjs +1 -1
  218. package/dist/logger/v2/types.d.ts +8 -8
  219. package/dist/logger/v2/types.d.ts.map +1 -1
  220. package/dist/logger/v2/types.js +1 -1
  221. package/dist/mcp/errors.cjs +2 -2
  222. package/dist/mcp/errors.d.ts.map +1 -1
  223. package/dist/mcp/manager.cjs +16 -11
  224. package/dist/mcp/manager.d.ts +16 -13
  225. package/dist/mcp/manager.d.ts.map +1 -1
  226. package/dist/mcp/manager.js +17 -12
  227. package/dist/mcp/mcp-client.cjs +25 -20
  228. package/dist/mcp/mcp-client.d.ts +5 -5
  229. package/dist/mcp/mcp-client.d.ts.map +1 -1
  230. package/dist/mcp/mcp-client.js +20 -15
  231. package/dist/mcp/resolver.cjs +1 -1
  232. package/dist/mcp/schemas.cjs +5 -5
  233. package/dist/mcp/schemas.d.ts +4 -4
  234. package/dist/mcp/schemas.js +2 -2
  235. package/dist/mcp/types.d.ts +7 -7
  236. package/dist/mcp/types.d.ts.map +1 -1
  237. package/dist/memory/manager.d.ts +2 -2
  238. package/dist/memory/manager.d.ts.map +1 -1
  239. package/dist/memory/schemas.d.ts +2 -2
  240. package/dist/prompts/errors.cjs +3 -3
  241. package/dist/prompts/errors.d.ts.map +1 -1
  242. package/dist/prompts/prompt-manager.d.ts +3 -3
  243. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  244. package/dist/prompts/providers/config-prompt-provider.cjs +15 -29
  245. package/dist/prompts/providers/config-prompt-provider.d.ts +3 -3
  246. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  247. package/dist/prompts/providers/config-prompt-provider.js +15 -29
  248. package/dist/prompts/providers/custom-prompt-provider.d.ts +2 -2
  249. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  250. package/dist/prompts/providers/mcp-prompt-provider.d.ts +2 -2
  251. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  252. package/dist/prompts/schemas.d.ts +4 -4
  253. package/dist/resources/{internal-provider.cjs → agent-resources-provider.cjs} +16 -16
  254. package/dist/resources/{internal-provider.d.ts → agent-resources-provider.d.ts} +6 -6
  255. package/dist/resources/agent-resources-provider.d.ts.map +1 -0
  256. package/dist/resources/{internal-provider.js → agent-resources-provider.js} +13 -13
  257. package/dist/resources/errors.cjs +2 -2
  258. package/dist/resources/errors.d.ts.map +1 -1
  259. package/dist/resources/handlers/blob-handler.d.ts +2 -2
  260. package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
  261. package/dist/resources/handlers/factory.d.ts +3 -3
  262. package/dist/resources/handlers/factory.d.ts.map +1 -1
  263. package/dist/resources/handlers/filesystem-handler.cjs +25 -0
  264. package/dist/resources/handlers/filesystem-handler.d.ts +3 -2
  265. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  266. package/dist/resources/handlers/filesystem-handler.js +25 -0
  267. package/dist/resources/index.cjs +7 -9
  268. package/dist/resources/index.d.ts +3 -3
  269. package/dist/resources/index.d.ts.map +1 -1
  270. package/dist/resources/index.js +5 -10
  271. package/dist/resources/manager.cjs +77 -74
  272. package/dist/resources/manager.d.ts +16 -7
  273. package/dist/resources/manager.d.ts.map +1 -1
  274. package/dist/resources/manager.js +77 -74
  275. package/dist/resources/schemas.cjs +6 -26
  276. package/dist/resources/schemas.d.ts +8 -100
  277. package/dist/resources/schemas.d.ts.map +1 -1
  278. package/dist/resources/schemas.js +4 -23
  279. package/dist/search/search-service.d.ts +2 -2
  280. package/dist/search/search-service.d.ts.map +1 -1
  281. package/dist/session/chat-session.cjs +16 -26
  282. package/dist/session/chat-session.d.ts +7 -5
  283. package/dist/session/chat-session.d.ts.map +1 -1
  284. package/dist/session/chat-session.js +17 -27
  285. package/dist/session/errors.cjs +2 -2
  286. package/dist/session/errors.d.ts.map +1 -1
  287. package/dist/session/history/database.cjs +1 -1
  288. package/dist/session/history/database.d.ts +4 -4
  289. package/dist/session/history/database.d.ts.map +1 -1
  290. package/dist/session/history/factory.d.ts +3 -3
  291. package/dist/session/history/factory.d.ts.map +1 -1
  292. package/dist/session/history/memory.d.ts +4 -4
  293. package/dist/session/history/memory.d.ts.map +1 -1
  294. package/dist/session/history/types.d.ts +2 -2
  295. package/dist/session/history/types.d.ts.map +1 -1
  296. package/dist/session/index.cjs +3 -0
  297. package/dist/session/index.d.ts +2 -0
  298. package/dist/session/index.d.ts.map +1 -1
  299. package/dist/session/index.js +2 -0
  300. package/dist/session/message-queue.cjs +29 -5
  301. package/dist/session/message-queue.d.ts +5 -3
  302. package/dist/session/message-queue.d.ts.map +1 -1
  303. package/dist/session/message-queue.js +29 -5
  304. package/dist/session/session-manager.cjs +107 -12
  305. package/dist/session/session-manager.d.ts +49 -8
  306. package/dist/session/session-manager.d.ts.map +1 -1
  307. package/dist/session/session-manager.js +97 -12
  308. package/dist/session/title-generator.cjs +2 -2
  309. package/dist/session/title-generator.d.ts +2 -2
  310. package/dist/session/title-generator.d.ts.map +1 -1
  311. package/dist/session/types.d.ts +1 -0
  312. package/dist/session/types.d.ts.map +1 -1
  313. package/dist/storage/blob/index.cjs +0 -40
  314. package/dist/storage/blob/index.d.ts +2 -44
  315. package/dist/storage/blob/index.d.ts.map +1 -1
  316. package/dist/storage/blob/index.js +0 -30
  317. package/dist/storage/cache/index.cjs +0 -37
  318. package/dist/storage/cache/index.d.ts +0 -42
  319. package/dist/storage/cache/index.d.ts.map +1 -1
  320. package/dist/storage/cache/index.js +0 -28
  321. package/dist/storage/database/index.cjs +0 -42
  322. package/dist/storage/database/index.d.ts +0 -43
  323. package/dist/storage/database/index.d.ts.map +1 -1
  324. package/dist/storage/database/index.js +0 -37
  325. package/dist/storage/error-codes.cjs +1 -6
  326. package/dist/storage/error-codes.d.ts +2 -7
  327. package/dist/storage/error-codes.d.ts.map +1 -1
  328. package/dist/storage/error-codes.js +1 -6
  329. package/dist/storage/errors.cjs +18 -82
  330. package/dist/storage/errors.d.ts +4 -24
  331. package/dist/storage/errors.d.ts.map +1 -1
  332. package/dist/storage/errors.js +16 -80
  333. package/dist/storage/index.cjs +8 -69
  334. package/dist/storage/index.d.ts +11 -66
  335. package/dist/storage/index.d.ts.map +1 -1
  336. package/dist/storage/index.js +6 -50
  337. package/dist/storage/storage-manager.cjs +9 -25
  338. package/dist/storage/storage-manager.d.ts +11 -15
  339. package/dist/storage/storage-manager.d.ts.map +1 -1
  340. package/dist/storage/storage-manager.js +8 -23
  341. package/dist/storage/types.d.ts +0 -1
  342. package/dist/storage/types.d.ts.map +1 -1
  343. package/dist/systemPrompt/contributors.d.ts +4 -4
  344. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  345. package/dist/systemPrompt/errors.cjs +2 -2
  346. package/dist/systemPrompt/errors.d.ts.map +1 -1
  347. package/dist/systemPrompt/manager.cjs +1 -5
  348. package/dist/systemPrompt/manager.d.ts +2 -3
  349. package/dist/systemPrompt/manager.d.ts.map +1 -1
  350. package/dist/systemPrompt/manager.js +1 -5
  351. package/dist/telemetry/index.cjs +3 -0
  352. package/dist/telemetry/index.d.ts +2 -0
  353. package/dist/telemetry/index.d.ts.map +1 -1
  354. package/dist/telemetry/index.js +2 -0
  355. package/dist/telemetry/utils.d.ts +4 -4
  356. package/dist/telemetry/utils.d.ts.map +1 -1
  357. package/dist/test-utils/in-memory-storage.cjs +288 -0
  358. package/dist/test-utils/in-memory-storage.js +252 -0
  359. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +3 -3
  360. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
  361. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +2 -2
  362. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -1
  363. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +4 -4
  364. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
  365. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -2
  366. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -1
  367. package/dist/tools/{internal-tools/constants.cjs → define-tool.cjs} +8 -13
  368. package/dist/tools/define-tool.d.ts +11 -0
  369. package/dist/tools/define-tool.d.ts.map +1 -0
  370. package/dist/tools/define-tool.js +7 -0
  371. package/dist/tools/error-codes.cjs +2 -2
  372. package/dist/tools/error-codes.d.ts +2 -2
  373. package/dist/tools/error-codes.d.ts.map +1 -1
  374. package/dist/tools/error-codes.js +2 -2
  375. package/dist/tools/errors.cjs +11 -23
  376. package/dist/tools/errors.d.ts +4 -10
  377. package/dist/tools/errors.d.ts.map +1 -1
  378. package/dist/tools/errors.js +9 -21
  379. package/dist/tools/index.cjs +3 -8
  380. package/dist/tools/index.d.ts +2 -4
  381. package/dist/tools/index.d.ts.map +1 -1
  382. package/dist/tools/index.js +2 -7
  383. package/dist/{storage/blob/providers/index.cjs → tools/pattern-utils.cjs} +11 -9
  384. package/dist/tools/pattern-utils.d.ts +20 -0
  385. package/dist/tools/pattern-utils.d.ts.map +1 -0
  386. package/dist/tools/pattern-utils.js +10 -0
  387. package/dist/tools/schemas.cjs +14 -40
  388. package/dist/tools/schemas.d.ts +6 -50
  389. package/dist/tools/schemas.d.ts.map +1 -1
  390. package/dist/tools/schemas.js +11 -32
  391. package/dist/tools/tool-call-metadata.cjs +75 -0
  392. package/dist/tools/tool-call-metadata.d.ts +16 -0
  393. package/dist/tools/tool-call-metadata.d.ts.map +1 -0
  394. package/dist/tools/tool-call-metadata.js +51 -0
  395. package/dist/tools/tool-manager.cjs +578 -302
  396. package/dist/tools/tool-manager.d.ts +105 -81
  397. package/dist/tools/tool-manager.d.ts.map +1 -1
  398. package/dist/tools/tool-manager.js +578 -306
  399. package/dist/tools/types.d.ts +112 -13
  400. package/dist/tools/types.d.ts.map +1 -1
  401. package/dist/utils/api-key-resolver.cjs +1 -1
  402. package/dist/utils/api-key-resolver.js +1 -1
  403. package/dist/utils/env.cjs +49 -0
  404. package/dist/utils/env.d.ts +4 -0
  405. package/dist/utils/env.d.ts.map +1 -0
  406. package/dist/utils/env.js +24 -0
  407. package/dist/utils/error-conversion.d.ts +2 -2
  408. package/dist/utils/error-conversion.d.ts.map +1 -1
  409. package/dist/utils/index.cjs +3 -1
  410. package/dist/utils/index.d.ts +1 -0
  411. package/dist/utils/index.d.ts.map +1 -1
  412. package/dist/utils/index.js +1 -0
  413. package/dist/utils/path.d.ts +2 -2
  414. package/dist/utils/path.d.ts.map +1 -1
  415. package/dist/utils/result.cjs +1 -1
  416. package/dist/utils/result.d.ts.map +1 -1
  417. package/dist/utils/schema.cjs +9 -5
  418. package/dist/utils/schema.d.ts +4 -2
  419. package/dist/utils/schema.d.ts.map +1 -1
  420. package/dist/utils/schema.js +9 -5
  421. package/dist/utils/service-initializer.cjs +58 -51
  422. package/dist/utils/service-initializer.d.ts +31 -9
  423. package/dist/utils/service-initializer.d.ts.map +1 -1
  424. package/dist/utils/service-initializer.js +58 -51
  425. package/dist/{storage/cache/providers/index.cjs → workspace/error-codes.cjs} +8 -9
  426. package/dist/workspace/error-codes.d.ts +5 -0
  427. package/dist/workspace/error-codes.d.ts.map +1 -0
  428. package/dist/workspace/error-codes.js +7 -0
  429. package/dist/{storage/blob/factory.cjs → workspace/errors.cjs} +20 -14
  430. package/dist/workspace/errors.d.ts +5 -0
  431. package/dist/workspace/errors.d.ts.map +1 -0
  432. package/dist/workspace/errors.js +21 -0
  433. package/dist/{image → workspace}/index.cjs +12 -10
  434. package/dist/workspace/index.d.ts +5 -0
  435. package/dist/workspace/index.d.ts.map +1 -0
  436. package/dist/workspace/index.js +9 -0
  437. package/dist/workspace/manager.cjs +113 -0
  438. package/dist/workspace/manager.d.ts +18 -0
  439. package/dist/workspace/manager.d.ts.map +1 -0
  440. package/dist/workspace/manager.js +90 -0
  441. package/dist/workspace/types.d.ts +14 -0
  442. package/dist/workspace/types.d.ts.map +1 -0
  443. package/package.json +7 -3
  444. package/dist/context/compaction/factory.cjs +0 -57
  445. package/dist/context/compaction/factory.d.ts +0 -17
  446. package/dist/context/compaction/factory.d.ts.map +0 -1
  447. package/dist/context/compaction/factory.js +0 -34
  448. package/dist/context/compaction/provider.d.ts +0 -48
  449. package/dist/context/compaction/provider.d.ts.map +0 -1
  450. package/dist/context/compaction/providers/noop-provider.d.ts +0 -24
  451. package/dist/context/compaction/providers/noop-provider.d.ts.map +0 -1
  452. package/dist/context/compaction/providers/noop-provider.js +0 -24
  453. package/dist/context/compaction/providers/reactive-overflow-provider.cjs +0 -76
  454. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +0 -51
  455. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +0 -1
  456. package/dist/context/compaction/providers/reactive-overflow-provider.js +0 -52
  457. package/dist/context/compaction/registry.cjs +0 -39
  458. package/dist/context/compaction/registry.d.ts +0 -19
  459. package/dist/context/compaction/registry.d.ts.map +0 -1
  460. package/dist/context/compaction/registry.js +0 -16
  461. package/dist/context/compaction/schemas.cjs +0 -58
  462. package/dist/context/compaction/schemas.d.ts +0 -69
  463. package/dist/context/compaction/schemas.d.ts.map +0 -1
  464. package/dist/context/compaction/schemas.js +0 -34
  465. package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +0 -1
  466. package/dist/image/define-image.cjs +0 -146
  467. package/dist/image/define-image.d.ts +0 -71
  468. package/dist/image/define-image.d.ts.map +0 -1
  469. package/dist/image/define-image.js +0 -121
  470. package/dist/image/index.d.ts +0 -53
  471. package/dist/image/index.d.ts.map +0 -1
  472. package/dist/image/index.js +0 -7
  473. package/dist/image/types.d.ts +0 -246
  474. package/dist/image/types.d.ts.map +0 -1
  475. package/dist/llm/registry.cjs +0 -2075
  476. package/dist/llm/registry.d.ts.map +0 -1
  477. package/dist/llm/registry.js +0 -2025
  478. package/dist/llm/services/test-utils.integration.cjs +0 -237
  479. package/dist/llm/services/test-utils.integration.d.ts +0 -48
  480. package/dist/llm/services/test-utils.integration.d.ts.map +0 -1
  481. package/dist/llm/services/test-utils.integration.js +0 -214
  482. package/dist/plugins/builtins/content-policy.d.ts +0 -26
  483. package/dist/plugins/builtins/content-policy.d.ts.map +0 -1
  484. package/dist/plugins/builtins/response-sanitizer.d.ts +0 -25
  485. package/dist/plugins/builtins/response-sanitizer.d.ts.map +0 -1
  486. package/dist/plugins/error-codes.cjs +0 -43
  487. package/dist/plugins/error-codes.d.ts +0 -34
  488. package/dist/plugins/error-codes.d.ts.map +0 -1
  489. package/dist/plugins/error-codes.js +0 -20
  490. package/dist/plugins/index.cjs +0 -61
  491. package/dist/plugins/index.d.ts +0 -21
  492. package/dist/plugins/index.d.ts.map +0 -1
  493. package/dist/plugins/index.js +0 -30
  494. package/dist/plugins/loader.cjs +0 -171
  495. package/dist/plugins/loader.d.ts +0 -30
  496. package/dist/plugins/loader.d.ts.map +0 -1
  497. package/dist/plugins/loader.js +0 -145
  498. package/dist/plugins/manager.cjs +0 -473
  499. package/dist/plugins/manager.d.ts +0 -106
  500. package/dist/plugins/manager.d.ts.map +0 -1
  501. package/dist/plugins/manager.js +0 -450
  502. package/dist/plugins/registrations/builtins.cjs +0 -51
  503. package/dist/plugins/registrations/builtins.d.ts +0 -17
  504. package/dist/plugins/registrations/builtins.d.ts.map +0 -1
  505. package/dist/plugins/registrations/builtins.js +0 -28
  506. package/dist/plugins/registry.cjs +0 -63
  507. package/dist/plugins/registry.d.ts +0 -101
  508. package/dist/plugins/registry.d.ts.map +0 -1
  509. package/dist/plugins/registry.js +0 -39
  510. package/dist/plugins/schemas.cjs +0 -73
  511. package/dist/plugins/schemas.d.ts +0 -195
  512. package/dist/plugins/schemas.d.ts.map +0 -1
  513. package/dist/plugins/schemas.js +0 -47
  514. package/dist/plugins/types.d.ts.map +0 -1
  515. package/dist/providers/base-registry.cjs +0 -147
  516. package/dist/providers/base-registry.d.ts +0 -147
  517. package/dist/providers/base-registry.d.ts.map +0 -1
  518. package/dist/providers/base-registry.js +0 -123
  519. package/dist/providers/discovery.cjs +0 -109
  520. package/dist/providers/discovery.d.ts +0 -96
  521. package/dist/providers/discovery.d.ts.map +0 -1
  522. package/dist/providers/discovery.js +0 -84
  523. package/dist/providers/index.cjs +0 -24
  524. package/dist/providers/index.d.ts +0 -32
  525. package/dist/providers/index.d.ts.map +0 -1
  526. package/dist/providers/index.js +0 -2
  527. package/dist/resources/internal-provider.d.ts.map +0 -1
  528. package/dist/storage/blob/factory.d.ts +0 -37
  529. package/dist/storage/blob/factory.d.ts.map +0 -1
  530. package/dist/storage/blob/factory.js +0 -15
  531. package/dist/storage/blob/local-blob-store.cjs +0 -496
  532. package/dist/storage/blob/local-blob-store.d.ts +0 -58
  533. package/dist/storage/blob/local-blob-store.d.ts.map +0 -1
  534. package/dist/storage/blob/local-blob-store.js +0 -463
  535. package/dist/storage/blob/memory-blob-store.cjs +0 -326
  536. package/dist/storage/blob/memory-blob-store.d.ts +0 -66
  537. package/dist/storage/blob/memory-blob-store.d.ts.map +0 -1
  538. package/dist/storage/blob/memory-blob-store.js +0 -303
  539. package/dist/storage/blob/provider.d.ts +0 -50
  540. package/dist/storage/blob/provider.d.ts.map +0 -1
  541. package/dist/storage/blob/providers/index.d.ts +0 -8
  542. package/dist/storage/blob/providers/index.d.ts.map +0 -1
  543. package/dist/storage/blob/providers/index.js +0 -7
  544. package/dist/storage/blob/providers/local.cjs +0 -39
  545. package/dist/storage/blob/providers/local.d.ts +0 -17
  546. package/dist/storage/blob/providers/local.d.ts.map +0 -1
  547. package/dist/storage/blob/providers/local.js +0 -16
  548. package/dist/storage/blob/providers/memory.cjs +0 -39
  549. package/dist/storage/blob/providers/memory.d.ts +0 -17
  550. package/dist/storage/blob/providers/memory.d.ts.map +0 -1
  551. package/dist/storage/blob/providers/memory.js +0 -16
  552. package/dist/storage/blob/registry.cjs +0 -50
  553. package/dist/storage/blob/registry.d.ts +0 -42
  554. package/dist/storage/blob/registry.d.ts.map +0 -1
  555. package/dist/storage/blob/registry.js +0 -26
  556. package/dist/storage/blob/schemas.cjs +0 -52
  557. package/dist/storage/blob/schemas.d.ts +0 -85
  558. package/dist/storage/blob/schemas.d.ts.map +0 -1
  559. package/dist/storage/blob/schemas.js +0 -26
  560. package/dist/storage/cache/factory.cjs +0 -38
  561. package/dist/storage/cache/factory.d.ts +0 -37
  562. package/dist/storage/cache/factory.d.ts.map +0 -1
  563. package/dist/storage/cache/factory.js +0 -15
  564. package/dist/storage/cache/memory-cache-store.cjs +0 -107
  565. package/dist/storage/cache/memory-cache-store.d.ts +0 -26
  566. package/dist/storage/cache/memory-cache-store.d.ts.map +0 -1
  567. package/dist/storage/cache/memory-cache-store.js +0 -84
  568. package/dist/storage/cache/provider.cjs +0 -16
  569. package/dist/storage/cache/provider.d.ts +0 -56
  570. package/dist/storage/cache/provider.d.ts.map +0 -1
  571. package/dist/storage/cache/provider.js +0 -0
  572. package/dist/storage/cache/providers/index.d.ts +0 -8
  573. package/dist/storage/cache/providers/index.d.ts.map +0 -1
  574. package/dist/storage/cache/providers/index.js +0 -7
  575. package/dist/storage/cache/providers/memory.d.ts +0 -17
  576. package/dist/storage/cache/providers/memory.d.ts.map +0 -1
  577. package/dist/storage/cache/providers/memory.js +0 -17
  578. package/dist/storage/cache/providers/redis.cjs +0 -66
  579. package/dist/storage/cache/providers/redis.d.ts +0 -20
  580. package/dist/storage/cache/providers/redis.d.ts.map +0 -1
  581. package/dist/storage/cache/providers/redis.js +0 -33
  582. package/dist/storage/cache/redis-store.cjs +0 -173
  583. package/dist/storage/cache/redis-store.d.ts +0 -32
  584. package/dist/storage/cache/redis-store.d.ts.map +0 -1
  585. package/dist/storage/cache/redis-store.js +0 -150
  586. package/dist/storage/cache/registry.cjs +0 -50
  587. package/dist/storage/cache/registry.d.ts +0 -42
  588. package/dist/storage/cache/registry.d.ts.map +0 -1
  589. package/dist/storage/cache/registry.js +0 -26
  590. package/dist/storage/cache/schemas.cjs +0 -81
  591. package/dist/storage/cache/schemas.d.ts +0 -150
  592. package/dist/storage/cache/schemas.d.ts.map +0 -1
  593. package/dist/storage/cache/schemas.js +0 -55
  594. package/dist/storage/database/factory.cjs +0 -38
  595. package/dist/storage/database/factory.d.ts +0 -39
  596. package/dist/storage/database/factory.d.ts.map +0 -1
  597. package/dist/storage/database/factory.js +0 -15
  598. package/dist/storage/database/memory-database-store.cjs +0 -122
  599. package/dist/storage/database/memory-database-store.d.ts +0 -29
  600. package/dist/storage/database/memory-database-store.d.ts.map +0 -1
  601. package/dist/storage/database/memory-database-store.js +0 -99
  602. package/dist/storage/database/postgres-store.cjs +0 -342
  603. package/dist/storage/database/postgres-store.d.ts +0 -55
  604. package/dist/storage/database/postgres-store.d.ts.map +0 -1
  605. package/dist/storage/database/postgres-store.js +0 -319
  606. package/dist/storage/database/provider.cjs +0 -16
  607. package/dist/storage/database/provider.d.ts +0 -56
  608. package/dist/storage/database/provider.d.ts.map +0 -1
  609. package/dist/storage/database/provider.js +0 -0
  610. package/dist/storage/database/providers/index.d.ts +0 -9
  611. package/dist/storage/database/providers/index.d.ts.map +0 -1
  612. package/dist/storage/database/providers/index.js +0 -9
  613. package/dist/storage/database/providers/memory.cjs +0 -40
  614. package/dist/storage/database/providers/memory.d.ts +0 -16
  615. package/dist/storage/database/providers/memory.d.ts.map +0 -1
  616. package/dist/storage/database/providers/memory.js +0 -17
  617. package/dist/storage/database/providers/postgres.cjs +0 -62
  618. package/dist/storage/database/providers/postgres.d.ts +0 -19
  619. package/dist/storage/database/providers/postgres.d.ts.map +0 -1
  620. package/dist/storage/database/providers/postgres.js +0 -29
  621. package/dist/storage/database/providers/sqlite.cjs +0 -66
  622. package/dist/storage/database/providers/sqlite.d.ts +0 -20
  623. package/dist/storage/database/providers/sqlite.d.ts.map +0 -1
  624. package/dist/storage/database/providers/sqlite.js +0 -33
  625. package/dist/storage/database/registry.cjs +0 -50
  626. package/dist/storage/database/registry.d.ts +0 -42
  627. package/dist/storage/database/registry.d.ts.map +0 -1
  628. package/dist/storage/database/registry.js +0 -26
  629. package/dist/storage/database/schemas.cjs +0 -97
  630. package/dist/storage/database/schemas.d.ts +0 -226
  631. package/dist/storage/database/schemas.d.ts.map +0 -1
  632. package/dist/storage/database/schemas.js +0 -70
  633. package/dist/storage/database/sqlite-store.cjs +0 -270
  634. package/dist/storage/database/sqlite-store.d.ts +0 -33
  635. package/dist/storage/database/sqlite-store.d.ts.map +0 -1
  636. package/dist/storage/database/sqlite-store.js +0 -237
  637. package/dist/storage/schemas.cjs +0 -57
  638. package/dist/storage/schemas.d.ts +0 -347
  639. package/dist/storage/schemas.d.ts.map +0 -1
  640. package/dist/storage/schemas.js +0 -37
  641. package/dist/tools/bash-pattern-utils.cjs +0 -91
  642. package/dist/tools/bash-pattern-utils.d.ts +0 -58
  643. package/dist/tools/bash-pattern-utils.d.ts.map +0 -1
  644. package/dist/tools/bash-pattern-utils.js +0 -64
  645. package/dist/tools/custom-tool-registry.cjs +0 -64
  646. package/dist/tools/custom-tool-registry.d.ts +0 -126
  647. package/dist/tools/custom-tool-registry.d.ts.map +0 -1
  648. package/dist/tools/custom-tool-registry.js +0 -40
  649. package/dist/tools/custom-tool-schema-registry.cjs +0 -164
  650. package/dist/tools/custom-tool-schema-registry.d.ts +0 -86
  651. package/dist/tools/custom-tool-schema-registry.d.ts.map +0 -1
  652. package/dist/tools/custom-tool-schema-registry.js +0 -140
  653. package/dist/tools/internal-tools/constants.d.ts +0 -12
  654. package/dist/tools/internal-tools/constants.d.ts.map +0 -1
  655. package/dist/tools/internal-tools/constants.js +0 -12
  656. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +0 -57
  657. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +0 -18
  658. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +0 -1
  659. package/dist/tools/internal-tools/implementations/ask-user-tool.js +0 -34
  660. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +0 -192
  661. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +0 -33
  662. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +0 -1
  663. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +0 -169
  664. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +0 -113
  665. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +0 -30
  666. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +0 -1
  667. package/dist/tools/internal-tools/implementations/get-resource-tool.js +0 -90
  668. package/dist/tools/internal-tools/implementations/invoke-skill-tool.cjs +0 -140
  669. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts +0 -24
  670. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts.map +0 -1
  671. package/dist/tools/internal-tools/implementations/invoke-skill-tool.js +0 -117
  672. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +0 -91
  673. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +0 -24
  674. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +0 -1
  675. package/dist/tools/internal-tools/implementations/list-resources-tool.js +0 -68
  676. package/dist/tools/internal-tools/implementations/search-history-tool.cjs +0 -61
  677. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +0 -7
  678. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +0 -1
  679. package/dist/tools/internal-tools/implementations/search-history-tool.js +0 -38
  680. package/dist/tools/internal-tools/index.cjs +0 -26
  681. package/dist/tools/internal-tools/index.d.ts +0 -4
  682. package/dist/tools/internal-tools/index.d.ts.map +0 -1
  683. package/dist/tools/internal-tools/index.js +0 -3
  684. package/dist/tools/internal-tools/provider.cjs +0 -324
  685. package/dist/tools/internal-tools/provider.d.ts +0 -114
  686. package/dist/tools/internal-tools/provider.d.ts.map +0 -1
  687. package/dist/tools/internal-tools/provider.js +0 -301
  688. package/dist/tools/internal-tools/registry.cjs +0 -71
  689. package/dist/tools/internal-tools/registry.d.ts +0 -91
  690. package/dist/tools/internal-tools/registry.d.ts.map +0 -1
  691. package/dist/tools/internal-tools/registry.js +0 -47
  692. /package/dist/{context/compaction/provider.js → agent/agent-options.js} +0 -0
  693. /package/dist/{image/types.js → agent/runtime-config.js} +0 -0
  694. /package/dist/{image → hooks}/types.cjs +0 -0
  695. /package/dist/{plugins → hooks}/types.js +0 -0
  696. /package/dist/{plugins → workspace}/types.cjs +0 -0
  697. /package/dist/{storage/blob/provider.js → workspace/types.js} +0 -0
@@ -0,0 +1,328 @@
1
+ import "../../chunk-PTJYTZNU.js";
2
+ import { DextoValidationError } from "../../errors/DextoValidationError.js";
3
+ import { DextoRuntimeError } from "../../errors/DextoRuntimeError.js";
4
+ import { ErrorScope, ErrorType } from "../../errors/types.js";
5
+ const MODELS_DEV_URL = "https://models.dev/api.json";
6
+ function isRecord(value) {
7
+ return typeof value === "object" && value !== null && !Array.isArray(value);
8
+ }
9
+ function makeIssue(message, path) {
10
+ return {
11
+ code: "llm_registry_models_dev_parse",
12
+ message,
13
+ scope: ErrorScope.LLM,
14
+ type: ErrorType.USER,
15
+ severity: "error",
16
+ ...path ? { path } : {}
17
+ };
18
+ }
19
+ function requireRecord(value, label) {
20
+ if (!isRecord(value))
21
+ throw new DextoValidationError([makeIssue(`Expected ${label} to be an object`)]);
22
+ return value;
23
+ }
24
+ function requireString(value, label) {
25
+ if (typeof value !== "string")
26
+ throw new DextoValidationError([makeIssue(`Expected ${label} to be a string`)]);
27
+ return value;
28
+ }
29
+ function requireNumber(value, label) {
30
+ if (typeof value !== "number" || Number.isNaN(value)) {
31
+ throw new DextoValidationError([makeIssue(`Expected ${label} to be a number`)]);
32
+ }
33
+ return value;
34
+ }
35
+ function parseModelsDevApi(json) {
36
+ const root = requireRecord(json, "models.dev api.json root");
37
+ const api = {};
38
+ function parseModalitiesArray(value) {
39
+ if (!Array.isArray(value)) return [];
40
+ const result = [];
41
+ for (const item of value) {
42
+ if (item === "text" || item === "audio" || item === "image" || item === "video" || item === "pdf") {
43
+ result.push(item);
44
+ }
45
+ }
46
+ return result;
47
+ }
48
+ for (const [providerId, providerValue] of Object.entries(root)) {
49
+ if (!isRecord(providerValue)) continue;
50
+ const provider = providerValue;
51
+ const models = requireRecord(provider.models, `models.dev provider '${providerId}'.models`);
52
+ const parsedProvider = {
53
+ id: requireString(provider.id ?? providerId, `models.dev provider '${providerId}'.id`),
54
+ name: requireString(
55
+ provider.name ?? providerId,
56
+ `models.dev provider '${providerId}'.name`
57
+ ),
58
+ models: {}
59
+ };
60
+ for (const [modelId, modelValue] of Object.entries(models)) {
61
+ if (!isRecord(modelValue)) continue;
62
+ const m = modelValue;
63
+ const limit = requireRecord(
64
+ m.limit,
65
+ `models.dev model '${providerId}/${modelId}'.limit`
66
+ );
67
+ const parsedModel = {
68
+ id: requireString(
69
+ m.id ?? modelId,
70
+ `models.dev model '${providerId}/${modelId}'.id`
71
+ ),
72
+ name: requireString(
73
+ m.name ?? modelId,
74
+ `models.dev model '${providerId}/${modelId}'.name`
75
+ ),
76
+ attachment: Boolean(m.attachment),
77
+ limit: {
78
+ context: requireNumber(
79
+ limit.context,
80
+ `models.dev model '${providerId}/${modelId}'.limit.context`
81
+ ),
82
+ ...typeof limit.input === "number" ? { input: limit.input } : {},
83
+ ...typeof limit.output === "number" ? { output: limit.output } : {}
84
+ },
85
+ modalities: isRecord(m.modalities) ? {
86
+ input: parseModalitiesArray(m.modalities.input),
87
+ output: parseModalitiesArray(m.modalities.output)
88
+ } : void 0,
89
+ cost: isRecord(m.cost) && typeof m.cost.input === "number" && typeof m.cost.output === "number" ? {
90
+ input: m.cost.input,
91
+ output: m.cost.output,
92
+ ...typeof m.cost.cache_read === "number" ? { cache_read: m.cost.cache_read } : {},
93
+ ...typeof m.cost.cache_write === "number" ? { cache_write: m.cost.cache_write } : {},
94
+ ...m.cost.context_over_200k != null ? { context_over_200k: m.cost.context_over_200k } : {}
95
+ } : void 0
96
+ };
97
+ parsedProvider.models[modelId] = parsedModel;
98
+ }
99
+ api[providerId] = parsedProvider;
100
+ }
101
+ return api;
102
+ }
103
+ function getSupportedFileTypesFromModel(provider, model) {
104
+ const inputModalities = model.modalities?.input ?? [];
105
+ const fileTypes = [];
106
+ if (inputModalities.includes("pdf")) fileTypes.push("pdf");
107
+ if (inputModalities.includes("image")) fileTypes.push("image");
108
+ if (inputModalities.includes("audio")) fileTypes.push("audio");
109
+ if (provider === "openai" && model.attachment === true && inputModalities.includes("image")) {
110
+ if (!fileTypes.includes("pdf")) fileTypes.unshift("pdf");
111
+ }
112
+ return fileTypes;
113
+ }
114
+ function getPricing(model) {
115
+ if (!model.cost) return void 0;
116
+ return {
117
+ inputPerM: model.cost.input,
118
+ outputPerM: model.cost.output,
119
+ ...typeof model.cost.cache_read === "number" ? { cacheReadPerM: model.cost.cache_read } : {},
120
+ ...typeof model.cost.cache_write === "number" ? { cacheWritePerM: model.cost.cache_write } : {},
121
+ currency: "USD",
122
+ unit: "per_million_tokens"
123
+ };
124
+ }
125
+ function modelToModelInfo(provider, model, options) {
126
+ const pricing = getPricing(model);
127
+ return {
128
+ name: model.id,
129
+ displayName: model.name,
130
+ maxInputTokens: model.limit.input ?? model.limit.context,
131
+ supportedFileTypes: getSupportedFileTypesFromModel(provider, model),
132
+ ...pricing ? { pricing } : {},
133
+ ...options.defaultModelId === model.id ? { default: true } : {}
134
+ };
135
+ }
136
+ function buildModelsFromModelsDevProvider(params) {
137
+ const { spec, modelsDevApi } = params;
138
+ const modelsDevProvider = modelsDevApi[spec.modelsDevProviderId];
139
+ if (!modelsDevProvider) {
140
+ throw new DextoRuntimeError(
141
+ "llm_registry_models_dev_provider_missing",
142
+ ErrorScope.LLM,
143
+ ErrorType.THIRD_PARTY,
144
+ `models.dev provider '${spec.modelsDevProviderId}' not found (needed for dexto-nova provider '${spec.provider}')`,
145
+ { modelsDevProviderId: spec.modelsDevProviderId, provider: spec.provider }
146
+ );
147
+ }
148
+ const results = [];
149
+ for (const [modelId, model] of Object.entries(modelsDevProvider.models)) {
150
+ if (!spec.includeModelId(modelId)) continue;
151
+ const options = {
152
+ ...spec.defaultModelId ? { defaultModelId: spec.defaultModelId } : {}
153
+ };
154
+ results.push(modelToModelInfo(spec.provider, model, options));
155
+ }
156
+ results.sort((a, b) => a.name.localeCompare(b.name));
157
+ return results;
158
+ }
159
+ function buildModelsByProviderFromParsedSources(params) {
160
+ const { modelsDevApi } = params;
161
+ const defaults = {
162
+ openai: "gpt-5-mini",
163
+ anthropic: "claude-haiku-4-5-20251001",
164
+ google: "gemini-3-flash-preview",
165
+ groq: "llama-3.3-70b-versatile",
166
+ xai: "grok-4",
167
+ cohere: "command-a-03-2025",
168
+ minimax: "MiniMax-M2.1",
169
+ glm: "glm-4.7",
170
+ vertex: "gemini-3-flash-preview",
171
+ bedrock: "anthropic.claude-sonnet-4-5-20250929-v1:0"
172
+ };
173
+ const include = {
174
+ openai: (id) => id.startsWith("gpt-") || id.startsWith("o"),
175
+ anthropic: (id) => id.startsWith("claude-"),
176
+ google: (id) => id.startsWith("gemini-"),
177
+ groq: (_id) => true,
178
+ xai: (id) => id.startsWith("grok-"),
179
+ cohere: (id) => id.startsWith("command-"),
180
+ minimax: (_id) => true,
181
+ glm: (id) => id.startsWith("glm-"),
182
+ vertex: (_id) => true,
183
+ bedrock: (_id) => true,
184
+ openrouter: (_id) => true
185
+ };
186
+ const modelsByProvider = {
187
+ openai: buildModelsFromModelsDevProvider({
188
+ spec: {
189
+ provider: "openai",
190
+ modelsDevProviderId: "openai",
191
+ ...defaults.openai ? { defaultModelId: defaults.openai } : {},
192
+ includeModelId: include.openai
193
+ },
194
+ modelsDevApi
195
+ }),
196
+ "openai-compatible": [],
197
+ anthropic: buildModelsFromModelsDevProvider({
198
+ spec: {
199
+ provider: "anthropic",
200
+ modelsDevProviderId: "anthropic",
201
+ ...defaults.anthropic ? { defaultModelId: defaults.anthropic } : {},
202
+ includeModelId: include.anthropic
203
+ },
204
+ modelsDevApi
205
+ }),
206
+ google: buildModelsFromModelsDevProvider({
207
+ spec: {
208
+ provider: "google",
209
+ modelsDevProviderId: "google",
210
+ ...defaults.google ? { defaultModelId: defaults.google } : {},
211
+ includeModelId: include.google
212
+ },
213
+ modelsDevApi
214
+ }),
215
+ groq: buildModelsFromModelsDevProvider({
216
+ spec: {
217
+ provider: "groq",
218
+ modelsDevProviderId: "groq",
219
+ ...defaults.groq ? { defaultModelId: defaults.groq } : {},
220
+ includeModelId: include.groq
221
+ },
222
+ modelsDevApi
223
+ }),
224
+ xai: buildModelsFromModelsDevProvider({
225
+ spec: {
226
+ provider: "xai",
227
+ modelsDevProviderId: "xai",
228
+ ...defaults.xai ? { defaultModelId: defaults.xai } : {},
229
+ includeModelId: include.xai
230
+ },
231
+ modelsDevApi
232
+ }),
233
+ cohere: buildModelsFromModelsDevProvider({
234
+ spec: {
235
+ provider: "cohere",
236
+ modelsDevProviderId: "cohere",
237
+ ...defaults.cohere ? { defaultModelId: defaults.cohere } : {},
238
+ includeModelId: include.cohere
239
+ },
240
+ modelsDevApi
241
+ }),
242
+ minimax: buildModelsFromModelsDevProvider({
243
+ spec: {
244
+ provider: "minimax",
245
+ modelsDevProviderId: "minimax",
246
+ ...defaults.minimax ? { defaultModelId: defaults.minimax } : {},
247
+ includeModelId: include.minimax
248
+ },
249
+ modelsDevApi
250
+ }),
251
+ glm: buildModelsFromModelsDevProvider({
252
+ spec: {
253
+ provider: "glm",
254
+ modelsDevProviderId: "zhipuai",
255
+ ...defaults.glm ? { defaultModelId: defaults.glm } : {},
256
+ includeModelId: include.glm
257
+ },
258
+ modelsDevApi
259
+ }),
260
+ openrouter: buildModelsFromModelsDevProvider({
261
+ spec: {
262
+ provider: "openrouter",
263
+ modelsDevProviderId: "openrouter",
264
+ includeModelId: include.openrouter
265
+ },
266
+ modelsDevApi
267
+ }),
268
+ litellm: [],
269
+ glama: [],
270
+ vertex: [
271
+ ...buildModelsFromModelsDevProvider({
272
+ spec: {
273
+ provider: "vertex",
274
+ modelsDevProviderId: "google-vertex",
275
+ ...defaults.vertex ? { defaultModelId: defaults.vertex } : {},
276
+ includeModelId: include.vertex
277
+ },
278
+ modelsDevApi
279
+ }),
280
+ ...buildModelsFromModelsDevProvider({
281
+ spec: {
282
+ provider: "vertex",
283
+ modelsDevProviderId: "google-vertex-anthropic",
284
+ includeModelId: include.vertex
285
+ },
286
+ modelsDevApi
287
+ })
288
+ ].sort((a, b) => a.name.localeCompare(b.name)),
289
+ bedrock: buildModelsFromModelsDevProvider({
290
+ spec: {
291
+ provider: "bedrock",
292
+ modelsDevProviderId: "amazon-bedrock",
293
+ ...defaults.bedrock ? { defaultModelId: defaults.bedrock } : {},
294
+ includeModelId: include.bedrock
295
+ },
296
+ modelsDevApi
297
+ }).map((m) => ({ ...m, name: m.name.replace(/^(eu\.|us\.|global\.)/i, "") })).filter((m, idx, arr) => arr.findIndex((x) => x.name === m.name) === idx).sort((a, b) => a.name.localeCompare(b.name)),
298
+ local: [],
299
+ ollama: [],
300
+ "dexto-nova": []
301
+ };
302
+ return modelsByProvider;
303
+ }
304
+ async function buildModelsByProviderFromRemote(options) {
305
+ const timeoutMs = options?.timeoutMs ?? 3e4;
306
+ const userAgent = options?.userAgent ?? "dexto-llm-registry";
307
+ const modelsDevRes = await fetch(options?.modelsDevUrl ?? MODELS_DEV_URL, {
308
+ headers: { "User-Agent": userAgent },
309
+ signal: AbortSignal.timeout(timeoutMs)
310
+ });
311
+ if (!modelsDevRes.ok) {
312
+ throw new DextoRuntimeError(
313
+ "llm_registry_models_dev_fetch_failed",
314
+ ErrorScope.LLM,
315
+ ErrorType.THIRD_PARTY,
316
+ `Failed to fetch models.dev (${modelsDevRes.status} ${modelsDevRes.statusText})`,
317
+ { status: modelsDevRes.status, statusText: modelsDevRes.statusText }
318
+ );
319
+ }
320
+ const modelsDevApi = parseModelsDevApi(await modelsDevRes.json());
321
+ return buildModelsByProviderFromParsedSources({ modelsDevApi });
322
+ }
323
+ export {
324
+ MODELS_DEV_URL,
325
+ buildModelsByProviderFromParsedSources,
326
+ buildModelsByProviderFromRemote,
327
+ parseModelsDevApi
328
+ };
@@ -24,24 +24,24 @@ __export(resolver_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(resolver_exports);
26
26
  var import_result = require("../utils/result.js");
27
- var import_types = require("../errors/types.cjs");
27
+ var import_types = require("../errors/types.js");
28
28
  var import_error_codes = require("./error-codes.js");
29
29
  var import_schemas2 = require("./schemas.js");
30
- var import_registry = require("./registry.js");
30
+ var import_registry = require("./registry/index.js");
31
31
  var import_openrouter_model_registry = require("./providers/openrouter-model-registry.js");
32
- var import_api_key_resolver = require("../utils/api-key-resolver.cjs");
32
+ var import_api_key_resolver = require("../utils/api-key-resolver.js");
33
33
  async function resolveAndValidateLLMConfig(previous, updates, logger) {
34
34
  const { candidate, warnings } = await resolveLLMConfig(previous, updates, logger);
35
35
  if ((0, import_result.hasErrors)(warnings)) {
36
36
  const { errors } = (0, import_result.splitIssues)(warnings);
37
37
  return (0, import_result.fail)(errors);
38
38
  }
39
- const result = validateLLMConfig(candidate, warnings);
39
+ const result = validateLLMConfig(candidate, warnings, logger);
40
40
  return result;
41
41
  }
42
42
  async function resolveLLMConfig(previous, updates, logger) {
43
43
  const warnings = [];
44
- const provider = updates.provider ?? (updates.model ? (() => {
44
+ const provider = updates.provider ?? (updates.model && !updates.model.includes("/") ? (() => {
45
45
  try {
46
46
  return (0, import_registry.getProviderFromModel)(updates.model);
47
47
  } catch {
@@ -81,20 +81,20 @@ async function resolveLLMConfig(previous, updates, logger) {
81
81
  context: { provider, model }
82
82
  });
83
83
  }
84
- if ((0, import_registry.hasAllRegistryModelsSupport)(provider) && !model.includes("/")) {
85
- try {
86
- const originalProvider = (0, import_registry.getProviderFromModel)(model);
87
- model = (0, import_registry.transformModelNameForProvider)(model, originalProvider, provider);
88
- logger.debug(
89
- `Transformed model for ${provider}: ${updates.model ?? previous.model} -> ${model}`
90
- );
91
- } catch {
92
- logger.debug(
93
- `Model '${model}' not in registry, passing through to ${provider} without transformation`
94
- );
84
+ if (provider !== previous.provider && updates.model == null && (0, import_registry.hasAllRegistryModelsSupport)(provider) && !model.includes("/")) {
85
+ const defaultGatewayModel = (0, import_registry.getDefaultModelForProvider)(provider);
86
+ if (defaultGatewayModel) {
87
+ model = defaultGatewayModel;
88
+ warnings.push({
89
+ code: import_error_codes.LLMErrorCode.MODEL_INCOMPATIBLE,
90
+ message: `Model set to default '${model}' for provider '${provider}'`,
91
+ severity: "warning",
92
+ scope: import_types.ErrorScope.LLM,
93
+ type: import_types.ErrorType.USER,
94
+ context: { provider, model }
95
+ });
95
96
  }
96
97
  }
97
- const maxInputTokens = updates.maxInputTokens ?? (0, import_registry.getEffectiveMaxInputTokens)({ provider, model, apiKey: apiKey || previous.apiKey }, logger);
98
98
  let baseURL;
99
99
  if (updates.baseURL) {
100
100
  baseURL = updates.baseURL;
@@ -159,18 +159,27 @@ async function resolveLLMConfig(previous, updates, logger) {
159
159
  apiKey,
160
160
  baseURL,
161
161
  maxIterations: updates.maxIterations ?? previous.maxIterations,
162
- maxInputTokens,
162
+ maxInputTokens: updates.maxInputTokens,
163
163
  maxOutputTokens: updates.maxOutputTokens ?? previous.maxOutputTokens,
164
164
  temperature: updates.temperature ?? previous.temperature
165
165
  },
166
166
  warnings
167
167
  };
168
168
  }
169
- function validateLLMConfig(candidate, warnings) {
169
+ function validateLLMConfig(candidate, warnings, logger) {
170
170
  const parsed = import_schemas2.LLMConfigSchema.safeParse(candidate);
171
171
  if (!parsed.success) {
172
172
  return (0, import_result.fail)((0, import_result.zodToIssues)(parsed.error, "error"));
173
173
  }
174
+ const maxInputTokens = parsed.data.maxInputTokens ?? (0, import_registry.getEffectiveMaxInputTokens)(
175
+ {
176
+ provider: parsed.data.provider,
177
+ model: parsed.data.model,
178
+ apiKey: parsed.data.apiKey ?? candidate.apiKey ?? "",
179
+ baseURL: parsed.data.baseURL
180
+ },
181
+ logger
182
+ );
174
183
  if (parsed.data.apiKey && parsed.data.apiKey.length < 10) {
175
184
  warnings.push({
176
185
  code: import_error_codes.LLMErrorCode.API_KEY_INVALID,
@@ -185,7 +194,7 @@ function validateLLMConfig(candidate, warnings) {
185
194
  }
186
195
  });
187
196
  }
188
- return (0, import_result.ok)(parsed.data, warnings);
197
+ return (0, import_result.ok)({ ...parsed.data, maxInputTokens }, warnings);
189
198
  }
190
199
  // Annotate the CommonJS export names for ESM import in node:
191
200
  0 && (module.exports = {
@@ -2,20 +2,20 @@ import { Result } from '../utils/result.js';
2
2
  import { Issue } from '../errors/types.js';
3
3
  import { type ValidatedLLMConfig, type LLMUpdates, type LLMConfig } from './schemas.js';
4
4
  import type { LLMUpdateContext } from './types.js';
5
- import type { IDextoLogger } from '../logger/v2/types.js';
5
+ import type { Logger } from '../logger/v2/types.js';
6
6
  /**
7
7
  * Convenience function that combines resolveLLM and validateLLM
8
8
  */
9
- export declare function resolveAndValidateLLMConfig(previous: ValidatedLLMConfig, updates: LLMUpdates, logger: IDextoLogger): Promise<Result<ValidatedLLMConfig, LLMUpdateContext>>;
9
+ export declare function resolveAndValidateLLMConfig(previous: ValidatedLLMConfig, updates: LLMUpdates, logger: Logger): Promise<Result<ValidatedLLMConfig, LLMUpdateContext>>;
10
10
  /**
11
11
  * Infers the LLM config from the provided updates
12
12
  * @param previous - The previous LLM config
13
13
  * @param updates - The updates to the LLM config
14
14
  * @returns The resolved LLM config
15
15
  */
16
- export declare function resolveLLMConfig(previous: ValidatedLLMConfig, updates: LLMUpdates, logger: IDextoLogger): Promise<{
16
+ export declare function resolveLLMConfig(previous: ValidatedLLMConfig, updates: LLMUpdates, logger: Logger): Promise<{
17
17
  candidate: LLMConfig;
18
18
  warnings: Issue<LLMUpdateContext>[];
19
19
  }>;
20
- export declare function validateLLMConfig(candidate: LLMConfig, warnings: Issue<LLMUpdateContext>[]): Result<ValidatedLLMConfig, LLMUpdateContext>;
20
+ export declare function validateLLMConfig(candidate: LLMConfig, warnings: Issue<LLMUpdateContext>[], logger: Logger): Result<ValidatedLLMConfig, LLMUpdateContext>;
21
21
  //# sourceMappingURL=resolver.d.ts.map
@@ -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;AAiBxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAM7D;;GAEG;AACH,wBAAsB,2BAA2B,CAC7C,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAUvD;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAClC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAA;CAAE,CAAC,CAoLxE;AAGD,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,GACpC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CA0B9C"}
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,oBAAoB,CAAC;AAGlE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAgBxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAMpD;;GAEG;AACH,wBAAsB,2BAA2B,CAC7C,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAUvD;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAClC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAA;CAAE,CAAC,CAoLxE;AAGD,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,EACnC,MAAM,EAAE,MAAM,GACf,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAuC9C"}
@@ -11,9 +11,8 @@ import {
11
11
  getEffectiveMaxInputTokens,
12
12
  supportsBaseURL,
13
13
  supportsCustomModels,
14
- hasAllRegistryModelsSupport,
15
- transformModelNameForProvider
16
- } from "./registry.js";
14
+ hasAllRegistryModelsSupport
15
+ } from "./registry/index.js";
17
16
  import {
18
17
  lookupOpenRouterModel,
19
18
  refreshOpenRouterModelCache
@@ -25,12 +24,12 @@ async function resolveAndValidateLLMConfig(previous, updates, logger) {
25
24
  const { errors } = splitIssues(warnings);
26
25
  return fail(errors);
27
26
  }
28
- const result = validateLLMConfig(candidate, warnings);
27
+ const result = validateLLMConfig(candidate, warnings, logger);
29
28
  return result;
30
29
  }
31
30
  async function resolveLLMConfig(previous, updates, logger) {
32
31
  const warnings = [];
33
- const provider = updates.provider ?? (updates.model ? (() => {
32
+ const provider = updates.provider ?? (updates.model && !updates.model.includes("/") ? (() => {
34
33
  try {
35
34
  return getProviderFromModel(updates.model);
36
35
  } catch {
@@ -70,20 +69,20 @@ async function resolveLLMConfig(previous, updates, logger) {
70
69
  context: { provider, model }
71
70
  });
72
71
  }
73
- if (hasAllRegistryModelsSupport(provider) && !model.includes("/")) {
74
- try {
75
- const originalProvider = getProviderFromModel(model);
76
- model = transformModelNameForProvider(model, originalProvider, provider);
77
- logger.debug(
78
- `Transformed model for ${provider}: ${updates.model ?? previous.model} -> ${model}`
79
- );
80
- } catch {
81
- logger.debug(
82
- `Model '${model}' not in registry, passing through to ${provider} without transformation`
83
- );
72
+ if (provider !== previous.provider && updates.model == null && hasAllRegistryModelsSupport(provider) && !model.includes("/")) {
73
+ const defaultGatewayModel = getDefaultModelForProvider(provider);
74
+ if (defaultGatewayModel) {
75
+ model = defaultGatewayModel;
76
+ warnings.push({
77
+ code: LLMErrorCode.MODEL_INCOMPATIBLE,
78
+ message: `Model set to default '${model}' for provider '${provider}'`,
79
+ severity: "warning",
80
+ scope: ErrorScope.LLM,
81
+ type: ErrorType.USER,
82
+ context: { provider, model }
83
+ });
84
84
  }
85
85
  }
86
- const maxInputTokens = updates.maxInputTokens ?? getEffectiveMaxInputTokens({ provider, model, apiKey: apiKey || previous.apiKey }, logger);
87
86
  let baseURL;
88
87
  if (updates.baseURL) {
89
88
  baseURL = updates.baseURL;
@@ -148,18 +147,27 @@ async function resolveLLMConfig(previous, updates, logger) {
148
147
  apiKey,
149
148
  baseURL,
150
149
  maxIterations: updates.maxIterations ?? previous.maxIterations,
151
- maxInputTokens,
150
+ maxInputTokens: updates.maxInputTokens,
152
151
  maxOutputTokens: updates.maxOutputTokens ?? previous.maxOutputTokens,
153
152
  temperature: updates.temperature ?? previous.temperature
154
153
  },
155
154
  warnings
156
155
  };
157
156
  }
158
- function validateLLMConfig(candidate, warnings) {
157
+ function validateLLMConfig(candidate, warnings, logger) {
159
158
  const parsed = LLMConfigSchema.safeParse(candidate);
160
159
  if (!parsed.success) {
161
160
  return fail(zodToIssues(parsed.error, "error"));
162
161
  }
162
+ const maxInputTokens = parsed.data.maxInputTokens ?? getEffectiveMaxInputTokens(
163
+ {
164
+ provider: parsed.data.provider,
165
+ model: parsed.data.model,
166
+ apiKey: parsed.data.apiKey ?? candidate.apiKey ?? "",
167
+ baseURL: parsed.data.baseURL
168
+ },
169
+ logger
170
+ );
163
171
  if (parsed.data.apiKey && parsed.data.apiKey.length < 10) {
164
172
  warnings.push({
165
173
  code: LLMErrorCode.API_KEY_INVALID,
@@ -174,7 +182,7 @@ function validateLLMConfig(candidate, warnings) {
174
182
  }
175
183
  });
176
184
  }
177
- return ok(parsed.data, warnings);
185
+ return ok({ ...parsed.data, maxInputTokens }, warnings);
178
186
  }
179
187
  export {
180
188
  resolveAndValidateLLMConfig,