@dexto/core 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/README.md +17 -9
  2. package/dist/agent/DextoAgent.cjs +548 -207
  3. package/dist/agent/DextoAgent.d.ts +156 -33
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +545 -204
  6. package/dist/agent/agentCard.js +1 -1
  7. package/dist/agent/error-codes.cjs +1 -0
  8. package/dist/agent/error-codes.d.ts +2 -1
  9. package/dist/agent/error-codes.d.ts.map +1 -1
  10. package/dist/agent/error-codes.js +2 -1
  11. package/dist/agent/errors.cjs +13 -0
  12. package/dist/agent/errors.d.ts +4 -0
  13. package/dist/agent/errors.d.ts.map +1 -1
  14. package/dist/agent/errors.js +14 -1
  15. package/dist/agent/index.d.ts +1 -1
  16. package/dist/agent/index.d.ts.map +1 -1
  17. package/dist/agent/index.js +1 -1
  18. package/dist/agent/schemas.cjs +3 -0
  19. package/dist/agent/schemas.d.ts +92 -55
  20. package/dist/agent/schemas.d.ts.map +1 -1
  21. package/dist/agent/schemas.js +6 -2
  22. package/dist/agent/state-manager.cjs +5 -5
  23. package/dist/agent/state-manager.d.ts +4 -4
  24. package/dist/agent/state-manager.js +6 -6
  25. package/dist/agent/types.d.ts +24 -10
  26. package/dist/agent/types.d.ts.map +1 -1
  27. package/dist/approval/error-codes.js +1 -1
  28. package/dist/approval/errors.js +1 -1
  29. package/dist/approval/factory.js +1 -1
  30. package/dist/approval/index.js +1 -1
  31. package/dist/approval/manager.cjs +69 -3
  32. package/dist/approval/manager.d.ts +41 -3
  33. package/dist/approval/manager.d.ts.map +1 -1
  34. package/dist/approval/manager.js +70 -4
  35. package/dist/approval/schemas.cjs +18 -4
  36. package/dist/approval/schemas.d.ts +106 -32
  37. package/dist/approval/schemas.d.ts.map +1 -1
  38. package/dist/approval/schemas.js +19 -5
  39. package/dist/approval/types.d.ts +6 -0
  40. package/dist/approval/types.d.ts.map +1 -1
  41. package/dist/approval/types.js +1 -1
  42. package/dist/{chunk-C6A6W6XS.js → chunk-PTJYTZNU.js} +44 -1
  43. package/dist/{llm/tokenizer/default.cjs → context/compression/overflow.cjs} +20 -18
  44. package/dist/context/compression/overflow.d.ts +33 -0
  45. package/dist/context/compression/overflow.d.ts.map +1 -0
  46. package/dist/context/compression/overflow.js +19 -0
  47. package/dist/context/compression/reactive-overflow.cjs +201 -0
  48. package/dist/context/compression/reactive-overflow.d.ts +81 -0
  49. package/dist/context/compression/reactive-overflow.d.ts.map +1 -0
  50. package/dist/context/compression/reactive-overflow.js +178 -0
  51. package/dist/context/compression/types.d.ts +9 -7
  52. package/dist/context/compression/types.d.ts.map +1 -1
  53. package/dist/context/error-codes.cjs +3 -0
  54. package/dist/context/error-codes.d.ts +4 -1
  55. package/dist/context/error-codes.d.ts.map +1 -1
  56. package/dist/context/error-codes.js +4 -1
  57. package/dist/context/errors.cjs +28 -0
  58. package/dist/context/errors.d.ts +7 -0
  59. package/dist/context/errors.d.ts.map +1 -1
  60. package/dist/context/errors.js +29 -1
  61. package/dist/context/index.js +1 -1
  62. package/dist/context/manager.cjs +280 -323
  63. package/dist/context/manager.d.ts +65 -111
  64. package/dist/context/manager.d.ts.map +1 -1
  65. package/dist/context/manager.js +280 -328
  66. package/dist/context/media-helpers.js +1 -1
  67. package/dist/context/types.cjs +49 -0
  68. package/dist/context/types.d.ts +181 -72
  69. package/dist/context/types.d.ts.map +1 -1
  70. package/dist/context/types.js +35 -0
  71. package/dist/context/utils.cjs +266 -283
  72. package/dist/context/utils.d.ts +32 -18
  73. package/dist/context/utils.d.ts.map +1 -1
  74. package/dist/context/utils.js +266 -283
  75. package/dist/errors/DextoBaseError.js +1 -1
  76. package/dist/errors/DextoRuntimeError.js +1 -1
  77. package/dist/errors/DextoValidationError.js +1 -1
  78. package/dist/errors/index.js +1 -1
  79. package/dist/errors/result-bridge.js +1 -1
  80. package/dist/errors/types.js +1 -1
  81. package/dist/events/index.cjs +18 -1
  82. package/dist/events/index.d.ts +149 -12
  83. package/dist/events/index.d.ts.map +1 -1
  84. package/dist/events/index.js +19 -2
  85. package/dist/filesystem/error-codes.js +1 -1
  86. package/dist/filesystem/errors.js +1 -1
  87. package/dist/filesystem/filesystem-service.js +1 -1
  88. package/dist/filesystem/index.js +1 -1
  89. package/dist/filesystem/path-validator.js +1 -1
  90. package/dist/index.browser.cjs +23 -8
  91. package/dist/index.browser.d.ts +4 -3
  92. package/dist/index.browser.d.ts.map +1 -1
  93. package/dist/index.browser.js +20 -3
  94. package/dist/index.js +1 -1
  95. package/dist/llm/error-codes.cjs +0 -1
  96. package/dist/llm/error-codes.d.ts +0 -1
  97. package/dist/llm/error-codes.d.ts.map +1 -1
  98. package/dist/llm/error-codes.js +1 -2
  99. package/dist/llm/errors.cjs +10 -10
  100. package/dist/llm/errors.d.ts +5 -6
  101. package/dist/llm/errors.d.ts.map +1 -1
  102. package/dist/llm/errors.js +12 -12
  103. package/dist/llm/executor/stream-processor.cjs +367 -0
  104. package/dist/llm/executor/stream-processor.d.ts +55 -0
  105. package/dist/llm/executor/stream-processor.d.ts.map +1 -0
  106. package/dist/llm/executor/stream-processor.js +344 -0
  107. package/dist/llm/executor/tool-output-truncator.cjs +75 -0
  108. package/dist/llm/executor/tool-output-truncator.d.ts +27 -0
  109. package/dist/llm/executor/tool-output-truncator.d.ts.map +1 -0
  110. package/dist/llm/executor/tool-output-truncator.js +48 -0
  111. package/dist/llm/executor/turn-executor.cjs +753 -0
  112. package/dist/llm/executor/turn-executor.d.ts +166 -0
  113. package/dist/llm/executor/turn-executor.d.ts.map +1 -0
  114. package/dist/llm/executor/turn-executor.js +684 -0
  115. package/dist/llm/executor/types.d.ts +27 -0
  116. package/dist/llm/executor/types.d.ts.map +1 -0
  117. package/dist/llm/formatters/vercel.cjs +20 -186
  118. package/dist/llm/formatters/vercel.d.ts +2 -14
  119. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  120. package/dist/llm/formatters/vercel.js +19 -185
  121. package/dist/llm/registry.cjs +36 -45
  122. package/dist/llm/registry.d.ts +53 -39
  123. package/dist/llm/registry.d.ts.map +1 -1
  124. package/dist/llm/registry.js +34 -42
  125. package/dist/llm/resolver.cjs +1 -31
  126. package/dist/llm/resolver.d.ts.map +1 -1
  127. package/dist/llm/resolver.js +2 -34
  128. package/dist/llm/schemas.cjs +2 -17
  129. package/dist/llm/schemas.d.ts +10 -23
  130. package/dist/llm/schemas.d.ts.map +1 -1
  131. package/dist/llm/schemas.js +5 -22
  132. package/dist/llm/services/factory.cjs +3 -92
  133. package/dist/llm/services/factory.d.ts +14 -4
  134. package/dist/llm/services/factory.d.ts.map +1 -1
  135. package/dist/llm/services/factory.js +4 -83
  136. package/dist/llm/services/test-utils.integration.cjs +6 -8
  137. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  138. package/dist/llm/services/test-utils.integration.js +7 -9
  139. package/dist/llm/services/types.d.ts +1 -28
  140. package/dist/llm/services/types.d.ts.map +1 -1
  141. package/dist/llm/services/vercel.cjs +54 -468
  142. package/dist/llm/services/vercel.d.ts +38 -21
  143. package/dist/llm/services/vercel.d.ts.map +1 -1
  144. package/dist/llm/services/vercel.js +56 -475
  145. package/dist/llm/types.cjs +0 -3
  146. package/dist/llm/types.d.ts +8 -8
  147. package/dist/llm/types.d.ts.map +1 -1
  148. package/dist/llm/types.js +1 -3
  149. package/dist/llm/validation.js +1 -1
  150. package/dist/logger/browser.js +1 -1
  151. package/dist/logger/factory.js +1 -1
  152. package/dist/logger/index.js +1 -1
  153. package/dist/logger/logger.js +1 -1
  154. package/dist/logger/v2/dexto-logger.cjs +34 -6
  155. package/dist/logger/v2/dexto-logger.d.ts +20 -2
  156. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  157. package/dist/logger/v2/dexto-logger.js +35 -7
  158. package/dist/logger/v2/error-codes.js +1 -1
  159. package/dist/logger/v2/errors.js +1 -1
  160. package/dist/logger/v2/schemas.js +1 -1
  161. package/dist/logger/v2/test-utils.cjs +70 -0
  162. package/dist/logger/v2/test-utils.d.ts +17 -0
  163. package/dist/logger/v2/test-utils.d.ts.map +1 -0
  164. package/dist/logger/v2/test-utils.js +46 -0
  165. package/dist/logger/v2/transport-factory.js +1 -1
  166. package/dist/logger/v2/transports/console-transport.js +1 -1
  167. package/dist/logger/v2/transports/file-transport.cjs +6 -0
  168. package/dist/logger/v2/transports/file-transport.d.ts +4 -0
  169. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  170. package/dist/logger/v2/transports/file-transport.js +7 -1
  171. package/dist/logger/v2/types.cjs +1 -0
  172. package/dist/logger/v2/types.d.ts +18 -2
  173. package/dist/logger/v2/types.d.ts.map +1 -1
  174. package/dist/logger/v2/types.js +2 -1
  175. package/dist/mcp/error-codes.cjs +1 -0
  176. package/dist/mcp/error-codes.d.ts +1 -0
  177. package/dist/mcp/error-codes.d.ts.map +1 -1
  178. package/dist/mcp/error-codes.js +2 -1
  179. package/dist/mcp/errors.cjs +13 -0
  180. package/dist/mcp/errors.d.ts +7 -0
  181. package/dist/mcp/errors.d.ts.map +1 -1
  182. package/dist/mcp/errors.js +14 -1
  183. package/dist/mcp/manager.cjs +4 -0
  184. package/dist/mcp/manager.d.ts.map +1 -1
  185. package/dist/mcp/manager.js +5 -1
  186. package/dist/mcp/mcp-client.js +1 -1
  187. package/dist/mcp/resolver.js +1 -1
  188. package/dist/mcp/schemas.cjs +6 -0
  189. package/dist/mcp/schemas.d.ts +52 -0
  190. package/dist/mcp/schemas.d.ts.map +1 -1
  191. package/dist/mcp/schemas.js +6 -1
  192. package/dist/memory/error-codes.js +1 -1
  193. package/dist/memory/errors.js +1 -1
  194. package/dist/memory/index.js +1 -1
  195. package/dist/memory/manager.js +1 -1
  196. package/dist/memory/schemas.d.ts +2 -2
  197. package/dist/memory/schemas.js +1 -1
  198. package/dist/plugins/builtins/content-policy.js +1 -1
  199. package/dist/plugins/builtins/response-sanitizer.js +1 -1
  200. package/dist/plugins/error-codes.js +1 -1
  201. package/dist/plugins/index.js +1 -1
  202. package/dist/plugins/loader.js +1 -1
  203. package/dist/plugins/manager.js +1 -1
  204. package/dist/plugins/registrations/builtins.js +1 -1
  205. package/dist/plugins/schemas.d.ts +3 -3
  206. package/dist/plugins/schemas.js +1 -1
  207. package/dist/plugins/types.d.ts +0 -1
  208. package/dist/plugins/types.d.ts.map +1 -1
  209. package/dist/process/command-validator.js +1 -1
  210. package/dist/process/error-codes.js +1 -1
  211. package/dist/process/errors.js +1 -1
  212. package/dist/process/index.js +1 -1
  213. package/dist/process/process-service.cjs +78 -26
  214. package/dist/process/process-service.d.ts +6 -1
  215. package/dist/process/process-service.d.ts.map +1 -1
  216. package/dist/process/process-service.js +79 -27
  217. package/dist/process/types.d.ts +2 -2
  218. package/dist/process/types.d.ts.map +1 -1
  219. package/dist/prompts/error-codes.cjs +1 -0
  220. package/dist/prompts/error-codes.d.ts +2 -1
  221. package/dist/prompts/error-codes.d.ts.map +1 -1
  222. package/dist/prompts/error-codes.js +2 -1
  223. package/dist/prompts/errors.cjs +15 -0
  224. package/dist/prompts/errors.d.ts +4 -0
  225. package/dist/prompts/errors.d.ts.map +1 -1
  226. package/dist/prompts/errors.js +16 -1
  227. package/dist/prompts/index.js +1 -1
  228. package/dist/prompts/name-validation.js +1 -1
  229. package/dist/prompts/prompt-manager.cjs +13 -2
  230. package/dist/prompts/prompt-manager.d.ts +7 -0
  231. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  232. package/dist/prompts/prompt-manager.js +14 -3
  233. package/dist/prompts/providers/config-prompt-provider.cjs +12 -3
  234. package/dist/prompts/providers/config-prompt-provider.d.ts +2 -1
  235. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  236. package/dist/prompts/providers/config-prompt-provider.js +13 -4
  237. package/dist/prompts/providers/custom-prompt-provider.js +1 -1
  238. package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
  239. package/dist/prompts/schemas.d.ts +12 -0
  240. package/dist/prompts/schemas.d.ts.map +1 -1
  241. package/dist/prompts/schemas.js +1 -1
  242. package/dist/prompts/types.d.ts +2 -0
  243. package/dist/prompts/types.d.ts.map +1 -1
  244. package/dist/prompts/utils.js +1 -1
  245. package/dist/resources/error-codes.js +1 -1
  246. package/dist/resources/errors.js +1 -1
  247. package/dist/resources/handlers/blob-handler.js +1 -1
  248. package/dist/resources/handlers/factory.js +1 -1
  249. package/dist/resources/handlers/filesystem-handler.js +1 -1
  250. package/dist/resources/index.js +1 -1
  251. package/dist/resources/internal-provider.js +1 -1
  252. package/dist/resources/manager.js +1 -1
  253. package/dist/resources/reference-parser.js +1 -1
  254. package/dist/resources/schemas.js +1 -1
  255. package/dist/search/index.js +1 -1
  256. package/dist/search/search-service.js +1 -1
  257. package/dist/session/chat-session.cjs +149 -51
  258. package/dist/session/chat-session.d.ts +69 -29
  259. package/dist/session/chat-session.d.ts.map +1 -1
  260. package/dist/session/chat-session.js +150 -52
  261. package/dist/session/error-codes.js +1 -1
  262. package/dist/session/errors.js +1 -1
  263. package/dist/session/history/database.cjs +134 -21
  264. package/dist/session/history/database.d.ts +37 -8
  265. package/dist/session/history/database.d.ts.map +1 -1
  266. package/dist/session/history/database.js +135 -22
  267. package/dist/session/history/factory.js +1 -1
  268. package/dist/session/history/memory.cjs +18 -0
  269. package/dist/session/history/memory.d.ts +8 -0
  270. package/dist/session/history/memory.d.ts.map +1 -1
  271. package/dist/session/history/memory.js +19 -1
  272. package/dist/session/history/types.d.ts +13 -1
  273. package/dist/session/history/types.d.ts.map +1 -1
  274. package/dist/session/index.cjs +3 -0
  275. package/dist/session/index.d.ts +3 -0
  276. package/dist/session/index.d.ts.map +1 -1
  277. package/dist/session/index.js +3 -1
  278. package/dist/session/message-queue.cjs +201 -0
  279. package/dist/session/message-queue.d.ts +114 -0
  280. package/dist/session/message-queue.d.ts.map +1 -0
  281. package/dist/session/message-queue.js +178 -0
  282. package/dist/session/schemas.js +1 -1
  283. package/dist/session/session-manager.cjs +57 -7
  284. package/dist/session/session-manager.d.ts +18 -0
  285. package/dist/session/session-manager.d.ts.map +1 -1
  286. package/dist/session/session-manager.js +58 -8
  287. package/dist/session/title-generator.cjs +4 -8
  288. package/dist/session/title-generator.d.ts +1 -2
  289. package/dist/session/title-generator.d.ts.map +1 -1
  290. package/dist/session/title-generator.js +5 -9
  291. package/dist/session/types.cjs +16 -0
  292. package/dist/session/types.d.ts +14 -0
  293. package/dist/session/types.d.ts.map +1 -0
  294. package/dist/session/types.js +0 -0
  295. package/dist/storage/blob/factory.js +1 -1
  296. package/dist/storage/blob/local-blob-store.js +1 -1
  297. package/dist/storage/blob/memory-blob-store.js +1 -1
  298. package/dist/storage/blob/schemas.js +1 -1
  299. package/dist/storage/cache/factory.js +1 -1
  300. package/dist/storage/cache/memory-cache-store.js +1 -1
  301. package/dist/storage/cache/redis-store.js +1 -1
  302. package/dist/storage/cache/schemas.js +1 -1
  303. package/dist/storage/database/factory.js +1 -1
  304. package/dist/storage/database/memory-database-store.js +1 -1
  305. package/dist/storage/database/postgres-store.cjs +12 -0
  306. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  307. package/dist/storage/database/postgres-store.js +13 -1
  308. package/dist/storage/database/schemas.js +1 -1
  309. package/dist/storage/database/sqlite-store.js +1 -1
  310. package/dist/storage/error-codes.js +1 -1
  311. package/dist/storage/errors.js +1 -1
  312. package/dist/storage/index.js +1 -1
  313. package/dist/storage/schemas.js +1 -1
  314. package/dist/storage/storage-manager.js +1 -1
  315. package/dist/systemPrompt/contributors.js +1 -1
  316. package/dist/systemPrompt/error-codes.js +1 -1
  317. package/dist/systemPrompt/errors.js +1 -1
  318. package/dist/systemPrompt/in-built-prompts.js +1 -1
  319. package/dist/systemPrompt/index.js +1 -1
  320. package/dist/systemPrompt/manager.js +1 -1
  321. package/dist/systemPrompt/registry.js +1 -1
  322. package/dist/systemPrompt/schemas.d.ts +5 -5
  323. package/dist/systemPrompt/schemas.js +1 -1
  324. package/dist/telemetry/decorators.js +1 -1
  325. package/dist/telemetry/error-codes.js +1 -1
  326. package/dist/telemetry/errors.js +1 -1
  327. package/dist/telemetry/exporters.js +1 -1
  328. package/dist/telemetry/index.js +1 -1
  329. package/dist/telemetry/schemas.js +1 -1
  330. package/dist/telemetry/telemetry.js +1 -1
  331. package/dist/telemetry/utils.js +1 -1
  332. package/dist/tools/bash-pattern-utils.cjs +91 -0
  333. package/dist/tools/bash-pattern-utils.d.ts +58 -0
  334. package/dist/tools/bash-pattern-utils.d.ts.map +1 -0
  335. package/dist/tools/bash-pattern-utils.js +64 -0
  336. package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
  337. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -1
  338. package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -1
  339. package/dist/tools/display-types.cjs +60 -0
  340. package/dist/tools/display-types.d.ts +133 -0
  341. package/dist/tools/display-types.d.ts.map +1 -0
  342. package/dist/tools/display-types.js +32 -0
  343. package/dist/tools/error-codes.cjs +2 -0
  344. package/dist/tools/error-codes.d.ts +3 -1
  345. package/dist/tools/error-codes.d.ts.map +1 -1
  346. package/dist/tools/error-codes.js +3 -1
  347. package/dist/tools/errors.cjs +30 -0
  348. package/dist/tools/errors.d.ts +16 -0
  349. package/dist/tools/errors.d.ts.map +1 -1
  350. package/dist/tools/errors.js +31 -1
  351. package/dist/tools/index.cjs +2 -0
  352. package/dist/tools/index.d.ts +1 -0
  353. package/dist/tools/index.d.ts.map +1 -1
  354. package/dist/tools/index.js +2 -1
  355. package/dist/tools/internal-tools/constants.js +1 -1
  356. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +1 -1
  357. package/dist/tools/internal-tools/implementations/ask-user-tool.js +2 -2
  358. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +42 -18
  359. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +3 -3
  360. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -1
  361. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +43 -19
  362. package/dist/tools/internal-tools/implementations/bash-output-tool.js +1 -1
  363. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
  364. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +66 -1
  365. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -1
  366. package/dist/tools/internal-tools/implementations/edit-file-tool.js +67 -2
  367. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +14 -1
  368. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -1
  369. package/dist/tools/internal-tools/implementations/glob-files-tool.js +15 -2
  370. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +16 -1
  371. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -1
  372. package/dist/tools/internal-tools/implementations/grep-content-tool.js +17 -2
  373. package/dist/tools/internal-tools/implementations/kill-process-tool.js +1 -1
  374. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +9 -1
  375. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -1
  376. package/dist/tools/internal-tools/implementations/read-file-tool.js +10 -2
  377. package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -1
  378. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +69 -1
  379. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -1
  380. package/dist/tools/internal-tools/implementations/write-file-tool.js +72 -2
  381. package/dist/tools/internal-tools/provider.cjs +27 -10
  382. package/dist/tools/internal-tools/provider.d.ts +8 -5
  383. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  384. package/dist/tools/internal-tools/provider.js +28 -11
  385. package/dist/tools/internal-tools/registry.cjs +4 -3
  386. package/dist/tools/internal-tools/registry.d.ts +28 -7
  387. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  388. package/dist/tools/internal-tools/registry.js +5 -4
  389. package/dist/tools/schemas.cjs +16 -6
  390. package/dist/tools/schemas.d.ts +31 -4
  391. package/dist/tools/schemas.d.ts.map +1 -1
  392. package/dist/tools/schemas.js +14 -6
  393. package/dist/tools/tool-manager.cjs +140 -18
  394. package/dist/tools/tool-manager.d.ts +23 -1
  395. package/dist/tools/tool-manager.d.ts.map +1 -1
  396. package/dist/tools/tool-manager.js +145 -19
  397. package/dist/tools/types.d.ts +20 -0
  398. package/dist/tools/types.d.ts.map +1 -1
  399. package/dist/utils/api-key-resolver.js +1 -1
  400. package/dist/utils/async-context.js +1 -1
  401. package/dist/utils/debug.js +1 -1
  402. package/dist/{llm/tokenizer/types.cjs → utils/defer.cjs} +19 -10
  403. package/dist/utils/defer.d.ts +63 -0
  404. package/dist/utils/defer.d.ts.map +1 -0
  405. package/dist/utils/defer.js +19 -0
  406. package/dist/utils/env-file.js +1 -1
  407. package/dist/utils/error-conversion.js +1 -1
  408. package/dist/utils/execution-context.js +1 -1
  409. package/dist/utils/fs-walk.js +1 -1
  410. package/dist/utils/index.cjs +3 -1
  411. package/dist/utils/index.d.ts +1 -0
  412. package/dist/utils/index.d.ts.map +1 -1
  413. package/dist/utils/index.js +1 -0
  414. package/dist/utils/path.js +1 -1
  415. package/dist/utils/redactor.js +1 -1
  416. package/dist/utils/result.js +1 -1
  417. package/dist/utils/safe-stringify.js +1 -1
  418. package/dist/utils/schema-metadata.js +1 -1
  419. package/dist/utils/schema.js +1 -1
  420. package/dist/utils/service-initializer.cjs +6 -2
  421. package/dist/utils/service-initializer.d.ts.map +1 -1
  422. package/dist/utils/service-initializer.js +7 -3
  423. package/dist/utils/user-info.js +1 -1
  424. package/dist/utils/zod-schema-converter.js +1 -1
  425. package/package.json +6 -7
  426. package/dist/context/compression/middle-removal.cjs +0 -95
  427. package/dist/context/compression/middle-removal.d.ts +0 -47
  428. package/dist/context/compression/middle-removal.d.ts.map +0 -1
  429. package/dist/context/compression/middle-removal.js +0 -72
  430. package/dist/context/compression/oldest-removal.cjs +0 -83
  431. package/dist/context/compression/oldest-removal.d.ts +0 -42
  432. package/dist/context/compression/oldest-removal.d.ts.map +0 -1
  433. package/dist/context/compression/oldest-removal.js +0 -60
  434. package/dist/llm/formatters/anthropic.cjs +0 -257
  435. package/dist/llm/formatters/anthropic.d.ts +0 -46
  436. package/dist/llm/formatters/anthropic.d.ts.map +0 -1
  437. package/dist/llm/formatters/anthropic.js +0 -239
  438. package/dist/llm/formatters/factory.cjs +0 -50
  439. package/dist/llm/formatters/factory.d.ts +0 -10
  440. package/dist/llm/formatters/factory.d.ts.map +0 -1
  441. package/dist/llm/formatters/factory.js +0 -27
  442. package/dist/llm/formatters/openai.cjs +0 -203
  443. package/dist/llm/formatters/openai.d.ts +0 -39
  444. package/dist/llm/formatters/openai.d.ts.map +0 -1
  445. package/dist/llm/formatters/openai.js +0 -184
  446. package/dist/llm/formatters/types.d.ts +0 -41
  447. package/dist/llm/formatters/types.d.ts.map +0 -1
  448. package/dist/llm/services/anthropic.cjs +0 -511
  449. package/dist/llm/services/anthropic.d.ts +0 -48
  450. package/dist/llm/services/anthropic.d.ts.map +0 -1
  451. package/dist/llm/services/anthropic.js +0 -447
  452. package/dist/llm/services/openai.cjs +0 -611
  453. package/dist/llm/services/openai.d.ts +0 -48
  454. package/dist/llm/services/openai.d.ts.map +0 -1
  455. package/dist/llm/services/openai.js +0 -547
  456. package/dist/llm/tokenizer/anthropic.cjs +0 -43
  457. package/dist/llm/tokenizer/anthropic.d.ts +0 -19
  458. package/dist/llm/tokenizer/anthropic.d.ts.map +0 -1
  459. package/dist/llm/tokenizer/anthropic.js +0 -20
  460. package/dist/llm/tokenizer/default.d.ts +0 -14
  461. package/dist/llm/tokenizer/default.d.ts.map +0 -1
  462. package/dist/llm/tokenizer/default.js +0 -18
  463. package/dist/llm/tokenizer/factory.cjs +0 -44
  464. package/dist/llm/tokenizer/factory.d.ts +0 -12
  465. package/dist/llm/tokenizer/factory.d.ts.map +0 -1
  466. package/dist/llm/tokenizer/factory.js +0 -21
  467. package/dist/llm/tokenizer/google.cjs +0 -52
  468. package/dist/llm/tokenizer/google.d.ts +0 -29
  469. package/dist/llm/tokenizer/google.d.ts.map +0 -1
  470. package/dist/llm/tokenizer/google.js +0 -29
  471. package/dist/llm/tokenizer/openai.cjs +0 -115
  472. package/dist/llm/tokenizer/openai.d.ts +0 -41
  473. package/dist/llm/tokenizer/openai.d.ts.map +0 -1
  474. package/dist/llm/tokenizer/openai.js +0 -91
  475. package/dist/llm/tokenizer/types.d.ts +0 -18
  476. package/dist/llm/tokenizer/types.d.ts.map +0 -1
  477. package/dist/llm/tokenizer/types.js +0 -10
  478. /package/dist/llm/{formatters → executor}/types.cjs +0 -0
  479. /package/dist/llm/{formatters → executor}/types.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dexto/core",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -20,33 +20,31 @@
