@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,246 @@
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 anthropic_exports = {};
20
+ __export(anthropic_exports, {
21
+ AnthropicMessageFormatter: () => AnthropicMessageFormatter
22
+ });
23
+ module.exports = __toCommonJS(anthropic_exports);
24
+ var import_logger = require("../../logger/index.cjs");
25
+ var import_utils = require("../../context/utils.cjs");
26
+ class AnthropicMessageFormatter {
27
+ /**
28
+ * Formats internal messages into Anthropic's Claude API format
29
+ *
30
+ * Handles the complex logic of:
31
+ * 1. Ensuring tool calls are paired with their results
32
+ * 2. Creating the correct nested content structure
33
+ * 3. Converting tool results to Anthropic's expected format
34
+ *
35
+ * @param history Array of internal messages to format
36
+ * @returns Array of messages formatted for Anthropic's API
37
+ */
38
+ format(history, context, _systemPrompt) {
39
+ const formatted = [];
40
+ let filteredHistory;
41
+ try {
42
+ filteredHistory = (0, import_utils.filterMessagesByLLMCapabilities)([...history], context);
43
+ } catch (error) {
44
+ import_logger.logger.warn("Failed to apply capability filtering, using original history:", error);
45
+ filteredHistory = [...history];
46
+ }
47
+ const pendingToolCalls = /* @__PURE__ */ new Map();
48
+ for (let i = 0; i < filteredHistory.length; i++) {
49
+ const msg = filteredHistory[i];
50
+ if (!msg) {
51
+ continue;
52
+ }
53
+ if (msg.role === "system") continue;
54
+ if (msg.role === "user" && !msg.toolCallId) {
55
+ formatted.push({
56
+ role: "user",
57
+ content: this.formatUserContent(msg.content)
58
+ });
59
+ continue;
60
+ }
61
+ if (msg.role === "tool" && msg.toolCallId) {
62
+ const pendingCall = pendingToolCalls.get(msg.toolCallId);
63
+ if (pendingCall) {
64
+ if (pendingCall.assistantMsg) {
65
+ formatted.push(pendingCall.assistantMsg);
66
+ pendingCall.assistantMsg = null;
67
+ }
68
+ const safeContent = (0, import_utils.toTextForToolMessage)(msg.content);
69
+ const toolResultMsg = {
70
+ role: "user",
71
+ content: [
72
+ {
73
+ type: "tool_result",
74
+ tool_use_id: msg.toolCallId,
75
+ content: safeContent
76
+ }
77
+ ]
78
+ };
79
+ formatted.push(toolResultMsg);
80
+ pendingToolCalls.delete(msg.toolCallId);
81
+ } else {
82
+ import_logger.logger.warn(`Tool result found without matching tool call: ${msg.toolCallId}`);
83
+ const orphanSafe = (0, import_utils.toTextForToolMessage)(msg.content);
84
+ const orphanToolResult = {
85
+ role: "user",
86
+ content: [
87
+ {
88
+ type: "tool_result",
89
+ tool_use_id: msg.toolCallId,
90
+ content: orphanSafe
91
+ }
92
+ ]
93
+ };
94
+ formatted.push(orphanToolResult);
95
+ }
96
+ continue;
97
+ }
98
+ if (msg.role === "assistant" && msg.toolCalls && msg.toolCalls.length > 0) {
99
+ for (const toolCall of msg.toolCalls) {
100
+ const contentArray = [];
101
+ if (msg.content) {
102
+ contentArray.push({
103
+ type: "text",
104
+ text: msg.content
105
+ });
106
+ }
107
+ contentArray.push({
108
+ type: "tool_use",
109
+ id: toolCall.id,
110
+ name: toolCall.function.name,
111
+ input: JSON.parse(toolCall.function.arguments)
112
+ });
113
+ const assistantMsg = {
114
+ role: "assistant",
115
+ content: contentArray
116
+ };
117
+ pendingToolCalls.set(toolCall.id, {
118
+ assistantMsg,
119
+ index: i
120
+ });
121
+ }
122
+ continue;
123
+ }
124
+ if (msg.role === "assistant" && (!msg.toolCalls || msg.toolCalls.length === 0)) {
125
+ const assistantMsg = {
126
+ role: "assistant",
127
+ content: String(msg.content || "")
128
+ };
129
+ formatted.push(assistantMsg);
130
+ continue;
131
+ }
132
+ }
133
+ const remainingToolCalls = Array.from(pendingToolCalls.entries()).sort(
134
+ (a, b) => a[1].index - b[1].index
135
+ );
136
+ for (const [id, { assistantMsg }] of remainingToolCalls) {
137
+ if (assistantMsg) {
138
+ formatted.push(assistantMsg);
139
+ import_logger.logger.warn(`Tool call ${id} had no matching tool result`);
140
+ }
141
+ }
142
+ return formatted;
143
+ }
144
+ /**
145
+ * Returns the system prompt for Anthropic's API
146
+ *
147
+ * Anthropic doesn't include the system prompt in messages array
148
+ * but passes it as a separate parameter
149
+ *
150
+ * @param systemPrompt The system prompt to format
151
+ * @returns The system prompt without any modification
152
+ */
153
+ formatSystemPrompt(systemPrompt) {
154
+ return systemPrompt;
155
+ }
156
+ /**
157
+ * Parses Anthropic API response into internal message objects.
158
+ */
159
+ parseResponse(response) {
160
+ const internal = [];
161
+ const typedResponse = response;
162
+ if (!typedResponse || !Array.isArray(typedResponse.content)) {
163
+ return internal;
164
+ }
165
+ let combinedText = null;
166
+ const calls = [];
167
+ for (const block of typedResponse.content) {
168
+ const typedBlock = block;
169
+ if (typedBlock.type === "text") {
170
+ combinedText = (combinedText ?? "") + typedBlock.text;
171
+ } else if (typedBlock.type === "tool_use") {
172
+ calls.push({
173
+ id: typedBlock.id,
174
+ type: "function",
175
+ function: {
176
+ name: typedBlock.name,
177
+ arguments: JSON.stringify(typedBlock.input)
178
+ }
179
+ });
180
+ }
181
+ }
182
+ const assistantMessage = {
183
+ role: "assistant",
184
+ content: combinedText
185
+ };
186
+ if (calls.length > 0) {
187
+ assistantMessage.toolCalls = calls;
188
+ }
189
+ internal.push(assistantMessage);
190
+ return internal;
191
+ }
192
+ // Helper to format user message parts (text + image + file) into Anthropic multimodal API format
193
+ formatUserContent(content) {
194
+ if (!Array.isArray(content)) {
195
+ return String(content || "");
196
+ }
197
+ const blocks = content.map((part) => {
198
+ if (part.type === "text") {
199
+ return { type: "text", text: part.text };
200
+ }
201
+ if (part.type === "image") {
202
+ const raw = (0, import_utils.getImageData)(part);
203
+ let source;
204
+ if (raw.startsWith("http://") || raw.startsWith("https://")) {
205
+ source = { type: "url", url: raw };
206
+ } else if (raw.startsWith("data:")) {
207
+ const [meta, b64] = raw.split(",", 2);
208
+ const mediaTypeMatch = meta?.match(/data:(.*);base64/);
209
+ const media_type = mediaTypeMatch && mediaTypeMatch[1] || part.mimeType || "application/octet-stream";
210
+ source = { type: "base64", media_type, data: b64 };
211
+ } else {
212
+ source = { type: "base64", media_type: part.mimeType, data: raw };
213
+ }
214
+ return { type: "image", source };
215
+ }
216
+ if (part.type === "file") {
217
+ const raw = (0, import_utils.getFileData)(part);
218
+ const fileName = part.filename || "file";
219
+ let content2 = "";
220
+ try {
221
+ if (raw.startsWith("data:")) {
222
+ const [, base64Data] = raw.split(",", 2);
223
+ content2 = Buffer.from(base64Data || "", "base64").toString("utf-8");
224
+ } else if (raw.match(/^[A-Za-z0-9+/]*={0,2}$/)) {
225
+ content2 = Buffer.from(raw, "base64").toString("utf-8");
226
+ } else {
227
+ content2 = raw;
228
+ }
229
+ } catch {
230
+ content2 = `[Binary file: ${fileName}]`;
231
+ }
232
+ return {
233
+ type: "text",
234
+ text: `File "${fileName}":
235
+ ${content2}`
236
+ };
237
+ }
238
+ return null;
239
+ }).filter((block) => block !== null);
240
+ return blocks;
241
+ }
242
+ }
243
+ // Annotate the CommonJS export names for ESM import in node:
244
+ 0 && (module.exports = {
245
+ AnthropicMessageFormatter
246
+ });
@@ -0,0 +1,45 @@
1
+ import { MessageParam } from '@anthropic-ai/sdk/resources';
2
+ import { IMessageFormatter } from './types.cjs';
3
+ import { LLMContext } from '../types.cjs';
4
+ import { InternalMessage } from '../../context/types.cjs';
5
+
6
+ /**
7
+ * Message formatter for Anthropic's Claude API.
8
+ *
9
+ * Converts the internal message format to Anthropic's specific structure, which has
10
+ * notable differences in handling tool calls and tool results:
11
+ * - Anthropic uses a content array with different types (text, tool_use, tool_result)
12
+ * - Tool results are sent as user messages with special content structure
13
+ * - System prompts are not included in the messages array but sent separately
14
+ */
15
+ declare class AnthropicMessageFormatter implements IMessageFormatter {
16
+ /**
17
+ * Formats internal messages into Anthropic's Claude API format
18
+ *
19
+ * Handles the complex logic of:
20
+ * 1. Ensuring tool calls are paired with their results
21
+ * 2. Creating the correct nested content structure
22
+ * 3. Converting tool results to Anthropic's expected format
23
+ *
24
+ * @param history Array of internal messages to format
25
+ * @returns Array of messages formatted for Anthropic's API
26
+ */
27
+ format(history: Readonly<InternalMessage[]>, context: LLMContext, _systemPrompt?: string | null): MessageParam[];
28
+ /**
29
+ * Returns the system prompt for Anthropic's API
30
+ *
31
+ * Anthropic doesn't include the system prompt in messages array
32
+ * but passes it as a separate parameter
33
+ *
34
+ * @param systemPrompt The system prompt to format
35
+ * @returns The system prompt without any modification
36
+ */
37
+ formatSystemPrompt(systemPrompt: string | null): string | null;
38
+ /**
39
+ * Parses Anthropic API response into internal message objects.
40
+ */
41
+ parseResponse(response: unknown): InternalMessage[];
42
+ private formatUserContent;
43
+ }
44
+
45
+ export { AnthropicMessageFormatter };
@@ -0,0 +1,45 @@
1
+ import { MessageParam } from '@anthropic-ai/sdk/resources';
2
+ import { IMessageFormatter } from './types.js';
3
+ import { LLMContext } from '../types.js';
4
+ import { InternalMessage } from '../../context/types.js';
5
+
6
+ /**
7
+ * Message formatter for Anthropic's Claude API.
8
+ *
9
+ * Converts the internal message format to Anthropic's specific structure, which has
10
+ * notable differences in handling tool calls and tool results:
11
+ * - Anthropic uses a content array with different types (text, tool_use, tool_result)
12
+ * - Tool results are sent as user messages with special content structure
13
+ * - System prompts are not included in the messages array but sent separately
14
+ */
15
+ declare class AnthropicMessageFormatter implements IMessageFormatter {
16
+ /**
17
+ * Formats internal messages into Anthropic's Claude API format
18
+ *
19
+ * Handles the complex logic of:
20
+ * 1. Ensuring tool calls are paired with their results
21
+ * 2. Creating the correct nested content structure
22
+ * 3. Converting tool results to Anthropic's expected format
23
+ *
24
+ * @param history Array of internal messages to format
25
+ * @returns Array of messages formatted for Anthropic's API
26
+ */
27
+ format(history: Readonly<InternalMessage[]>, context: LLMContext, _systemPrompt?: string | null): MessageParam[];
28
+ /**
29
+ * Returns the system prompt for Anthropic's API
30
+ *
31
+ * Anthropic doesn't include the system prompt in messages array
32
+ * but passes it as a separate parameter
33
+ *
34
+ * @param systemPrompt The system prompt to format
35
+ * @returns The system prompt without any modification
36
+ */
37
+ formatSystemPrompt(systemPrompt: string | null): string | null;
38
+ /**
39
+ * Parses Anthropic API response into internal message objects.
40
+ */
41
+ parseResponse(response: unknown): InternalMessage[];
42
+ private formatUserContent;
43
+ }
44
+
45
+ export { AnthropicMessageFormatter };
@@ -0,0 +1,227 @@
1
+ import { logger } from "../../logger/index.js";
2
+ import {
3
+ getImageData,
4
+ getFileData,
5
+ filterMessagesByLLMCapabilities,
6
+ toTextForToolMessage
7
+ } from "../../context/utils.js";
8
+ class AnthropicMessageFormatter {
9
+ /**
10
+ * Formats internal messages into Anthropic's Claude API format
11
+ *
12
+ * Handles the complex logic of:
13
+ * 1. Ensuring tool calls are paired with their results
14
+ * 2. Creating the correct nested content structure
15
+ * 3. Converting tool results to Anthropic's expected format
16
+ *
17
+ * @param history Array of internal messages to format
18
+ * @returns Array of messages formatted for Anthropic's API
19
+ */
20
+ format(history, context, _systemPrompt) {
21
+ const formatted = [];
22
+ let filteredHistory;
23
+ try {
24
+ filteredHistory = filterMessagesByLLMCapabilities([...history], context);
25
+ } catch (error) {
26
+ logger.warn("Failed to apply capability filtering, using original history:", error);
27
+ filteredHistory = [...history];
28
+ }
29
+ const pendingToolCalls = /* @__PURE__ */ new Map();
30
+ for (let i = 0; i < filteredHistory.length; i++) {
31
+ const msg = filteredHistory[i];
32
+ if (!msg) {
33
+ continue;
34
+ }
35
+ if (msg.role === "system") continue;
36
+ if (msg.role === "user" && !msg.toolCallId) {
37
+ formatted.push({
38
+ role: "user",
39
+ content: this.formatUserContent(msg.content)
40
+ });
41
+ continue;
42
+ }
43
+ if (msg.role === "tool" && msg.toolCallId) {
44
+ const pendingCall = pendingToolCalls.get(msg.toolCallId);
45
+ if (pendingCall) {
46
+ if (pendingCall.assistantMsg) {
47
+ formatted.push(pendingCall.assistantMsg);
48
+ pendingCall.assistantMsg = null;
49
+ }
50
+ const safeContent = toTextForToolMessage(msg.content);
51
+ const toolResultMsg = {
52
+ role: "user",
53
+ content: [
54
+ {
55
+ type: "tool_result",
56
+ tool_use_id: msg.toolCallId,
57
+ content: safeContent
58
+ }
59
+ ]
60
+ };
61
+ formatted.push(toolResultMsg);
62
+ pendingToolCalls.delete(msg.toolCallId);
63
+ } else {
64
+ logger.warn(`Tool result found without matching tool call: ${msg.toolCallId}`);
65
+ const orphanSafe = toTextForToolMessage(msg.content);
66
+ const orphanToolResult = {
67
+ role: "user",
68
+ content: [
69
+ {
70
+ type: "tool_result",
71
+ tool_use_id: msg.toolCallId,
72
+ content: orphanSafe
73
+ }
74
+ ]
75
+ };
76
+ formatted.push(orphanToolResult);
77
+ }
78
+ continue;
79
+ }
80
+ if (msg.role === "assistant" && msg.toolCalls && msg.toolCalls.length > 0) {
81
+ for (const toolCall of msg.toolCalls) {
82
+ const contentArray = [];
83
+ if (msg.content) {
84
+ contentArray.push({
85
+ type: "text",
86
+ text: msg.content
87
+ });
88
+ }
89
+ contentArray.push({
90
+ type: "tool_use",
91
+ id: toolCall.id,
92
+ name: toolCall.function.name,
93
+ input: JSON.parse(toolCall.function.arguments)
94
+ });
95
+ const assistantMsg = {
96
+ role: "assistant",
97
+ content: contentArray
98
+ };
99
+ pendingToolCalls.set(toolCall.id, {
100
+ assistantMsg,
101
+ index: i
102
+ });
103
+ }
104
+ continue;
105
+ }
106
+ if (msg.role === "assistant" && (!msg.toolCalls || msg.toolCalls.length === 0)) {
107
+ const assistantMsg = {
108
+ role: "assistant",
109
+ content: String(msg.content || "")
110
+ };
111
+ formatted.push(assistantMsg);
112
+ continue;
113
+ }
114
+ }
115
+ const remainingToolCalls = Array.from(pendingToolCalls.entries()).sort(
116
+ (a, b) => a[1].index - b[1].index
117
+ );
118
+ for (const [id, { assistantMsg }] of remainingToolCalls) {
119
+ if (assistantMsg) {
120
+ formatted.push(assistantMsg);
121
+ logger.warn(`Tool call ${id} had no matching tool result`);
122
+ }
123
+ }
124
+ return formatted;
125
+ }
126
+ /**
127
+ * Returns the system prompt for Anthropic's API
128
+ *
129
+ * Anthropic doesn't include the system prompt in messages array
130
+ * but passes it as a separate parameter
131
+ *
132
+ * @param systemPrompt The system prompt to format
133
+ * @returns The system prompt without any modification
134
+ */
135
+ formatSystemPrompt(systemPrompt) {
136
+ return systemPrompt;
137
+ }
138
+ /**
139
+ * Parses Anthropic API response into internal message objects.
140
+ */
141
+ parseResponse(response) {
142
+ const internal = [];
143
+ const typedResponse = response;
144
+ if (!typedResponse || !Array.isArray(typedResponse.content)) {
145
+ return internal;
146
+ }
147
+ let combinedText = null;
148
+ const calls = [];
149
+ for (const block of typedResponse.content) {
150
+ const typedBlock = block;
151
+ if (typedBlock.type === "text") {
152
+ combinedText = (combinedText ?? "") + typedBlock.text;
153
+ } else if (typedBlock.type === "tool_use") {
154
+ calls.push({
155
+ id: typedBlock.id,
156
+ type: "function",
157
+ function: {
158
+ name: typedBlock.name,
159
+ arguments: JSON.stringify(typedBlock.input)
160
+ }
161
+ });
162
+ }
163
+ }
164
+ const assistantMessage = {
165
+ role: "assistant",
166
+ content: combinedText
167
+ };
168
+ if (calls.length > 0) {
169
+ assistantMessage.toolCalls = calls;
170
+ }
171
+ internal.push(assistantMessage);
172
+ return internal;
173
+ }
174
+ // Helper to format user message parts (text + image + file) into Anthropic multimodal API format
175
+ formatUserContent(content) {
176
+ if (!Array.isArray(content)) {
177
+ return String(content || "");
178
+ }
179
+ const blocks = content.map((part) => {
180
+ if (part.type === "text") {
181
+ return { type: "text", text: part.text };
182
+ }
183
+ if (part.type === "image") {
184
+ const raw = getImageData(part);
185
+ let source;
186
+ if (raw.startsWith("http://") || raw.startsWith("https://")) {
187
+ source = { type: "url", url: raw };
188
+ } else if (raw.startsWith("data:")) {
189
+ const [meta, b64] = raw.split(",", 2);
190
+ const mediaTypeMatch = meta?.match(/data:(.*);base64/);
191
+ const media_type = mediaTypeMatch && mediaTypeMatch[1] || part.mimeType || "application/octet-stream";
192
+ source = { type: "base64", media_type, data: b64 };
193
+ } else {
194
+ source = { type: "base64", media_type: part.mimeType, data: raw };
195
+ }
196
+ return { type: "image", source };
197
+ }
198
+ if (part.type === "file") {
199
+ const raw = getFileData(part);
200
+ const fileName = part.filename || "file";
201
+ let content2 = "";
202
+ try {
203
+ if (raw.startsWith("data:")) {
204
+ const [, base64Data] = raw.split(",", 2);
205
+ content2 = Buffer.from(base64Data || "", "base64").toString("utf-8");
206
+ } else if (raw.match(/^[A-Za-z0-9+/]*={0,2}$/)) {
207
+ content2 = Buffer.from(raw, "base64").toString("utf-8");
208
+ } else {
209
+ content2 = raw;
210
+ }
211
+ } catch {
212
+ content2 = `[Binary file: ${fileName}]`;
213
+ }
214
+ return {
215
+ type: "text",
216
+ text: `File "${fileName}":
217
+ ${content2}`
218
+ };
219
+ }
220
+ return null;
221
+ }).filter((block) => block !== null);
222
+ return blocks;
223
+ }
224
+ }
225
+ export {
226
+ AnthropicMessageFormatter
227
+ };
@@ -0,0 +1,51 @@
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 factory_exports = {};
20
+ __export(factory_exports, {
21
+ createMessageFormatter: () => createMessageFormatter
22
+ });
23
+ module.exports = __toCommonJS(factory_exports);
24
+ var import_vercel = require("./vercel.js");
25
+ var import_openai = require("./openai.js");
26
+ var import_anthropic = require("./anthropic.js");
27
+ var import_logger = require("../../logger/index.cjs");
28
+ var import_errors = require("../errors.js");
29
+ function createMessageFormatter(provider, router) {
30
+ if (router === "vercel") {
31
+ return new import_vercel.VercelMessageFormatter();
32
+ } else if (router === "in-built") {
33
+ if (provider === "openai" || provider === "openai-compatible") {
34
+ return new import_openai.OpenAIMessageFormatter();
35
+ } else if (provider === "anthropic") {
36
+ return new import_anthropic.AnthropicMessageFormatter();
37
+ } else {
38
+ import_logger.logger.error(
39
+ `Provider '${provider}' supported by registry but not configured for 'default' router message formatting.`
40
+ );
41
+ throw import_errors.LLMError.unsupportedRouter(router, provider);
42
+ }
43
+ } else {
44
+ import_logger.logger.error(`Unsupported LLM router specified: ${router}`);
45
+ throw import_errors.LLMError.unsupportedRouter(router, provider);
46
+ }
47
+ }
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ createMessageFormatter
51
+ });
@@ -0,0 +1,12 @@
1
+ import { IMessageFormatter } from './types.cjs';
2
+ import { LLMProvider, LLMRouter } from '../types.cjs';
3
+ import '../../context/types.cjs';
4
+
5
+ /**
6
+ * Creates a message formatter for the specified provider and router combination.
7
+ * Each formatter handles the conversion between internal message format and
8
+ * provider-specific message structures.
9
+ */
10
+ declare function createMessageFormatter(provider: LLMProvider, router: LLMRouter): IMessageFormatter;
11
+
12
+ export { createMessageFormatter };
@@ -0,0 +1,12 @@
1
+ import { IMessageFormatter } from './types.js';
2
+ import { LLMProvider, LLMRouter } from '../types.js';
3
+ import '../../context/types.js';
4
+
5
+ /**
6
+ * Creates a message formatter for the specified provider and router combination.
7
+ * Each formatter handles the conversion between internal message format and
8
+ * provider-specific message structures.
9
+ */
10
+ declare function createMessageFormatter(provider: LLMProvider, router: LLMRouter): IMessageFormatter;
11
+
12
+ export { createMessageFormatter };
@@ -0,0 +1,27 @@
1
+ import { VercelMessageFormatter } from "./vercel.js";
2
+ import { OpenAIMessageFormatter } from "./openai.js";
3
+ import { AnthropicMessageFormatter } from "./anthropic.js";
4
+ import { logger } from "../../logger/index.js";
5
+ import { LLMError } from "../errors.js";
6
+ function createMessageFormatter(provider, router) {
7
+ if (router === "vercel") {
8
+ return new VercelMessageFormatter();
9
+ } else if (router === "in-built") {
10
+ if (provider === "openai" || provider === "openai-compatible") {
11
+ return new OpenAIMessageFormatter();
12
+ } else if (provider === "anthropic") {
13
+ return new AnthropicMessageFormatter();
14
+ } else {
15
+ logger.error(
16
+ `Provider '${provider}' supported by registry but not configured for 'default' router message formatting.`
17
+ );
18
+ throw LLMError.unsupportedRouter(router, provider);
19
+ }
20
+ } else {
21
+ logger.error(`Unsupported LLM router specified: ${router}`);
22
+ throw LLMError.unsupportedRouter(router, provider);
23
+ }
24
+ }
25
+ export {
26
+ createMessageFormatter
27
+ };