@dexto/core 1.1.4 → 1.1.6

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 (597) hide show
  1. package/README.md +125 -0
  2. package/dist/agent/DextoAgent.cjs +793 -0
  3. package/dist/agent/DextoAgent.d.cts +473 -0
  4. package/dist/agent/DextoAgent.d.ts +473 -0
  5. package/dist/agent/DextoAgent.js +774 -0
  6. package/dist/agent/agentCard.cjs +44 -0
  7. package/dist/agent/agentCard.d.cts +20 -0
  8. package/dist/agent/agentCard.d.ts +20 -0
  9. package/dist/agent/agentCard.js +20 -0
  10. package/dist/agent/error-codes.cjs +35 -0
  11. package/dist/agent/error-codes.d.cts +14 -0
  12. package/dist/agent/error-codes.d.ts +14 -0
  13. package/dist/agent/error-codes.js +11 -0
  14. package/dist/agent/errors.cjs +84 -0
  15. package/dist/agent/errors.d.cts +40 -0
  16. package/dist/agent/errors.d.ts +40 -0
  17. package/dist/agent/errors.js +60 -0
  18. package/dist/agent/index.cjs +44 -0
  19. package/dist/agent/index.d.cts +60 -0
  20. package/dist/agent/index.d.ts +60 -0
  21. package/dist/agent/index.js +13 -0
  22. package/dist/agent/registry/error-codes.cjs +42 -0
  23. package/dist/agent/registry/error-codes.d.cts +20 -0
  24. package/dist/agent/registry/error-codes.d.ts +20 -0
  25. package/dist/agent/registry/error-codes.js +18 -0
  26. package/dist/agent/registry/errors.cjs +158 -0
  27. package/dist/agent/registry/errors.d.cts +67 -0
  28. package/dist/agent/registry/errors.d.ts +67 -0
  29. package/dist/{chunk-PI6XFMEW.js → agent/registry/errors.js} +43 -50
  30. package/dist/agent/registry/registry.cjs +291 -0
  31. package/dist/agent/registry/registry.d.cts +67 -0
  32. package/dist/agent/registry/registry.d.ts +67 -0
  33. package/dist/agent/registry/registry.js +256 -0
  34. package/dist/agent/registry/types.cjs +41 -0
  35. package/dist/agent/registry/types.d.cts +100 -0
  36. package/dist/agent/registry/types.d.ts +100 -0
  37. package/dist/agent/registry/types.js +16 -0
  38. package/dist/agent/schemas.cjs +113 -0
  39. package/dist/agent/schemas.d.cts +1502 -0
  40. package/dist/agent/schemas.d.ts +1502 -0
  41. package/dist/agent/schemas.js +88 -0
  42. package/dist/agent/state-manager.cjs +214 -0
  43. package/dist/agent/state-manager.d.cts +97 -0
  44. package/dist/agent/state-manager.d.ts +97 -0
  45. package/dist/agent/state-manager.js +190 -0
  46. package/dist/config/agent-resolver.cjs +153 -0
  47. package/dist/config/agent-resolver.d.cts +15 -0
  48. package/dist/config/agent-resolver.d.ts +15 -0
  49. package/dist/config/agent-resolver.js +122 -0
  50. package/dist/config/error-codes.cjs +39 -0
  51. package/dist/config/error-codes.d.cts +17 -0
  52. package/dist/config/error-codes.d.ts +17 -0
  53. package/dist/config/error-codes.js +15 -0
  54. package/dist/config/errors.cjs +126 -0
  55. package/dist/config/errors.d.cts +49 -0
  56. package/dist/config/errors.d.ts +49 -0
  57. package/dist/config/errors.js +102 -0
  58. package/dist/config/index.cjs +26 -0
  59. package/dist/config/index.d.cts +7 -0
  60. package/dist/config/index.d.ts +7 -0
  61. package/dist/config/index.js +3 -0
  62. package/dist/config/loader.cjs +119 -0
  63. package/dist/config/loader.d.cts +19 -0
  64. package/dist/config/loader.d.ts +19 -0
  65. package/dist/config/loader.js +85 -0
  66. package/dist/config/writer.cjs +182 -0
  67. package/dist/config/writer.d.cts +38 -0
  68. package/dist/config/writer.d.ts +38 -0
  69. package/dist/config/writer.js +146 -0
  70. package/dist/context/compression/middle-removal.cjs +95 -0
  71. package/dist/context/compression/middle-removal.d.cts +48 -0
  72. package/dist/context/compression/middle-removal.d.ts +48 -0
  73. package/dist/context/compression/middle-removal.js +71 -0
  74. package/dist/context/compression/oldest-removal.cjs +70 -0
  75. package/dist/context/compression/oldest-removal.d.cts +43 -0
  76. package/dist/context/compression/oldest-removal.d.ts +43 -0
  77. package/dist/context/compression/oldest-removal.js +46 -0
  78. package/dist/context/compression/types.cjs +16 -0
  79. package/dist/context/compression/types.d.cts +21 -0
  80. package/dist/context/compression/types.d.ts +21 -0
  81. package/dist/context/compression/types.js +0 -0
  82. package/dist/context/error-codes.cjs +41 -0
  83. package/dist/context/error-codes.d.cts +19 -0
  84. package/dist/context/error-codes.d.ts +19 -0
  85. package/dist/context/error-codes.js +17 -0
  86. package/dist/context/errors.cjs +146 -0
  87. package/dist/context/errors.d.cts +36 -0
  88. package/dist/context/errors.d.ts +36 -0
  89. package/dist/context/errors.js +122 -0
  90. package/dist/context/index.cjs +24 -0
  91. package/dist/context/index.d.cts +19 -0
  92. package/dist/context/index.d.ts +19 -0
  93. package/dist/context/index.js +2 -0
  94. package/dist/context/manager.cjs +516 -0
  95. package/dist/context/manager.d.cts +254 -0
  96. package/dist/context/manager.d.ts +254 -0
  97. package/dist/context/manager.js +492 -0
  98. package/dist/context/types.cjs +16 -0
  99. package/dist/context/types.d.cts +113 -0
  100. package/dist/context/types.d.ts +113 -0
  101. package/dist/context/types.js +0 -0
  102. package/dist/context/utils.cjs +406 -0
  103. package/dist/context/utils.d.cts +79 -0
  104. package/dist/context/utils.d.ts +79 -0
  105. package/dist/context/utils.js +374 -0
  106. package/dist/errors/DextoBaseError.cjs +36 -0
  107. package/dist/errors/DextoBaseError.d.cts +15 -0
  108. package/dist/errors/DextoBaseError.d.ts +15 -0
  109. package/dist/errors/DextoBaseError.js +12 -0
  110. package/dist/errors/DextoRuntimeError.cjs +50 -0
  111. package/dist/errors/DextoRuntimeError.d.cts +37 -0
  112. package/dist/errors/DextoRuntimeError.d.ts +37 -0
  113. package/dist/errors/DextoRuntimeError.js +26 -0
  114. package/dist/errors/DextoValidationError.cjs +118 -0
  115. package/dist/errors/DextoValidationError.d.cts +65 -0
  116. package/dist/errors/DextoValidationError.d.ts +65 -0
  117. package/dist/{chunk-XFQLRBHE.js → errors/DextoValidationError.js} +4 -32
  118. package/dist/errors/index.cjs +42 -0
  119. package/dist/errors/index.d.cts +18 -0
  120. package/dist/errors/index.d.ts +18 -0
  121. package/dist/errors/index.js +13 -0
  122. package/dist/errors/result-bridge.cjs +38 -0
  123. package/dist/errors/result-bridge.d.cts +39 -0
  124. package/dist/errors/result-bridge.d.ts +39 -0
  125. package/dist/errors/result-bridge.js +14 -0
  126. package/dist/errors/types.cjs +54 -0
  127. package/dist/errors/types.d.cts +62 -0
  128. package/dist/errors/types.d.ts +62 -0
  129. package/dist/errors/types.js +29 -0
  130. package/dist/events/index.cjs +169 -0
  131. package/dist/events/index.d.cts +272 -0
  132. package/dist/events/index.d.ts +272 -0
  133. package/dist/events/index.js +136 -0
  134. package/dist/index.browser.cjs +9 -220
  135. package/dist/index.browser.d.cts +53 -379
  136. package/dist/index.browser.d.ts +53 -379
  137. package/dist/index.browser.js +4 -210
  138. package/dist/index.cjs +31 -15266
  139. package/dist/index.d.cts +89 -6842
  140. package/dist/index.d.ts +89 -6842
  141. package/dist/index.js +14 -9914
  142. package/dist/llm/error-codes.cjs +48 -0
  143. package/dist/llm/error-codes.d.cts +26 -0
  144. package/dist/llm/error-codes.d.ts +26 -0
  145. package/dist/llm/error-codes.js +24 -0
  146. package/dist/llm/errors.cjs +108 -0
  147. package/dist/llm/errors.d.cts +58 -0
  148. package/dist/llm/errors.d.ts +58 -0
  149. package/dist/llm/errors.js +84 -0
  150. package/dist/llm/formatters/anthropic.cjs +246 -0
  151. package/dist/llm/formatters/anthropic.d.cts +45 -0
  152. package/dist/llm/formatters/anthropic.d.ts +45 -0
  153. package/dist/llm/formatters/anthropic.js +227 -0
  154. package/dist/llm/formatters/factory.cjs +51 -0
  155. package/dist/llm/formatters/factory.d.cts +12 -0
  156. package/dist/llm/formatters/factory.d.ts +12 -0
  157. package/dist/llm/formatters/factory.js +27 -0
  158. package/dist/llm/formatters/openai.cjs +167 -0
  159. package/dist/llm/formatters/openai.d.cts +38 -0
  160. package/dist/llm/formatters/openai.d.ts +38 -0
  161. package/dist/llm/formatters/openai.js +147 -0
  162. package/dist/llm/formatters/types.cjs +16 -0
  163. package/dist/llm/formatters/types.d.cts +43 -0
  164. package/dist/llm/formatters/types.d.ts +43 -0
  165. package/dist/llm/formatters/types.js +0 -0
  166. package/dist/llm/formatters/vercel.cjs +411 -0
  167. package/dist/llm/formatters/vercel.d.cts +48 -0
  168. package/dist/llm/formatters/vercel.d.ts +48 -0
  169. package/dist/llm/formatters/vercel.js +387 -0
  170. package/dist/llm/index.cjs +34 -0
  171. package/dist/llm/index.d.cts +39 -0
  172. package/dist/llm/index.d.ts +39 -0
  173. package/dist/llm/index.js +7 -0
  174. package/dist/llm/registry.cjs +881 -0
  175. package/dist/llm/registry.d.cts +176 -0
  176. package/dist/llm/registry.d.ts +176 -0
  177. package/dist/{chunk-J6AXCN3H.js → llm/registry.js} +25 -455
  178. package/dist/llm/resolver.cjs +154 -0
  179. package/dist/llm/resolver.d.cts +34 -0
  180. package/dist/llm/resolver.d.ts +34 -0
  181. package/dist/llm/resolver.js +136 -0
  182. package/dist/llm/schemas.cjs +188 -0
  183. package/dist/llm/schemas.d.cts +111 -0
  184. package/dist/llm/schemas.d.ts +111 -0
  185. package/dist/llm/schemas.js +172 -0
  186. package/dist/llm/services/anthropic.cjs +398 -0
  187. package/dist/llm/services/anthropic.d.cts +65 -0
  188. package/dist/llm/services/anthropic.d.ts +65 -0
  189. package/dist/llm/services/anthropic.js +374 -0
  190. package/dist/llm/services/factory.cjs +164 -0
  191. package/dist/llm/services/factory.d.cts +39 -0
  192. package/dist/llm/services/factory.d.ts +39 -0
  193. package/dist/llm/services/factory.js +130 -0
  194. package/dist/llm/services/index.cjs +22 -0
  195. package/dist/llm/services/index.d.cts +21 -0
  196. package/dist/llm/services/index.d.ts +21 -0
  197. package/dist/llm/services/index.js +1 -0
  198. package/dist/llm/services/openai.cjs +470 -0
  199. package/dist/llm/services/openai.d.cts +65 -0
  200. package/dist/llm/services/openai.d.ts +65 -0
  201. package/dist/llm/services/openai.js +446 -0
  202. package/dist/llm/services/test-utils.integration.cjs +169 -0
  203. package/dist/llm/services/test-utils.integration.d.cts +83 -0
  204. package/dist/llm/services/test-utils.integration.d.ts +83 -0
  205. package/dist/llm/services/test-utils.integration.js +142 -0
  206. package/dist/llm/services/types.cjs +16 -0
  207. package/dist/llm/services/types.d.cts +56 -0
  208. package/dist/llm/services/types.d.ts +56 -0
  209. package/dist/llm/services/types.js +0 -0
  210. package/dist/llm/services/vercel.cjs +525 -0
  211. package/dist/llm/services/vercel.d.cts +72 -0
  212. package/dist/llm/services/vercel.d.ts +72 -0
  213. package/dist/llm/services/vercel.js +506 -0
  214. package/dist/llm/tokenizer/anthropic.cjs +43 -0
  215. package/dist/llm/tokenizer/anthropic.d.cts +21 -0
  216. package/dist/llm/tokenizer/anthropic.d.ts +21 -0
  217. package/dist/llm/tokenizer/anthropic.js +19 -0
  218. package/dist/llm/tokenizer/default.cjs +41 -0
  219. package/dist/llm/tokenizer/default.d.cts +16 -0
  220. package/dist/llm/tokenizer/default.d.ts +16 -0
  221. package/dist/llm/tokenizer/default.js +17 -0
  222. package/dist/llm/tokenizer/factory.cjs +44 -0
  223. package/dist/llm/tokenizer/factory.d.cts +12 -0
  224. package/dist/llm/tokenizer/factory.d.ts +12 -0
  225. package/dist/llm/tokenizer/factory.js +20 -0
  226. package/dist/llm/tokenizer/google.cjs +52 -0
  227. package/dist/llm/tokenizer/google.d.cts +31 -0
  228. package/dist/llm/tokenizer/google.d.ts +31 -0
  229. package/dist/llm/tokenizer/google.js +28 -0
  230. package/dist/llm/tokenizer/openai.cjs +108 -0
  231. package/dist/llm/tokenizer/openai.d.cts +32 -0
  232. package/dist/llm/tokenizer/openai.d.ts +32 -0
  233. package/dist/llm/tokenizer/openai.js +83 -0
  234. package/dist/llm/tokenizer/types.cjs +33 -0
  235. package/dist/llm/tokenizer/types.d.cts +19 -0
  236. package/dist/llm/tokenizer/types.d.ts +19 -0
  237. package/dist/llm/tokenizer/types.js +9 -0
  238. package/dist/llm/types.cjs +42 -0
  239. package/dist/llm/types.d.cts +29 -0
  240. package/dist/llm/types.d.ts +29 -0
  241. package/dist/llm/types.js +16 -0
  242. package/dist/llm/validation.cjs +162 -0
  243. package/dist/llm/validation.d.cts +60 -0
  244. package/dist/llm/validation.d.ts +60 -0
  245. package/dist/llm/validation.js +138 -0
  246. package/dist/logger/browser.cjs +86 -0
  247. package/dist/logger/browser.d.cts +29 -0
  248. package/dist/logger/browser.d.ts +29 -0
  249. package/dist/logger/browser.js +61 -0
  250. package/dist/logger/index.cjs +22 -0
  251. package/dist/logger/index.d.cts +1 -0
  252. package/dist/logger/index.d.ts +1 -0
  253. package/dist/logger/index.js +1 -0
  254. package/dist/logger/logger.cjs +362 -0
  255. package/dist/logger/logger.d.cts +52 -0
  256. package/dist/logger/logger.d.ts +52 -0
  257. package/dist/logger/logger.js +327 -0
  258. package/dist/mcp/error-codes.cjs +38 -0
  259. package/dist/mcp/error-codes.d.cts +16 -0
  260. package/dist/mcp/error-codes.d.ts +16 -0
  261. package/dist/mcp/error-codes.js +14 -0
  262. package/dist/mcp/errors.cjs +131 -0
  263. package/dist/mcp/errors.d.cts +72 -0
  264. package/dist/mcp/errors.d.ts +72 -0
  265. package/dist/mcp/errors.js +107 -0
  266. package/dist/mcp/index.cjs +34 -0
  267. package/dist/mcp/index.d.cts +26 -0
  268. package/dist/mcp/index.d.ts +26 -0
  269. package/dist/mcp/index.js +7 -0
  270. package/dist/mcp/manager.cjs +473 -0
  271. package/dist/mcp/manager.d.cts +163 -0
  272. package/dist/mcp/manager.d.ts +163 -0
  273. package/dist/mcp/manager.js +449 -0
  274. package/dist/mcp/mcp-client.cjs +420 -0
  275. package/dist/mcp/mcp-client.d.cts +108 -0
  276. package/dist/mcp/mcp-client.d.ts +108 -0
  277. package/dist/mcp/mcp-client.js +396 -0
  278. package/dist/mcp/resolver.cjs +78 -0
  279. package/dist/mcp/resolver.d.cts +22 -0
  280. package/dist/mcp/resolver.d.ts +22 -0
  281. package/dist/mcp/resolver.js +56 -0
  282. package/dist/mcp/schemas.cjs +82 -0
  283. package/dist/mcp/schemas.d.cts +266 -0
  284. package/dist/mcp/schemas.d.ts +266 -0
  285. package/dist/mcp/schemas.js +54 -0
  286. package/dist/mcp/types.cjs +16 -0
  287. package/dist/mcp/types.d.cts +21 -0
  288. package/dist/mcp/types.d.ts +21 -0
  289. package/dist/mcp/types.js +0 -0
  290. package/dist/preferences/constants.cjs +28 -0
  291. package/dist/preferences/constants.d.cts +3 -0
  292. package/dist/preferences/constants.d.ts +3 -0
  293. package/dist/preferences/constants.js +4 -0
  294. package/dist/preferences/error-codes.cjs +35 -0
  295. package/dist/preferences/error-codes.d.cts +9 -0
  296. package/dist/preferences/error-codes.d.ts +9 -0
  297. package/dist/preferences/error-codes.js +11 -0
  298. package/dist/preferences/errors.cjs +75 -0
  299. package/dist/preferences/errors.d.cts +33 -0
  300. package/dist/preferences/errors.d.ts +33 -0
  301. package/dist/preferences/errors.js +50 -0
  302. package/dist/preferences/index.cjs +55 -0
  303. package/dist/preferences/index.d.cts +21 -0
  304. package/dist/preferences/index.d.ts +21 -0
  305. package/dist/preferences/index.js +31 -0
  306. package/dist/preferences/loader.cjs +136 -0
  307. package/dist/preferences/loader.d.cts +45 -0
  308. package/dist/preferences/loader.d.ts +45 -0
  309. package/dist/preferences/loader.js +107 -0
  310. package/dist/preferences/schemas.cjs +74 -0
  311. package/dist/preferences/schemas.d.cts +104 -0
  312. package/dist/preferences/schemas.d.ts +104 -0
  313. package/dist/preferences/schemas.js +47 -0
  314. package/dist/search/index.cjs +28 -0
  315. package/dist/search/index.d.cts +5 -0
  316. package/dist/search/index.d.ts +5 -0
  317. package/dist/search/index.js +4 -0
  318. package/dist/search/search-service.cjs +245 -0
  319. package/dist/search/search-service.d.cts +47 -0
  320. package/dist/search/search-service.d.ts +47 -0
  321. package/dist/search/search-service.js +221 -0
  322. package/dist/search/types.cjs +16 -0
  323. package/dist/search/types.d.cts +78 -0
  324. package/dist/search/types.d.ts +78 -0
  325. package/dist/search/types.js +0 -0
  326. package/dist/session/chat-session.cjs +354 -0
  327. package/dist/session/chat-session.d.cts +284 -0
  328. package/dist/session/chat-session.d.ts +284 -0
  329. package/dist/session/chat-session.js +333 -0
  330. package/dist/session/error-codes.cjs +35 -0
  331. package/dist/session/error-codes.d.cts +13 -0
  332. package/dist/session/error-codes.d.ts +13 -0
  333. package/dist/session/error-codes.js +11 -0
  334. package/dist/session/errors.cjs +93 -0
  335. package/dist/session/errors.d.cts +58 -0
  336. package/dist/session/errors.d.ts +58 -0
  337. package/dist/session/errors.js +69 -0
  338. package/dist/session/history/database.cjs +95 -0
  339. package/dist/session/history/database.d.cts +28 -0
  340. package/dist/session/history/database.d.ts +28 -0
  341. package/dist/session/history/database.js +71 -0
  342. package/dist/session/history/factory.cjs +31 -0
  343. package/dist/session/history/factory.d.cts +11 -0
  344. package/dist/session/history/factory.d.ts +11 -0
  345. package/dist/session/history/factory.js +7 -0
  346. package/dist/session/history/types.cjs +16 -0
  347. package/dist/session/history/types.d.cts +17 -0
  348. package/dist/session/history/types.d.ts +17 -0
  349. package/dist/session/history/types.js +0 -0
  350. package/dist/session/index.cjs +37 -0
  351. package/dist/session/index.d.cts +53 -0
  352. package/dist/session/index.d.ts +53 -0
  353. package/dist/session/index.js +10 -0
  354. package/dist/session/schemas.cjs +32 -0
  355. package/dist/session/schemas.d.cts +16 -0
  356. package/dist/session/schemas.d.ts +16 -0
  357. package/dist/session/schemas.js +8 -0
  358. package/dist/session/session-manager.cjs +481 -0
  359. package/dist/session/session-manager.d.cts +219 -0
  360. package/dist/session/session-manager.d.ts +219 -0
  361. package/dist/session/session-manager.js +457 -0
  362. package/dist/storage/backend/cache-backend.cjs +16 -0
  363. package/dist/storage/backend/cache-backend.d.cts +15 -0
  364. package/dist/storage/backend/cache-backend.d.ts +15 -0
  365. package/dist/storage/backend/cache-backend.js +0 -0
  366. package/dist/storage/backend/database-backend.cjs +16 -0
  367. package/dist/storage/backend/database-backend.d.cts +19 -0
  368. package/dist/storage/backend/database-backend.d.ts +19 -0
  369. package/dist/storage/backend/database-backend.js +0 -0
  370. package/dist/storage/backend/memory-backend.cjs +140 -0
  371. package/dist/storage/backend/memory-backend.d.cts +34 -0
  372. package/dist/storage/backend/memory-backend.d.ts +34 -0
  373. package/dist/storage/backend/memory-backend.js +116 -0
  374. package/dist/storage/backend/postgres-backend.cjs +231 -0
  375. package/dist/storage/backend/postgres-backend.d.cts +37 -0
  376. package/dist/storage/backend/postgres-backend.d.ts +37 -0
  377. package/dist/{postgres-backend-WMWS7RAT.js → storage/backend/postgres-backend.js} +3 -12
  378. package/dist/storage/backend/redis-backend.cjs +184 -0
  379. package/dist/storage/backend/redis-backend.d.cts +36 -0
  380. package/dist/storage/backend/redis-backend.d.ts +36 -0
  381. package/dist/{redis-backend-BNLN3XHX.js → storage/backend/redis-backend.js} +3 -12
  382. package/dist/storage/backend/sqlite-backend.cjs +271 -0
  383. package/dist/storage/backend/sqlite-backend.d.cts +35 -0
  384. package/dist/storage/backend/sqlite-backend.d.ts +35 -0
  385. package/dist/{sqlite-backend-AR6XNK2Q.js → storage/backend/sqlite-backend.js} +6 -17
  386. package/dist/storage/backend/types.cjs +16 -0
  387. package/dist/storage/backend/types.d.cts +14 -0
  388. package/dist/storage/backend/types.d.ts +14 -0
  389. package/dist/storage/backend/types.js +0 -0
  390. package/dist/storage/error-codes.cjs +36 -0
  391. package/dist/storage/error-codes.d.cts +14 -0
  392. package/dist/storage/error-codes.d.ts +14 -0
  393. package/dist/storage/error-codes.js +12 -0
  394. package/dist/storage/errors.cjs +104 -0
  395. package/dist/storage/errors.d.cts +63 -0
  396. package/dist/storage/errors.d.ts +63 -0
  397. package/dist/{chunk-F2QFAECT.js → storage/errors.js} +23 -30
  398. package/dist/storage/index.cjs +33 -0
  399. package/dist/storage/index.d.cts +7 -0
  400. package/dist/storage/index.d.ts +7 -0
  401. package/dist/storage/index.js +7 -0
  402. package/dist/storage/schemas.cjs +113 -0
  403. package/dist/storage/schemas.d.cts +856 -0
  404. package/dist/storage/schemas.d.ts +856 -0
  405. package/dist/storage/schemas.js +89 -0
  406. package/dist/storage/storage-manager.cjs +208 -0
  407. package/dist/storage/storage-manager.d.cts +52 -0
  408. package/dist/storage/storage-manager.d.ts +52 -0
  409. package/dist/storage/storage-manager.js +173 -0
  410. package/dist/storage/types.cjs +16 -0
  411. package/dist/storage/types.d.cts +5 -0
  412. package/dist/storage/types.d.ts +5 -0
  413. package/dist/storage/types.js +0 -0
  414. package/dist/systemPrompt/contributors.cjs +146 -0
  415. package/dist/systemPrompt/contributors.d.cts +44 -0
  416. package/dist/systemPrompt/contributors.d.ts +44 -0
  417. package/dist/systemPrompt/contributors.js +120 -0
  418. package/dist/systemPrompt/error-codes.cjs +35 -0
  419. package/dist/systemPrompt/error-codes.d.cts +13 -0
  420. package/dist/systemPrompt/error-codes.d.ts +13 -0
  421. package/dist/systemPrompt/error-codes.js +11 -0
  422. package/dist/systemPrompt/errors.cjs +93 -0
  423. package/dist/systemPrompt/errors.d.cts +55 -0
  424. package/dist/systemPrompt/errors.d.ts +55 -0
  425. package/dist/systemPrompt/errors.js +69 -0
  426. package/dist/systemPrompt/in-built-prompts.cjs +68 -0
  427. package/dist/systemPrompt/in-built-prompts.d.cts +28 -0
  428. package/dist/systemPrompt/in-built-prompts.d.ts +28 -0
  429. package/dist/systemPrompt/in-built-prompts.js +42 -0
  430. package/dist/systemPrompt/index.cjs +30 -0
  431. package/dist/systemPrompt/index.d.cts +14 -0
  432. package/dist/systemPrompt/index.d.ts +14 -0
  433. package/dist/systemPrompt/index.js +5 -0
  434. package/dist/systemPrompt/manager.cjs +93 -0
  435. package/dist/systemPrompt/manager.d.cts +31 -0
  436. package/dist/systemPrompt/manager.d.ts +31 -0
  437. package/dist/systemPrompt/manager.js +69 -0
  438. package/dist/systemPrompt/registry.cjs +51 -0
  439. package/dist/systemPrompt/registry.d.cts +20 -0
  440. package/dist/systemPrompt/registry.d.ts +20 -0
  441. package/dist/systemPrompt/registry.js +15 -0
  442. package/dist/systemPrompt/schemas.cjs +107 -0
  443. package/dist/systemPrompt/schemas.d.cts +401 -0
  444. package/dist/systemPrompt/schemas.d.ts +401 -0
  445. package/dist/systemPrompt/schemas.js +81 -0
  446. package/dist/systemPrompt/types.cjs +16 -0
  447. package/dist/systemPrompt/types.d.cts +19 -0
  448. package/dist/systemPrompt/types.d.ts +19 -0
  449. package/dist/systemPrompt/types.js +0 -0
  450. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +44 -0
  451. package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +19 -0
  452. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +19 -0
  453. package/dist/tools/confirmation/allowed-tools-provider/factory.js +20 -0
  454. package/dist/tools/confirmation/allowed-tools-provider/in-memory.cjs +62 -0
  455. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +17 -0
  456. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +17 -0
  457. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +38 -0
  458. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +68 -0
  459. package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +26 -0
  460. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +26 -0
  461. package/dist/tools/confirmation/allowed-tools-provider/storage.js +44 -0
  462. package/dist/tools/confirmation/allowed-tools-provider/types.cjs +16 -0
  463. package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +35 -0
  464. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +35 -0
  465. package/dist/tools/confirmation/allowed-tools-provider/types.js +0 -0
  466. package/dist/tools/confirmation/event-based-confirmation-provider.cjs +158 -0
  467. package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +41 -0
  468. package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +41 -0
  469. package/dist/tools/confirmation/event-based-confirmation-provider.js +134 -0
  470. package/dist/tools/confirmation/factory.cjs +52 -0
  471. package/dist/tools/confirmation/factory.d.cts +37 -0
  472. package/dist/tools/confirmation/factory.d.ts +37 -0
  473. package/dist/tools/confirmation/factory.js +28 -0
  474. package/dist/tools/confirmation/noop-confirmation-provider.cjs +49 -0
  475. package/dist/tools/confirmation/noop-confirmation-provider.d.cts +22 -0
  476. package/dist/tools/confirmation/noop-confirmation-provider.d.ts +22 -0
  477. package/dist/tools/confirmation/noop-confirmation-provider.js +25 -0
  478. package/dist/tools/confirmation/types.cjs +16 -0
  479. package/dist/tools/confirmation/types.d.cts +46 -0
  480. package/dist/tools/confirmation/types.d.ts +46 -0
  481. package/dist/tools/confirmation/types.js +0 -0
  482. package/dist/tools/error-codes.cjs +40 -0
  483. package/dist/tools/error-codes.d.cts +18 -0
  484. package/dist/tools/error-codes.d.ts +18 -0
  485. package/dist/tools/error-codes.js +16 -0
  486. package/dist/tools/errors.cjs +164 -0
  487. package/dist/tools/errors.d.cts +97 -0
  488. package/dist/tools/errors.d.ts +97 -0
  489. package/dist/tools/errors.js +140 -0
  490. package/dist/tools/index.cjs +37 -0
  491. package/dist/tools/index.d.cts +19 -0
  492. package/dist/tools/index.d.ts +19 -0
  493. package/dist/tools/index.js +8 -0
  494. package/dist/tools/internal-tools/implementations/search-history-tool.cjs +61 -0
  495. package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +15 -0
  496. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +15 -0
  497. package/dist/tools/internal-tools/implementations/search-history-tool.js +37 -0
  498. package/dist/tools/internal-tools/index.cjs +24 -0
  499. package/dist/tools/internal-tools/index.d.cts +13 -0
  500. package/dist/tools/internal-tools/index.d.ts +13 -0
  501. package/dist/tools/internal-tools/index.js +2 -0
  502. package/dist/tools/internal-tools/provider.cjs +159 -0
  503. package/dist/tools/internal-tools/provider.d.cts +66 -0
  504. package/dist/tools/internal-tools/provider.d.ts +66 -0
  505. package/dist/tools/internal-tools/provider.js +135 -0
  506. package/dist/tools/internal-tools/registry.cjs +43 -0
  507. package/dist/tools/internal-tools/registry.d.cts +45 -0
  508. package/dist/tools/internal-tools/registry.d.ts +45 -0
  509. package/dist/tools/internal-tools/registry.js +17 -0
  510. package/dist/tools/schemas.cjs +45 -0
  511. package/dist/tools/schemas.d.cts +21 -0
  512. package/dist/tools/schemas.d.ts +21 -0
  513. package/dist/tools/schemas.js +20 -0
  514. package/dist/tools/tool-manager.cjs +275 -0
  515. package/dist/tools/tool-manager.d.cts +106 -0
  516. package/dist/tools/tool-manager.d.ts +106 -0
  517. package/dist/tools/tool-manager.js +251 -0
  518. package/dist/tools/types.cjs +16 -0
  519. package/dist/tools/types.d.cts +66 -0
  520. package/dist/tools/types.d.ts +66 -0
  521. package/dist/tools/types.js +0 -0
  522. package/dist/utils/api-key-resolver.cjs +62 -0
  523. package/dist/utils/api-key-resolver.d.cts +23 -0
  524. package/dist/utils/api-key-resolver.d.ts +23 -0
  525. package/dist/utils/api-key-resolver.js +36 -0
  526. package/dist/utils/api-key-store.cjs +56 -0
  527. package/dist/utils/api-key-store.d.cts +26 -0
  528. package/dist/utils/api-key-store.d.ts +26 -0
  529. package/dist/utils/api-key-store.js +30 -0
  530. package/dist/utils/env.cjs +154 -0
  531. package/dist/utils/env.d.cts +29 -0
  532. package/dist/utils/env.d.ts +29 -0
  533. package/dist/utils/env.js +118 -0
  534. package/dist/utils/error-conversion.cjs +53 -0
  535. package/dist/utils/error-conversion.d.cts +13 -0
  536. package/dist/utils/error-conversion.d.ts +13 -0
  537. package/dist/utils/error-conversion.js +29 -0
  538. package/dist/utils/execution-context.cjs +85 -0
  539. package/dist/utils/execution-context.d.cts +21 -0
  540. package/dist/utils/execution-context.d.ts +21 -0
  541. package/dist/utils/execution-context.js +49 -0
  542. package/dist/{chunk-MVKLS3LM.js → utils/fs-walk.cjs} +27 -18
  543. package/dist/utils/fs-walk.d.cts +9 -0
  544. package/dist/utils/fs-walk.d.ts +9 -0
  545. package/dist/utils/fs-walk.js +18 -0
  546. package/dist/utils/index.cjs +44 -0
  547. package/dist/utils/index.d.cts +63 -0
  548. package/dist/utils/index.d.ts +63 -0
  549. package/dist/utils/index.js +12 -0
  550. package/dist/utils/path.cjs +197 -0
  551. package/dist/utils/path.d.cts +54 -0
  552. package/dist/utils/path.d.ts +54 -0
  553. package/dist/utils/path.js +159 -0
  554. package/dist/utils/port-utils.cjs +37 -0
  555. package/dist/utils/port-utils.d.cts +11 -0
  556. package/dist/utils/port-utils.d.ts +11 -0
  557. package/dist/utils/port-utils.js +13 -0
  558. package/dist/utils/port-utils.spec.cjs +26 -0
  559. package/dist/utils/port-utils.spec.d.cts +2 -0
  560. package/dist/utils/port-utils.spec.d.ts +2 -0
  561. package/dist/utils/port-utils.spec.js +25 -0
  562. package/dist/utils/redactor.cjs +105 -0
  563. package/dist/utils/redactor.d.cts +18 -0
  564. package/dist/utils/redactor.d.ts +18 -0
  565. package/dist/utils/redactor.js +81 -0
  566. package/dist/utils/result.cjs +115 -0
  567. package/dist/utils/result.d.cts +180 -0
  568. package/dist/utils/result.d.ts +180 -0
  569. package/dist/utils/result.js +82 -0
  570. package/dist/utils/safe-stringify.cjs +57 -0
  571. package/dist/utils/safe-stringify.d.cts +7 -0
  572. package/dist/utils/safe-stringify.d.ts +7 -0
  573. package/dist/utils/safe-stringify.js +33 -0
  574. package/dist/utils/schema.cjs +42 -0
  575. package/dist/utils/schema.d.cts +6 -0
  576. package/dist/utils/schema.d.ts +6 -0
  577. package/dist/utils/schema.js +18 -0
  578. package/dist/utils/service-initializer.cjs +119 -0
  579. package/dist/utils/service-initializer.d.cts +63 -0
  580. package/dist/utils/service-initializer.d.ts +63 -0
  581. package/dist/utils/service-initializer.js +95 -0
  582. package/dist/utils/user-info.cjs +30 -0
  583. package/dist/utils/user-info.d.cts +3 -0
  584. package/dist/utils/user-info.d.ts +3 -0
  585. package/dist/utils/user-info.js +6 -0
  586. package/dist/utils/zod-schema-converter.cjs +112 -0
  587. package/dist/utils/zod-schema-converter.d.cts +13 -0
  588. package/dist/utils/zod-schema-converter.d.ts +13 -0
  589. package/dist/utils/zod-schema-converter.js +87 -0
  590. package/package.json +2 -2
  591. package/dist/chunk-D62MHQBE.js +0 -2203
  592. package/dist/chunk-FCJVTIBV.js +0 -535
  593. package/dist/chunk-TPERKLLN.js +0 -75
  594. package/dist/errors-ZZ4Z3FKB.js +0 -10
  595. package/dist/loader-HBNEYPQZ.js +0 -20
  596. package/dist/path-TP7WBDED.js +0 -21
  597. package/dist/registry-Z4DFXODW.js +0 -14
