@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,146 @@
1
+ import { promises as fs } from "fs";
2
+ import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
3
+ import * as path from "path";
4
+ import { logger } from "../logger/index.js";
5
+ import { ConfigError } from "./errors.js";
6
+ async function writeConfigFile(configPath, config) {
7
+ const absolutePath = path.resolve(configPath);
8
+ try {
9
+ const yamlContent = stringifyYaml(config, { indent: 2 });
10
+ await fs.writeFile(absolutePath, yamlContent, "utf-8");
11
+ logger.debug(`Wrote dexto config to: ${absolutePath}`);
12
+ } catch (error) {
13
+ throw ConfigError.fileWriteError(
14
+ absolutePath,
15
+ error instanceof Error ? error.message : String(error)
16
+ );
17
+ }
18
+ }
19
+ async function writeLLMPreferences(configPath, preferences, overrides) {
20
+ logger.debug(`Writing LLM preferences to: ${configPath}`, {
21
+ provider: overrides?.provider ?? preferences.llm.provider,
22
+ model: overrides?.model ?? preferences.llm.model,
23
+ hasApiKeyOverride: Boolean(overrides?.apiKey),
24
+ hasPreferenceApiKey: Boolean(preferences.llm.apiKey)
25
+ });
26
+ logger.debug(`Reading config file: ${configPath}`);
27
+ let fileContent;
28
+ try {
29
+ fileContent = await fs.readFile(configPath, "utf-8");
30
+ logger.debug(`Successfully read config file (${fileContent.length} chars)`);
31
+ } catch (error) {
32
+ logger.error(`Failed to read config file: ${configPath}`, { error });
33
+ throw ConfigError.fileReadError(
34
+ configPath,
35
+ error instanceof Error ? error.message : String(error)
36
+ );
37
+ }
38
+ let config;
39
+ try {
40
+ config = parseYaml(fileContent);
41
+ logger.debug(`Successfully parsed YAML config`, {
42
+ hasLlmSection: Boolean(config.llm),
43
+ existingProvider: config.llm?.provider,
44
+ existingModel: config.llm?.model
45
+ });
46
+ } catch (error) {
47
+ logger.error(`Failed to parse YAML config: ${configPath}`, { error });
48
+ throw ConfigError.parseError(
49
+ configPath,
50
+ error instanceof Error ? error.message : String(error)
51
+ );
52
+ }
53
+ const provider = overrides?.provider ?? preferences.llm.provider;
54
+ const model = overrides?.model ?? preferences.llm.model;
55
+ const apiKey = overrides?.apiKey ?? preferences.llm.apiKey;
56
+ logger.debug(`Applying LLM preferences`, {
57
+ finalProvider: provider,
58
+ finalModel: model,
59
+ hasApiKey: Boolean(apiKey),
60
+ source: overrides ? "CLI overrides + preferences" : "preferences only"
61
+ });
62
+ config.llm = {
63
+ ...config.llm,
64
+ // Preserve temperature, router, maxTokens, etc.
65
+ provider,
66
+ // Write user preference
67
+ model,
68
+ // Write user preference
69
+ apiKey
70
+ // Write user preference
71
+ };
72
+ await writeConfigFile(configPath, config);
73
+ logger.info(`\u2713 Applied preferences to: ${path.basename(configPath)} (${provider}/${model})`);
74
+ }
75
+ async function writePreferencesToAgent(installedPath, preferences, overrides) {
76
+ let stat;
77
+ try {
78
+ stat = await fs.stat(installedPath);
79
+ } catch (error) {
80
+ throw ConfigError.fileReadError(
81
+ installedPath,
82
+ error instanceof Error ? error.message : String(error)
83
+ );
84
+ }
85
+ if (stat.isFile()) {
86
+ if (installedPath.endsWith(".yml") || installedPath.endsWith(".yaml")) {
87
+ await writeLLMPreferences(installedPath, preferences, overrides);
88
+ logger.info(`\u2713 Applied preferences to: ${path.basename(installedPath)}`, null, "green");
89
+ } else {
90
+ logger.warn(`Skipping non-YAML file: ${installedPath}`, null, "yellow");
91
+ }
92
+ } else if (stat.isDirectory()) {
93
+ await writePreferencesToDirectory(installedPath, preferences, overrides);
94
+ } else {
95
+ throw ConfigError.fileReadError(installedPath, "Path is neither a file nor directory");
96
+ }
97
+ }
98
+ async function writePreferencesToDirectory(installedDir, preferences, overrides) {
99
+ const configFiles = await findAgentConfigFiles(installedDir);
100
+ if (configFiles.length === 0) {
101
+ logger.warn(`No YAML config files found in: ${installedDir}`);
102
+ return;
103
+ }
104
+ let successCount = 0;
105
+ const oldProvider = preferences.llm.provider;
106
+ const oldModel = preferences.llm.model;
107
+ const newProvider = overrides?.provider ?? preferences.llm.provider;
108
+ const newModel = overrides?.model ?? preferences.llm.model;
109
+ for (const configPath of configFiles) {
110
+ try {
111
+ await writeLLMPreferences(configPath, preferences, overrides);
112
+ logger.debug(`Applied preferences to: ${path.relative(installedDir, configPath)}`);
113
+ successCount++;
114
+ } catch (error) {
115
+ logger.warn(
116
+ `Failed to write preferences to ${configPath}: ${error instanceof Error ? error.message : String(error)}`
117
+ );
118
+ }
119
+ }
120
+ logger.info(
121
+ `\u2713 Applied preferences to ${successCount}/${configFiles.length} config files (${oldProvider}\u2192${newProvider}, ${oldModel}\u2192${newModel})`
122
+ );
123
+ }
124
+ async function findAgentConfigFiles(dir) {
125
+ const configFiles = [];
126
+ async function walkDir(currentDir) {
127
+ const entries = await fs.readdir(currentDir, { withFileTypes: true });
128
+ for (const entry of entries) {
129
+ const fullPath = path.join(currentDir, entry.name);
130
+ if (entry.isDirectory()) {
131
+ if (!["docs", "data"].includes(entry.name)) {
132
+ await walkDir(fullPath);
133
+ }
134
+ } else if (entry.name.endsWith(".yml") || entry.name.endsWith(".yaml")) {
135
+ configFiles.push(fullPath);
136
+ }
137
+ }
138
+ }
139
+ await walkDir(dir);
140
+ return configFiles;
141
+ }
142
+ export {
143
+ writeConfigFile,
144
+ writeLLMPreferences,
145
+ writePreferencesToAgent
146
+ };
@@ -0,0 +1,95 @@
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 middle_removal_exports = {};
20
+ __export(middle_removal_exports, {
21
+ MiddleRemovalStrategy: () => MiddleRemovalStrategy
22
+ });
23
+ module.exports = __toCommonJS(middle_removal_exports);
24
+ var import_utils = require("../utils.cjs");
25
+ var import_errors = require("../errors.js");
26
+ class MiddleRemovalStrategy {
27
+ preserveStart;
28
+ preserveEnd;
29
+ /**
30
+ * Creates an instance of MiddleRemovalStrategy.
31
+ *
32
+ * @param options Configuration options for preserving messages.
33
+ */
34
+ constructor(options = {}) {
35
+ this.preserveStart = options.preserveStart ?? 4;
36
+ this.preserveEnd = options.preserveEnd ?? 5;
37
+ if (this.preserveStart < 0 || this.preserveEnd < 0) {
38
+ throw import_errors.ContextError.preserveValuesNegative();
39
+ }
40
+ }
41
+ /**
42
+ * Compresses the history by removing messages from the middle if the total
43
+ * token count exceeds the specified maximum.
44
+ *
45
+ * @param history The current conversation history.
46
+ * @param tokenizer The tokenizer used to calculate message tokens.
47
+ * @param maxHistoryTokens The maximum number of tokens allowed *for the history messages*.
48
+ * @returns The potentially compressed message history.
49
+ */
50
+ compress(history, tokenizer, maxHistoryTokens) {
51
+ const initialTokenCount = (0, import_utils.countMessagesTokens)(history, tokenizer);
52
+ if (initialTokenCount <= maxHistoryTokens) {
53
+ return history;
54
+ }
55
+ const removableIndices = [];
56
+ const totalMessages = history.length;
57
+ if (totalMessages > this.preserveStart + this.preserveEnd) {
58
+ for (let i = this.preserveStart; i < totalMessages - this.preserveEnd; i++) {
59
+ removableIndices.push(i);
60
+ }
61
+ } else {
62
+ console.warn(
63
+ "MiddleRemovalStrategy: Not enough messages to apply middle removal based on preserve counts. History length:",
64
+ totalMessages,
65
+ "PreserveStart:",
66
+ this.preserveStart,
67
+ "PreserveEnd:",
68
+ this.preserveEnd
69
+ );
70
+ return history;
71
+ }
72
+ let currentHistory = [...history];
73
+ let currentTokenCount = initialTokenCount;
74
+ const removedIndices = /* @__PURE__ */ new Set();
75
+ while (currentTokenCount > maxHistoryTokens && removableIndices.length > 0) {
76
+ const indexToRemove = removableIndices.shift();
77
+ removedIndices.add(indexToRemove);
78
+ currentTokenCount = (0, import_utils.countMessagesTokens)(
79
+ currentHistory.filter((_, i) => !removedIndices.has(i)),
80
+ // Calculate tokens based on remaining messages
81
+ tokenizer
82
+ );
83
+ }
84
+ if (currentTokenCount > maxHistoryTokens) {
85
+ console.warn(
86
+ `MiddleRemovalStrategy: Unable to compress below max tokens (${maxHistoryTokens}). Final token count: ${currentTokenCount}`
87
+ );
88
+ }
89
+ return history.filter((_, i) => !removedIndices.has(i));
90
+ }
91
+ }
92
+ // Annotate the CommonJS export names for ESM import in node:
93
+ 0 && (module.exports = {
94
+ MiddleRemovalStrategy
95
+ });
@@ -0,0 +1,48 @@
1
+ import { ITokenizer } from '../../llm/tokenizer/types.cjs';
2
+ import { InternalMessage } from '../types.cjs';
3
+ import { ICompressionStrategy } from './types.cjs';
4
+ import '../../llm/types.cjs';
5
+
6
+ /**
7
+ * Configuration options for the MiddleRemovalStrategy.
8
+ */
9
+ interface MiddleRemovalStrategyOptions {
10
+ /**
11
+ * The number of messages to preserve at the beginning of the history.
12
+ * @default 4
13
+ */
14
+ preserveStart?: number;
15
+ /**
16
+ * The number of messages to preserve at the end of the history.
17
+ * @default 5
18
+ */
19
+ preserveEnd?: number;
20
+ }
21
+ /**
22
+ * Implements a compression strategy that removes messages from the middle of the
23
+ * conversation history, preserving a configurable number of messages at the
24
+ * beginning and end. It prioritizes removing the oldest messages within the
25
+ * removable middle section first.
26
+ */
27
+ declare class MiddleRemovalStrategy implements ICompressionStrategy {
28
+ private readonly preserveStart;
29
+ private readonly preserveEnd;
30
+ /**
31
+ * Creates an instance of MiddleRemovalStrategy.
32
+ *
33
+ * @param options Configuration options for preserving messages.
34
+ */
35
+ constructor(options?: MiddleRemovalStrategyOptions);
36
+ /**
37
+ * Compresses the history by removing messages from the middle if the total
38
+ * token count exceeds the specified maximum.
39
+ *
40
+ * @param history The current conversation history.
41
+ * @param tokenizer The tokenizer used to calculate message tokens.
42
+ * @param maxHistoryTokens The maximum number of tokens allowed *for the history messages*.
43
+ * @returns The potentially compressed message history.
44
+ */
45
+ compress(history: InternalMessage[], tokenizer: ITokenizer, maxHistoryTokens: number): InternalMessage[];
46
+ }
47
+
48
+ export { MiddleRemovalStrategy, type MiddleRemovalStrategyOptions };
@@ -0,0 +1,48 @@
1
+ import { ITokenizer } from '../../llm/tokenizer/types.js';
2
+ import { InternalMessage } from '../types.js';
3
+ import { ICompressionStrategy } from './types.js';
4
+ import '../../llm/types.js';
5
+
6
+ /**
7
+ * Configuration options for the MiddleRemovalStrategy.
8
+ */
9
+ interface MiddleRemovalStrategyOptions {
10
+ /**
11
+ * The number of messages to preserve at the beginning of the history.
12
+ * @default 4
13
+ */
14
+ preserveStart?: number;
15
+ /**
16
+ * The number of messages to preserve at the end of the history.
17
+ * @default 5
18
+ */
19
+ preserveEnd?: number;
20
+ }
21
+ /**
22
+ * Implements a compression strategy that removes messages from the middle of the
23
+ * conversation history, preserving a configurable number of messages at the
24
+ * beginning and end. It prioritizes removing the oldest messages within the
25
+ * removable middle section first.
26
+ */
27
+ declare class MiddleRemovalStrategy implements ICompressionStrategy {
28
+ private readonly preserveStart;
29
+ private readonly preserveEnd;
30
+ /**
31
+ * Creates an instance of MiddleRemovalStrategy.
32
+ *
33
+ * @param options Configuration options for preserving messages.
34
+ */
35
+ constructor(options?: MiddleRemovalStrategyOptions);
36
+ /**
37
+ * Compresses the history by removing messages from the middle if the total
38
+ * token count exceeds the specified maximum.
39
+ *
40
+ * @param history The current conversation history.
41
+ * @param tokenizer The tokenizer used to calculate message tokens.
42
+ * @param maxHistoryTokens The maximum number of tokens allowed *for the history messages*.
43
+ * @returns The potentially compressed message history.
44
+ */
45
+ compress(history: InternalMessage[], tokenizer: ITokenizer, maxHistoryTokens: number): InternalMessage[];
46
+ }
47
+
48
+ export { MiddleRemovalStrategy, type MiddleRemovalStrategyOptions };
@@ -0,0 +1,71 @@
1
+ import { countMessagesTokens } from "../utils.js";
2
+ import { ContextError } from "../errors.js";
3
+ class MiddleRemovalStrategy {
4
+ preserveStart;
5
+ preserveEnd;
6
+ /**
7
+ * Creates an instance of MiddleRemovalStrategy.
8
+ *
9
+ * @param options Configuration options for preserving messages.
10
+ */
11
+ constructor(options = {}) {
12
+ this.preserveStart = options.preserveStart ?? 4;
13
+ this.preserveEnd = options.preserveEnd ?? 5;
14
+ if (this.preserveStart < 0 || this.preserveEnd < 0) {
15
+ throw ContextError.preserveValuesNegative();
16
+ }
17
+ }
18
+ /**
19
+ * Compresses the history by removing messages from the middle if the total
20
+ * token count exceeds the specified maximum.
21
+ *
22
+ * @param history The current conversation history.
23
+ * @param tokenizer The tokenizer used to calculate message tokens.
24
+ * @param maxHistoryTokens The maximum number of tokens allowed *for the history messages*.
25
+ * @returns The potentially compressed message history.
26
+ */
27
+ compress(history, tokenizer, maxHistoryTokens) {
28
+ const initialTokenCount = countMessagesTokens(history, tokenizer);
29
+ if (initialTokenCount <= maxHistoryTokens) {
30
+ return history;
31
+ }
32
+ const removableIndices = [];
33
+ const totalMessages = history.length;
34
+ if (totalMessages > this.preserveStart + this.preserveEnd) {
35
+ for (let i = this.preserveStart; i < totalMessages - this.preserveEnd; i++) {
36
+ removableIndices.push(i);
37
+ }
38
+ } else {
39
+ console.warn(
40
+ "MiddleRemovalStrategy: Not enough messages to apply middle removal based on preserve counts. History length:",
41
+ totalMessages,
42
+ "PreserveStart:",
43
+ this.preserveStart,
44
+ "PreserveEnd:",
45
+ this.preserveEnd
46
+ );
47
+ return history;
48
+ }
49
+ let currentHistory = [...history];
50
+ let currentTokenCount = initialTokenCount;
51
+ const removedIndices = /* @__PURE__ */ new Set();
52
+ while (currentTokenCount > maxHistoryTokens && removableIndices.length > 0) {
53
+ const indexToRemove = removableIndices.shift();
54
+ removedIndices.add(indexToRemove);
55
+ currentTokenCount = countMessagesTokens(
56
+ currentHistory.filter((_, i) => !removedIndices.has(i)),
57
+ // Calculate tokens based on remaining messages
58
+ tokenizer
59
+ );
60
+ }
61
+ if (currentTokenCount > maxHistoryTokens) {
62
+ console.warn(
63
+ `MiddleRemovalStrategy: Unable to compress below max tokens (${maxHistoryTokens}). Final token count: ${currentTokenCount}`
64
+ );
65
+ }
66
+ return history.filter((_, i) => !removedIndices.has(i));
67
+ }
68
+ }
69
+ export {
70
+ MiddleRemovalStrategy
71
+ };
@@ -0,0 +1,70 @@
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 oldest_removal_exports = {};
20
+ __export(oldest_removal_exports, {
21
+ OldestRemovalStrategy: () => OldestRemovalStrategy
22
+ });
23
+ module.exports = __toCommonJS(oldest_removal_exports);
24
+ var import_utils = require("../utils.js");
25
+ var import_errors = require("../errors.js");
26
+ class OldestRemovalStrategy {
27
+ minMessagesToKeep;
28
+ /**
29
+ * Creates an instance of OldestRemovalStrategy.
30
+ *
31
+ * @param options Configuration options for preserving messages.
32
+ */
33
+ constructor(options = {}) {
34
+ this.minMessagesToKeep = options.minMessagesToKeep ?? 4;
35
+ if (this.minMessagesToKeep < 0) {
36
+ throw import_errors.ContextError.minMessagesNegative();
37
+ }
38
+ }
39
+ /**
40
+ * Compresses the history by removing the oldest messages if the total
41
+ * token count exceeds the specified maximum, while respecting minMessagesToKeep.
42
+ *
43
+ * @param history The current conversation history.
44
+ * @param tokenizer The tokenizer used to calculate message tokens.
45
+ * @param maxHistoryTokens The maximum number of tokens allowed *for the history messages*.
46
+ * @returns The potentially compressed message history.
47
+ */
48
+ compress(history, tokenizer, maxHistoryTokens) {
49
+ let currentHistory = [...history];
50
+ let currentTokenCount = (0, import_utils.countMessagesTokens)(currentHistory, tokenizer);
51
+ while (currentHistory.length > this.minMessagesToKeep && currentTokenCount > maxHistoryTokens) {
52
+ currentHistory.shift();
53
+ currentTokenCount = (0, import_utils.countMessagesTokens)(currentHistory, tokenizer);
54
+ }
55
+ if (currentTokenCount > maxHistoryTokens && currentHistory.length <= this.minMessagesToKeep) {
56
+ console.warn(
57
+ `OldestRemovalStrategy: Could not compress below max tokens (${maxHistoryTokens}) without violating minMessagesToKeep (${this.minMessagesToKeep}). Final token count: ${currentTokenCount}, Messages: ${currentHistory.length}`
58
+ );
59
+ } else if (currentTokenCount > maxHistoryTokens) {
60
+ console.warn(
61
+ `OldestRemovalStrategy: Unable to compress below max tokens (${maxHistoryTokens}). Final token count: ${currentTokenCount}`
62
+ );
63
+ }
64
+ return currentHistory;
65
+ }
66
+ }
67
+ // Annotate the CommonJS export names for ESM import in node:
68
+ 0 && (module.exports = {
69
+ OldestRemovalStrategy
70
+ });
@@ -0,0 +1,43 @@
1
+ import { ITokenizer } from '../../llm/tokenizer/types.cjs';
2
+ import { InternalMessage } from '../types.cjs';
3
+ import { ICompressionStrategy } from './types.cjs';
4
+ import '../../llm/types.cjs';
5
+
6
+ /**
7
+ * Configuration options for the OldestRemovalStrategy.
8
+ */
9
+ interface OldestRemovalStrategyOptions {
10
+ /**
11
+ * The minimum number of messages to preserve at the end of the history.
12
+ * The strategy will not remove messages if doing so would reduce the
13
+ * history length below this number.
14
+ * @default 4
15
+ */
16
+ minMessagesToKeep?: number;
17
+ }
18
+ /**
19
+ * Implements a compression strategy that removes the oldest messages (from the
20
+ * beginning of the history array) until the token count is within the limit.
21
+ * Ensures a minimum number of recent messages are always preserved.
22
+ */
23
+ declare class OldestRemovalStrategy implements ICompressionStrategy {
24
+ private readonly minMessagesToKeep;
25
+ /**
26
+ * Creates an instance of OldestRemovalStrategy.
27
+ *
28
+ * @param options Configuration options for preserving messages.
29
+ */
30
+ constructor(options?: OldestRemovalStrategyOptions);
31
+ /**
32
+ * Compresses the history by removing the oldest messages if the total
33
+ * token count exceeds the specified maximum, while respecting minMessagesToKeep.
34
+ *
35
+ * @param history The current conversation history.
36
+ * @param tokenizer The tokenizer used to calculate message tokens.
37
+ * @param maxHistoryTokens The maximum number of tokens allowed *for the history messages*.
38
+ * @returns The potentially compressed message history.
39
+ */
40
+ compress(history: InternalMessage[], tokenizer: ITokenizer, maxHistoryTokens: number): InternalMessage[];
41
+ }
42
+
43
+ export { OldestRemovalStrategy, type OldestRemovalStrategyOptions };
@@ -0,0 +1,43 @@
1
+ import { ITokenizer } from '../../llm/tokenizer/types.js';
2
+ import { InternalMessage } from '../types.js';
3
+ import { ICompressionStrategy } from './types.js';
4
+ import '../../llm/types.js';
5
+
6
+ /**
7
+ * Configuration options for the OldestRemovalStrategy.
8
+ */
9
+ interface OldestRemovalStrategyOptions {
10
+ /**
11
+ * The minimum number of messages to preserve at the end of the history.
12
+ * The strategy will not remove messages if doing so would reduce the
13
+ * history length below this number.
14
+ * @default 4
15
+ */
16
+ minMessagesToKeep?: number;
17
+ }
18
+ /**
19
+ * Implements a compression strategy that removes the oldest messages (from the
20
+ * beginning of the history array) until the token count is within the limit.
21
+ * Ensures a minimum number of recent messages are always preserved.
22
+ */
23
+ declare class OldestRemovalStrategy implements ICompressionStrategy {
24
+ private readonly minMessagesToKeep;
25
+ /**
26
+ * Creates an instance of OldestRemovalStrategy.
27
+ *
28
+ * @param options Configuration options for preserving messages.
29
+ */
30
+ constructor(options?: OldestRemovalStrategyOptions);
31
+ /**
32
+ * Compresses the history by removing the oldest messages if the total
33
+ * token count exceeds the specified maximum, while respecting minMessagesToKeep.
34
+ *
35
+ * @param history The current conversation history.
36
+ * @param tokenizer The tokenizer used to calculate message tokens.
37
+ * @param maxHistoryTokens The maximum number of tokens allowed *for the history messages*.
38
+ * @returns The potentially compressed message history.
39
+ */
40
+ compress(history: InternalMessage[], tokenizer: ITokenizer, maxHistoryTokens: number): InternalMessage[];
41
+ }
42
+
43
+ export { OldestRemovalStrategy, type OldestRemovalStrategyOptions };
@@ -0,0 +1,46 @@
1
+ import { countMessagesTokens } from "../utils.js";
2
+ import { ContextError } from "../errors.js";
3
+ class OldestRemovalStrategy {
4
+ minMessagesToKeep;
5
+ /**
6
+ * Creates an instance of OldestRemovalStrategy.
7
+ *
8
+ * @param options Configuration options for preserving messages.
9
+ */
10
+ constructor(options = {}) {
11
+ this.minMessagesToKeep = options.minMessagesToKeep ?? 4;
12
+ if (this.minMessagesToKeep < 0) {
13
+ throw ContextError.minMessagesNegative();
14
+ }
15
+ }
16
+ /**
17
+ * Compresses the history by removing the oldest messages if the total
18
+ * token count exceeds the specified maximum, while respecting minMessagesToKeep.
19
+ *
20
+ * @param history The current conversation history.
21
+ * @param tokenizer The tokenizer used to calculate message tokens.
22
+ * @param maxHistoryTokens The maximum number of tokens allowed *for the history messages*.
23
+ * @returns The potentially compressed message history.
24
+ */
25
+ compress(history, tokenizer, maxHistoryTokens) {
26
+ let currentHistory = [...history];
27
+ let currentTokenCount = countMessagesTokens(currentHistory, tokenizer);
28
+ while (currentHistory.length > this.minMessagesToKeep && currentTokenCount > maxHistoryTokens) {
29
+ currentHistory.shift();
30
+ currentTokenCount = countMessagesTokens(currentHistory, tokenizer);
31
+ }
32
+ if (currentTokenCount > maxHistoryTokens && currentHistory.length <= this.minMessagesToKeep) {
33
+ console.warn(
34
+ `OldestRemovalStrategy: Could not compress below max tokens (${maxHistoryTokens}) without violating minMessagesToKeep (${this.minMessagesToKeep}). Final token count: ${currentTokenCount}, Messages: ${currentHistory.length}`
35
+ );
36
+ } else if (currentTokenCount > maxHistoryTokens) {
37
+ console.warn(
38
+ `OldestRemovalStrategy: Unable to compress below max tokens (${maxHistoryTokens}). Final token count: ${currentTokenCount}`
39
+ );
40
+ }
41
+ return currentHistory;
42
+ }
43
+ }
44
+ export {
45
+ OldestRemovalStrategy
46
+ };
@@ -0,0 +1,16 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var types_exports = {};
16
+ module.exports = __toCommonJS(types_exports);
@@ -0,0 +1,21 @@
1
+ import { InternalMessage } from '../types.cjs';
2
+ import { ITokenizer } from '../../llm/tokenizer/types.cjs';
3
+ import '../../llm/types.cjs';
4
+
5
+ /**
6
+ * Defines the contract for a strategy used to compress a conversation history
7
+ * to fit within a maximum token limit.
8
+ */
9
+ interface ICompressionStrategy {
10
+ /**
11
+ * Compresses the provided message history.
12
+ *
13
+ * @param history The current conversation history.
14
+ * @param tokenizer The tokenizer used to calculate message tokens.
15
+ * @param maxInputTokens The maximum number of tokens allowed in the history.
16
+ * @returns The potentially compressed message history.
17
+ */
18
+ compress(history: InternalMessage[], tokenizer: ITokenizer, maxInputTokens: number): InternalMessage[];
19
+ }
20
+
21
+ export type { ICompressionStrategy };
@@ -0,0 +1,21 @@
1
+ import { InternalMessage } from '../types.js';
2
+ import { ITokenizer } from '../../llm/tokenizer/types.js';
3
+ import '../../llm/types.js';
4
+
5
+ /**
6
+ * Defines the contract for a strategy used to compress a conversation history
7
+ * to fit within a maximum token limit.
8
+ */
9
+ interface ICompressionStrategy {
10
+ /**
11
+ * Compresses the provided message history.
12
+ *
13
+ * @param history The current conversation history.
14
+ * @param tokenizer The tokenizer used to calculate message tokens.
15
+ * @param maxInputTokens The maximum number of tokens allowed in the history.
16
+ * @returns The potentially compressed message history.
17
+ */
18
+ compress(history: InternalMessage[], tokenizer: ITokenizer, maxInputTokens: number): InternalMessage[];
19
+ }
20
+
21
+ export type { ICompressionStrategy };
File without changes