20
20
  "./package.json": "./package.json"
21
21
  },
22
22
  "dependencies": {
23
- "@ai-sdk/anthropic": "^2.0.0",
23
+ "@ai-sdk/anthropic": "^2.0.56",
24
24
  "@ai-sdk/cohere": "^2.0.0",
25
25
  "@ai-sdk/google": "^2.0.0",
26
26
  "@ai-sdk/groq": "^2.0.0",
27
27
  "@ai-sdk/openai": "^2.0.0",
28
28
  "@ai-sdk/xai": "^2.0.0",
29
- "@anthropic-ai/sdk": "^0.60.0",
30
29
  "@modelcontextprotocol/sdk": "^1.18.1",
31
30
  "@opentelemetry/api": "^1.9.0",
32
31
  "ai": "^5.0.0",
33
32
  "boxen": "^7.1.1",
34
33
  "chalk": "^5.4.1",
34
+ "diff": "^8.0.2",
35
35
  "dotenv": "^16.4.7",
36
36
  "glob": "^11.0.3",
37
37
  "nanoid": "^5.1.6",
38
- "openai": "^5.16.0",
39
- "tiktoken": "^1.0.22",
40
38
  "winston": "^3.17.0",
41
39
  "yaml": "^2.7.1",
42
40
  "zod-to-json-schema": "^3.24.6"
43
41
  },
