@dexto/core 1.7.2 → 1.8.1

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 (616) hide show
  1. package/dist/agent/DextoAgent.cjs +163 -77
  2. package/dist/agent/DextoAgent.d.ts +73 -19
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +165 -67
  5. package/dist/agent/agent-options.d.ts +6 -10
  6. package/dist/agent/agent-options.d.ts.map +1 -1
  7. package/dist/agent/agentCard.js +1 -1
  8. package/dist/agent/error-codes.js +1 -1
  9. package/dist/agent/errors.js +1 -1
  10. package/dist/agent/index.d.ts +1 -0
  11. package/dist/agent/index.d.ts.map +1 -1
  12. package/dist/agent/index.js +1 -1
  13. package/dist/agent/schemas.d.ts +2 -2
  14. package/dist/agent/schemas.js +1 -1
  15. package/dist/agent/state-manager.js +1 -1
  16. package/dist/agent/types.d.ts +1 -1
  17. package/dist/agent/types.d.ts.map +1 -1
  18. package/dist/approval/error-codes.cjs +1 -1
  19. package/dist/approval/error-codes.d.ts +1 -1
  20. package/dist/approval/error-codes.d.ts.map +1 -1
  21. package/dist/approval/error-codes.js +2 -2
  22. package/dist/approval/errors.cjs +2 -5
  23. package/dist/approval/errors.d.ts.map +1 -1
  24. package/dist/approval/errors.js +3 -6
  25. package/dist/approval/factory.cjs +19 -4
  26. package/dist/approval/factory.d.ts +4 -1
  27. package/dist/approval/factory.d.ts.map +1 -1
  28. package/dist/approval/factory.js +19 -5
  29. package/dist/approval/index.d.ts +1 -1
  30. package/dist/approval/index.d.ts.map +1 -1
  31. package/dist/approval/index.js +1 -1
  32. package/dist/approval/manager.cjs +168 -26
  33. package/dist/approval/manager.d.ts +46 -12
  34. package/dist/approval/manager.d.ts.map +1 -1
  35. package/dist/approval/manager.js +177 -29
  36. package/dist/approval/schemas.cjs +26 -26
  37. package/dist/approval/schemas.d.ts +29 -29
  38. package/dist/approval/schemas.d.ts.map +1 -1
  39. package/dist/approval/schemas.js +23 -23
  40. package/dist/approval/types.cjs +5 -5
  41. package/dist/approval/types.d.ts +18 -18
  42. package/dist/approval/types.d.ts.map +1 -1
  43. package/dist/approval/types.js +6 -6
  44. package/dist/{chunk-PTJYTZNU.js → chunk-C6A6W6XS.js} +1 -44
  45. package/dist/config/index.cjs +75 -0
  46. package/dist/config/index.d.ts +15 -0
  47. package/dist/config/index.d.ts.map +1 -0
  48. package/dist/config/index.js +50 -0
  49. package/dist/context/compaction/overflow.d.ts +1 -1
  50. package/dist/context/compaction/overflow.d.ts.map +1 -1
  51. package/dist/context/compaction/overflow.js +1 -1
  52. package/dist/context/compaction/strategies/noop.js +1 -1
  53. package/dist/context/compaction/strategies/reactive-overflow-compaction.js +1 -1
  54. package/dist/context/content-clone.cjs +131 -0
  55. package/dist/context/content-clone.d.ts +7 -0
  56. package/dist/context/content-clone.d.ts.map +1 -0
  57. package/dist/context/content-clone.js +104 -0
  58. package/dist/context/error-codes.js +1 -1
  59. package/dist/context/errors.js +1 -1
  60. package/dist/context/index.cjs +2 -0
  61. package/dist/context/index.d.ts +1 -0
  62. package/dist/context/index.d.ts.map +1 -1
  63. package/dist/context/index.js +2 -1
  64. package/dist/context/manager.cjs +52 -41
  65. package/dist/context/manager.d.ts +8 -8
  66. package/dist/context/manager.d.ts.map +1 -1
  67. package/dist/context/manager.js +46 -35
  68. package/dist/context/media-helpers.js +1 -1
  69. package/dist/context/schemas.cjs +77 -0
  70. package/dist/context/schemas.d.ts +5 -0
  71. package/dist/context/schemas.d.ts.map +1 -0
  72. package/dist/context/schemas.js +53 -0
  73. package/dist/context/types.d.ts +1 -1
  74. package/dist/context/types.d.ts.map +1 -1
  75. package/dist/context/types.js +1 -1
  76. package/dist/context/utils.cjs +73 -72
  77. package/dist/context/utils.d.ts +4 -4
  78. package/dist/context/utils.d.ts.map +1 -1
  79. package/dist/context/utils.js +72 -71
  80. package/dist/errors/DextoBaseError.js +1 -1
  81. package/dist/errors/DextoRuntimeError.js +1 -1
  82. package/dist/errors/DextoValidationError.js +1 -1
  83. package/dist/errors/index.js +1 -1
  84. package/dist/errors/result-bridge.js +1 -1
  85. package/dist/errors/types.js +1 -1
  86. package/dist/events/index.cjs +9 -1
  87. package/dist/events/index.d.ts +22 -10
  88. package/dist/events/index.d.ts.map +1 -1
  89. package/dist/events/index.js +10 -2
  90. package/dist/hooks/builtins/content-policy.js +1 -1
  91. package/dist/hooks/builtins/response-sanitizer.js +1 -1
  92. package/dist/hooks/error-codes.js +1 -1
  93. package/dist/hooks/index.js +1 -1
  94. package/dist/hooks/manager.cjs +1 -1
  95. package/dist/hooks/manager.d.ts +2 -2
  96. package/dist/hooks/manager.d.ts.map +1 -1
  97. package/dist/hooks/manager.js +2 -2
  98. package/dist/hooks/types.d.ts +2 -2
  99. package/dist/hooks/types.d.ts.map +1 -1
  100. package/dist/index.browser.cjs +9 -9
  101. package/dist/index.browser.d.ts +4 -4
  102. package/dist/index.browser.d.ts.map +1 -1
  103. package/dist/index.browser.js +2 -2
  104. package/dist/index.cjs +2 -0
  105. package/dist/index.d.ts +1 -0
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +2 -1
  108. package/dist/llm/curation-config.cjs +3 -3
  109. package/dist/llm/curation-config.d.ts +1 -1
  110. package/dist/llm/curation-config.js +4 -4
  111. package/dist/llm/curation.cjs +2 -2
  112. package/dist/llm/curation.d.ts +2 -2
  113. package/dist/llm/curation.d.ts.map +1 -1
  114. package/dist/llm/curation.js +2 -2
  115. package/dist/llm/error-codes.js +1 -1
  116. package/dist/llm/errors.cjs +3 -3
  117. package/dist/llm/errors.d.ts +1 -1
  118. package/dist/llm/errors.d.ts.map +1 -1
  119. package/dist/llm/errors.js +2 -2
  120. package/dist/llm/{reasoning/anthropic-betas.cjs → executor/index.cjs} +10 -9
  121. package/dist/llm/executor/index.d.ts +2 -0
  122. package/dist/llm/executor/index.d.ts.map +1 -0
  123. package/dist/llm/executor/index.js +11 -0
  124. package/dist/llm/executor/provider-options.cjs +22 -25
  125. package/dist/llm/executor/provider-options.d.ts +1 -1
  126. package/dist/llm/executor/provider-options.d.ts.map +1 -1
  127. package/dist/llm/executor/provider-options.js +18 -17
  128. package/dist/llm/executor/stream-processor.cjs +28 -139
  129. package/dist/llm/executor/stream-processor.d.ts +3 -14
  130. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  131. package/dist/llm/executor/stream-processor.js +29 -140
  132. package/dist/llm/{reasoning/profiles/openai.cjs → executor/tool-definitions.cjs} +22 -18
  133. package/dist/llm/executor/tool-definitions.d.ts +4 -0
  134. package/dist/llm/executor/tool-definitions.d.ts.map +1 -0
  135. package/dist/llm/executor/tool-definitions.js +22 -0
  136. package/dist/llm/executor/tool-output-truncator.js +1 -1
  137. package/dist/llm/executor/turn-executor.cjs +1093 -458
  138. package/dist/llm/executor/turn-executor.d.ts +269 -43
  139. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  140. package/dist/llm/executor/turn-executor.js +1079 -405
  141. package/dist/llm/executor/types.d.ts +7 -1
  142. package/dist/llm/executor/types.d.ts.map +1 -1
  143. package/dist/llm/formatters/vercel.cjs +2 -2
  144. package/dist/llm/formatters/vercel.d.ts +1 -1
  145. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  146. package/dist/llm/formatters/vercel.js +1 -1
  147. package/dist/llm/index.cjs +2 -4
  148. package/dist/llm/index.d.ts +1 -2
  149. package/dist/llm/index.d.ts.map +1 -1
  150. package/dist/llm/index.js +2 -3
  151. package/dist/llm/providers/codex-app-server.cjs +22 -2
  152. package/dist/llm/providers/codex-app-server.d.ts.map +1 -1
  153. package/dist/llm/providers/codex-app-server.js +23 -3
  154. package/dist/llm/providers/codex-base-url.js +1 -1
  155. package/dist/llm/providers/local/ai-sdk-adapter.js +1 -1
  156. package/dist/llm/providers/local/downloader.js +1 -1
  157. package/dist/llm/providers/local/error-codes.js +1 -1
  158. package/dist/llm/providers/local/errors.js +1 -1
  159. package/dist/llm/providers/local/gpu-detector.js +1 -1
  160. package/dist/llm/providers/local/index.js +1 -1
  161. package/dist/llm/providers/local/node-llama-provider.js +1 -1
  162. package/dist/llm/providers/local/ollama-provider.js +1 -1
  163. package/dist/llm/providers/local/registry.js +1 -1
  164. package/dist/llm/providers/local/schemas.js +1 -1
  165. package/dist/llm/providers/openrouter-model-registry.js +1 -1
  166. package/dist/llm/registry/auto-update.cjs +5 -5
  167. package/dist/llm/registry/auto-update.d.ts.map +1 -1
  168. package/dist/llm/registry/auto-update.js +3 -3
  169. package/dist/llm/registry/index.cjs +96 -789
  170. package/dist/llm/registry/index.d.ts +4 -323
  171. package/dist/llm/registry/index.d.ts.map +1 -1
  172. package/dist/llm/registry/index.js +100 -763
  173. package/dist/llm/registry/sync.d.ts +2 -2
  174. package/dist/llm/registry/sync.d.ts.map +1 -1
  175. package/dist/llm/registry/sync.js +1 -1
  176. package/dist/llm/resolver.cjs +7 -6
  177. package/dist/llm/resolver.d.ts +1 -1
  178. package/dist/llm/resolver.js +5 -5
  179. package/dist/llm/schemas.cjs +14 -14
  180. package/dist/llm/schemas.d.ts +1 -1
  181. package/dist/llm/schemas.d.ts.map +1 -1
  182. package/dist/llm/schemas.js +6 -5
  183. package/dist/llm/services/factory.cjs +13 -15
  184. package/dist/llm/services/factory.d.ts +3 -3
  185. package/dist/llm/services/factory.d.ts.map +1 -1
  186. package/dist/llm/services/factory.js +16 -16
  187. package/dist/llm/services/types.d.ts +11 -2
  188. package/dist/llm/services/types.d.ts.map +1 -1
  189. package/dist/llm/services/vercel.cjs +23 -8
  190. package/dist/llm/services/vercel.d.ts +11 -7
  191. package/dist/llm/services/vercel.d.ts.map +1 -1
  192. package/dist/llm/services/vercel.js +24 -9
  193. package/dist/llm/usage-metadata.cjs +23 -6
  194. package/dist/llm/usage-metadata.d.ts +3 -2
  195. package/dist/llm/usage-metadata.d.ts.map +1 -1
  196. package/dist/llm/usage-metadata.js +20 -7
  197. package/dist/llm/usage-scope.js +1 -1
  198. package/dist/llm/usage-summary.d.ts +1 -1
  199. package/dist/llm/usage-summary.js +1 -1
  200. package/dist/llm/validation.cjs +4 -4
  201. package/dist/llm/validation.d.ts +1 -1
  202. package/dist/llm/validation.js +2 -2
  203. package/dist/logger/browser.js +1 -1
  204. package/dist/logger/default-logger-factory.js +1 -1
  205. package/dist/logger/factory.js +1 -1
  206. package/dist/logger/index.js +1 -1
  207. package/dist/logger/logger.js +1 -1
  208. package/dist/logger/v2/dexto-logger.js +1 -1
  209. package/dist/logger/v2/error-codes.js +1 -1
  210. package/dist/logger/v2/errors.js +1 -1
  211. package/dist/logger/v2/schemas.js +1 -1
  212. package/dist/logger/v2/test-utils.js +1 -1
  213. package/dist/logger/v2/transport-factory.js +1 -1
  214. package/dist/logger/v2/transports/console-transport.js +1 -1
  215. package/dist/logger/v2/transports/file-transport.js +1 -1
  216. package/dist/logger/v2/transports/silent-transport.js +1 -1
  217. package/dist/logger/v2/types.js +1 -1
  218. package/dist/mcp/bundled-config.js +1 -1
  219. package/dist/mcp/error-codes.js +1 -1
  220. package/dist/mcp/errors.js +1 -1
  221. package/dist/mcp/index.js +1 -1
  222. package/dist/mcp/manager.js +1 -1
  223. package/dist/mcp/mcp-client.js +1 -1
  224. package/dist/mcp/resolver.js +1 -1
  225. package/dist/mcp/schemas.js +1 -1
  226. package/dist/memory/error-codes.js +1 -1
  227. package/dist/memory/errors.js +1 -1
  228. package/dist/memory/index.js +1 -1
  229. package/dist/memory/manager.cjs +7 -27
  230. package/dist/memory/manager.d.ts +4 -12
  231. package/dist/memory/manager.d.ts.map +1 -1
  232. package/dist/memory/manager.js +8 -28
  233. package/dist/memory/schemas.js +1 -1
  234. package/dist/prompts/error-codes.js +1 -1
  235. package/dist/prompts/errors.js +1 -1
  236. package/dist/prompts/index.js +1 -1
  237. package/dist/prompts/name-validation.js +1 -1
  238. package/dist/prompts/prompt-manager.cjs +9 -38
  239. package/dist/prompts/prompt-manager.d.ts +2 -10
  240. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  241. package/dist/prompts/prompt-manager.js +10 -39
  242. package/dist/prompts/providers/config-prompt-provider.cjs +8 -87
  243. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  244. package/dist/prompts/providers/config-prompt-provider.js +9 -88
  245. package/dist/prompts/providers/custom-prompt-provider.cjs +21 -22
  246. package/dist/prompts/providers/custom-prompt-provider.d.ts +19 -4
  247. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  248. package/dist/prompts/providers/custom-prompt-provider.js +22 -23
  249. package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
  250. package/dist/prompts/schemas.cjs +2 -24
  251. package/dist/prompts/schemas.d.ts +0 -52
  252. package/dist/prompts/schemas.d.ts.map +1 -1
  253. package/dist/prompts/schemas.js +3 -25
  254. package/dist/prompts/types.d.ts +5 -32
  255. package/dist/prompts/types.d.ts.map +1 -1
  256. package/dist/prompts/utils.js +1 -1
  257. package/dist/resources/agent-resources-provider.js +1 -1
  258. package/dist/resources/error-codes.js +1 -1
  259. package/dist/resources/errors.js +1 -1
  260. package/dist/resources/handlers/blob-handler.cjs +14 -11
  261. package/dist/resources/handlers/blob-handler.d.ts +4 -4
  262. package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
  263. package/dist/resources/handlers/blob-handler.js +15 -12
  264. package/dist/resources/handlers/factory.cjs +3 -3
  265. package/dist/resources/handlers/factory.js +4 -4
  266. package/dist/resources/handlers/filesystem-handler.js +1 -1
  267. package/dist/resources/handlers/types.d.ts +2 -2
  268. package/dist/resources/handlers/types.d.ts.map +1 -1
  269. package/dist/resources/index.js +1 -1
  270. package/dist/resources/manager.cjs +10 -7
  271. package/dist/resources/manager.d.ts +4 -4
  272. package/dist/resources/manager.d.ts.map +1 -1
  273. package/dist/resources/manager.js +11 -8
  274. package/dist/resources/reference-parser.js +1 -1
  275. package/dist/resources/schemas.cjs +1 -1
  276. package/dist/resources/schemas.d.ts +2 -2
  277. package/dist/resources/schemas.js +2 -2
  278. package/dist/runtime/host-runtime.js +1 -1
  279. package/dist/runtime/index.cjs +3 -0
  280. package/dist/runtime/index.d.ts +2 -0
  281. package/dist/runtime/index.d.ts.map +1 -1
  282. package/dist/runtime/index.js +3 -1
  283. package/dist/runtime/run-context.js +1 -1
  284. package/dist/search/index.js +1 -1
  285. package/dist/search/search-service.cjs +6 -13
  286. package/dist/search/search-service.d.ts +5 -3
  287. package/dist/search/search-service.d.ts.map +1 -1
  288. package/dist/search/search-service.js +7 -14
  289. package/dist/session/chat-session.cjs +264 -108
  290. package/dist/session/chat-session.d.ts +75 -21
  291. package/dist/session/chat-session.d.ts.map +1 -1
  292. package/dist/session/chat-session.js +268 -108
  293. package/dist/session/error-codes.js +1 -1
  294. package/dist/session/errors.js +1 -1
  295. package/dist/session/index.cjs +19 -2
  296. package/dist/session/index.d.ts +4 -3
  297. package/dist/session/index.d.ts.map +1 -1
  298. package/dist/session/index.js +19 -3
  299. package/dist/session/message-queue.cjs +82 -51
  300. package/dist/session/message-queue.d.ts +13 -8
  301. package/dist/session/message-queue.d.ts.map +1 -1
  302. package/dist/session/message-queue.js +83 -52
  303. package/dist/session/queue-clone.cjs +50 -0
  304. package/dist/session/queue-clone.d.ts +5 -0
  305. package/dist/session/queue-clone.d.ts.map +1 -0
  306. package/dist/session/queue-clone.js +25 -0
  307. package/dist/session/schemas.cjs +74 -2
  308. package/dist/session/schemas.d.ts +94 -0
  309. package/dist/session/schemas.d.ts.map +1 -1
  310. package/dist/session/schemas.js +69 -2
  311. package/dist/session/session-manager.cjs +107 -123
  312. package/dist/session/session-manager.d.ts +8 -7
  313. package/dist/session/session-manager.d.ts.map +1 -1
  314. package/dist/session/session-manager.js +108 -124
  315. package/dist/session/title-generator.cjs +14 -26
  316. package/dist/session/title-generator.d.ts +4 -6
  317. package/dist/session/title-generator.d.ts.map +1 -1
  318. package/dist/session/title-generator.js +16 -28
  319. package/dist/session/types.cjs +28 -0
  320. package/dist/session/types.d.ts +5 -1
  321. package/dist/session/types.d.ts.map +1 -1
  322. package/dist/session/types.js +19 -0
  323. package/dist/{session/history/factory.cjs → skills/index.cjs} +9 -9
  324. package/dist/skills/index.d.ts +4 -0
  325. package/dist/skills/index.d.ts.map +1 -0
  326. package/dist/skills/index.js +7 -0
  327. package/dist/skills/skill-manager.cjs +76 -0
  328. package/dist/skills/skill-manager.d.ts +13 -0
  329. package/dist/skills/skill-manager.d.ts.map +1 -0
  330. package/dist/skills/skill-manager.js +53 -0
  331. package/dist/skills/types.d.ts +24 -0
  332. package/dist/skills/types.d.ts.map +1 -0
  333. package/dist/skills/workspace-skill-source.cjs +120 -0
  334. package/dist/skills/workspace-skill-source.d.ts +16 -0
  335. package/dist/skills/workspace-skill-source.d.ts.map +1 -0
  336. package/dist/skills/workspace-skill-source.js +97 -0
  337. package/dist/{llm → storage/approvals}/types.cjs +13 -30
  338. package/dist/storage/approvals/types.d.ts +54 -0
  339. package/dist/storage/approvals/types.d.ts.map +1 -0
  340. package/dist/storage/approvals/types.js +14 -0
  341. package/dist/storage/artifacts/types.d.ts +73 -0
  342. package/dist/storage/artifacts/types.d.ts.map +1 -0
  343. package/dist/storage/conversation/database.cjs +233 -0
  344. package/dist/storage/conversation/database.d.ts +38 -0
  345. package/dist/storage/conversation/database.d.ts.map +1 -0
  346. package/dist/storage/conversation/database.js +210 -0
  347. package/dist/storage/conversation/types.cjs +16 -0
  348. package/dist/storage/conversation/types.d.ts +21 -0
  349. package/dist/storage/conversation/types.d.ts.map +1 -0
  350. package/dist/storage/conversation/types.js +0 -0
  351. package/dist/storage/database/types.d.ts +4 -0
  352. package/dist/storage/database/types.d.ts.map +1 -1
  353. package/dist/storage/error-codes.js +1 -1
  354. package/dist/storage/errors.cjs +6 -6
  355. package/dist/storage/errors.d.ts +2 -2
  356. package/dist/storage/errors.js +7 -7
  357. package/dist/storage/index.cjs +42 -5
  358. package/dist/storage/index.d.ts +19 -8
  359. package/dist/storage/index.d.ts.map +1 -1
  360. package/dist/storage/index.js +39 -4
  361. package/dist/storage/memories/types.cjs +16 -0
  362. package/dist/storage/memories/types.d.ts +17 -0
  363. package/dist/storage/memories/types.d.ts.map +1 -0
  364. package/dist/storage/memories/types.js +0 -0
  365. package/dist/storage/message-queue/types.cjs +16 -0
  366. package/dist/storage/message-queue/types.d.ts +15 -0
  367. package/dist/storage/message-queue/types.d.ts.map +1 -0
  368. package/dist/storage/message-queue/types.js +0 -0
  369. package/dist/storage/prompts/types.cjs +16 -0
  370. package/dist/storage/prompts/types.d.ts +14 -0
  371. package/dist/storage/prompts/types.d.ts.map +1 -0
  372. package/dist/storage/prompts/types.js +0 -0
  373. package/dist/storage/runtime-events/types.cjs +16 -0
  374. package/dist/storage/runtime-events/types.d.ts +19 -0
  375. package/dist/storage/runtime-events/types.d.ts.map +1 -0
  376. package/dist/storage/runtime-events/types.js +0 -0
  377. package/dist/storage/sessions/types.cjs +16 -0
  378. package/dist/storage/sessions/types.d.ts +19 -0
  379. package/dist/storage/sessions/types.d.ts.map +1 -0
  380. package/dist/storage/sessions/types.js +0 -0
  381. package/dist/storage/stores/backend.cjs +702 -0
  382. package/dist/storage/stores/backend.d.ts +303 -0
  383. package/dist/storage/stores/backend.d.ts.map +1 -0
  384. package/dist/storage/stores/backend.js +677 -0
  385. package/dist/storage/stores/in-memory.cjs +510 -0
  386. package/dist/storage/stores/in-memory.d.ts +11 -0
  387. package/dist/storage/stores/in-memory.d.ts.map +1 -0
  388. package/dist/storage/stores/in-memory.js +487 -0
  389. package/dist/storage/stores/types.cjs +16 -0
  390. package/dist/storage/stores/types.d.ts +36 -0
  391. package/dist/storage/stores/types.d.ts.map +1 -0
  392. package/dist/storage/stores/types.js +0 -0
  393. package/dist/storage/tool-executions/types.cjs +127 -0
  394. package/dist/storage/tool-executions/types.d.ts +193 -0
  395. package/dist/storage/tool-executions/types.d.ts.map +1 -0
  396. package/dist/storage/tool-executions/types.js +96 -0
  397. package/dist/storage/tool-preferences/types.cjs +16 -0
  398. package/dist/storage/tool-preferences/types.d.ts +29 -0
  399. package/dist/storage/tool-preferences/types.d.ts.map +1 -0
  400. package/dist/storage/tool-preferences/types.js +0 -0
  401. package/dist/storage/tool-state/types.cjs +16 -0
  402. package/dist/storage/tool-state/types.d.ts +20 -0
  403. package/dist/storage/tool-state/types.d.ts.map +1 -0
  404. package/dist/storage/tool-state/types.js +0 -0
  405. package/dist/storage/workspaces/types.cjs +16 -0
  406. package/dist/storage/workspaces/types.d.ts +19 -0
  407. package/dist/storage/workspaces/types.d.ts.map +1 -0
  408. package/dist/storage/workspaces/types.js +0 -0
  409. package/dist/systemPrompt/contributors.cjs +10 -14
  410. package/dist/systemPrompt/contributors.d.ts +3 -3
  411. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  412. package/dist/systemPrompt/contributors.js +11 -15
  413. package/dist/systemPrompt/error-codes.js +1 -1
  414. package/dist/systemPrompt/errors.js +1 -1
  415. package/dist/systemPrompt/in-built-prompts.js +1 -1
  416. package/dist/systemPrompt/index.js +1 -1
  417. package/dist/systemPrompt/manager.js +1 -1
  418. package/dist/systemPrompt/registry.js +1 -1
  419. package/dist/systemPrompt/schemas.js +1 -1
  420. package/dist/telemetry/decorators.js +1 -1
  421. package/dist/telemetry/error-codes.js +1 -1
  422. package/dist/telemetry/errors.js +1 -1
  423. package/dist/telemetry/exporters.js +1 -1
  424. package/dist/telemetry/index.js +1 -1
  425. package/dist/telemetry/schemas.js +1 -1
  426. package/dist/telemetry/telemetry.js +1 -1
  427. package/dist/telemetry/utils.js +1 -1
  428. package/dist/test-utils/in-memory-storage.cjs +9 -17
  429. package/dist/test-utils/in-memory-storage.js +9 -16
  430. package/dist/test-utils/session-state-stores.cjs +21 -24
  431. package/dist/test-utils/session-state-stores.js +22 -24
  432. package/dist/tools/{confirmation → approval}/allowed-tools-provider/factory.cjs +1 -1
  433. package/dist/tools/{confirmation → approval}/allowed-tools-provider/factory.d.ts +2 -2
  434. package/dist/tools/approval/allowed-tools-provider/factory.d.ts.map +1 -0
  435. package/dist/tools/{confirmation → approval}/allowed-tools-provider/factory.js +2 -2
  436. package/dist/tools/approval/allowed-tools-provider/in-memory.d.ts.map +1 -0
  437. package/dist/tools/{confirmation → approval}/allowed-tools-provider/in-memory.js +1 -1
  438. package/dist/tools/approval/allowed-tools-provider/storage.cjs +66 -0
  439. package/dist/tools/{confirmation → approval}/allowed-tools-provider/storage.d.ts +4 -10
  440. package/dist/tools/approval/allowed-tools-provider/storage.d.ts.map +1 -0
  441. package/dist/tools/approval/allowed-tools-provider/storage.js +43 -0
  442. package/dist/tools/approval/allowed-tools-provider/types.cjs +16 -0
  443. package/dist/tools/approval/allowed-tools-provider/types.d.ts.map +1 -0
  444. package/dist/tools/approval/allowed-tools-provider/types.js +0 -0
  445. package/dist/tools/approval/session-tool-policy.cjs +269 -0
  446. package/dist/tools/approval/session-tool-policy.d.ts +43 -0
  447. package/dist/tools/approval/session-tool-policy.d.ts.map +1 -0
  448. package/dist/tools/approval/session-tool-policy.js +245 -0
  449. package/dist/tools/define-tool.js +1 -1
  450. package/dist/tools/display-types.js +1 -1
  451. package/dist/tools/error-codes.cjs +3 -3
  452. package/dist/tools/error-codes.d.ts +4 -4
  453. package/dist/tools/error-codes.d.ts.map +1 -1
  454. package/dist/tools/error-codes.js +4 -4
  455. package/dist/tools/errors.cjs +12 -12
  456. package/dist/tools/errors.d.ts +6 -6
  457. package/dist/tools/errors.d.ts.map +1 -1
  458. package/dist/tools/errors.js +13 -13
  459. package/dist/tools/index.cjs +3 -0
  460. package/dist/tools/index.d.ts +3 -0
  461. package/dist/tools/index.d.ts.map +1 -1
  462. package/dist/tools/index.js +3 -1
  463. package/dist/tools/pattern-utils.js +1 -1
  464. package/dist/tools/presentation/tool-presentation.cjs +182 -0
  465. package/dist/tools/presentation/tool-presentation.d.ts +51 -0
  466. package/dist/tools/presentation/tool-presentation.d.ts.map +1 -0
  467. package/dist/tools/presentation/tool-presentation.js +159 -0
  468. package/dist/tools/presentation.js +1 -1
  469. package/dist/tools/schemas.cjs +5 -10
  470. package/dist/tools/schemas.d.ts +1 -4
  471. package/dist/tools/schemas.d.ts.map +1 -1
  472. package/dist/tools/schemas.js +6 -11
  473. package/dist/tools/session-tool-preferences-store.cjs +12 -28
  474. package/dist/tools/session-tool-preferences-store.d.ts +4 -7
  475. package/dist/tools/session-tool-preferences-store.d.ts.map +1 -1
  476. package/dist/tools/session-tool-preferences-store.js +12 -29
  477. package/dist/tools/tool-call-metadata.js +1 -1
  478. package/dist/tools/tool-manager.cjs +871 -834
  479. package/dist/tools/tool-manager.d.ts +94 -96
  480. package/dist/tools/tool-manager.d.ts.map +1 -1
  481. package/dist/tools/tool-manager.js +876 -833
  482. package/dist/tools/types.d.ts +10 -14
  483. package/dist/tools/types.d.ts.map +1 -1
  484. package/dist/utils/api-key-resolver.d.ts +1 -1
  485. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  486. package/dist/utils/api-key-resolver.js +1 -1
  487. package/dist/utils/async-context.js +1 -1
  488. package/dist/utils/debug.js +1 -1
  489. package/dist/utils/defer.js +1 -1
  490. package/dist/utils/env.js +1 -1
  491. package/dist/utils/error-conversion.js +1 -1
  492. package/dist/utils/execution-context.js +1 -1
  493. package/dist/utils/fs-walk.js +1 -1
  494. package/dist/utils/path.js +1 -1
  495. package/dist/utils/redactor.js +1 -1
  496. package/dist/utils/result.js +1 -1
  497. package/dist/utils/safe-stringify.js +1 -1
  498. package/dist/utils/schema.js +1 -1
  499. package/dist/utils/service-initializer.cjs +37 -33
  500. package/dist/utils/service-initializer.d.ts +9 -5
  501. package/dist/utils/service-initializer.d.ts.map +1 -1
  502. package/dist/utils/service-initializer.js +38 -34
  503. package/dist/utils/zod-schema-converter.js +1 -1
  504. package/dist/workspace/error-codes.cjs +5 -1
  505. package/dist/workspace/error-codes.d.ts +4 -0
  506. package/dist/workspace/error-codes.d.ts.map +1 -1
  507. package/dist/workspace/error-codes.js +6 -2
  508. package/dist/workspace/errors.cjs +43 -0
  509. package/dist/workspace/errors.d.ts +9 -0
  510. package/dist/workspace/errors.d.ts.map +1 -1
  511. package/dist/workspace/errors.js +44 -1
  512. package/dist/workspace/index.d.ts +1 -1
  513. package/dist/workspace/index.d.ts.map +1 -1
  514. package/dist/workspace/index.js +1 -1
  515. package/dist/workspace/manager.cjs +21 -29
  516. package/dist/workspace/manager.d.ts +6 -6
  517. package/dist/workspace/manager.d.ts.map +1 -1
  518. package/dist/workspace/manager.js +22 -30
  519. package/dist/workspace/types.d.ts +47 -0
  520. package/dist/workspace/types.d.ts.map +1 -1
  521. package/package.json +116 -3
  522. package/dist/approval/session-approval-store.cjs +0 -91
  523. package/dist/approval/session-approval-store.d.ts +0 -37
  524. package/dist/approval/session-approval-store.d.ts.map +0 -1
  525. package/dist/approval/session-approval-store.js +0 -68
  526. package/dist/llm/reasoning/anthropic-betas.d.ts +0 -3
  527. package/dist/llm/reasoning/anthropic-betas.d.ts.map +0 -1
  528. package/dist/llm/reasoning/anthropic-betas.js +0 -7
  529. package/dist/llm/reasoning/anthropic-thinking.cjs +0 -79
  530. package/dist/llm/reasoning/anthropic-thinking.d.ts +0 -15
  531. package/dist/llm/reasoning/anthropic-thinking.d.ts.map +0 -1
  532. package/dist/llm/reasoning/anthropic-thinking.js +0 -52
  533. package/dist/llm/reasoning/openai-reasoning-effort.cjs +0 -86
  534. package/dist/llm/reasoning/openai-reasoning-effort.d.ts +0 -5
  535. package/dist/llm/reasoning/openai-reasoning-effort.d.ts.map +0 -1
  536. package/dist/llm/reasoning/openai-reasoning-effort.js +0 -61
  537. package/dist/llm/reasoning/profile.cjs +0 -113
  538. package/dist/llm/reasoning/profile.d.ts +0 -13
  539. package/dist/llm/reasoning/profile.d.ts.map +0 -1
  540. package/dist/llm/reasoning/profile.js +0 -92
  541. package/dist/llm/reasoning/profiles/anthropic.cjs +0 -61
  542. package/dist/llm/reasoning/profiles/anthropic.d.ts +0 -8
  543. package/dist/llm/reasoning/profiles/anthropic.d.ts.map +0 -1
  544. package/dist/llm/reasoning/profiles/anthropic.js +0 -45
  545. package/dist/llm/reasoning/profiles/bedrock.cjs +0 -54
  546. package/dist/llm/reasoning/profiles/bedrock.d.ts +0 -3
  547. package/dist/llm/reasoning/profiles/bedrock.d.ts.map +0 -1
  548. package/dist/llm/reasoning/profiles/bedrock.js +0 -36
  549. package/dist/llm/reasoning/profiles/google.cjs +0 -45
  550. package/dist/llm/reasoning/profiles/google.d.ts +0 -9
  551. package/dist/llm/reasoning/profiles/google.d.ts.map +0 -1
  552. package/dist/llm/reasoning/profiles/google.js +0 -21
  553. package/dist/llm/reasoning/profiles/openai-compatible.cjs +0 -39
  554. package/dist/llm/reasoning/profiles/openai-compatible.d.ts +0 -3
  555. package/dist/llm/reasoning/profiles/openai-compatible.d.ts.map +0 -1
  556. package/dist/llm/reasoning/profiles/openai-compatible.js +0 -16
  557. package/dist/llm/reasoning/profiles/openai.d.ts +0 -3
  558. package/dist/llm/reasoning/profiles/openai.d.ts.map +0 -1
  559. package/dist/llm/reasoning/profiles/openai.js +0 -18
  560. package/dist/llm/reasoning/profiles/openrouter.cjs +0 -83
  561. package/dist/llm/reasoning/profiles/openrouter.d.ts +0 -10
  562. package/dist/llm/reasoning/profiles/openrouter.d.ts.map +0 -1
  563. package/dist/llm/reasoning/profiles/openrouter.js +0 -59
  564. package/dist/llm/reasoning/profiles/shared.cjs +0 -80
  565. package/dist/llm/reasoning/profiles/shared.d.ts +0 -25
  566. package/dist/llm/reasoning/profiles/shared.d.ts.map +0 -1
  567. package/dist/llm/reasoning/profiles/shared.js +0 -53
  568. package/dist/llm/reasoning/profiles/vertex.cjs +0 -46
  569. package/dist/llm/reasoning/profiles/vertex.d.ts +0 -3
  570. package/dist/llm/reasoning/profiles/vertex.d.ts.map +0 -1
  571. package/dist/llm/reasoning/profiles/vertex.js +0 -23
  572. package/dist/llm/registry/models.generated.cjs +0 -10741
  573. package/dist/llm/registry/models.generated.d.ts +0 -2945
  574. package/dist/llm/registry/models.generated.d.ts.map +0 -1
  575. package/dist/llm/registry/models.generated.js +0 -10717
  576. package/dist/llm/registry/models.manual.cjs +0 -44
  577. package/dist/llm/registry/models.manual.d.ts +0 -22
  578. package/dist/llm/registry/models.manual.d.ts.map +0 -1
  579. package/dist/llm/registry/models.manual.js +0 -21
  580. package/dist/llm/types.d.ts +0 -39
  581. package/dist/llm/types.d.ts.map +0 -1
  582. package/dist/llm/types.js +0 -30
  583. package/dist/session/history/database.cjs +0 -232
  584. package/dist/session/history/database.d.ts +0 -41
  585. package/dist/session/history/database.d.ts.map +0 -1
  586. package/dist/session/history/database.js +0 -209
  587. package/dist/session/history/factory.d.ts +0 -11
  588. package/dist/session/history/factory.d.ts.map +0 -1
  589. package/dist/session/history/factory.js +0 -8
  590. package/dist/session/history/memory.cjs +0 -57
  591. package/dist/session/history/memory.d.ts +0 -22
  592. package/dist/session/history/memory.d.ts.map +0 -1
  593. package/dist/session/history/memory.js +0 -34
  594. package/dist/session/history/types.d.ts +0 -26
  595. package/dist/session/history/types.d.ts.map +0 -1
  596. package/dist/session/message-queue-store.cjs +0 -75
  597. package/dist/session/message-queue-store.d.ts +0 -16
  598. package/dist/session/message-queue-store.d.ts.map +0 -1
  599. package/dist/session/message-queue-store.js +0 -52
  600. package/dist/storage/storage-manager.cjs +0 -209
  601. package/dist/storage/storage-manager.d.ts +0 -77
  602. package/dist/storage/storage-manager.d.ts.map +0 -1
  603. package/dist/storage/storage-manager.js +0 -186
  604. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +0 -1
  605. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +0 -1
  606. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +0 -69
  607. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +0 -1
  608. package/dist/tools/confirmation/allowed-tools-provider/storage.js +0 -46
  609. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +0 -1
  610. /package/dist/{session/history → skills}/types.cjs +0 -0
  611. /package/dist/{session/history → skills}/types.js +0 -0
  612. /package/dist/{tools/confirmation/allowed-tools-provider → storage/artifacts}/types.cjs +0 -0
  613. /package/dist/{tools/confirmation/allowed-tools-provider → storage/artifacts}/types.js +0 -0
  614. /package/dist/tools/{confirmation → approval}/allowed-tools-provider/in-memory.cjs +0 -0
  615. /package/dist/tools/{confirmation → approval}/allowed-tools-provider/in-memory.d.ts +0 -0
  616. /package/dist/tools/{confirmation → approval}/allowed-tools-provider/types.d.ts +0 -0