@@ -0,0 +1,29 @@
1
+ declare const LLM_PROVIDERS: readonly ["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere"];
2
+ type LLMProvider = (typeof LLM_PROVIDERS)[number];
3
+ declare const LLM_ROUTERS: readonly ["vercel", "in-built"];
4
+ type LLMRouter = (typeof LLM_ROUTERS)[number];
5
+ declare const SUPPORTED_FILE_TYPES: readonly ["pdf", "image", "audio"];
6
+ type SupportedFileType = (typeof SUPPORTED_FILE_TYPES)[number];
7
+ /**
8
+ * LLMRouter defines the routing backend for LLM service instantiation.
9
+ * 'vercel' = use Vercel LLM service, 'in-built' = use in-built LLM service
10
+ * This type is now defined in the registry as the source of truth.
11
+ */
12
+ /**
13
+ * Context interface for message formatters.
14
+ * Provides runtime information for model-aware processing.
15
+ */
16
+ interface LLMContext {
17
+ /** LLM provider name (e.g., 'google.generative-ai', 'openai') */
18
+ provider: LLMProvider;
19
+ /** Specific LLM model name (e.g., 'gemini-2.5-flash', 'gpt-4') */
20
+ model: string;
21
+ }
22
+ interface LLMUpdateContext {
23
+ provider?: LLMProvider;
24
+ model?: string;
25
+ router?: LLMRouter;
26
+ suggestedAction?: string;
27
+ }
28
+
29
+ export { type LLMContext, type LLMProvider, type LLMRouter, type LLMUpdateContext, LLM_PROVIDERS, LLM_ROUTERS, SUPPORTED_FILE_TYPES, type SupportedFileType };
@@ -0,0 +1,16 @@
1
+ const LLM_PROVIDERS = [
2
+ "openai",
3
+ "openai-compatible",
4
+ "anthropic",
5
+ "google",
6
+ "groq",
7
+ "xai",
8
+ "cohere"
9
+ ];
10
+ const LLM_ROUTERS = ["vercel", "in-built"];
11
+ const SUPPORTED_FILE_TYPES = ["pdf", "image", "audio"];
12
+ export {
13
+ LLM_PROVIDERS,
14
+ LLM_ROUTERS,
15
+ SUPPORTED_FILE_TYPES
16
+ };
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var validation_exports = {};
20
+ __export(validation_exports, {
21
+ validateInputForLLM: () => validateInputForLLM
22
+ });
23
+ module.exports = __toCommonJS(validation_exports);
24
+ var import_registry = require("./registry.js");
25
+ var import_logger = require("../logger/index.js");
26
+ var import_result = require("../utils/result.js");
27
+ var import_types = require("../errors/types.cjs");
28
+ var import_error_codes = require("./error-codes.js");
29
+ const MAX_FILE_SIZE = 67108864;
30
+ const MAX_IMAGE_SIZE = 20971520;
31
+ function validateInputForLLM(input, config) {
32
+ const issues = [];
33
+ const validationData = {};
34
+ try {
35
+ const context = {
36
+ provider: config.provider,
37
+ model: config.model
38
+ };
39
+ if (input.fileData) {
40
+ const fileValidation = validateFileInput(input.fileData, config);
41
+ validationData.fileValidation = fileValidation;
42
+ if (!fileValidation.isSupported) {
43
+ issues.push({
44
+ code: import_error_codes.LLMErrorCode.INPUT_FILE_UNSUPPORTED,
45
+ message: fileValidation.error || "File type not supported by current LLM",
46
+ scope: import_types.ErrorScope.LLM,
47
+ type: import_types.ErrorType.USER,
48
+ severity: "error",
49
+ context: {
50
+ ...context,
51
+ fileType: fileValidation.fileType,
52
+ mimeType: input.fileData.mimeType,
53
+ filename: input.fileData.filename,
54
+ suggestedAction: "Use a supported file type or different model"
55
+ }
56
+ });
57
+ }
58
+ }
59
+ if (input.imageData) {
60
+ const imageValidation = validateImageInput(input.imageData, config);
61
+ validationData.imageValidation = imageValidation;
62
+ if (!imageValidation.isSupported) {
63
+ issues.push({
64
+ code: import_error_codes.LLMErrorCode.INPUT_IMAGE_UNSUPPORTED,
65
+ message: imageValidation.error || "Image format not supported by current LLM",
66
+ scope: import_types.ErrorScope.LLM,
67
+ type: import_types.ErrorType.USER,
68
+ severity: "error",
69
+ context: {
70
+ ...context,
71
+ suggestedAction: "Use a supported image format or different model"
72
+ }
73
+ });
74
+ }
75
+ }
76
+ return issues.length === 0 ? (0, import_result.ok)(validationData, issues) : (0, import_result.fail)(issues);
77
+ } catch (error) {
78
+ import_logger.logger.error(`Error during input validation: ${error}`);
79
+ return (0, import_result.fail)([
80
+ {
81
+ code: import_error_codes.LLMErrorCode.REQUEST_INVALID_SCHEMA,
82
+ message: "Failed to validate input",
83
+ scope: import_types.ErrorScope.LLM,
84
+ type: import_types.ErrorType.SYSTEM,
85
+ severity: "error",
86
+ context: {
87
+ provider: config.provider,
88
+ model: config.model,
89
+ suggestedAction: "Check input format and try again"
90
+ }
91
+ }
92
+ ]);
93
+ }
94
+ }
95
+ function validateFileInput(fileData, config) {
96
+ import_logger.logger.info(`Validating file input: ${fileData.mimeType}`);
97
+ if (typeof fileData.data === "string" && fileData.data.length > MAX_FILE_SIZE) {
98
+ return {
99
+ isSupported: false,
100
+ error: "File size too large (max 64MB)"
101
+ };
102
+ }
103
+ const baseMimeType = fileData.mimeType.toLowerCase().split(";")[0]?.trim() || fileData.mimeType.toLowerCase();
104
+ const allowedMimeTypes = (0, import_registry.getAllowedMimeTypes)();
105
+ if (!allowedMimeTypes.includes(baseMimeType)) {
106
+ return {
107
+ isSupported: false,
108
+ error: `Unsupported file type: ${fileData.mimeType}`
109
+ };
110
+ }
111
+ if (typeof fileData.data === "string") {
112
+ const base64Regex = /^[A-Za-z0-9+/]+={0,2}$/;
113
+ if (!base64Regex.test(fileData.data) || fileData.data.length % 4 !== 0) {
114
+ return {
115
+ isSupported: false,
116
+ error: "Invalid file data format"
117
+ };
118
+ }
119
+ }
120
+ if (config.model) {
121
+ return (0, import_registry.validateModelFileSupport)(config.provider, config.model, fileData.mimeType);
122
+ }
123
+ return {
124
+ isSupported: false,
125
+ error: "Model must be specified for file capability validation"
126
+ };
127
+ }
128
+ function validateImageInput(imageData, config) {
129
+ import_logger.logger.info(`Validating image input: ${imageData.mimeType}`);
130
+ if (typeof imageData.image === "string" && imageData.image.length > MAX_IMAGE_SIZE) {
131
+ return {
132
+ isSupported: false,
133
+ error: `Image size too large (max ${MAX_IMAGE_SIZE / 1048576}MB)`
134
+ };
135
+ }
136
+ let resolvedMime = imageData.mimeType?.toLowerCase();
137
+ if (!resolvedMime && typeof imageData.image === "string") {
138
+ const dataUrlMatch = /^data:([^;]+);base64,/i.exec(imageData.image);
139
+ if (dataUrlMatch && dataUrlMatch[1]) {
140
+ resolvedMime = dataUrlMatch[1].toLowerCase();
141
+ }
142
+ }
143
+ if (!resolvedMime) {
144
+ return { isSupported: false, error: "Missing image MIME type" };
145
+ }
146
+ if (!config.model) {
147
+ return {
148
+ isSupported: false,
149
+ error: "Model must be specified for image capability validation"
150
+ };
151
+ }
152
+ const baseMimeType = resolvedMime.split(";")[0]?.trim() || resolvedMime;
153
+ const res = (0, import_registry.validateModelFileSupport)(config.provider, config.model, baseMimeType);
154
+ return {
155
+ isSupported: res.isSupported,
156
+ ...res.error ? { error: res.error } : {}
157
+ };
158
+ }
159
+ // Annotate the CommonJS export names for ESM import in node:
160
+ 0 && (module.exports = {
161
+ validateInputForLLM
162
+ });
@@ -0,0 +1,60 @@
1
+ import { LLMProvider } from './types.cjs';
2
+ import { ImageData, FileData } from '../context/types.cjs';
3
+ import { Result } from '../utils/result.cjs';
4
+ import 'zod';
5
+ import '../errors/types.cjs';
6
+ import '../agent/error-codes.cjs';
7
+ import '../config/error-codes.cjs';
8
+ import '../context/error-codes.cjs';
9
+ import './error-codes.cjs';
10
+ import '../mcp/error-codes.cjs';
11
+ import '../session/error-codes.cjs';
12
+ import '../storage/error-codes.cjs';
13
+ import '../systemPrompt/error-codes.cjs';
14
+ import '../tools/error-codes.cjs';
15
+ import '../preferences/error-codes.cjs';
16
+ import '../agent/registry/error-codes.cjs';
17
+
18
+ interface ValidationLLMConfig {
19
+ provider: LLMProvider;
20
+ model?: string;
21
+ }
22
+ interface ValidationContext {
23
+ provider?: string;
24
+ model?: string | undefined;
25
+ fileSize?: number;
26
+ maxFileSize?: number;
27
+ filename?: string | undefined;
28
+ mimeType?: string;
29
+ fileType?: string | undefined;
30
+ suggestedAction?: string;
31
+ }
32
+ interface ValidationData {
33
+ fileValidation?: {
34
+ isSupported: boolean;
35
+ fileType?: string;
36
+ error?: string;
37
+ };
38
+ imageValidation?: {
39
+ isSupported: boolean;
40
+ error?: string;
41
+ };
42
+ }
43
+ /**
44
+ * Input interface for comprehensive validation
45
+ */
46
+ interface ValidationInput {
47
+ text?: string;
48
+ imageData?: ImageData | undefined;
49
+ fileData?: FileData | undefined;
50
+ }
51
+ /**
52
+ * Validates all inputs (text, image, file) against LLM capabilities and security requirements.
53
+ * This is the single entry point for all input validation using pure Result<T,C> pattern.
54
+ * @param input The input data to validate (text, image, file)
55
+ * @param config The LLM configuration (provider and model)
56
+ * @returns Comprehensive validation result
57
+ */
58
+ declare function validateInputForLLM(input: ValidationInput, config: ValidationLLMConfig): Result<ValidationData, ValidationContext>;
59
+
60
+ export { type ValidationContext, type ValidationData, type ValidationInput, type ValidationLLMConfig, validateInputForLLM };
@@ -0,0 +1,60 @@
1
+ import { LLMProvider } from './types.js';
2
+ import { ImageData, FileData } from '../context/types.js';
3
+ import { Result } from '../utils/result.js';
4
+ import 'zod';
5
+ import '../errors/types.js';
6
+ import '../agent/error-codes.js';
7
+ import '../config/error-codes.js';
8
+ import '../context/error-codes.js';
9
+ import './error-codes.js';
10
+ import '../mcp/error-codes.js';
11
+ import '../session/error-codes.js';
12
+ import '../storage/error-codes.js';
13
+ import '../systemPrompt/error-codes.js';
14
+ import '../tools/error-codes.js';
15
+ import '../preferences/error-codes.js';
16
+ import '../agent/registry/error-codes.js';
17
+
18
+ interface ValidationLLMConfig {
19
+ provider: LLMProvider;
20
+ model?: string;
21
+ }
22
+ interface ValidationContext {
23
+ provider?: string;
24
+ model?: string | undefined;
25
+ fileSize?: number;
26
+ maxFileSize?: number;
27
+ filename?: string | undefined;
28
+ mimeType?: string;
29
+ fileType?: string | undefined;
30
+ suggestedAction?: string;
31
+ }
32
+ interface ValidationData {
33
+ fileValidation?: {
34
+ isSupported: boolean;
35
+ fileType?: string;
36
+ error?: string;
37
+ };
38
+ imageValidation?: {
39
+ isSupported: boolean;
40
+ error?: string;
41
+ };
42
+ }
43
+ /**
44
+ * Input interface for comprehensive validation
45
+ */
46
+ interface ValidationInput {
47
+ text?: string;
48
+ imageData?: ImageData | undefined;
49
+ fileData?: FileData | undefined;
50
+ }
51
+ /**
52
+ * Validates all inputs (text, image, file) against LLM capabilities and security requirements.
53
+ * This is the single entry point for all input validation using pure Result<T,C> pattern.
54
+ * @param input The input data to validate (text, image, file)
55
+ * @param config The LLM configuration (provider and model)
56
+ * @returns Comprehensive validation result
57
+ */
58
+ declare function validateInputForLLM(input: ValidationInput, config: ValidationLLMConfig): Result<ValidationData, ValidationContext>;
59
+
60
+ export { type ValidationContext, type ValidationData, type ValidationInput, type ValidationLLMConfig, validateInputForLLM };
@@ -0,0 +1,138 @@
1
+ import { validateModelFileSupport, getAllowedMimeTypes } from "./registry.js";
2
+ import { logger } from "../logger/index.js";
3
+ import { ok, fail } from "../utils/result.js";
4
+ import { ErrorScope, ErrorType } from "../errors/types.js";
5
+ import { LLMErrorCode } from "./error-codes.js";
6
+ const MAX_FILE_SIZE = 67108864;
7
+ const MAX_IMAGE_SIZE = 20971520;
8
+ function validateInputForLLM(input, config) {
9
+ const issues = [];
10
+ const validationData = {};
11
+ try {
12
+ const context = {
13
+ provider: config.provider,
14
+ model: config.model
15
+ };
16
+ if (input.fileData) {
17
+ const fileValidation = validateFileInput(input.fileData, config);
18
+ validationData.fileValidation = fileValidation;
19
+ if (!fileValidation.isSupported) {
20
+ issues.push({
21
+ code: LLMErrorCode.INPUT_FILE_UNSUPPORTED,
22
+ message: fileValidation.error || "File type not supported by current LLM",
23
+ scope: ErrorScope.LLM,
24
+ type: ErrorType.USER,
25
+ severity: "error",
26
+ context: {
27
+ ...context,
28
+ fileType: fileValidation.fileType,
29
+ mimeType: input.fileData.mimeType,
30
+ filename: input.fileData.filename,
31
+ suggestedAction: "Use a supported file type or different model"
32
+ }
33
+ });
34
+ }
35
+ }
36
+ if (input.imageData) {
37
+ const imageValidation = validateImageInput(input.imageData, config);
38
+ validationData.imageValidation = imageValidation;
39
+ if (!imageValidation.isSupported) {
40
+ issues.push({
41
+ code: LLMErrorCode.INPUT_IMAGE_UNSUPPORTED,
42
+ message: imageValidation.error || "Image format not supported by current LLM",
43
+ scope: ErrorScope.LLM,
44
+ type: ErrorType.USER,
45
+ severity: "error",
46
+ context: {
47
+ ...context,
48
+ suggestedAction: "Use a supported image format or different model"
49
+ }
50
+ });
51
+ }
52
+ }
53
+ return issues.length === 0 ? ok(validationData, issues) : fail(issues);
54
+ } catch (error) {
55
+ logger.error(`Error during input validation: ${error}`);
56
+ return fail([
57
+ {
58
+ code: LLMErrorCode.REQUEST_INVALID_SCHEMA,
59
+ message: "Failed to validate input",
60
+ scope: ErrorScope.LLM,
61
+ type: ErrorType.SYSTEM,
62
+ severity: "error",
63
+ context: {
64
+ provider: config.provider,
65
+ model: config.model,
66
+ suggestedAction: "Check input format and try again"
67
+ }
68
+ }
69
+ ]);
70
+ }
71
+ }
72
+ function validateFileInput(fileData, config) {
73
+ logger.info(`Validating file input: ${fileData.mimeType}`);
74
+ if (typeof fileData.data === "string" && fileData.data.length > MAX_FILE_SIZE) {
75
+ return {
76
+ isSupported: false,
77
+ error: "File size too large (max 64MB)"
78
+ };
79
+ }
80
+ const baseMimeType = fileData.mimeType.toLowerCase().split(";")[0]?.trim() || fileData.mimeType.toLowerCase();
81
+ const allowedMimeTypes = getAllowedMimeTypes();
82
+ if (!allowedMimeTypes.includes(baseMimeType)) {
83
+ return {
84
+ isSupported: false,
85
+ error: `Unsupported file type: ${fileData.mimeType}`
86
+ };
87
+ }
88
+ if (typeof fileData.data === "string") {
89
+ const base64Regex = /^[A-Za-z0-9+/]+={0,2}$/;
90
+ if (!base64Regex.test(fileData.data) || fileData.data.length % 4 !== 0) {
91
+ return {
92
+ isSupported: false,
93
+ error: "Invalid file data format"
94
+ };
95
+ }
96
+ }
97
+ if (config.model) {
98
+ return validateModelFileSupport(config.provider, config.model, fileData.mimeType);
99
+ }
100
+ return {
101
+ isSupported: false,
102
+ error: "Model must be specified for file capability validation"
103
+ };
104
+ }
105
+ function validateImageInput(imageData, config) {
106
+ logger.info(`Validating image input: ${imageData.mimeType}`);
107
+ if (typeof imageData.image === "string" && imageData.image.length > MAX_IMAGE_SIZE) {
108
+ return {
109
+ isSupported: false,
110
+ error: `Image size too large (max ${MAX_IMAGE_SIZE / 1048576}MB)`
111
+ };
112
+ }
113
+ let resolvedMime = imageData.mimeType?.toLowerCase();
114
+ if (!resolvedMime && typeof imageData.image === "string") {
115
+ const dataUrlMatch = /^data:([^;]+);base64,/i.exec(imageData.image);
116
+ if (dataUrlMatch && dataUrlMatch[1]) {
117
+ resolvedMime = dataUrlMatch[1].toLowerCase();
118
+ }
119
+ }
120
+ if (!resolvedMime) {
121
+ return { isSupported: false, error: "Missing image MIME type" };
122
+ }
123
+ if (!config.model) {
124
+ return {
125
+ isSupported: false,
126
+ error: "Model must be specified for image capability validation"
127
+ };
128
+ }
129
+ const baseMimeType = resolvedMime.split(";")[0]?.trim() || resolvedMime;
130
+ const res = validateModelFileSupport(config.provider, config.model, baseMimeType);
131
+ return {
132
+ isSupported: res.isSupported,
133
+ ...res.error ? { error: res.error } : {}
134
+ };
135
+ }
136
+ export {
137
+ validateInputForLLM
138
+ };
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var browser_exports = {};
20
+ __export(browser_exports, {
21
+ Logger: () => Logger,
22
+ logger: () => logger
23
+ });
24
+ module.exports = __toCommonJS(browser_exports);
25
+ class Logger {
26
+ level;
27
+ isSilent;
28
+ constructor(options = {}) {
29
+ this.level = (options.level || "info").toLowerCase();
30
+ this.isSilent = options.silent ?? false;
31
+ }
32
+ out(fn, args) {
33
+ if (!this.isSilent && typeof console !== "undefined") fn(...args);
34
+ }
35
+ error(message, meta) {
36
+ this.out(console.error, [message, meta]);
37
+ }
38
+ warn(message, meta) {
39
+ this.out(console.warn, [message, meta]);
40
+ }
41
+ info(message, meta) {
42
+ this.out(console.info, [message, meta]);
43
+ }
44
+ http(message, meta) {
45
+ this.out(console.info, [message, meta]);
46
+ }
47
+ verbose(message, meta) {
48
+ this.out(console.debug, [message, meta]);
49
+ }
50
+ debug(message, meta) {
51
+ this.out(console.debug, [message, meta]);
52
+ }
53
+ silly(message, meta) {
54
+ this.out(console.debug, [message, meta]);
55
+ }
56
+ displayAIResponse(response) {
57
+ this.out(console.log, [response]);
58
+ }
59
+ toolCall(toolName, args) {
60
+ this.out(console.log, ["Tool Call", toolName, args]);
61
+ }
62
+ toolResult(result) {
63
+ this.out(console.log, ["Tool Result", result]);
64
+ }
65
+ displayStartupInfo(info) {
66
+ this.out(console.log, ["Startup", info]);
67
+ }
68
+ displayError(message, error) {
69
+ this.out(console.error, [message, error]);
70
+ }
71
+ setLevel(level) {
72
+ this.level = level.toLowerCase();
73
+ }
74
+ getLevel() {
75
+ return this.level;
76
+ }
77
+ getLogFilePath() {
78
+ return null;
79
+ }
80
+ }
81
+ const logger = new Logger();
82
+ // Annotate the CommonJS export names for ESM import in node:
83
+ 0 && (module.exports = {
84
+ Logger,
85
+ logger
86
+ });
@@ -0,0 +1,29 @@
1
+ interface LoggerOptions {
2
+ level?: string;
3
+ silent?: boolean;
4
+ logToConsole?: boolean;
5
+ }
6
+ declare class Logger {
7
+ private level;
8
+ private isSilent;
9
+ constructor(options?: LoggerOptions);
10
+ private out;
11
+ error(message: any, meta?: any): void;
12
+ warn(message: any, meta?: any): void;
13
+ info(message: any, meta?: any): void;
14
+ http(message: any, meta?: any): void;
15
+ verbose(message: any, meta?: any): void;
16
+ debug(message: any, meta?: any): void;
17
+ silly(message: any, meta?: any): void;
18
+ displayAIResponse(response: any): void;
19
+ toolCall(toolName: string, args: any): void;
20
+ toolResult(result: any): void;
21
+ displayStartupInfo(info: Record<string, any>): void;
22
+ displayError(message: string, error?: Error): void;
23
+ setLevel(level: string): void;
24
+ getLevel(): string;
25
+ getLogFilePath(): string | null;
26
+ }
27
+ declare const logger: Logger;
28
+
29
+ export { Logger, type LoggerOptions, logger };
@@ -0,0 +1,29 @@
1
+ interface LoggerOptions {
2
+ level?: string;
3
+ silent?: boolean;
4
+ logToConsole?: boolean;
5
+ }
6
+ declare class Logger {
7
+ private level;
8
+ private isSilent;
9
+ constructor(options?: LoggerOptions);
10
+ private out;
11
+ error(message: any, meta?: any): void;
12
+ warn(message: any, meta?: any): void;
13
+ info(message: any, meta?: any): void;
14
+ http(message: any, meta?: any): void;
15
+ verbose(message: any, meta?: any): void;
16
+ debug(message: any, meta?: any): void;
17
+ silly(message: any, meta?: any): void;
18
+ displayAIResponse(response: any): void;
19
+ toolCall(toolName: string, args: any): void;
20
+ toolResult(result: any): void;
21
+ displayStartupInfo(info: Record<string, any>): void;
22
+ displayError(message: string, error?: Error): void;
23
+ setLevel(level: string): void;
24
+ getLevel(): string;
25
+ getLogFilePath(): string | null;
26
+ }
27
+ declare const logger: Logger;
28
+
29
+ export { Logger, type LoggerOptions, logger };
@@ -0,0 +1,61 @@
1
+ class Logger {
2
+ level;
3
+ isSilent;
4
+ constructor(options = {}) {
5
+ this.level = (options.level || "info").toLowerCase();
6
+ this.isSilent = options.silent ?? false;
7
+ }
8
+ out(fn, args) {
9
+ if (!this.isSilent && typeof console !== "undefined") fn(...args);
10
+ }
11
+ error(message, meta) {
12
+ this.out(console.error, [message, meta]);
13
+ }
14
+ warn(message, meta) {
15
+ this.out(console.warn, [message, meta]);
16
+ }
17
+ info(message, meta) {
18
+ this.out(console.info, [message, meta]);
19
+ }
20
+ http(message, meta) {
21
+ this.out(console.info, [message, meta]);
22
+ }
23
+ verbose(message, meta) {
24
+ this.out(console.debug, [message, meta]);
25
+ }
26
+ debug(message, meta) {
27
+ this.out(console.debug, [message, meta]);
28
+ }
29
+ silly(message, meta) {
30
+ this.out(console.debug, [message, meta]);
31
+ }
32
+ displayAIResponse(response) {
33
+ this.out(console.log, [response]);
34
+ }
35
+ toolCall(toolName, args) {
36
+ this.out(console.log, ["Tool Call", toolName, args]);
37
+ }
38
+ toolResult(result) {
39
+ this.out(console.log, ["Tool Result", result]);
40
+ }
41
+ displayStartupInfo(info) {
42
+ this.out(console.log, ["Startup", info]);
43
+ }
44
+ displayError(message, error) {
45
+ this.out(console.error, [message, error]);
46
+ }
47
+ setLevel(level) {
48
+ this.level = level.toLowerCase();
49
+ }
50
+ getLevel() {
51
+ return this.level;
52
+ }
53
+ getLogFilePath() {
54
+ return null;
55
+ }
56
+ }
57
+ const logger = new Logger();
58
+ export {
59
+ Logger,
60
+ logger
61
+ };