44
42
  "devDependencies": {
43
+ "@types/diff": "^8.0.0",
45
44
  "@types/json-schema": "^7.0.15",
46
45
  "zod": "^3.25.0"
47
46
  },
48
47
  "peerDependencies": {
49
- "zod": "^3.25.0",
50
48
  "@opentelemetry/auto-instrumentations-node": "^0.52.1",
51
49
  "@opentelemetry/core": "^1.28.0",
52
50
  "@opentelemetry/exporter-trace-otlp-grpc": "^0.55.0",
@@ -58,7 +56,8 @@
58
56
  "better-sqlite3": "^11.10.0",
59
57
  "ioredis": "^5.7.0",
60
58
  "pg": "^8.15.4",
61
- "tsx": "^4.19.2"
59
+ "tsx": "^4.19.2",
60
+ "zod": "^3.25.0"
62
61
  },
63
62
  "peerDependenciesMeta": {
64
63
  "@opentelemetry/auto-instrumentations-node": {
@@ -1,95 +0,0 @@
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
- var import_types5 = require("../../logger/v2/types.js");
27
- class MiddleRemovalStrategy {
28
- preserveStart;
29
- preserveEnd;
30
- logger;
31
- /**
32
- * Creates an instance of MiddleRemovalStrategy.
33
- *
34
- * @param options Configuration options for preserving messages.
35
- */
36
- constructor(options = {}, logger) {
37
- this.preserveStart = options.preserveStart ?? 4;
38
- this.preserveEnd = options.preserveEnd ?? 5;
39
- this.logger = logger.createChild(import_types5.DextoLogComponent.CONTEXT);
40
- if (this.preserveStart < 0 || this.preserveEnd < 0) {
41
- throw import_errors.ContextError.preserveValuesNegative();
42
- }
43
- }
44
- /**
45
- * Compresses the history by removing messages from the middle if the total
46
- * token count exceeds the specified maximum.
47
- *
48
- * @param history The current conversation history.
49
- * @param tokenizer The tokenizer used to calculate message tokens.
50
- * @param maxHistoryTokens The maximum number of tokens allowed *for the history messages*.
51
- * @returns The potentially compressed message history.
52
- */
53
- compress(history, tokenizer, maxHistoryTokens) {
54
- const initialTokenCount = (0, import_utils.countMessagesTokens)(history, tokenizer, void 0, this.logger);
55
- if (initialTokenCount <= maxHistoryTokens) {
56
- return history;
57
- }
58
- const removableIndices = [];
59
- const totalMessages = history.length;
60
- if (totalMessages > this.preserveStart + this.preserveEnd) {
61
- for (let i = this.preserveStart; i < totalMessages - this.preserveEnd; i++) {
62
- removableIndices.push(i);
63
- }
64
- } else {
65
- this.logger.warn(
66
- `MiddleRemovalStrategy: Not enough messages to apply middle removal based on preserve counts. History length: ${totalMessages}, PreserveStart: ${this.preserveStart}, PreserveEnd: ${this.preserveEnd}`
67
- );
68
- return history;
69
- }
70
- let currentHistory = [...history];
71
- let currentTokenCount = initialTokenCount;
72
- const removedIndices = /* @__PURE__ */ new Set();
73
- while (currentTokenCount > maxHistoryTokens && removableIndices.length > 0) {
74
- const indexToRemove = removableIndices.shift();
75
- removedIndices.add(indexToRemove);
76
- currentTokenCount = (0, import_utils.countMessagesTokens)(
77
- currentHistory.filter((_, i) => !removedIndices.has(i)),
78
- // Calculate tokens based on remaining messages
79
- tokenizer,
80
- void 0,
81
- this.logger
82
- );
83
- }
84
- if (currentTokenCount > maxHistoryTokens) {
85
- this.logger.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
- });
@@ -1,47 +0,0 @@
1
- import { ITokenizer } from '../../llm/tokenizer/types.js';
2
- import { InternalMessage } from '../types.js';
3
- import { ICompressionStrategy } from './types.js';
4
- import { IDextoLogger } from '../../logger/v2/types.js';
5
- /**
6
- * Configuration options for the MiddleRemovalStrategy.
7
- */
8
- export interface MiddleRemovalStrategyOptions {
9
- /**
10
- * The number of messages to preserve at the beginning of the history.
11
- * @default 4
12
- */
13
- preserveStart?: number;
14
- /**
15
- * The number of messages to preserve at the end of the history.
16
- * @default 5
17
- */
18
- preserveEnd?: number;
19
- }
20
- /**
21
- * Implements a compression strategy that removes messages from the middle of the
22
- * conversation history, preserving a configurable number of messages at the
23
- * beginning and end. It prioritizes removing the oldest messages within the
24
- * removable middle section first.
25
- */
26
- export declare class MiddleRemovalStrategy implements ICompressionStrategy {
27
- private readonly preserveStart;
28
- private readonly preserveEnd;
29
- private readonly logger;
30
- /**
31
- * Creates an instance of MiddleRemovalStrategy.
32
- *
33
- * @param options Configuration options for preserving messages.
34
- */
35
- constructor(options: MiddleRemovalStrategyOptions | undefined, logger: IDextoLogger);
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
- //# sourceMappingURL=middle-removal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middle-removal.d.ts","sourceRoot":"","sources":["../../../src/context/compression/middle-removal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,oBAAoB;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IAEtC;;;;OAIG;gBACS,OAAO,EAAE,4BAA4B,YAAK,EAAE,MAAM,EAAE,YAAY;IAS5E;;;;;;;;OAQG;IACH,QAAQ,CACJ,OAAO,EAAE,eAAe,EAAE,EAC1B,SAAS,EAAE,UAAU,EACrB,gBAAgB,EAAE,MAAM,GACzB,eAAe,EAAE;CAmDvB"}
@@ -1,72 +0,0 @@
1
- import "../../chunk-C6A6W6XS.js";
2
- import { countMessagesTokens } from "../utils.js";
3
- import { ContextError } from "../errors.js";
4
- import { DextoLogComponent } from "../../logger/v2/types.js";
5
- class MiddleRemovalStrategy {
6
- preserveStart;
7
- preserveEnd;
8
- logger;
9
- /**
10
- * Creates an instance of MiddleRemovalStrategy.
11
- *
12
- * @param options Configuration options for preserving messages.
13
- */
14
- constructor(options = {}, logger) {
15
- this.preserveStart = options.preserveStart ?? 4;
16
- this.preserveEnd = options.preserveEnd ?? 5;
17
- this.logger = logger.createChild(DextoLogComponent.CONTEXT);
18
- if (this.preserveStart < 0 || this.preserveEnd < 0) {
19
- throw ContextError.preserveValuesNegative();
20
- }
21
- }
22
- /**
23
- * Compresses the history by removing messages from the middle if the total
24
- * token count exceeds the specified maximum.
25
- *
26
- * @param history The current conversation history.
27
- * @param tokenizer The tokenizer used to calculate message tokens.
28
- * @param maxHistoryTokens The maximum number of tokens allowed *for the history messages*.
29
- * @returns The potentially compressed message history.
30
- */
31
- compress(history, tokenizer, maxHistoryTokens) {
32
- const initialTokenCount = countMessagesTokens(history, tokenizer, void 0, this.logger);
33
- if (initialTokenCount <= maxHistoryTokens) {
34
- return history;
35
- }
36
- const removableIndices = [];
37
- const totalMessages = history.length;
38
- if (totalMessages > this.preserveStart + this.preserveEnd) {
39
- for (let i = this.preserveStart; i < totalMessages - this.preserveEnd; i++) {
40
- removableIndices.push(i);
41
- }
42
- } else {
43
- this.logger.warn(
44
- `MiddleRemovalStrategy: Not enough messages to apply middle removal based on preserve counts. History length: ${totalMessages}, PreserveStart: ${this.preserveStart}, PreserveEnd: ${this.preserveEnd}`
45
- );
46
- return history;
47
- }
48
- let currentHistory = [...history];
49
- let currentTokenCount = initialTokenCount;
50
- const removedIndices = /* @__PURE__ */ new Set();
51
- while (currentTokenCount > maxHistoryTokens && removableIndices.length > 0) {
52
- const indexToRemove = removableIndices.shift();
53
- removedIndices.add(indexToRemove);
54
- currentTokenCount = countMessagesTokens(
55
- currentHistory.filter((_, i) => !removedIndices.has(i)),
56
- // Calculate tokens based on remaining messages
57
- tokenizer,
58
- void 0,
59
- this.logger
60
- );
61
- }
62
- if (currentTokenCount > maxHistoryTokens) {
63
- this.logger.warn(
64
- `MiddleRemovalStrategy: Unable to compress below max tokens (${maxHistoryTokens}). Final token count: ${currentTokenCount}`
65
- );
66
- }
67
- return history.filter((_, i) => !removedIndices.has(i));
68
- }
69
- }
70
- export {
71
- MiddleRemovalStrategy
72
- };
@@ -1,83 +0,0 @@
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
- var import_types5 = require("../../logger/v2/types.js");
27
- class OldestRemovalStrategy {
28
- minMessagesToKeep;
29
- logger;
30
- /**
31
- * Creates an instance of OldestRemovalStrategy.
32
- *
33
- * @param options Configuration options for preserving messages.
34
- */
35
- constructor(options = {}, logger) {
36
- this.minMessagesToKeep = options.minMessagesToKeep ?? 4;
37
- this.logger = logger.createChild(import_types5.DextoLogComponent.CONTEXT);
38
- if (this.minMessagesToKeep < 0) {
39
- throw import_errors.ContextError.minMessagesNegative();
40
- }
41
- }
42
- /**
43
- * Compresses the history by removing the oldest messages if the total
44
- * token count exceeds the specified maximum, while respecting minMessagesToKeep.
45
- *
46
- * @param history The current conversation history.
47
- * @param tokenizer The tokenizer used to calculate message tokens.
48
- * @param maxHistoryTokens The maximum number of tokens allowed *for the history messages*.
49
- * @returns The potentially compressed message history.
50
- */
51
- compress(history, tokenizer, maxHistoryTokens) {
52
- let currentHistory = [...history];
53
- let currentTokenCount = (0, import_utils.countMessagesTokens)(
54
- currentHistory,
55
- tokenizer,
56
- void 0,
57
- this.logger
58
- );
59
- while (currentHistory.length > this.minMessagesToKeep && currentTokenCount > maxHistoryTokens) {
60
- currentHistory.shift();
61
- currentTokenCount = (0, import_utils.countMessagesTokens)(
62
- currentHistory,
63
- tokenizer,
64
- void 0,
65
- this.logger
66
- );
67
- }
68
- if (currentTokenCount > maxHistoryTokens && currentHistory.length <= this.minMessagesToKeep) {
69
- this.logger.warn(
70
- `OldestRemovalStrategy: Could not compress below max tokens (${maxHistoryTokens}) without violating minMessagesToKeep (${this.minMessagesToKeep}). Final token count: ${currentTokenCount}, Messages: ${currentHistory.length}`
71
- );
72
- } else if (currentTokenCount > maxHistoryTokens) {
73
- this.logger.warn(
74
- `OldestRemovalStrategy: Unable to compress below max tokens (${maxHistoryTokens}). Final token count: ${currentTokenCount}`
75
- );
76
- }
77
- return currentHistory;
78
- }
79
- }
80
- // Annotate the CommonJS export names for ESM import in node:
81
- 0 && (module.exports = {
82
- OldestRemovalStrategy
83
- });
@@ -1,42 +0,0 @@
1
- import { ITokenizer } from '../../llm/tokenizer/types.js';
2
- import { InternalMessage } from '../types.js';
3
- import { ICompressionStrategy } from './types.js';
4
- import { IDextoLogger } from '../../logger/v2/types.js';
5
- /**
6
- * Configuration options for the OldestRemovalStrategy.
7
- */
8
- export interface OldestRemovalStrategyOptions {
9
- /**
10
- * The minimum number of messages to preserve at the end of the history.
11
- * The strategy will not remove messages if doing so would reduce the
12
- * history length below this number.
13
- * @default 4
14
- */
15
- minMessagesToKeep?: number;
16
- }
17
- /**
18
- * Implements a compression strategy that removes the oldest messages (from the
19
- * beginning of the history array) until the token count is within the limit.
20
- * Ensures a minimum number of recent messages are always preserved.
21
- */
22
- export declare class OldestRemovalStrategy implements ICompressionStrategy {
23
- private readonly minMessagesToKeep;
24
- private readonly logger;
25
- /**
26
- * Creates an instance of OldestRemovalStrategy.
27
- *
28
- * @param options Configuration options for preserving messages.
29
- */
30
- constructor(options: OldestRemovalStrategyOptions | undefined, logger: IDextoLogger);
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
- //# sourceMappingURL=oldest-removal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oldest-removal.d.ts","sourceRoot":"","sources":["../../../src/context/compression/oldest-removal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,oBAAoB;IAC9D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC;;;;OAIG;gBACS,OAAO,EAAE,4BAA4B,YAAK,EAAE,MAAM,EAAE,YAAY;IAQ5E;;;;;;;;OAQG;IACH,QAAQ,CACJ,OAAO,EAAE,eAAe,EAAE,EAC1B,SAAS,EAAE,UAAU,EACrB,gBAAgB,EAAE,MAAM,GACzB,eAAe,EAAE;CAuCvB"}
@@ -1,60 +0,0 @@
1
- import "../../chunk-C6A6W6XS.js";
2
- import { countMessagesTokens } from "../utils.js";
3
- import { ContextError } from "../errors.js";
4
- import { DextoLogComponent } from "../../logger/v2/types.js";
5
- class OldestRemovalStrategy {
6
- minMessagesToKeep;
7
- logger;
8
- /**
9
- * Creates an instance of OldestRemovalStrategy.
10
- *
11
- * @param options Configuration options for preserving messages.
12
- */
13
- constructor(options = {}, logger) {
14
- this.minMessagesToKeep = options.minMessagesToKeep ?? 4;
15
- this.logger = logger.createChild(DextoLogComponent.CONTEXT);
16
- if (this.minMessagesToKeep < 0) {
17
- throw ContextError.minMessagesNegative();
18
- }
19
- }
20
- /**
21
- * Compresses the history by removing the oldest messages if the total
22
- * token count exceeds the specified maximum, while respecting minMessagesToKeep.
23
- *
24
- * @param history The current conversation history.
25
- * @param tokenizer The tokenizer used to calculate message tokens.
26
- * @param maxHistoryTokens The maximum number of tokens allowed *for the history messages*.
27
- * @returns The potentially compressed message history.
28
- */
29
- compress(history, tokenizer, maxHistoryTokens) {
30
- let currentHistory = [...history];
31
- let currentTokenCount = countMessagesTokens(
32
- currentHistory,
33
- tokenizer,
34
- void 0,
35
- this.logger
36
- );
37
- while (currentHistory.length > this.minMessagesToKeep && currentTokenCount > maxHistoryTokens) {
38
- currentHistory.shift();
39
- currentTokenCount = countMessagesTokens(
40
- currentHistory,
41
- tokenizer,
42
- void 0,
43
- this.logger
44
- );
45
- }
46
- if (currentTokenCount > maxHistoryTokens && currentHistory.length <= this.minMessagesToKeep) {
47
- this.logger.warn(
48
- `OldestRemovalStrategy: Could not compress below max tokens (${maxHistoryTokens}) without violating minMessagesToKeep (${this.minMessagesToKeep}). Final token count: ${currentTokenCount}, Messages: ${currentHistory.length}`
49
- );
50
- } else if (currentTokenCount > maxHistoryTokens) {
51
- this.logger.warn(
52
- `OldestRemovalStrategy: Unable to compress below max tokens (${maxHistoryTokens}). Final token count: ${currentTokenCount}`
53
- );
54
- }
55
- return currentHistory;
56
- }
57
- }
58
- export {
59
- OldestRemovalStrategy
60
- };