@librechat/agents 3.2.32 → 3.2.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +23 -0
  2. package/dist/cjs/agents/AgentContext.cjs +844 -1046
  3. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  4. package/dist/cjs/common/constants.cjs +13 -13
  5. package/dist/cjs/common/constants.cjs.map +1 -1
  6. package/dist/cjs/common/enum.cjs +233 -240
  7. package/dist/cjs/common/enum.cjs.map +1 -1
  8. package/dist/cjs/common/index.cjs +2 -0
  9. package/dist/cjs/events.cjs +121 -169
  10. package/dist/cjs/events.cjs.map +1 -1
  11. package/dist/cjs/graphs/Graph.cjs +1389 -1807
  12. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  13. package/dist/cjs/graphs/MultiAgentGraph.cjs +713 -945
  14. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
  15. package/dist/cjs/graphs/index.cjs +2 -0
  16. package/dist/cjs/hitl/askUserQuestion.cjs +60 -62
  17. package/dist/cjs/hitl/askUserQuestion.cjs.map +1 -1
  18. package/dist/cjs/hitl/index.cjs +1 -0
  19. package/dist/cjs/hooks/HookRegistry.cjs +176 -202
  20. package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
  21. package/dist/cjs/hooks/createToolPolicyHook.cjs +71 -101
  22. package/dist/cjs/hooks/createToolPolicyHook.cjs.map +1 -1
  23. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs +170 -273
  24. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs.map +1 -1
  25. package/dist/cjs/hooks/executeHooks.cjs +227 -282
  26. package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
  27. package/dist/cjs/hooks/index.cjs +6 -0
  28. package/dist/cjs/hooks/matchers.cjs +196 -230
  29. package/dist/cjs/hooks/matchers.cjs.map +1 -1
  30. package/dist/cjs/hooks/types.cjs +24 -24
  31. package/dist/cjs/hooks/types.cjs.map +1 -1
  32. package/dist/cjs/instrumentation.cjs +110 -137
  33. package/dist/cjs/instrumentation.cjs.map +1 -1
  34. package/dist/cjs/langchain/google-common.cjs +0 -3
  35. package/dist/cjs/langchain/index.cjs +80 -43
  36. package/dist/cjs/langchain/language_models/chat_models.cjs +0 -3
  37. package/dist/cjs/langchain/messages/tool.cjs +0 -3
  38. package/dist/cjs/langchain/messages.cjs +35 -18
  39. package/dist/cjs/langchain/openai.cjs +0 -3
  40. package/dist/cjs/langchain/prompts.cjs +5 -8
  41. package/dist/cjs/langchain/runnables.cjs +11 -10
  42. package/dist/cjs/langchain/tools.cjs +14 -11
  43. package/dist/cjs/langchain/utils/env.cjs +5 -8
  44. package/dist/cjs/langfuse.cjs +60 -79
  45. package/dist/cjs/langfuse.cjs.map +1 -1
  46. package/dist/cjs/langfuseToolOutputTracing.cjs +267 -399
  47. package/dist/cjs/langfuseToolOutputTracing.cjs.map +1 -1
  48. package/dist/cjs/llm/anthropic/index.cjs +432 -562
  49. package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
  50. package/dist/cjs/llm/anthropic/types.cjs +23 -47
  51. package/dist/cjs/llm/anthropic/types.cjs.map +1 -1
  52. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +441 -731
  53. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
  54. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +171 -256
  55. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
  56. package/dist/cjs/llm/anthropic/utils/output_parsers.cjs +2 -0
  57. package/dist/cjs/llm/anthropic/utils/tools.cjs +12 -26
  58. package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -1
  59. package/dist/cjs/llm/bedrock/index.cjs +214 -240
  60. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  61. package/dist/cjs/llm/bedrock/toolCache.cjs +84 -106
  62. package/dist/cjs/llm/bedrock/toolCache.cjs.map +1 -1
  63. package/dist/cjs/llm/bedrock/utils/index.cjs +2 -0
  64. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs +357 -620
  65. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs.map +1 -1
  66. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs +141 -149
  67. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs.map +1 -1
  68. package/dist/cjs/llm/fake.cjs +86 -96
  69. package/dist/cjs/llm/fake.cjs.map +1 -1
  70. package/dist/cjs/llm/google/index.cjs +183 -237
  71. package/dist/cjs/llm/google/index.cjs.map +1 -1
  72. package/dist/cjs/llm/google/utils/common.cjs +404 -674
  73. package/dist/cjs/llm/google/utils/common.cjs.map +1 -1
  74. package/dist/cjs/llm/google/utils/zod_to_genai_parameters.cjs +2 -0
  75. package/dist/cjs/llm/init.cjs +44 -53
  76. package/dist/cjs/llm/init.cjs.map +1 -1
  77. package/dist/cjs/llm/invoke.cjs +142 -182
  78. package/dist/cjs/llm/invoke.cjs.map +1 -1
  79. package/dist/cjs/llm/openai/index.cjs +1035 -1273
  80. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  81. package/dist/cjs/llm/openai/utils/index.cjs +189 -316
  82. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
  83. package/dist/cjs/llm/openrouter/index.cjs +102 -153
  84. package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
  85. package/dist/cjs/llm/openrouter/toolCache.cjs +35 -44
  86. package/dist/cjs/llm/openrouter/toolCache.cjs.map +1 -1
  87. package/dist/cjs/llm/providers.cjs +29 -37
  88. package/dist/cjs/llm/providers.cjs.map +1 -1
  89. package/dist/cjs/llm/request.cjs +20 -33
  90. package/dist/cjs/llm/request.cjs.map +1 -1
  91. package/dist/cjs/llm/vertexai/index.cjs +446 -453
  92. package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
  93. package/dist/cjs/main.cjs +547 -528
  94. package/dist/cjs/messages/anthropicToolCache.cjs +68 -119
  95. package/dist/cjs/messages/anthropicToolCache.cjs.map +1 -1
  96. package/dist/cjs/messages/cache.cjs +305 -418
  97. package/dist/cjs/messages/cache.cjs.map +1 -1
  98. package/dist/cjs/messages/content.cjs +36 -49
  99. package/dist/cjs/messages/content.cjs.map +1 -1
  100. package/dist/cjs/messages/contextPruning.cjs +112 -145
  101. package/dist/cjs/messages/contextPruning.cjs.map +1 -1
  102. package/dist/cjs/messages/contextPruningSettings.cjs +36 -46
  103. package/dist/cjs/messages/contextPruningSettings.cjs.map +1 -1
  104. package/dist/cjs/messages/core.cjs +256 -397
  105. package/dist/cjs/messages/core.cjs.map +1 -1
  106. package/dist/cjs/messages/format.cjs +904 -1387
  107. package/dist/cjs/messages/format.cjs.map +1 -1
  108. package/dist/cjs/messages/ids.cjs +16 -20
  109. package/dist/cjs/messages/ids.cjs.map +1 -1
  110. package/dist/cjs/messages/index.cjs +12 -0
  111. package/dist/cjs/messages/langchain.cjs +18 -18
  112. package/dist/cjs/messages/langchain.cjs.map +1 -1
  113. package/dist/cjs/messages/prune.cjs +1054 -1517
  114. package/dist/cjs/messages/prune.cjs.map +1 -1
  115. package/dist/cjs/messages/recency.cjs +77 -95
  116. package/dist/cjs/messages/recency.cjs.map +1 -1
  117. package/dist/cjs/messages/reducer.cjs +63 -78
  118. package/dist/cjs/messages/reducer.cjs.map +1 -1
  119. package/dist/cjs/messages/tools.cjs +51 -79
  120. package/dist/cjs/messages/tools.cjs.map +1 -1
  121. package/dist/cjs/openai/index.cjs +171 -217
  122. package/dist/cjs/openai/index.cjs.map +1 -1
  123. package/dist/cjs/responses/index.cjs +302 -391
  124. package/dist/cjs/responses/index.cjs.map +1 -1
  125. package/dist/cjs/run.cjs +903 -1113
  126. package/dist/cjs/run.cjs.map +1 -1
  127. package/dist/cjs/session/AgentSession.cjs +805 -986
  128. package/dist/cjs/session/AgentSession.cjs.map +1 -1
  129. package/dist/cjs/session/JsonlSessionStore.cjs +327 -410
  130. package/dist/cjs/session/JsonlSessionStore.cjs.map +1 -1
  131. package/dist/cjs/session/handlers.cjs +192 -208
  132. package/dist/cjs/session/handlers.cjs.map +1 -1
  133. package/dist/cjs/session/ids.cjs +9 -10
  134. package/dist/cjs/session/ids.cjs.map +1 -1
  135. package/dist/cjs/session/index.cjs +4 -0
  136. package/dist/cjs/session/messageSerialization.cjs +94 -156
  137. package/dist/cjs/session/messageSerialization.cjs.map +1 -1
  138. package/dist/cjs/splitStream.cjs +147 -206
  139. package/dist/cjs/splitStream.cjs.map +1 -1
  140. package/dist/cjs/stream.cjs +874 -1344
  141. package/dist/cjs/stream.cjs.map +1 -1
  142. package/dist/cjs/summarization/index.cjs +57 -101
  143. package/dist/cjs/summarization/index.cjs.map +1 -1
  144. package/dist/cjs/summarization/node.cjs +643 -796
  145. package/dist/cjs/summarization/node.cjs.map +1 -1
  146. package/dist/cjs/tools/BashExecutor.cjs +110 -136
  147. package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
  148. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +165 -245
  149. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
  150. package/dist/cjs/tools/Calculator.cjs +36 -57
  151. package/dist/cjs/tools/Calculator.cjs.map +1 -1
  152. package/dist/cjs/tools/CodeExecutor.cjs +126 -168
  153. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  154. package/dist/cjs/tools/CodeSessionFileSummary.cjs +36 -46
  155. package/dist/cjs/tools/CodeSessionFileSummary.cjs.map +1 -1
  156. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +459 -649
  157. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
  158. package/dist/cjs/tools/ReadFile.cjs +17 -20
  159. package/dist/cjs/tools/ReadFile.cjs.map +1 -1
  160. package/dist/cjs/tools/SkillTool.cjs +26 -27
  161. package/dist/cjs/tools/SkillTool.cjs.map +1 -1
  162. package/dist/cjs/tools/SubagentTool.cjs +59 -61
  163. package/dist/cjs/tools/SubagentTool.cjs.map +1 -1
  164. package/dist/cjs/tools/ToolNode.cjs +2146 -2686
  165. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  166. package/dist/cjs/tools/ToolSearch.cjs +663 -825
  167. package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
  168. package/dist/cjs/tools/cloudflare/CloudflareBridgeRuntime.cjs +248 -340
  169. package/dist/cjs/tools/cloudflare/CloudflareBridgeRuntime.cjs.map +1 -1
  170. package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs +170 -197
  171. package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs.map +1 -1
  172. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs +425 -520
  173. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs.map +1 -1
  174. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs +91 -124
  175. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs.map +1 -1
  176. package/dist/cjs/tools/cloudflare/index.cjs +4 -0
  177. package/dist/cjs/tools/eagerEventExecution.cjs +75 -99
  178. package/dist/cjs/tools/eagerEventExecution.cjs.map +1 -1
  179. package/dist/cjs/tools/handlers.cjs +200 -262
  180. package/dist/cjs/tools/handlers.cjs.map +1 -1
  181. package/dist/cjs/tools/local/CompileCheckTool.cjs +150 -212
  182. package/dist/cjs/tools/local/CompileCheckTool.cjs.map +1 -1
  183. package/dist/cjs/tools/local/FileCheckpointer.cjs +77 -85
  184. package/dist/cjs/tools/local/FileCheckpointer.cjs.map +1 -1
  185. package/dist/cjs/tools/local/LocalCodingTools.cjs +763 -1022
  186. package/dist/cjs/tools/local/LocalCodingTools.cjs.map +1 -1
  187. package/dist/cjs/tools/local/LocalExecutionEngine.cjs +666 -941
  188. package/dist/cjs/tools/local/LocalExecutionEngine.cjs.map +1 -1
  189. package/dist/cjs/tools/local/LocalExecutionTools.cjs +49 -92
  190. package/dist/cjs/tools/local/LocalExecutionTools.cjs.map +1 -1
  191. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +286 -354
  192. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -1
  193. package/dist/cjs/tools/local/attachments.cjs +108 -165
  194. package/dist/cjs/tools/local/attachments.cjs.map +1 -1
  195. package/dist/cjs/tools/local/bashAst.cjs +99 -113
  196. package/dist/cjs/tools/local/bashAst.cjs.map +1 -1
  197. package/dist/cjs/tools/local/editStrategies.cjs +126 -169
  198. package/dist/cjs/tools/local/editStrategies.cjs.map +1 -1
  199. package/dist/cjs/tools/local/index.cjs +12 -0
  200. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs +136 -218
  201. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs.map +1 -1
  202. package/dist/cjs/tools/local/syntaxCheck.cjs +142 -161
  203. package/dist/cjs/tools/local/syntaxCheck.cjs.map +1 -1
  204. package/dist/cjs/tools/local/textEncoding.cjs +25 -23
  205. package/dist/cjs/tools/local/textEncoding.cjs.map +1 -1
  206. package/dist/cjs/tools/local/workspaceFS.cjs +38 -46
  207. package/dist/cjs/tools/local/workspaceFS.cjs.map +1 -1
  208. package/dist/cjs/tools/ptcTimeout.cjs +27 -47
  209. package/dist/cjs/tools/ptcTimeout.cjs.map +1 -1
  210. package/dist/cjs/tools/schema.cjs +24 -23
  211. package/dist/cjs/tools/schema.cjs.map +1 -1
  212. package/dist/cjs/tools/search/anthropic.cjs +24 -33
  213. package/dist/cjs/tools/search/anthropic.cjs.map +1 -1
  214. package/dist/cjs/tools/search/content.cjs +95 -137
  215. package/dist/cjs/tools/search/content.cjs.map +1 -1
  216. package/dist/cjs/tools/search/firecrawl.cjs +141 -172
  217. package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
  218. package/dist/cjs/tools/search/format.cjs +128 -196
  219. package/dist/cjs/tools/search/format.cjs.map +1 -1
  220. package/dist/cjs/tools/search/highlights.cjs +165 -232
  221. package/dist/cjs/tools/search/highlights.cjs.map +1 -1
  222. package/dist/cjs/tools/search/index.cjs +2 -0
  223. package/dist/cjs/tools/search/rerankers.cjs +151 -174
  224. package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
  225. package/dist/cjs/tools/search/schema.cjs +40 -39
  226. package/dist/cjs/tools/search/schema.cjs.map +1 -1
  227. package/dist/cjs/tools/search/search.cjs +428 -530
  228. package/dist/cjs/tools/search/search.cjs.map +1 -1
  229. package/dist/cjs/tools/search/serper-scraper.cjs +106 -127
  230. package/dist/cjs/tools/search/serper-scraper.cjs.map +1 -1
  231. package/dist/cjs/tools/search/tavily-scraper.cjs +129 -181
  232. package/dist/cjs/tools/search/tavily-scraper.cjs.map +1 -1
  233. package/dist/cjs/tools/search/tavily-search.cjs +295 -359
  234. package/dist/cjs/tools/search/tavily-search.cjs.map +1 -1
  235. package/dist/cjs/tools/search/tool.cjs +260 -299
  236. package/dist/cjs/tools/search/tool.cjs.map +1 -1
  237. package/dist/cjs/tools/search/utils.cjs +74 -117
  238. package/dist/cjs/tools/search/utils.cjs.map +1 -1
  239. package/dist/cjs/tools/skillCatalog.cjs +54 -72
  240. package/dist/cjs/tools/skillCatalog.cjs.map +1 -1
  241. package/dist/cjs/tools/streamedToolCallSeals.cjs +46 -34
  242. package/dist/cjs/tools/streamedToolCallSeals.cjs.map +1 -1
  243. package/dist/cjs/tools/subagent/SubagentExecutor.cjs +612 -771
  244. package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
  245. package/dist/cjs/tools/subagent/index.cjs +1 -0
  246. package/dist/cjs/tools/toolOutputReferences.cjs +523 -630
  247. package/dist/cjs/tools/toolOutputReferences.cjs.map +1 -1
  248. package/dist/cjs/utils/callbacks.cjs +11 -21
  249. package/dist/cjs/utils/callbacks.cjs.map +1 -1
  250. package/dist/cjs/utils/errors.cjs +70 -95
  251. package/dist/cjs/utils/errors.cjs.map +1 -1
  252. package/dist/cjs/utils/events.cjs +32 -42
  253. package/dist/cjs/utils/events.cjs.map +1 -1
  254. package/dist/cjs/utils/graph.cjs +8 -12
  255. package/dist/cjs/utils/graph.cjs.map +1 -1
  256. package/dist/cjs/utils/handlers.cjs +60 -82
  257. package/dist/cjs/utils/handlers.cjs.map +1 -1
  258. package/dist/cjs/utils/index.cjs +9 -0
  259. package/dist/cjs/utils/llm.cjs +19 -27
  260. package/dist/cjs/utils/llm.cjs.map +1 -1
  261. package/dist/cjs/utils/misc.cjs +30 -46
  262. package/dist/cjs/utils/misc.cjs.map +1 -1
  263. package/dist/cjs/utils/run.cjs +50 -66
  264. package/dist/cjs/utils/run.cjs.map +1 -1
  265. package/dist/cjs/utils/schema.cjs +11 -19
  266. package/dist/cjs/utils/schema.cjs.map +1 -1
  267. package/dist/cjs/utils/title.cjs +71 -106
  268. package/dist/cjs/utils/title.cjs.map +1 -1
  269. package/dist/cjs/utils/tokens.cjs +186 -283
  270. package/dist/cjs/utils/tokens.cjs.map +1 -1
  271. package/dist/cjs/utils/truncation.cjs +95 -114
  272. package/dist/cjs/utils/truncation.cjs.map +1 -1
  273. package/dist/esm/agents/AgentContext.mjs +844 -1044
  274. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  275. package/dist/esm/common/constants.mjs +13 -11
  276. package/dist/esm/common/constants.mjs.map +1 -1
  277. package/dist/esm/common/enum.mjs +221 -238
  278. package/dist/esm/common/enum.mjs.map +1 -1
  279. package/dist/esm/common/index.mjs +3 -0
  280. package/dist/esm/events.mjs +121 -167
  281. package/dist/esm/events.mjs.map +1 -1
  282. package/dist/esm/graphs/Graph.mjs +1388 -1804
  283. package/dist/esm/graphs/Graph.mjs.map +1 -1
  284. package/dist/esm/graphs/MultiAgentGraph.mjs +713 -943
  285. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
  286. package/dist/esm/graphs/index.mjs +3 -0
  287. package/dist/esm/hitl/askUserQuestion.mjs +60 -60
  288. package/dist/esm/hitl/askUserQuestion.mjs.map +1 -1
  289. package/dist/esm/hitl/index.mjs +2 -0
  290. package/dist/esm/hooks/HookRegistry.mjs +176 -200
  291. package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
  292. package/dist/esm/hooks/createToolPolicyHook.mjs +71 -99
  293. package/dist/esm/hooks/createToolPolicyHook.mjs.map +1 -1
  294. package/dist/esm/hooks/createWorkspacePolicyHook.mjs +170 -271
  295. package/dist/esm/hooks/createWorkspacePolicyHook.mjs.map +1 -1
  296. package/dist/esm/hooks/executeHooks.mjs +227 -280
  297. package/dist/esm/hooks/executeHooks.mjs.map +1 -1
  298. package/dist/esm/hooks/index.mjs +7 -0
  299. package/dist/esm/hooks/matchers.mjs +196 -228
  300. package/dist/esm/hooks/matchers.mjs.map +1 -1
  301. package/dist/esm/hooks/types.mjs +24 -22
  302. package/dist/esm/hooks/types.mjs.map +1 -1
  303. package/dist/esm/instrumentation.mjs +109 -132
  304. package/dist/esm/instrumentation.mjs.map +1 -1
  305. package/dist/esm/langchain/google-common.mjs +1 -2
  306. package/dist/esm/langchain/index.mjs +5 -5
  307. package/dist/esm/langchain/language_models/chat_models.mjs +1 -2
  308. package/dist/esm/langchain/messages/tool.mjs +1 -2
  309. package/dist/esm/langchain/messages.mjs +2 -2
  310. package/dist/esm/langchain/openai.mjs +1 -2
  311. package/dist/esm/langchain/prompts.mjs +2 -2
  312. package/dist/esm/langchain/runnables.mjs +2 -2
  313. package/dist/esm/langchain/tools.mjs +2 -2
  314. package/dist/esm/langchain/utils/env.mjs +2 -2
  315. package/dist/esm/langfuse.mjs +60 -76
  316. package/dist/esm/langfuse.mjs.map +1 -1
  317. package/dist/esm/langfuseToolOutputTracing.mjs +267 -395
  318. package/dist/esm/langfuseToolOutputTracing.mjs.map +1 -1
  319. package/dist/esm/llm/anthropic/index.mjs +432 -559
  320. package/dist/esm/llm/anthropic/index.mjs.map +1 -1
  321. package/dist/esm/llm/anthropic/types.mjs +23 -45
  322. package/dist/esm/llm/anthropic/types.mjs.map +1 -1
  323. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +439 -725
  324. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
  325. package/dist/esm/llm/anthropic/utils/message_outputs.mjs +171 -253
  326. package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
  327. package/dist/esm/llm/anthropic/utils/output_parsers.mjs +3 -0
  328. package/dist/esm/llm/anthropic/utils/tools.mjs +12 -24
  329. package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -1
  330. package/dist/esm/llm/bedrock/index.mjs +214 -238
  331. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  332. package/dist/esm/llm/bedrock/toolCache.mjs +84 -104
  333. package/dist/esm/llm/bedrock/toolCache.mjs.map +1 -1
  334. package/dist/esm/llm/bedrock/utils/index.mjs +3 -0
  335. package/dist/esm/llm/bedrock/utils/message_inputs.mjs +357 -618
  336. package/dist/esm/llm/bedrock/utils/message_inputs.mjs.map +1 -1
  337. package/dist/esm/llm/bedrock/utils/message_outputs.mjs +140 -147
  338. package/dist/esm/llm/bedrock/utils/message_outputs.mjs.map +1 -1
  339. package/dist/esm/llm/fake.mjs +86 -94
  340. package/dist/esm/llm/fake.mjs.map +1 -1
  341. package/dist/esm/llm/google/index.mjs +183 -235
  342. package/dist/esm/llm/google/index.mjs.map +1 -1
  343. package/dist/esm/llm/google/utils/common.mjs +403 -666
  344. package/dist/esm/llm/google/utils/common.mjs.map +1 -1
  345. package/dist/esm/llm/google/utils/zod_to_genai_parameters.mjs +3 -0
  346. package/dist/esm/llm/init.mjs +44 -51
  347. package/dist/esm/llm/init.mjs.map +1 -1
  348. package/dist/esm/llm/invoke.mjs +142 -180
  349. package/dist/esm/llm/invoke.mjs.map +1 -1
  350. package/dist/esm/llm/openai/index.mjs +1035 -1268
  351. package/dist/esm/llm/openai/index.mjs.map +1 -1
  352. package/dist/esm/llm/openai/utils/index.mjs +188 -312
  353. package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
  354. package/dist/esm/llm/openrouter/index.mjs +102 -151
  355. package/dist/esm/llm/openrouter/index.mjs.map +1 -1
  356. package/dist/esm/llm/openrouter/toolCache.mjs +35 -42
  357. package/dist/esm/llm/openrouter/toolCache.mjs.map +1 -1
  358. package/dist/esm/llm/providers.mjs +29 -34
  359. package/dist/esm/llm/providers.mjs.map +1 -1
  360. package/dist/esm/llm/request.mjs +20 -31
  361. package/dist/esm/llm/request.mjs.map +1 -1
  362. package/dist/esm/llm/vertexai/index.mjs +446 -449
  363. package/dist/esm/llm/vertexai/index.mjs.map +1 -1
  364. package/dist/esm/main.mjs +99 -87
  365. package/dist/esm/messages/anthropicToolCache.mjs +68 -117
  366. package/dist/esm/messages/anthropicToolCache.mjs.map +1 -1
  367. package/dist/esm/messages/cache.mjs +305 -416
  368. package/dist/esm/messages/cache.mjs.map +1 -1
  369. package/dist/esm/messages/content.mjs +36 -47
  370. package/dist/esm/messages/content.mjs.map +1 -1
  371. package/dist/esm/messages/contextPruning.mjs +112 -143
  372. package/dist/esm/messages/contextPruning.mjs.map +1 -1
  373. package/dist/esm/messages/contextPruningSettings.mjs +36 -44
  374. package/dist/esm/messages/contextPruningSettings.mjs.map +1 -1
  375. package/dist/esm/messages/core.mjs +254 -393
  376. package/dist/esm/messages/core.mjs.map +1 -1
  377. package/dist/esm/messages/format.mjs +902 -1383
  378. package/dist/esm/messages/format.mjs.map +1 -1
  379. package/dist/esm/messages/ids.mjs +16 -18
  380. package/dist/esm/messages/ids.mjs.map +1 -1
  381. package/dist/esm/messages/index.mjs +13 -0
  382. package/dist/esm/messages/langchain.mjs +18 -16
  383. package/dist/esm/messages/langchain.mjs.map +1 -1
  384. package/dist/esm/messages/prune.mjs +1053 -1514
  385. package/dist/esm/messages/prune.mjs.map +1 -1
  386. package/dist/esm/messages/recency.mjs +77 -93
  387. package/dist/esm/messages/recency.mjs.map +1 -1
  388. package/dist/esm/messages/reducer.mjs +63 -76
  389. package/dist/esm/messages/reducer.mjs.map +1 -1
  390. package/dist/esm/messages/tools.mjs +49 -75
  391. package/dist/esm/messages/tools.mjs.map +1 -1
  392. package/dist/esm/openai/index.mjs +170 -215
  393. package/dist/esm/openai/index.mjs.map +1 -1
  394. package/dist/esm/responses/index.mjs +301 -389
  395. package/dist/esm/responses/index.mjs.map +1 -1
  396. package/dist/esm/run.mjs +903 -1111
  397. package/dist/esm/run.mjs.map +1 -1
  398. package/dist/esm/session/AgentSession.mjs +806 -985
  399. package/dist/esm/session/AgentSession.mjs.map +1 -1
  400. package/dist/esm/session/JsonlSessionStore.mjs +326 -407
  401. package/dist/esm/session/JsonlSessionStore.mjs.map +1 -1
  402. package/dist/esm/session/handlers.mjs +192 -206
  403. package/dist/esm/session/handlers.mjs.map +1 -1
  404. package/dist/esm/session/ids.mjs +9 -8
  405. package/dist/esm/session/ids.mjs.map +1 -1
  406. package/dist/esm/session/index.mjs +5 -0
  407. package/dist/esm/session/messageSerialization.mjs +94 -154
  408. package/dist/esm/session/messageSerialization.mjs.map +1 -1
  409. package/dist/esm/splitStream.mjs +147 -204
  410. package/dist/esm/splitStream.mjs.map +1 -1
  411. package/dist/esm/stream.mjs +872 -1341
  412. package/dist/esm/stream.mjs.map +1 -1
  413. package/dist/esm/summarization/index.mjs +57 -99
  414. package/dist/esm/summarization/index.mjs.map +1 -1
  415. package/dist/esm/summarization/node.mjs +640 -790
  416. package/dist/esm/summarization/node.mjs.map +1 -1
  417. package/dist/esm/tools/BashExecutor.mjs +103 -129
  418. package/dist/esm/tools/BashExecutor.mjs.map +1 -1
  419. package/dist/esm/tools/BashProgrammaticToolCalling.mjs +162 -239
  420. package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
  421. package/dist/esm/tools/Calculator.mjs +34 -36
  422. package/dist/esm/tools/Calculator.mjs.map +1 -1
  423. package/dist/esm/tools/CodeExecutor.mjs +123 -164
  424. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  425. package/dist/esm/tools/CodeSessionFileSummary.mjs +36 -44
  426. package/dist/esm/tools/CodeSessionFileSummary.mjs.map +1 -1
  427. package/dist/esm/tools/ProgrammaticToolCalling.mjs +454 -644
  428. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
  429. package/dist/esm/tools/ReadFile.mjs +17 -18
  430. package/dist/esm/tools/ReadFile.mjs.map +1 -1
  431. package/dist/esm/tools/SkillTool.mjs +26 -25
  432. package/dist/esm/tools/SkillTool.mjs.map +1 -1
  433. package/dist/esm/tools/SubagentTool.mjs +59 -59
  434. package/dist/esm/tools/SubagentTool.mjs.map +1 -1
  435. package/dist/esm/tools/ToolNode.mjs +2144 -2684
  436. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  437. package/dist/esm/tools/ToolSearch.mjs +659 -804
  438. package/dist/esm/tools/ToolSearch.mjs.map +1 -1
  439. package/dist/esm/tools/cloudflare/CloudflareBridgeRuntime.mjs +248 -338
  440. package/dist/esm/tools/cloudflare/CloudflareBridgeRuntime.mjs.map +1 -1
  441. package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs +170 -195
  442. package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs.map +1 -1
  443. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs +424 -517
  444. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs.map +1 -1
  445. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs +91 -122
  446. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs.map +1 -1
  447. package/dist/esm/tools/cloudflare/index.mjs +5 -0
  448. package/dist/esm/tools/eagerEventExecution.mjs +75 -96
  449. package/dist/esm/tools/eagerEventExecution.mjs.map +1 -1
  450. package/dist/esm/tools/handlers.mjs +200 -260
  451. package/dist/esm/tools/handlers.mjs.map +1 -1
  452. package/dist/esm/tools/local/CompileCheckTool.mjs +150 -210
  453. package/dist/esm/tools/local/CompileCheckTool.mjs.map +1 -1
  454. package/dist/esm/tools/local/FileCheckpointer.mjs +77 -83
  455. package/dist/esm/tools/local/FileCheckpointer.mjs.map +1 -1
  456. package/dist/esm/tools/local/LocalCodingTools.mjs +760 -1017
  457. package/dist/esm/tools/local/LocalCodingTools.mjs.map +1 -1
  458. package/dist/esm/tools/local/LocalExecutionEngine.mjs +663 -936
  459. package/dist/esm/tools/local/LocalExecutionEngine.mjs.map +1 -1
  460. package/dist/esm/tools/local/LocalExecutionTools.mjs +49 -90
  461. package/dist/esm/tools/local/LocalExecutionTools.mjs.map +1 -1
  462. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +283 -349
  463. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -1
  464. package/dist/esm/tools/local/attachments.mjs +108 -163
  465. package/dist/esm/tools/local/attachments.mjs.map +1 -1
  466. package/dist/esm/tools/local/bashAst.mjs +99 -111
  467. package/dist/esm/tools/local/bashAst.mjs.map +1 -1
  468. package/dist/esm/tools/local/editStrategies.mjs +126 -167
  469. package/dist/esm/tools/local/editStrategies.mjs.map +1 -1
  470. package/dist/esm/tools/local/index.mjs +13 -0
  471. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs +136 -216
  472. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs.map +1 -1
  473. package/dist/esm/tools/local/syntaxCheck.mjs +138 -155
  474. package/dist/esm/tools/local/syntaxCheck.mjs.map +1 -1
  475. package/dist/esm/tools/local/textEncoding.mjs +25 -21
  476. package/dist/esm/tools/local/textEncoding.mjs.map +1 -1
  477. package/dist/esm/tools/local/workspaceFS.mjs +38 -44
  478. package/dist/esm/tools/local/workspaceFS.mjs.map +1 -1
  479. package/dist/esm/tools/ptcTimeout.mjs +27 -42
  480. package/dist/esm/tools/ptcTimeout.mjs.map +1 -1
  481. package/dist/esm/tools/schema.mjs +24 -21
  482. package/dist/esm/tools/schema.mjs.map +1 -1
  483. package/dist/esm/tools/search/anthropic.mjs +24 -31
  484. package/dist/esm/tools/search/anthropic.mjs.map +1 -1
  485. package/dist/esm/tools/search/content.mjs +93 -116
  486. package/dist/esm/tools/search/content.mjs.map +1 -1
  487. package/dist/esm/tools/search/firecrawl.mjs +139 -169
  488. package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
  489. package/dist/esm/tools/search/format.mjs +128 -194
  490. package/dist/esm/tools/search/format.mjs.map +1 -1
  491. package/dist/esm/tools/search/highlights.mjs +165 -230
  492. package/dist/esm/tools/search/highlights.mjs.map +1 -1
  493. package/dist/esm/tools/search/index.mjs +3 -0
  494. package/dist/esm/tools/search/rerankers.mjs +149 -168
  495. package/dist/esm/tools/search/rerankers.mjs.map +1 -1
  496. package/dist/esm/tools/search/schema.mjs +39 -37
  497. package/dist/esm/tools/search/schema.mjs.map +1 -1
  498. package/dist/esm/tools/search/search.mjs +426 -528
  499. package/dist/esm/tools/search/search.mjs.map +1 -1
  500. package/dist/esm/tools/search/serper-scraper.mjs +104 -124
  501. package/dist/esm/tools/search/serper-scraper.mjs.map +1 -1
  502. package/dist/esm/tools/search/tavily-scraper.mjs +127 -178
  503. package/dist/esm/tools/search/tavily-scraper.mjs.map +1 -1
  504. package/dist/esm/tools/search/tavily-search.mjs +293 -357
  505. package/dist/esm/tools/search/tavily-search.mjs.map +1 -1
  506. package/dist/esm/tools/search/tool.mjs +259 -297
  507. package/dist/esm/tools/search/tool.mjs.map +1 -1
  508. package/dist/esm/tools/search/utils.mjs +74 -115
  509. package/dist/esm/tools/search/utils.mjs.map +1 -1
  510. package/dist/esm/tools/skillCatalog.mjs +54 -70
  511. package/dist/esm/tools/skillCatalog.mjs.map +1 -1
  512. package/dist/esm/tools/streamedToolCallSeals.mjs +42 -31
  513. package/dist/esm/tools/streamedToolCallSeals.mjs.map +1 -1
  514. package/dist/esm/tools/subagent/SubagentExecutor.mjs +612 -768
  515. package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
  516. package/dist/esm/tools/subagent/index.mjs +2 -0
  517. package/dist/esm/tools/toolOutputReferences.mjs +523 -624
  518. package/dist/esm/tools/toolOutputReferences.mjs.map +1 -1
  519. package/dist/esm/utils/callbacks.mjs +11 -19
  520. package/dist/esm/utils/callbacks.mjs.map +1 -1
  521. package/dist/esm/utils/errors.mjs +70 -93
  522. package/dist/esm/utils/errors.mjs.map +1 -1
  523. package/dist/esm/utils/events.mjs +32 -40
  524. package/dist/esm/utils/events.mjs.map +1 -1
  525. package/dist/esm/utils/graph.mjs +8 -10
  526. package/dist/esm/utils/graph.mjs.map +1 -1
  527. package/dist/esm/utils/handlers.mjs +60 -80
  528. package/dist/esm/utils/handlers.mjs.map +1 -1
  529. package/dist/esm/utils/index.mjs +10 -0
  530. package/dist/esm/utils/llm.mjs +19 -25
  531. package/dist/esm/utils/llm.mjs.map +1 -1
  532. package/dist/esm/utils/misc.mjs +30 -44
  533. package/dist/esm/utils/misc.mjs.map +1 -1
  534. package/dist/esm/utils/run.mjs +50 -64
  535. package/dist/esm/utils/run.mjs.map +1 -1
  536. package/dist/esm/utils/schema.mjs +11 -17
  537. package/dist/esm/utils/schema.mjs.map +1 -1
  538. package/dist/esm/utils/title.mjs +71 -104
  539. package/dist/esm/utils/title.mjs.map +1 -1
  540. package/dist/esm/utils/tokens.mjs +186 -281
  541. package/dist/esm/utils/tokens.mjs.map +1 -1
  542. package/dist/esm/utils/truncation.mjs +95 -112
  543. package/dist/esm/utils/truncation.mjs.map +1 -1
  544. package/dist/types/llm/bedrock/utils/index.d.ts +1 -1
  545. package/dist/types/llm/bedrock/utils/message_outputs.d.ts +9 -0
  546. package/dist/types/llm/vertexai/index.d.ts +10 -0
  547. package/dist/types/tools/ToolNode.d.ts +8 -0
  548. package/dist/types/tools/search/tool.d.ts +17 -0
  549. package/dist/types/tools/search/types.d.ts +4 -0
  550. package/dist/types/tools/streamedToolCallSeals.d.ts +5 -1
  551. package/dist/types/types/tools.d.ts +10 -0
  552. package/package.json +4 -10
  553. package/src/__tests__/stream.eagerEventExecution.test.ts +703 -0
  554. package/src/llm/bedrock/index.ts +40 -0
  555. package/src/llm/bedrock/streamSealDispatch.test.ts +158 -0
  556. package/src/llm/bedrock/utils/index.ts +1 -0
  557. package/src/llm/bedrock/utils/message_outputs.test.ts +85 -0
  558. package/src/llm/bedrock/utils/message_outputs.ts +43 -0
  559. package/src/llm/google/utils/common.test.ts +64 -0
  560. package/src/llm/google/utils/common.ts +18 -0
  561. package/src/llm/openai/index.ts +95 -1
  562. package/src/llm/openai/sequentialToolCallSeals.test.ts +199 -0
  563. package/src/llm/vertexai/index.ts +31 -0
  564. package/src/llm/vertexai/sealStreamedToolCalls.test.ts +88 -0
  565. package/src/llm/vertexai/streamSealDispatch.test.ts +148 -0
  566. package/src/stream.ts +40 -6
  567. package/src/tools/ToolNode.ts +85 -3
  568. package/src/tools/__tests__/ToolNode.onResultCompletion.test.ts +368 -0
  569. package/src/tools/search/highlights.ts +9 -1
  570. package/src/tools/search/search.ts +41 -3
  571. package/src/tools/search/source-processing.test.ts +373 -0
  572. package/src/tools/search/tool.ts +22 -2
  573. package/src/tools/search/types.ts +4 -0
  574. package/src/tools/streamedToolCallSeals.ts +37 -9
  575. package/src/types/tools.ts +10 -0
  576. package/dist/cjs/langchain/google-common.cjs.map +0 -1
  577. package/dist/cjs/langchain/index.cjs.map +0 -1
  578. package/dist/cjs/langchain/language_models/chat_models.cjs.map +0 -1
  579. package/dist/cjs/langchain/messages/tool.cjs.map +0 -1
  580. package/dist/cjs/langchain/messages.cjs.map +0 -1
  581. package/dist/cjs/langchain/openai.cjs.map +0 -1
  582. package/dist/cjs/langchain/prompts.cjs.map +0 -1
  583. package/dist/cjs/langchain/runnables.cjs.map +0 -1
  584. package/dist/cjs/langchain/tools.cjs.map +0 -1
  585. package/dist/cjs/langchain/utils/env.cjs.map +0 -1
  586. package/dist/cjs/main.cjs.map +0 -1
  587. package/dist/esm/langchain/google-common.mjs.map +0 -1
  588. package/dist/esm/langchain/index.mjs.map +0 -1
  589. package/dist/esm/langchain/language_models/chat_models.mjs.map +0 -1
  590. package/dist/esm/langchain/messages/tool.mjs.map +0 -1
  591. package/dist/esm/langchain/messages.mjs.map +0 -1
  592. package/dist/esm/langchain/openai.mjs.map +0 -1
  593. package/dist/esm/langchain/prompts.mjs.map +0 -1
  594. package/dist/esm/langchain/runnables.mjs.map +0 -1
  595. package/dist/esm/langchain/tools.mjs.map +0 -1
  596. package/dist/esm/langchain/utils/env.mjs.map +0 -1
  597. package/dist/esm/main.mjs.map +0 -1