@@ -32,8 +32,8 @@ __export(manager_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(manager_exports);
34
34
  var import_crypto = require("crypto");
35
- var import_types2 = require("./types.js");
36
- var import_types3 = require("../logger/v2/types.js");
35
+ var import_types = require("./types.js");
36
+ var import_types2 = require("../logger/v2/types.js");
37
37
  var import_utils = require("./utils.js");
38
38
  var import_errors = require("./errors.js");
39
39
  var import_media_helpers = require("./media-helpers.js");
@@ -72,7 +72,7 @@ class ContextManager {
72
72
  * Messages after this index are estimated with length/4 heuristic.
73
73
  */
74
74
  lastCallMessageCount = null;
75
- historyProvider;
75
+ conversationStore;
76
76
  sessionId;
77
77
  /**
78
78
  * ResourceManager for resolving blob references in message content.
@@ -195,22 +195,22 @@ class ContextManager {
195
195
  * @param formatter Formatter implementation for the target LLM provider
196
196
  * @param systemPromptManager SystemPromptManager instance for the conversation
197
197
  * @param maxInputTokens Maximum token limit for the conversation history.
198
- * @param historyProvider Session-scoped ConversationHistoryProvider instance for managing conversation history
198
+ * @param conversationStore Store for managing conversation history
199
199
  * @param sessionId Unique identifier for the conversation session (readonly, for debugging)
200
200
  * @param resourceManager ResourceManager for resolving blob references in messages
201
201
  * @param logger Logger instance for logging
202
202
  */
203
- constructor(llmConfig, formatter, systemPromptManager, maxInputTokens, historyProvider, sessionId, resourceManager, logger) {
203
+ constructor(llmConfig, formatter, systemPromptManager, maxInputTokens, conversationStore, sessionId, resourceManager, logger) {
204
204
  this.llmConfig = llmConfig;
205
205
  this.formatter = formatter;
206
206
  this.systemPromptManager = systemPromptManager;
207
207
  this.maxInputTokens = maxInputTokens;
208
- this.historyProvider = historyProvider;
208
+ this.conversationStore = conversationStore;
209
209
  this.sessionId = sessionId;
210
210
  this.resourceManager = resourceManager;
211
- this.logger = logger.createChild(import_types3.DextoLogComponent.CONTEXT);
211
+ this.logger = logger.createChild(import_types2.DextoLogComponent.CONTEXT);
212
212
  this.logger.debug(
213
- `ContextManager: Initialized for session ${sessionId} - history will be managed by ${historyProvider.constructor.name}`
213
+ `ContextManager: Initialized for session ${sessionId} - history will be managed by ${conversationStore.constructor.name}`
214
214
  );
215
215
  }
216
216
  /**
@@ -224,7 +224,7 @@ class ContextManager {
224
224
  * Returns either the original data or a blob reference (@blob:id).
225
225
  */
226
226
  async processUserInput(data, metadata) {
227
- const blobService = this.resourceManager.getBlobStore();
227
+ const artifactStore = this.resourceManager.getArtifactStore();
228
228
  let shouldStoreAsBlob = false;
229
229
  let estimatedSize = 0;
230
230
  if (typeof data === "string") {
@@ -251,20 +251,25 @@ class ContextManager {
251
251
  if (shouldStoreAsBlob) {
252
252
  try {
253
253
  const blobInput = typeof data === "string" && !data.startsWith("data:") && !(0, import_utils.isLikelyBase64String)(data) && !isLikelyBinary ? Buffer.from(data, "utf-8") : data;
254
- const blobRef = await blobService.store(blobInput, {
255
- mimeType: metadata.mimeType,
256
- originalName: metadata.originalName,
257
- source: metadata.source || "user"
254
+ const artifactRef = await artifactStore.store({
255
+ data: blobInput,
256
+ metadata: {
257
+ mimeType: metadata.mimeType,
258
+ ...metadata.originalName !== void 0 && {
259
+ originalName: metadata.originalName
260
+ },
261
+ source: metadata.source || "user"
262
+ }
258
263
  });
259
264
  this.logger.info(
260
- `Stored user input as blob: ${blobRef.uri} (${estimatedSize} bytes, ${metadata.mimeType})`
265
+ `Stored user input as artifact: ${artifactRef.uri} (${estimatedSize} bytes, ${metadata.mimeType})`
261
266
  );
262
267
  this.resourceManager.emitCacheInvalidated({
263
- resourceUri: blobRef.uri,
268
+ resourceUri: artifactRef.uri,
264
269
  serverName: "internal",
265
270
  action: "blob_stored"
266
271
  });
267
- return `@${blobRef.uri}`;
272
+ return `@${artifactRef.uri}`;
268
273
  } catch (error) {
269
274
  this.logger.warn(`Failed to store user input as blob: ${String(error)}`);
270
275
  return data;
@@ -320,7 +325,7 @@ class ContextManager {
320
325
  * This marks the boundary for "new messages" calculation.
321
326
  */
322
327
  async recordLastCallMessageCount() {
323
- const history = await this.historyProvider.getHistory();
328
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
324
329
  this.lastCallMessageCount = history.length;
325
330
  this.logger.debug(`Recorded lastCallMessageCount: ${this.lastCallMessageCount}`);
326
331
  }
@@ -355,7 +360,9 @@ class ContextManager {
355
360
  * @returns Prepared history and statistics about the transformations
356
361
  */
357
362
  async prepareHistory() {
358
- const fullHistory = await this.historyProvider.getHistory();
363
+ const fullHistory = await this.conversationStore.listMessages({
364
+ sessionId: this.sessionId
365
+ });
359
366
  const originalCount = fullHistory.length;
360
367
  let history = (0, import_utils.filterCompacted)(fullHistory);
361
368
  const filteredCount = history.length;
@@ -407,7 +414,7 @@ ${prompt}`);
407
414
  * @returns Promise that resolves to a read-only copy of the conversation history
408
415
  */
409
416
  async getHistory() {
410
- const history = await this.historyProvider.getHistory();
417
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
411
418
  return [...history];
412
419
  }
413
420
  /**
@@ -416,7 +423,7 @@ ${prompt}`);
416
423
  * This ensures all message updates are persisted before returning control to the caller.
417
424
  */
418
425
  async flush() {
419
- await this.historyProvider.flush();
426
+ await this.conversationStore.flush({ sessionId: this.sessionId });
420
427
  }
421
428
  /**
422
429
  * Clears the context window without deleting history.
@@ -447,7 +454,7 @@ ${prompt}`);
447
454
  * Used for streaming responses.
448
455
  */
449
456
  async appendAssistantText(messageId, text) {
450
- const history = await this.historyProvider.getHistory();
457
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
451
458
  const messageIndex = history.findIndex((m) => m.id === messageId);
452
459
  if (messageIndex === -1) {
453
460
  throw import_errors.ContextError.messageNotFound(messageId);
@@ -469,14 +476,14 @@ ${prompt}`);
469
476
  message.content.push({ type: "text", text });
470
477
  }
471
478
  }
472
- await this.historyProvider.updateMessage(message);
479
+ await this.conversationStore.updateMessage({ sessionId: this.sessionId, message });
473
480
  }
474
481
  /**
475
482
  * Adds a tool call to an existing assistant message.
476
483
  * Used for streaming responses.
477
484
  */
478
485
  async addToolCall(messageId, toolCall) {
479
- const history = await this.historyProvider.getHistory();
486
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
480
487
  const messageIndex = history.findIndex((m) => m.id === messageId);
481
488
  if (messageIndex === -1) {
482
489
  throw import_errors.ContextError.messageNotFound(messageId);
@@ -492,14 +499,14 @@ ${prompt}`);
492
499
  message.toolCalls = [];
493
500
  }
494
501
  message.toolCalls.push(toolCall);
495
- await this.historyProvider.updateMessage(message);
502
+ await this.conversationStore.updateMessage({ sessionId: this.sessionId, message });
496
503
  }
497
504
  /**
498
505
  * Updates an existing assistant message with new properties.
499
506
  * Used for finalizing streaming responses (e.g. adding token usage).
500
507
  */
501
508
  async updateAssistantMessage(messageId, updates) {
502
- const history = await this.historyProvider.getHistory();
509
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
503
510
  const messageIndex = history.findIndex((m) => m.id === messageId);
504
511
  if (messageIndex === -1) {
505
512
  throw import_errors.ContextError.messageNotFound(messageId);
@@ -512,7 +519,7 @@ ${prompt}`);
512
519
  throw import_errors.ContextError.messageNotAssistant(messageId);
513
520
  }
514
521
  Object.assign(message, updates);
515
- await this.historyProvider.updateMessage(message);
522
+ await this.conversationStore.updateMessage({ sessionId: this.sessionId, message });
516
523
  }
517
524
  /**
518
525
  * Marks tool messages as compacted (pruned).
@@ -530,7 +537,7 @@ ${prompt}`);
530
537
  if (messageIds.length === 0) {
531
538
  return 0;
532
539
  }
533
- const history = await this.historyProvider.getHistory();
540
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
534
541
  const timestamp = Date.now();
535
542
  let markedCount = 0;
536
543
  for (const messageId of messageIds) {
@@ -549,7 +556,7 @@ ${prompt}`);
549
556
  continue;
550
557
  }
551
558
  message.compactedAt = timestamp;
552
- await this.historyProvider.updateMessage(message);
559
+ await this.conversationStore.updateMessage({ sessionId: this.sessionId, message });
553
560
  markedCount++;
554
561
  }
555
562
  if (markedCount > 0) {
@@ -611,10 +618,10 @@ ${prompt}`);
611
618
  message.timestamp = Date.now();
612
619
  }
613
620
  this.logger.debug(
614
- `ContextManager: Adding message to history provider: ${JSON.stringify(message, null, 2)}`
621
+ `ContextManager: Adding message to conversation store: ${JSON.stringify(message, null, 2)}`
615
622
  );
616
- await this.historyProvider.saveMessage(message);
617
- const history = await this.historyProvider.getHistory();
623
+ await this.conversationStore.saveMessage({ sessionId: this.sessionId, message });
624
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
618
625
  this.logger.debug(`ContextManager: History now contains ${history.length} messages`);
619
626
  }
620
627
  /**
@@ -744,16 +751,16 @@ ${prompt}`);
744
751
  * @param contributorContext The DynamicContributorContext for system prompt contributors and formatting
745
752
  * @param llmContext The llmContext for the formatter to decide which messages to include based on the model's capabilities
746
753
  * @param systemPrompt (Optional) Precomputed system prompt string. If provided, it will be used instead of recomputing the system prompt. Useful for avoiding duplicate computation when both the formatted messages and the raw system prompt are needed in the same request.
747
- * @param history (Optional) Pre-fetched and potentially compressed history. If not provided, will fetch from history provider.
754
+ * @param history (Optional) Pre-fetched and potentially compressed history. If not provided, will fetch from the conversation store.
748
755
  * @returns Formatted messages ready to send to the LLM provider API
749
756
  * @throws Error if formatting or compression fails critically
750
757
  */
751
758
  async getFormattedMessages(contributorContext, llmContext, systemPrompt, history) {
752
- let messageHistory = history ?? await this.historyProvider.getHistory();
759
+ let messageHistory = history ?? await this.conversationStore.listMessages({ sessionId: this.sessionId });
753
760
  let allowedMediaTypes = this.llmConfig.allowedMediaTypes;
754
761
  if (!allowedMediaTypes) {
755
762
  try {
756
- const { getSupportedFileTypesForModel } = await import("../llm/registry/index.js");
763
+ const { getSupportedFileTypesForModel } = await import("@dexto/llm");
757
764
  const { fileTypesToMimePatterns } = await import("./utils.js");
758
765
  const supportedFileTypes = getSupportedFileTypesForModel(
759
766
  llmContext.provider,
@@ -782,18 +789,18 @@ ${prompt}`);
782
789
  break;
783
790
  }
784
791
  const message = messageHistory[index];
785
- if ((0, import_types2.isUserMessage)(message) && ContextManager.hasRetainableMedia(message)) {
792
+ if ((0, import_types.isUserMessage)(message) && ContextManager.hasRetainableMedia(message)) {
786
793
  retainedMediaMessageIndexes.add(index);
787
794
  retainedMediaMessages += 1;
788
795
  }
789
796
  }
790
797
  messageHistory = await Promise.all(
791
798
  messageHistory.map(async (message, index) => {
792
- if ((0, import_types2.isSystemMessage)(message) || (0, import_types2.isAssistantMessage)(message)) {
799
+ if ((0, import_types.isSystemMessage)(message) || (0, import_types.isAssistantMessage)(message)) {
793
800
  return message;
794
801
  }
795
802
  const expandMatchingMedia = retainedMediaMessageIndexes.has(index);
796
- if ((0, import_types2.isUserMessage)(message)) {
803
+ if ((0, import_types.isUserMessage)(message)) {
797
804
  const expandedContent = await (0, import_utils.expandBlobReferences)(
798
805
  message.content,
799
806
  this.resourceManager,
@@ -803,7 +810,7 @@ ${prompt}`);
803
810
  );
804
811
  return { ...message, content: expandedContent };
805
812
  }
806
- if ((0, import_types2.isToolMessage)(message)) {
813
+ if ((0, import_types.isToolMessage)(message)) {
807
814
  const expandedContent = await (0, import_utils.expandBlobReferences)(
808
815
  message.content,
809
816
  this.resourceManager,
@@ -868,7 +875,9 @@ ${prompt}`);
868
875
  const lastInput = this.lastActualInputTokens;
869
876
  const lastOutput = this.lastActualOutputTokens;
870
877
  const lastMsgCount = this.lastCallMessageCount;
871
- const currentHistory = await this.historyProvider.getHistory();
878
+ const currentHistory = await this.conversationStore.listMessages({
879
+ sessionId: this.sessionId
880
+ });
872
881
  const pureEstimate = (0, import_utils.estimateContextTokens)(systemPrompt, preparedHistory, tools);
873
882
  let total;
874
883
  let calculationBasis;
@@ -968,7 +977,9 @@ ${prompt}`);
968
977
  const lastInput = this.lastActualInputTokens;
969
978
  const lastOutput = this.lastActualOutputTokens;
970
979
  const lastMsgCount = this.lastCallMessageCount;
971
- const currentHistory = await this.historyProvider.getHistory();
980
+ const currentHistory = await this.conversationStore.listMessages({
981
+ sessionId: this.sessionId
982
+ });
972
983
  if (lastInput !== null && lastOutput !== null && lastMsgCount !== null) {
973
984
  const newMessages = currentHistory.slice(lastMsgCount);
974
985
  const newMessagesEstimate = (0, import_utils.estimateMessagesTokens)(newMessages);
@@ -997,7 +1008,7 @@ ${prompt}`);
997
1008
  * Does not reset the system prompt
998
1009
  */
999
1010
  async resetConversation() {
1000
- await this.historyProvider.clearHistory();
1011
+ await this.conversationStore.clearMessages({ sessionId: this.sessionId });
1001
1012
  this.resetActualTokenTracking();
1002
1013
  this.logger.debug(
1003
1014
  `ContextManager: Conversation history cleared for session ${this.sessionId}`
@@ -1,23 +1,23 @@
1
1
  import { VercelMessageFormatter } from '../llm/formatters/vercel.js';
2
- import { LLMContext } from '../llm/types.js';
2
+ import type { LLMContext } from '@dexto/llm';
3
3
  import type { InternalMessage, AssistantMessage, ToolCall } from './types.js';
4
4
  import type { Logger } from '../logger/v2/types.js';
5
5
  import type { SanitizedToolResult } from './types.js';
6
6
  import { DynamicContributorContext } from '../systemPrompt/types.js';
7
7
  import { SystemPromptManager } from '../systemPrompt/manager.js';
8
- import type { ConversationHistoryProvider } from '../session/history/types.js';
8
+ import type { ConversationStore } from '../storage/conversation/types.js';
9
9
  import { ValidatedLLMConfig } from '../llm/schemas.js';
10
10
  import type { ToolPresentationSnapshotV1 } from '../tools/types.js';
11
11
  import type { ToolCallMetadata } from '../tools/tool-call-metadata.js';
12
12
  /**
13
13
  * Manages conversation history and provides message formatting capabilities for the LLM context.
14
14
  * The ContextManager is responsible for:
15
- * - Validating and storing conversation messages via the history provider
15
+ * - Validating and storing conversation messages via the conversation store
16
16
  * - Managing the system prompt
17
17
  * - Formatting messages for specific LLM providers through an injected formatter
18
18
  * - Providing access to conversation history
19
19
  *
20
- * Note: All conversation history is stored and retrieved via the injected ConversationHistoryProvider.
20
+ * Note: All conversation history is stored and retrieved via the injected ConversationStore.
21
21
  * The ContextManager does not maintain an internal history cache.
22
22
  * Token counting is handled by the LLM API response, not local estimation.
23
23
  *
@@ -58,7 +58,7 @@ export declare class ContextManager<TMessage = unknown> {
58
58
  * Messages after this index are estimated with length/4 heuristic.
59
59
  */
60
60
  private lastCallMessageCount;
61
- private historyProvider;
61
+ private conversationStore;
62
62
  private readonly sessionId;
63
63
  /**
64
64
  * ResourceManager for resolving blob references in message content.
@@ -76,12 +76,12 @@ export declare class ContextManager<TMessage = unknown> {
76
76
  * @param formatter Formatter implementation for the target LLM provider
77
77
  * @param systemPromptManager SystemPromptManager instance for the conversation
78
78
  * @param maxInputTokens Maximum token limit for the conversation history.
79
- * @param historyProvider Session-scoped ConversationHistoryProvider instance for managing conversation history
79
+ * @param conversationStore Store for managing conversation history
80
80
  * @param sessionId Unique identifier for the conversation session (readonly, for debugging)
81
81
  * @param resourceManager ResourceManager for resolving blob references in messages
82
82
  * @param logger Logger instance for logging
83
83
  */
84
- constructor(llmConfig: ValidatedLLMConfig, formatter: VercelMessageFormatter, systemPromptManager: SystemPromptManager, maxInputTokens: number, historyProvider: ConversationHistoryProvider, sessionId: string, resourceManager: import('../resources/index.js').ResourceManager, logger: Logger);
84
+ constructor(llmConfig: ValidatedLLMConfig, formatter: VercelMessageFormatter, systemPromptManager: SystemPromptManager, maxInputTokens: number, conversationStore: ConversationStore, sessionId: string, resourceManager: import('../resources/index.js').ResourceManager, logger: Logger);
85
85
  /**
86
86
  * Get the ResourceManager instance
87
87
  */
@@ -275,7 +275,7 @@ export declare class ContextManager<TMessage = unknown> {
275
275
  * @param contributorContext The DynamicContributorContext for system prompt contributors and formatting
276
276
  * @param llmContext The llmContext for the formatter to decide which messages to include based on the model's capabilities
277
277
  * @param systemPrompt (Optional) Precomputed system prompt string. If provided, it will be used instead of recomputing the system prompt. Useful for avoiding duplicate computation when both the formatted messages and the raw system prompt are needed in the same request.
278
- * @param history (Optional) Pre-fetched and potentially compressed history. If not provided, will fetch from history provider.
278
+ * @param history (Optional) Pre-fetched and potentially compressed history. If not provided, will fetch from the conversation store.
279
279
  * @returns Formatted messages ready to send to the LLM provider API
280
280
  * @throws Error if formatting or compression fails critically
281
281
  */
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/context/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/context/manager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import "../chunk-PTJYTZNU.js";
1
+ import "../chunk-C6A6W6XS.js";
2
2
  import { randomUUID } from "crypto";
3
3
  import { isSystemMessage, isUserMessage, isAssistantMessage, isToolMessage } from "./types.js";
4
4
  import { DextoLogComponent } from "../logger/v2/types.js";
@@ -47,7 +47,7 @@ class ContextManager {
47
47
  * Messages after this index are estimated with length/4 heuristic.
48
48
  */
49
49
  lastCallMessageCount = null;
50
- historyProvider;
50
+ conversationStore;
51
51
  sessionId;
52
52
  /**
53
53
  * ResourceManager for resolving blob references in message content.
@@ -170,22 +170,22 @@ class ContextManager {
170
170
  * @param formatter Formatter implementation for the target LLM provider
171
171
  * @param systemPromptManager SystemPromptManager instance for the conversation
172
172
  * @param maxInputTokens Maximum token limit for the conversation history.
173
- * @param historyProvider Session-scoped ConversationHistoryProvider instance for managing conversation history
173
+ * @param conversationStore Store for managing conversation history
174
174
  * @param sessionId Unique identifier for the conversation session (readonly, for debugging)
175
175
  * @param resourceManager ResourceManager for resolving blob references in messages
176
176
  * @param logger Logger instance for logging
177
177
  */
178
- constructor(llmConfig, formatter, systemPromptManager, maxInputTokens, historyProvider, sessionId, resourceManager, logger) {
178
+ constructor(llmConfig, formatter, systemPromptManager, maxInputTokens, conversationStore, sessionId, resourceManager, logger) {
179
179
  this.llmConfig = llmConfig;
180
180
  this.formatter = formatter;
181
181
  this.systemPromptManager = systemPromptManager;
182
182
  this.maxInputTokens = maxInputTokens;
183
- this.historyProvider = historyProvider;
183
+ this.conversationStore = conversationStore;
184
184
  this.sessionId = sessionId;
185
185
  this.resourceManager = resourceManager;
186
186
  this.logger = logger.createChild(DextoLogComponent.CONTEXT);
187
187
  this.logger.debug(
188
- `ContextManager: Initialized for session ${sessionId} - history will be managed by ${historyProvider.constructor.name}`
188
+ `ContextManager: Initialized for session ${sessionId} - history will be managed by ${conversationStore.constructor.name}`
189
189
  );
190
190
  }
191
191
  /**
@@ -199,7 +199,7 @@ class ContextManager {
199
199
  * Returns either the original data or a blob reference (@blob:id).
200
200
  */
201
201
  async processUserInput(data, metadata) {
202
- const blobService = this.resourceManager.getBlobStore();
202
+ const artifactStore = this.resourceManager.getArtifactStore();
203
203
  let shouldStoreAsBlob = false;
204
204
  let estimatedSize = 0;
205
205
  if (typeof data === "string") {
@@ -226,20 +226,25 @@ class ContextManager {
226
226
  if (shouldStoreAsBlob) {
227
227
  try {
228
228
  const blobInput = typeof data === "string" && !data.startsWith("data:") && !isLikelyBase64String(data) && !isLikelyBinary ? Buffer.from(data, "utf-8") : data;
229
- const blobRef = await blobService.store(blobInput, {
230
- mimeType: metadata.mimeType,
231
- originalName: metadata.originalName,
232
- source: metadata.source || "user"
229
+ const artifactRef = await artifactStore.store({
230
+ data: blobInput,
231
+ metadata: {
232
+ mimeType: metadata.mimeType,
233
+ ...metadata.originalName !== void 0 && {
234
+ originalName: metadata.originalName
235
+ },
236
+ source: metadata.source || "user"
237
+ }
233
238
  });
234
239
  this.logger.info(
235
- `Stored user input as blob: ${blobRef.uri} (${estimatedSize} bytes, ${metadata.mimeType})`
240
+ `Stored user input as artifact: ${artifactRef.uri} (${estimatedSize} bytes, ${metadata.mimeType})`
236
241
  );
237
242
  this.resourceManager.emitCacheInvalidated({
238
- resourceUri: blobRef.uri,
243
+ resourceUri: artifactRef.uri,
239
244
  serverName: "internal",
240
245
  action: "blob_stored"
241
246
  });
242
- return `@${blobRef.uri}`;
247
+ return `@${artifactRef.uri}`;
243
248
  } catch (error) {
244
249
  this.logger.warn(`Failed to store user input as blob: ${String(error)}`);
245
250
  return data;
@@ -295,7 +300,7 @@ class ContextManager {
295
300
  * This marks the boundary for "new messages" calculation.
296
301
  */
297
302
  async recordLastCallMessageCount() {
298
- const history = await this.historyProvider.getHistory();
303
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
299
304
  this.lastCallMessageCount = history.length;
300
305
  this.logger.debug(`Recorded lastCallMessageCount: ${this.lastCallMessageCount}`);
301
306
  }
@@ -330,7 +335,9 @@ class ContextManager {
330
335
  * @returns Prepared history and statistics about the transformations
331
336
  */
332
337
  async prepareHistory() {
333
- const fullHistory = await this.historyProvider.getHistory();
338
+ const fullHistory = await this.conversationStore.listMessages({
339
+ sessionId: this.sessionId
340
+ });
334
341
  const originalCount = fullHistory.length;
335
342
  let history = filterCompacted(fullHistory);
336
343
  const filteredCount = history.length;
@@ -382,7 +389,7 @@ ${prompt}`);
382
389
  * @returns Promise that resolves to a read-only copy of the conversation history
383
390
  */
384
391
  async getHistory() {
385
- const history = await this.historyProvider.getHistory();
392
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
386
393
  return [...history];
387
394
  }
388
395
  /**
@@ -391,7 +398,7 @@ ${prompt}`);
391
398
  * This ensures all message updates are persisted before returning control to the caller.
392
399
  */
393
400
  async flush() {
394
- await this.historyProvider.flush();
401
+ await this.conversationStore.flush({ sessionId: this.sessionId });
395
402
  }
396
403
  /**
397
404
  * Clears the context window without deleting history.
@@ -422,7 +429,7 @@ ${prompt}`);
422
429
  * Used for streaming responses.
423
430
  */
424
431
  async appendAssistantText(messageId, text) {
425
- const history = await this.historyProvider.getHistory();
432
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
426
433
  const messageIndex = history.findIndex((m) => m.id === messageId);
427
434
  if (messageIndex === -1) {
428
435
  throw ContextError.messageNotFound(messageId);
@@ -444,14 +451,14 @@ ${prompt}`);
444
451
  message.content.push({ type: "text", text });
445
452
  }
446
453
  }
447
- await this.historyProvider.updateMessage(message);
454
+ await this.conversationStore.updateMessage({ sessionId: this.sessionId, message });
448
455
  }
449
456
  /**
450
457
  * Adds a tool call to an existing assistant message.
451
458
  * Used for streaming responses.
452
459
  */
453
460
  async addToolCall(messageId, toolCall) {
454
- const history = await this.historyProvider.getHistory();
461
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
455
462
  const messageIndex = history.findIndex((m) => m.id === messageId);
456
463
  if (messageIndex === -1) {
457
464
  throw ContextError.messageNotFound(messageId);
@@ -467,14 +474,14 @@ ${prompt}`);
467
474
  message.toolCalls = [];
468
475
  }
469
476
  message.toolCalls.push(toolCall);
470
- await this.historyProvider.updateMessage(message);
477
+ await this.conversationStore.updateMessage({ sessionId: this.sessionId, message });
471
478
  }
472
479
  /**
473
480
  * Updates an existing assistant message with new properties.
474
481
  * Used for finalizing streaming responses (e.g. adding token usage).
475
482
  */
476
483
  async updateAssistantMessage(messageId, updates) {
477
- const history = await this.historyProvider.getHistory();
484
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
478
485
  const messageIndex = history.findIndex((m) => m.id === messageId);
479
486
  if (messageIndex === -1) {
480
487
  throw ContextError.messageNotFound(messageId);
@@ -487,7 +494,7 @@ ${prompt}`);
487
494
  throw ContextError.messageNotAssistant(messageId);
488
495
  }
489
496
  Object.assign(message, updates);
490
- await this.historyProvider.updateMessage(message);
497
+ await this.conversationStore.updateMessage({ sessionId: this.sessionId, message });
491
498
  }
492
499
  /**
493
500
  * Marks tool messages as compacted (pruned).
@@ -505,7 +512,7 @@ ${prompt}`);
505
512
  if (messageIds.length === 0) {
506
513
  return 0;
507
514
  }
508
- const history = await this.historyProvider.getHistory();
515
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
509
516
  const timestamp = Date.now();
510
517
  let markedCount = 0;
511
518
  for (const messageId of messageIds) {
@@ -524,7 +531,7 @@ ${prompt}`);
524
531
  continue;
525
532
  }
526
533
  message.compactedAt = timestamp;
527
- await this.historyProvider.updateMessage(message);
534
+ await this.conversationStore.updateMessage({ sessionId: this.sessionId, message });
528
535
  markedCount++;
529
536
  }
530
537
  if (markedCount > 0) {
@@ -586,10 +593,10 @@ ${prompt}`);
586
593
  message.timestamp = Date.now();
587
594
  }
588
595
  this.logger.debug(
589
- `ContextManager: Adding message to history provider: ${JSON.stringify(message, null, 2)}`
596
+ `ContextManager: Adding message to conversation store: ${JSON.stringify(message, null, 2)}`
590
597
  );
591
- await this.historyProvider.saveMessage(message);
592
- const history = await this.historyProvider.getHistory();
598
+ await this.conversationStore.saveMessage({ sessionId: this.sessionId, message });
599
+ const history = await this.conversationStore.listMessages({ sessionId: this.sessionId });
593
600
  this.logger.debug(`ContextManager: History now contains ${history.length} messages`);
594
601
  }
595
602
  /**
@@ -719,16 +726,16 @@ ${prompt}`);
719
726
  * @param contributorContext The DynamicContributorContext for system prompt contributors and formatting
720
727
  * @param llmContext The llmContext for the formatter to decide which messages to include based on the model's capabilities
721
728
  * @param systemPrompt (Optional) Precomputed system prompt string. If provided, it will be used instead of recomputing the system prompt. Useful for avoiding duplicate computation when both the formatted messages and the raw system prompt are needed in the same request.
722
- * @param history (Optional) Pre-fetched and potentially compressed history. If not provided, will fetch from history provider.
729
+ * @param history (Optional) Pre-fetched and potentially compressed history. If not provided, will fetch from the conversation store.
723
730
  * @returns Formatted messages ready to send to the LLM provider API
724
731
  * @throws Error if formatting or compression fails critically
725
732
  */
726
733
  async getFormattedMessages(contributorContext, llmContext, systemPrompt, history) {
727
- let messageHistory = history ?? await this.historyProvider.getHistory();
734
+ let messageHistory = history ?? await this.conversationStore.listMessages({ sessionId: this.sessionId });
728
735
  let allowedMediaTypes = this.llmConfig.allowedMediaTypes;
729
736
  if (!allowedMediaTypes) {
730
737
  try {
731
- const { getSupportedFileTypesForModel } = await import("../llm/registry/index.js");
738
+ const { getSupportedFileTypesForModel } = await import("@dexto/llm");
732
739
  const { fileTypesToMimePatterns } = await import("./utils.js");
733
740
  const supportedFileTypes = getSupportedFileTypesForModel(
734
741
  llmContext.provider,
@@ -843,7 +850,9 @@ ${prompt}`);
843
850
  const lastInput = this.lastActualInputTokens;
844
851
  const lastOutput = this.lastActualOutputTokens;
845
852
  const lastMsgCount = this.lastCallMessageCount;
846
- const currentHistory = await this.historyProvider.getHistory();
853
+ const currentHistory = await this.conversationStore.listMessages({
854
+ sessionId: this.sessionId
855
+ });
847
856
  const pureEstimate = estimateContextTokens(systemPrompt, preparedHistory, tools);
848
857
  let total;
849
858
  let calculationBasis;
@@ -943,7 +952,9 @@ ${prompt}`);
943
952
  const lastInput = this.lastActualInputTokens;
944
953
  const lastOutput = this.lastActualOutputTokens;
945
954
  const lastMsgCount = this.lastCallMessageCount;
946
- const currentHistory = await this.historyProvider.getHistory();
955
+ const currentHistory = await this.conversationStore.listMessages({
956
+ sessionId: this.sessionId
957
+ });
947
958
  if (lastInput !== null && lastOutput !== null && lastMsgCount !== null) {
948
959
  const newMessages = currentHistory.slice(lastMsgCount);
949
960
  const newMessagesEstimate = estimateMessagesTokens(newMessages);
@@ -972,7 +983,7 @@ ${prompt}`);
972
983
  * Does not reset the system prompt
973
984
  */
974
985
  async resetConversation() {
975
- await this.historyProvider.clearHistory();
986
+ await this.conversationStore.clearMessages({ sessionId: this.sessionId });
976
987
  this.resetActualTokenTracking();
977
988
  this.logger.debug(
978
989
  `ContextManager: Conversation history cleared for session ${this.sessionId}`
@@ -1,4 +1,4 @@
1
- import "../chunk-PTJYTZNU.js";
1
+ import "../chunk-C6A6W6XS.js";
2
2
  function getFileMediaKind(mimeType) {
3
3
  if (mimeType?.startsWith("audio/")) return "audio";
4
4
  if (mimeType?.startsWith("video/")) return "video";