@@ -1,425 +1,342 @@
1
- 'use strict';
2
-
3
- var os = require('os');
4
- var crypto = require('crypto');
5
- var messages = require('@langchain/core/messages');
6
- var path = require('path');
7
- var promises = require('fs/promises');
8
- var messageSerialization = require('./messageSerialization.cjs');
9
- var ids = require('./ids.cjs');
10
-
1
+ const require_messageSerialization = require("./messageSerialization.cjs");
2
+ const require_ids = require("./ids.cjs");
3
+ let _langchain_core_messages = require("@langchain/core/messages");
4
+ let path = require("path");
5
+ let os = require("os");
6
+ let crypto = require("crypto");
7
+ let fs_promises = require("fs/promises");
8
+ //#region src/session/JsonlSessionStore.ts
11
9
  const SESSION_VERSION = 1;
12
- const DEFAULT_SESSION_ROOT = path.join(os.homedir(), '.librechat', 'agents', 'sessions');
10
+ const DEFAULT_SESSION_ROOT = (0, path.join)((0, os.homedir)(), ".librechat", "agents", "sessions");
13
11
  function sanitizeCwd(cwd) {
14
- const normalized = path.resolve(cwd);
15
- return crypto.createHash('sha256').update(normalized).digest('hex');
12
+ const normalized = (0, path.resolve)(cwd);
13
+ return (0, crypto.createHash)("sha256").update(normalized).digest("hex");
16
14
  }
17
15
  function createSessionPath(options) {
18
- const sessionId = options.sessionId ?? ids.createSessionId();
19
- const fileName = `${new Date().toISOString().replace(/[:.]/g, '-')}_${sessionId}.jsonl`;
20
- return path.join(DEFAULT_SESSION_ROOT, sanitizeCwd(options.cwd), fileName);
16
+ const sessionId = options.sessionId ?? require_ids.createSessionId();
17
+ const fileName = `${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}_${sessionId}.jsonl`;
18
+ return (0, path.join)(DEFAULT_SESSION_ROOT, sanitizeCwd(options.cwd), fileName);
21
19
  }
22
- async function pathExists(path) {
23
- try {
24
- await promises.access(path);
25
- return true;
26
- }
27
- catch {
28
- return false;
29
- }
20
+ async function pathExists(path$1) {
21
+ try {
22
+ await (0, fs_promises.access)(path$1);
23
+ return true;
24
+ } catch {
25
+ return false;
26
+ }
30
27
  }
31
28
  function parseLine(line) {
32
- if (line.trim() === '') {
33
- return undefined;
34
- }
35
- try {
36
- const parsed = JSON.parse(line);
37
- if (parsed.type === 'session') {
38
- return parsed;
39
- }
40
- if ('id' in parsed && 'parentId' in parsed && 'data' in parsed) {
41
- return parsed;
42
- }
43
- return undefined;
44
- }
45
- catch {
46
- return undefined;
47
- }
29
+ if (line.trim() === "") return;
30
+ try {
31
+ const parsed = JSON.parse(line);
32
+ if (parsed.type === "session") return parsed;
33
+ if ("id" in parsed && "parentId" in parsed && "data" in parsed) return parsed;
34
+ return;
35
+ } catch {
36
+ return;
37
+ }
48
38
  }
49
39
  function createHeader(options) {
50
- return {
51
- type: 'session',
52
- version: SESSION_VERSION,
53
- id: options.sessionId ?? ids.createSessionId(),
54
- timestamp: ids.createTimestamp(),
55
- cwd: path.resolve(options.cwd),
56
- ...(options.name != null && options.name !== ''
57
- ? { name: options.name }
58
- : {}),
59
- ...(options.parentSession != null && options.parentSession !== ''
60
- ? { parentSession: options.parentSession }
61
- : {}),
62
- };
40
+ return {
41
+ type: "session",
42
+ version: SESSION_VERSION,
43
+ id: options.sessionId ?? require_ids.createSessionId(),
44
+ timestamp: require_ids.createTimestamp(),
45
+ cwd: (0, path.resolve)(options.cwd),
46
+ ...options.name != null && options.name !== "" ? { name: options.name } : {},
47
+ ...options.parentSession != null && options.parentSession !== "" ? { parentSession: options.parentSession } : {}
48
+ };
63
49
  }
64
50
  function sortEntries(entries) {
65
- return [...entries].sort((a, b) => a.timestamp.localeCompare(b.timestamp));
66
- }
67
- class JsonlSessionStore {
68
- path;
69
- header;
70
- entries;
71
- constructor(params) {
72
- this.path = params.path;
73
- this.header = params.header;
74
- this.entries = sortEntries(params.entries);
75
- }
76
- static getDefaultRoot() {
77
- return DEFAULT_SESSION_ROOT;
78
- }
79
- static async create(options) {
80
- const sessionId = options.sessionId ?? ids.createSessionId();
81
- const path$1 = options.path != null && options.path !== ''
82
- ? path.resolve(options.path)
83
- : createSessionPath({ ...options, sessionId });
84
- const header = createHeader({ ...options, sessionId });
85
- await promises.mkdir(path.dirname(path$1), { recursive: true });
86
- await promises.writeFile(path$1, `${JSON.stringify(header)}\n`, {
87
- encoding: 'utf8',
88
- flag: 'wx',
89
- });
90
- return new JsonlSessionStore({ path: path$1, header, entries: [] });
91
- }
92
- static async open(pathOrId) {
93
- const path = await JsonlSessionStore.resolvePath(pathOrId);
94
- return JsonlSessionStore.openPath(path);
95
- }
96
- static async openPath(path$1) {
97
- const resolved = path.resolve(path$1);
98
- const raw = await promises.readFile(resolved, 'utf8');
99
- const parsed = raw
100
- .split('\n')
101
- .map((line) => parseLine(line))
102
- .filter((line) => line != null);
103
- const header = parsed.find((line) => line.type === 'session');
104
- if (!header) {
105
- throw new Error(`Invalid session file: ${resolved}`);
106
- }
107
- const entries = parsed.filter((line) => line.type !== 'session');
108
- return new JsonlSessionStore({ path: resolved, header, entries });
109
- }
110
- static async resolvePath(pathOrId) {
111
- const candidate = path.isAbsolute(pathOrId) ? pathOrId : path.resolve(pathOrId);
112
- if (await pathExists(candidate)) {
113
- return candidate;
114
- }
115
- const sessions = await JsonlSessionStore.listAll();
116
- const matches = sessions.filter((item) => item.id.startsWith(pathOrId) || path.basename(item.path).includes(pathOrId));
117
- if (matches.length === 1) {
118
- return matches[0].path;
119
- }
120
- if (matches.length > 1) {
121
- throw new Error(`Session id "${pathOrId}" is ambiguous`);
122
- }
123
- throw new Error(`Session not found: ${pathOrId}`);
124
- }
125
- static async list(cwd) {
126
- const dir = path.join(DEFAULT_SESSION_ROOT, sanitizeCwd(cwd));
127
- return JsonlSessionStore.listDirectory(dir);
128
- }
129
- static async listAll(root = DEFAULT_SESSION_ROOT) {
130
- if (!(await pathExists(root))) {
131
- return [];
132
- }
133
- const dirs = await promises.readdir(root, { withFileTypes: true });
134
- const lists = await Promise.all(dirs
135
- .filter((entry) => entry.isDirectory())
136
- .map((entry) => JsonlSessionStore.listDirectory(path.join(root, entry.name))));
137
- return lists.flat().sort((a, b) => b.timestamp.localeCompare(a.timestamp));
138
- }
139
- static async listDirectory(dir) {
140
- if (!(await pathExists(dir))) {
141
- return [];
142
- }
143
- const files = await promises.readdir(dir, { withFileTypes: true });
144
- const candidates = files
145
- .filter((entry) => entry.isFile() && entry.name.endsWith('.jsonl'))
146
- .map((entry) => path.join(dir, entry.name));
147
- const items = await Promise.all(candidates.map(async (path) => {
148
- try {
149
- const store = await JsonlSessionStore.open(path);
150
- return {
151
- id: store.header.id,
152
- path,
153
- cwd: store.header.cwd,
154
- timestamp: store.header.timestamp,
155
- name: store.header.name,
156
- leafId: store.getLeafEntry()?.id ?? null,
157
- };
158
- }
159
- catch {
160
- return undefined;
161
- }
162
- }));
163
- return items
164
- .filter((item) => item != null)
165
- .sort((a, b) => b.timestamp.localeCompare(a.timestamp));
166
- }
167
- getEntries() {
168
- return [...this.entries];
169
- }
170
- getEntry(id) {
171
- return this.entries.find((entry) => entry.id === id);
172
- }
173
- getChildren(id) {
174
- return this.entries.filter((entry) => entry.parentId === id);
175
- }
176
- getTree() {
177
- const byParent = new Map();
178
- for (const entry of this.entries) {
179
- const siblings = byParent.get(entry.parentId) ?? [];
180
- siblings.push(entry);
181
- byParent.set(entry.parentId, siblings);
182
- }
183
- const build = (parentId) => (byParent.get(parentId) ?? []).map((entry) => ({
184
- entry,
185
- children: build(entry.id),
186
- }));
187
- return build(null);
188
- }
189
- getLeafEntry() {
190
- const state = [...this.entries]
191
- .reverse()
192
- .find((entry) => entry.type === 'session_state');
193
- if (state) {
194
- return state.data.leafId == null
195
- ? undefined
196
- : this.getEntry(state.data.leafId);
197
- }
198
- return [...this.entries]
199
- .reverse()
200
- .find((entry) => entry.type === 'message' || entry.type === 'summary');
201
- }
202
- getPath(entryId = this.getLeafEntry()?.id) {
203
- if (entryId == null || entryId === '') {
204
- return [];
205
- }
206
- const byId = new Map(this.entries.map((entry) => [entry.id, entry]));
207
- const path = [];
208
- let current = byId.get(entryId);
209
- while (current) {
210
- path.push(current);
211
- current =
212
- current.parentId == null ? undefined : byId.get(current.parentId);
213
- }
214
- return path.reverse();
215
- }
216
- getMessages(entryId) {
217
- const messages$1 = [];
218
- for (const entry of this.getPath(entryId)) {
219
- if (entry.type === 'message') {
220
- messages$1.push(messageSerialization.deserializeMessage(entry.data.message));
221
- }
222
- else if (entry.type === 'summary') {
223
- messages$1.push(new messages.SystemMessage(entry.data.text));
224
- }
225
- }
226
- return messages$1;
227
- }
228
- getForkPoints() {
229
- return this.entries.filter((entry) => entry.type === 'message' && entry.data.role === 'user');
230
- }
231
- getLabel(entryId) {
232
- return [...this.entries]
233
- .reverse()
234
- .find((entry) => entry.type === 'label' && entry.data.targetEntryId === entryId)?.data.label;
235
- }
236
- async setLabel(entryId, label) {
237
- return this.appendEntry({
238
- type: 'label',
239
- parentId: this.getLeafEntry()?.id ?? null,
240
- data: { targetEntryId: entryId, label },
241
- });
242
- }
243
- async appendMessage(message, parentId = this.getLeafEntry()?.id ?? null) {
244
- const entry = await this.appendEntry({
245
- type: 'message',
246
- parentId,
247
- data: {
248
- role: messageSerialization.getMessageRole(message),
249
- message: messageSerialization.serializeMessage(message),
250
- },
251
- });
252
- await this.setLeaf(entry.id);
253
- return entry;
254
- }
255
- async appendRunEvent(event, payload, params) {
256
- return this.appendEntry({
257
- type: 'run_event',
258
- parentId: this.getLeafEntry()?.id ?? null,
259
- data: {
260
- event,
261
- ...(params?.runId != null && params.runId !== ''
262
- ? { runId: params.runId }
263
- : {}),
264
- ...(params?.threadId != null && params.threadId !== ''
265
- ? { threadId: params.threadId }
266
- : {}),
267
- ...(typeof payload !== 'undefined'
268
- ? { payload: messageSerialization.toJsonValue(payload) }
269
- : {}),
270
- },
271
- });
272
- }
273
- async setLeaf(leafId) {
274
- return this.appendEntry({
275
- type: 'session_state',
276
- parentId: leafId,
277
- data: { leafId },
278
- });
279
- }
280
- async appendEntryForCompaction(params) {
281
- const tokenCount = typeof params.tokenCount === 'number' &&
282
- Number.isFinite(params.tokenCount) &&
283
- params.tokenCount >= 0
284
- ? params.tokenCount
285
- : undefined;
286
- const entry = await this.appendEntry({
287
- type: 'summary',
288
- parentId: 'parentId' in params
289
- ? (params.parentId ?? null)
290
- : (this.getLeafEntry()?.id ?? null),
291
- data: {
292
- text: params.text,
293
- ...(tokenCount != null ? { tokenCount } : {}),
294
- retainedEntryIds: params.retainedEntryIds,
295
- summarizedEntryIds: params.summarizedEntryIds,
296
- ...(params.instructions != null && params.instructions !== ''
297
- ? { instructions: params.instructions }
298
- : {}),
299
- },
300
- });
301
- await this.setLeaf(entry.id);
302
- return entry;
303
- }
304
- async appendCompactionEntry(params) {
305
- return this.appendEntry({
306
- type: 'compaction',
307
- parentId: this.getLeafEntry()?.id ?? null,
308
- data: {
309
- summaryEntryId: params.summaryEntryId,
310
- retainedEntryIds: params.retainedEntryIds,
311
- summarizedEntryIds: params.summarizedEntryIds,
312
- },
313
- });
314
- }
315
- async appendCheckpoint(params) {
316
- return this.appendEntry({
317
- type: 'checkpoint',
318
- parentId: this.getLeafEntry()?.id ?? null,
319
- data: {
320
- provider: 'langgraph',
321
- source: params.source,
322
- threadId: params.threadId,
323
- ...(params.runId != null && params.runId !== ''
324
- ? { runId: params.runId }
325
- : {}),
326
- ...(params.checkpointId != null && params.checkpointId !== ''
327
- ? { checkpointId: params.checkpointId }
328
- : {}),
329
- ...(params.checkpointNs != null
330
- ? { checkpointNs: params.checkpointNs }
331
- : {}),
332
- ...(params.parentCheckpointId != null &&
333
- params.parentCheckpointId !== ''
334
- ? { parentCheckpointId: params.parentCheckpointId }
335
- : {}),
336
- ...(params.reason != null && params.reason !== ''
337
- ? { reason: params.reason }
338
- : {}),
339
- },
340
- });
341
- }
342
- getCheckpoints(threadId) {
343
- return this.entries.filter((entry) => entry.type === 'checkpoint' &&
344
- (threadId == null || entry.data.threadId === threadId));
345
- }
346
- getLatestCheckpoint(threadId) {
347
- const checkpoints = this.getCheckpoints(threadId);
348
- for (let i = checkpoints.length - 1; i >= 0; i--) {
349
- const checkpoint = checkpoints[i];
350
- if (checkpoint.data.source === 'reset') {
351
- return undefined;
352
- }
353
- return checkpoint;
354
- }
355
- return undefined;
356
- }
357
- async branch(entryId, options = {}) {
358
- const target = this.getBranchTarget(entryId, options.position ?? 'at');
359
- await this.setLeaf(target?.id ?? null);
360
- return target;
361
- }
362
- async createBranchedSession(entryId = this.getLeafEntry()?.id, options = {}) {
363
- const target = entryId != null && entryId !== ''
364
- ? this.getBranchTarget(entryId, options.position ?? 'at')
365
- : this.getLeafEntry();
366
- const newStore = await JsonlSessionStore.create({
367
- cwd: options.cwd ?? this.header.cwd,
368
- name: options.name ?? this.header.name,
369
- parentSession: this.path,
370
- });
371
- const pathEntries = target ? this.getPath(target.id) : [];
372
- for (const entry of pathEntries) {
373
- await newStore.appendExistingEntry(entry);
374
- }
375
- await newStore.setLeaf(target?.id ?? null);
376
- return newStore;
377
- }
378
- async clone(options = {}) {
379
- return this.createBranchedSession(this.getLeafEntry()?.id, {
380
- ...options,
381
- position: 'at',
382
- });
383
- }
384
- async fork(entryId, options = {}) {
385
- return this.createBranchedSession(entryId, {
386
- ...options,
387
- position: options.position ?? 'before',
388
- });
389
- }
390
- getBranchTarget(entryId, position) {
391
- const entry = this.getEntry(entryId);
392
- if (!entry) {
393
- throw new Error(`Entry not found: ${entryId}`);
394
- }
395
- if (position === 'at') {
396
- return entry;
397
- }
398
- return entry.parentId == null ? undefined : this.getEntry(entry.parentId);
399
- }
400
- async appendExistingEntry(entry) {
401
- this.entries.push(entry);
402
- await promises.appendFile(this.path, `${JSON.stringify(entry)}\n`, 'utf8');
403
- }
404
- async appendEntry(params) {
405
- const entry = {
406
- type: params.type,
407
- id: ids.createEntryId(),
408
- parentId: params.parentId,
409
- timestamp: ids.createTimestamp(),
410
- data: params.data,
411
- };
412
- this.entries.push(entry);
413
- await promises.appendFile(this.path, `${JSON.stringify(entry)}\n`, 'utf8');
414
- return entry;
415
- }
416
- async existsOnDisk() {
417
- const fileStat = await promises.stat(this.path).catch(() => undefined);
418
- return fileStat?.isFile() === true;
419
- }
51
+ return [...entries].sort((a, b) => a.timestamp.localeCompare(b.timestamp));
420
52
  }
53
+ var JsonlSessionStore = class JsonlSessionStore {
54
+ path;
55
+ header;
56
+ entries;
57
+ constructor(params) {
58
+ this.path = params.path;
59
+ this.header = params.header;
60
+ this.entries = sortEntries(params.entries);
61
+ }
62
+ static getDefaultRoot() {
63
+ return DEFAULT_SESSION_ROOT;
64
+ }
65
+ static async create(options) {
66
+ const sessionId = options.sessionId ?? require_ids.createSessionId();
67
+ const path$2 = options.path != null && options.path !== "" ? (0, path.resolve)(options.path) : createSessionPath({
68
+ ...options,
69
+ sessionId
70
+ });
71
+ const header = createHeader({
72
+ ...options,
73
+ sessionId
74
+ });
75
+ await (0, fs_promises.mkdir)((0, path.dirname)(path$2), { recursive: true });
76
+ await (0, fs_promises.writeFile)(path$2, `${JSON.stringify(header)}\n`, {
77
+ encoding: "utf8",
78
+ flag: "wx"
79
+ });
80
+ return new JsonlSessionStore({
81
+ path: path$2,
82
+ header,
83
+ entries: []
84
+ });
85
+ }
86
+ static async open(pathOrId) {
87
+ const path$3 = await JsonlSessionStore.resolvePath(pathOrId);
88
+ return JsonlSessionStore.openPath(path$3);
89
+ }
90
+ static async openPath(path$4) {
91
+ const resolved = (0, path.resolve)(path$4);
92
+ const parsed = (await (0, fs_promises.readFile)(resolved, "utf8")).split("\n").map((line) => parseLine(line)).filter((line) => line != null);
93
+ const header = parsed.find((line) => line.type === "session");
94
+ if (!header) throw new Error(`Invalid session file: ${resolved}`);
95
+ return new JsonlSessionStore({
96
+ path: resolved,
97
+ header,
98
+ entries: parsed.filter((line) => line.type !== "session")
99
+ });
100
+ }
101
+ static async resolvePath(pathOrId) {
102
+ const candidate = (0, path.isAbsolute)(pathOrId) ? pathOrId : (0, path.resolve)(pathOrId);
103
+ if (await pathExists(candidate)) return candidate;
104
+ const matches = (await JsonlSessionStore.listAll()).filter((item) => item.id.startsWith(pathOrId) || (0, path.basename)(item.path).includes(pathOrId));
105
+ if (matches.length === 1) return matches[0].path;
106
+ if (matches.length > 1) throw new Error(`Session id "${pathOrId}" is ambiguous`);
107
+ throw new Error(`Session not found: ${pathOrId}`);
108
+ }
109
+ static async list(cwd) {
110
+ const dir = (0, path.join)(DEFAULT_SESSION_ROOT, sanitizeCwd(cwd));
111
+ return JsonlSessionStore.listDirectory(dir);
112
+ }
113
+ static async listAll(root = DEFAULT_SESSION_ROOT) {
114
+ if (!await pathExists(root)) return [];
115
+ const dirs = await (0, fs_promises.readdir)(root, { withFileTypes: true });
116
+ return (await Promise.all(dirs.filter((entry) => entry.isDirectory()).map((entry) => JsonlSessionStore.listDirectory((0, path.join)(root, entry.name))))).flat().sort((a, b) => b.timestamp.localeCompare(a.timestamp));
117
+ }
118
+ static async listDirectory(dir) {
119
+ if (!await pathExists(dir)) return [];
120
+ const candidates = (await (0, fs_promises.readdir)(dir, { withFileTypes: true })).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map((entry) => (0, path.join)(dir, entry.name));
121
+ return (await Promise.all(candidates.map(async (path$5) => {
122
+ try {
123
+ const store = await JsonlSessionStore.open(path$5);
124
+ return {
125
+ id: store.header.id,
126
+ path: path$5,
127
+ cwd: store.header.cwd,
128
+ timestamp: store.header.timestamp,
129
+ name: store.header.name,
130
+ leafId: store.getLeafEntry()?.id ?? null
131
+ };
132
+ } catch {
133
+ return;
134
+ }
135
+ }))).filter((item) => item != null).sort((a, b) => b.timestamp.localeCompare(a.timestamp));
136
+ }
137
+ getEntries() {
138
+ return [...this.entries];
139
+ }
140
+ getEntry(id) {
141
+ return this.entries.find((entry) => entry.id === id);
142
+ }
143
+ getChildren(id) {
144
+ return this.entries.filter((entry) => entry.parentId === id);
145
+ }
146
+ getTree() {
147
+ const byParent = /* @__PURE__ */ new Map();
148
+ for (const entry of this.entries) {
149
+ const siblings = byParent.get(entry.parentId) ?? [];
150
+ siblings.push(entry);
151
+ byParent.set(entry.parentId, siblings);
152
+ }
153
+ const build = (parentId) => (byParent.get(parentId) ?? []).map((entry) => ({
154
+ entry,
155
+ children: build(entry.id)
156
+ }));
157
+ return build(null);
158
+ }
159
+ getLeafEntry() {
160
+ const state = [...this.entries].reverse().find((entry) => entry.type === "session_state");
161
+ if (state) return state.data.leafId == null ? void 0 : this.getEntry(state.data.leafId);
162
+ return [...this.entries].reverse().find((entry) => entry.type === "message" || entry.type === "summary");
163
+ }
164
+ getPath(entryId = this.getLeafEntry()?.id) {
165
+ if (entryId == null || entryId === "") return [];
166
+ const byId = new Map(this.entries.map((entry) => [entry.id, entry]));
167
+ const path$6 = [];
168
+ let current = byId.get(entryId);
169
+ while (current) {
170
+ path$6.push(current);
171
+ current = current.parentId == null ? void 0 : byId.get(current.parentId);
172
+ }
173
+ return path$6.reverse();
174
+ }
175
+ getMessages(entryId) {
176
+ const messages = [];
177
+ for (const entry of this.getPath(entryId)) if (entry.type === "message") messages.push(require_messageSerialization.deserializeMessage(entry.data.message));
178
+ else if (entry.type === "summary") messages.push(new _langchain_core_messages.SystemMessage(entry.data.text));
179
+ return messages;
180
+ }
181
+ getForkPoints() {
182
+ return this.entries.filter((entry) => entry.type === "message" && entry.data.role === "user");
183
+ }
184
+ getLabel(entryId) {
185
+ return [...this.entries].reverse().find((entry) => entry.type === "label" && entry.data.targetEntryId === entryId)?.data.label;
186
+ }
187
+ async setLabel(entryId, label) {
188
+ return this.appendEntry({
189
+ type: "label",
190
+ parentId: this.getLeafEntry()?.id ?? null,
191
+ data: {
192
+ targetEntryId: entryId,
193
+ label
194
+ }
195
+ });
196
+ }
197
+ async appendMessage(message, parentId = this.getLeafEntry()?.id ?? null) {
198
+ const entry = await this.appendEntry({
199
+ type: "message",
200
+ parentId,
201
+ data: {
202
+ role: require_messageSerialization.getMessageRole(message),
203
+ message: require_messageSerialization.serializeMessage(message)
204
+ }
205
+ });
206
+ await this.setLeaf(entry.id);
207
+ return entry;
208
+ }
209
+ async appendRunEvent(event, payload, params) {
210
+ return this.appendEntry({
211
+ type: "run_event",
212
+ parentId: this.getLeafEntry()?.id ?? null,
213
+ data: {
214
+ event,
215
+ ...params?.runId != null && params.runId !== "" ? { runId: params.runId } : {},
216
+ ...params?.threadId != null && params.threadId !== "" ? { threadId: params.threadId } : {},
217
+ ...typeof payload !== "undefined" ? { payload: require_messageSerialization.toJsonValue(payload) } : {}
218
+ }
219
+ });
220
+ }
221
+ async setLeaf(leafId) {
222
+ return this.appendEntry({
223
+ type: "session_state",
224
+ parentId: leafId,
225
+ data: { leafId }
226
+ });
227
+ }
228
+ async appendEntryForCompaction(params) {
229
+ const tokenCount = typeof params.tokenCount === "number" && Number.isFinite(params.tokenCount) && params.tokenCount >= 0 ? params.tokenCount : void 0;
230
+ const entry = await this.appendEntry({
231
+ type: "summary",
232
+ parentId: "parentId" in params ? params.parentId ?? null : this.getLeafEntry()?.id ?? null,
233
+ data: {
234
+ text: params.text,
235
+ ...tokenCount != null ? { tokenCount } : {},
236
+ retainedEntryIds: params.retainedEntryIds,
237
+ summarizedEntryIds: params.summarizedEntryIds,
238
+ ...params.instructions != null && params.instructions !== "" ? { instructions: params.instructions } : {}
239
+ }
240
+ });
241
+ await this.setLeaf(entry.id);
242
+ return entry;
243
+ }
244
+ async appendCompactionEntry(params) {
245
+ return this.appendEntry({
246
+ type: "compaction",
247
+ parentId: this.getLeafEntry()?.id ?? null,
248
+ data: {
249
+ summaryEntryId: params.summaryEntryId,
250
+ retainedEntryIds: params.retainedEntryIds,
251
+ summarizedEntryIds: params.summarizedEntryIds
252
+ }
253
+ });
254
+ }
255
+ async appendCheckpoint(params) {
256
+ return this.appendEntry({
257
+ type: "checkpoint",
258
+ parentId: this.getLeafEntry()?.id ?? null,
259
+ data: {
260
+ provider: "langgraph",
261
+ source: params.source,
262
+ threadId: params.threadId,
263
+ ...params.runId != null && params.runId !== "" ? { runId: params.runId } : {},
264
+ ...params.checkpointId != null && params.checkpointId !== "" ? { checkpointId: params.checkpointId } : {},
265
+ ...params.checkpointNs != null ? { checkpointNs: params.checkpointNs } : {},
266
+ ...params.parentCheckpointId != null && params.parentCheckpointId !== "" ? { parentCheckpointId: params.parentCheckpointId } : {},
267
+ ...params.reason != null && params.reason !== "" ? { reason: params.reason } : {}
268
+ }
269
+ });
270
+ }
271
+ getCheckpoints(threadId) {
272
+ return this.entries.filter((entry) => entry.type === "checkpoint" && (threadId == null || entry.data.threadId === threadId));
273
+ }
274
+ getLatestCheckpoint(threadId) {
275
+ const checkpoints = this.getCheckpoints(threadId);
276
+ for (let i = checkpoints.length - 1; i >= 0; i--) {
277
+ const checkpoint = checkpoints[i];
278
+ if (checkpoint.data.source === "reset") return;
279
+ return checkpoint;
280
+ }
281
+ }
282
+ async branch(entryId, options = {}) {
283
+ const target = this.getBranchTarget(entryId, options.position ?? "at");
284
+ await this.setLeaf(target?.id ?? null);
285
+ return target;
286
+ }
287
+ async createBranchedSession(entryId = this.getLeafEntry()?.id, options = {}) {
288
+ const target = entryId != null && entryId !== "" ? this.getBranchTarget(entryId, options.position ?? "at") : this.getLeafEntry();
289
+ const newStore = await JsonlSessionStore.create({
290
+ cwd: options.cwd ?? this.header.cwd,
291
+ name: options.name ?? this.header.name,
292
+ parentSession: this.path
293
+ });
294
+ const pathEntries = target ? this.getPath(target.id) : [];
295
+ for (const entry of pathEntries) await newStore.appendExistingEntry(entry);
296
+ await newStore.setLeaf(target?.id ?? null);
297
+ return newStore;
298
+ }
299
+ async clone(options = {}) {
300
+ return this.createBranchedSession(this.getLeafEntry()?.id, {
301
+ ...options,
302
+ position: "at"
303
+ });
304
+ }
305
+ async fork(entryId, options = {}) {
306
+ return this.createBranchedSession(entryId, {
307
+ ...options,
308
+ position: options.position ?? "before"
309
+ });
310
+ }
311
+ getBranchTarget(entryId, position) {
312
+ const entry = this.getEntry(entryId);
313
+ if (!entry) throw new Error(`Entry not found: ${entryId}`);
314
+ if (position === "at") return entry;
315
+ return entry.parentId == null ? void 0 : this.getEntry(entry.parentId);
316
+ }
317
+ async appendExistingEntry(entry) {
318
+ this.entries.push(entry);
319
+ await (0, fs_promises.appendFile)(this.path, `${JSON.stringify(entry)}\n`, "utf8");
320
+ }
321
+ async appendEntry(params) {
322
+ const entry = {
323
+ type: params.type,
324
+ id: require_ids.createEntryId(),
325
+ parentId: params.parentId,
326
+ timestamp: require_ids.createTimestamp(),
327
+ data: params.data
328
+ };
329
+ this.entries.push(entry);
330
+ await (0, fs_promises.appendFile)(this.path, `${JSON.stringify(entry)}\n`, "utf8");
331
+ return entry;
332
+ }
333
+ async existsOnDisk() {
334
+ return (await (0, fs_promises.stat)(this.path).catch(() => void 0))?.isFile() === true;
335
+ }
336
+ };
421
337
  const SessionManager = JsonlSessionStore;
422
-
338
+ //#endregion
423
339
  exports.JsonlSessionStore = JsonlSessionStore;
424
340
  exports.SessionManager = SessionManager;
425
- //# sourceMappingURL=JsonlSessionStore.cjs.map
341
+
342
+ //# sourceMappingURL=JsonlSessionStore.cjs.map