@downcity/agent 1.1.200 → 1.1.202

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 (228) hide show
  1. package/bin/agent/local/Agent.d.ts +3 -7
  2. package/bin/agent/local/Agent.d.ts.map +1 -1
  3. package/bin/agent/local/Agent.js +14 -19
  4. package/bin/agent/local/Agent.js.map +1 -1
  5. package/bin/agent/local/services/{AgentSessionManager.d.ts → AgentSessions.d.ts} +12 -17
  6. package/bin/agent/local/services/AgentSessions.d.ts.map +1 -0
  7. package/bin/agent/local/services/{AgentSessionManager.js → AgentSessions.js} +11 -26
  8. package/bin/agent/local/services/AgentSessions.js.map +1 -0
  9. package/bin/agent/remote/RemoteAgent.d.ts +2 -9
  10. package/bin/agent/remote/RemoteAgent.d.ts.map +1 -1
  11. package/bin/agent/remote/RemoteAgent.js +40 -22
  12. package/bin/agent/remote/RemoteAgent.js.map +1 -1
  13. package/bin/agent/remote/RemoteSession.d.ts +5 -5
  14. package/bin/agent/remote/RemoteSession.d.ts.map +1 -1
  15. package/bin/agent/remote/RemoteSession.js +5 -3
  16. package/bin/agent/remote/RemoteSession.js.map +1 -1
  17. package/bin/agent/remote/RemoteTransport.d.ts +2 -2
  18. package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts +2 -2
  19. package/bin/agent/remote/transports/HttpRemoteAgentTransport.js +5 -5
  20. package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts +2 -2
  21. package/bin/agent/remote/transports/RpcRemoteAgentTransport.js +2 -2
  22. package/bin/executor/Executor.d.ts +5 -5
  23. package/bin/executor/Executor.d.ts.map +1 -1
  24. package/bin/executor/Executor.js +22 -13
  25. package/bin/executor/Executor.js.map +1 -1
  26. package/bin/executor/SessionRunScope.d.ts +1 -1
  27. package/bin/executor/SessionRunScope.d.ts.map +1 -1
  28. package/bin/executor/composer/compaction/SessionCompactionComposer.d.ts +3 -3
  29. package/bin/executor/composer/compaction/SessionCompactionComposer.d.ts.map +1 -1
  30. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.d.ts +4 -5
  31. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.d.ts.map +1 -1
  32. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.js +56 -16
  33. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.js.map +1 -1
  34. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.d.ts +27 -0
  35. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.d.ts.map +1 -0
  36. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.js +181 -0
  37. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.js.map +1 -0
  38. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.d.ts +45 -0
  39. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.d.ts.map +1 -0
  40. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.js +144 -0
  41. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.js.map +1 -0
  42. package/bin/executor/composer/context/LocalSessionContextComposer.d.ts +3 -3
  43. package/bin/executor/composer/context/LocalSessionContextComposer.d.ts.map +1 -1
  44. package/bin/executor/composer/context/SessionContextComposer.d.ts +3 -3
  45. package/bin/executor/composer/context/SessionContextComposer.d.ts.map +1 -1
  46. package/bin/executor/composer/history/SessionHistoryComposer.d.ts +2 -2
  47. package/bin/executor/composer/history/SessionHistoryComposer.d.ts.map +1 -1
  48. package/bin/executor/composer/history/SessionHistoryWriter.d.ts +5 -5
  49. package/bin/executor/composer/history/SessionHistoryWriter.d.ts.map +1 -1
  50. package/bin/executor/composer/history/SessionHistoryWriter.js +6 -6
  51. package/bin/executor/composer/history/SessionHistoryWriter.js.map +1 -1
  52. package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.d.ts +2 -2
  53. package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.d.ts.map +1 -1
  54. package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.js +5 -5
  55. package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.js.map +1 -1
  56. package/bin/executor/core-engine/CoreEngineMessageState.d.ts +5 -5
  57. package/bin/executor/core-engine/CoreEngineMessageState.d.ts.map +1 -1
  58. package/bin/executor/core-engine/CoreEngineMessageState.js.map +1 -1
  59. package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
  60. package/bin/executor/core-engine/CoreEngineSignals.d.ts +4 -4
  61. package/bin/executor/core-engine/CoreEngineSignals.d.ts.map +1 -1
  62. package/bin/executor/core-engine/CoreEngineSignals.js.map +1 -1
  63. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts +3 -3
  64. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts.map +1 -1
  65. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js.map +1 -1
  66. package/bin/executor/messages/AssistantResultPersistence.d.ts +5 -5
  67. package/bin/executor/messages/AssistantResultPersistence.d.ts.map +1 -1
  68. package/bin/executor/messages/AssistantResultPersistence.js +1 -1
  69. package/bin/executor/messages/AssistantResultPersistence.js.map +1 -1
  70. package/bin/executor/messages/SessionAttachmentMapper.d.ts +3 -3
  71. package/bin/executor/messages/SessionAttachmentMapper.d.ts.map +1 -1
  72. package/bin/executor/messages/SessionAttachmentMapper.js.map +1 -1
  73. package/bin/executor/messages/SessionMessageCodec.d.ts +4 -4
  74. package/bin/executor/messages/SessionMessageCodec.d.ts.map +1 -1
  75. package/bin/executor/messages/SessionMessageCodec.js +5 -5
  76. package/bin/executor/messages/SessionMessageCodec.js.map +1 -1
  77. package/bin/executor/messages/SessionMessageLog.d.ts +3 -3
  78. package/bin/executor/messages/SessionMessageLog.d.ts.map +1 -1
  79. package/bin/executor/messages/SessionMessageLog.js.map +1 -1
  80. package/bin/executor/messages/SessionStepEventMapper.d.ts +2 -2
  81. package/bin/executor/messages/SessionStepEventMapper.d.ts.map +1 -1
  82. package/bin/executor/messages/SessionStepEventMapper.js.map +1 -1
  83. package/bin/executor/messages/UserVisibleText.d.ts +3 -3
  84. package/bin/executor/messages/UserVisibleText.d.ts.map +1 -1
  85. package/bin/executor/messages/UserVisibleText.js +3 -3
  86. package/bin/executor/messages/UserVisibleText.js.map +1 -1
  87. package/bin/executor/services/ExecutorInflightService.d.ts +2 -2
  88. package/bin/executor/services/ExecutorInflightService.d.ts.map +1 -1
  89. package/bin/executor/services/ExecutorInflightService.js +4 -4
  90. package/bin/executor/services/ExecutorInflightService.js.map +1 -1
  91. package/bin/executor/store/history/SessionHistoryStore.d.ts +24 -21
  92. package/bin/executor/store/history/SessionHistoryStore.d.ts.map +1 -1
  93. package/bin/executor/store/history/SessionHistoryStore.js +3 -3
  94. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts +18 -19
  95. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts.map +1 -1
  96. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js +33 -36
  97. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js.map +1 -1
  98. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts +1 -7
  99. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts.map +1 -1
  100. package/bin/executor/tools/plugin/PluginToolSchemas.d.ts +4 -6
  101. package/bin/executor/tools/plugin/PluginToolSchemas.d.ts.map +1 -1
  102. package/bin/executor/tools/plugin/PluginToolSchemas.js +24 -10
  103. package/bin/executor/tools/plugin/PluginToolSchemas.js.map +1 -1
  104. package/bin/executor/types/{SessionMessages.d.ts → SessionRecords.d.ts} +53 -28
  105. package/bin/executor/types/SessionRecords.d.ts.map +1 -0
  106. package/bin/executor/types/SessionRecords.js +52 -0
  107. package/bin/executor/types/SessionRecords.js.map +1 -0
  108. package/bin/executor/types/SessionRun.d.ts +3 -3
  109. package/bin/executor/types/SessionRun.d.ts.map +1 -1
  110. package/bin/index.d.ts +1 -1
  111. package/bin/index.d.ts.map +1 -1
  112. package/bin/rpc/Client.d.ts +5 -5
  113. package/bin/rpc/Client.js +4 -4
  114. package/bin/session/Session.d.ts +6 -6
  115. package/bin/session/Session.d.ts.map +1 -1
  116. package/bin/session/Session.js +8 -8
  117. package/bin/session/Session.js.map +1 -1
  118. package/bin/session/SessionTitle.d.ts +2 -2
  119. package/bin/session/SessionTitle.d.ts.map +1 -1
  120. package/bin/session/SessionTitle.js +3 -3
  121. package/bin/session/SessionTitle.js.map +1 -1
  122. package/bin/session/browse/Browse.d.ts +12 -12
  123. package/bin/session/browse/Browse.d.ts.map +1 -1
  124. package/bin/session/browse/Browse.js +9 -9
  125. package/bin/session/browse/Browse.js.map +1 -1
  126. package/bin/session/index.d.ts +1 -1
  127. package/bin/session/index.js +1 -1
  128. package/bin/session/runtime/SessionPromptRuntime.d.ts +3 -3
  129. package/bin/session/runtime/SessionPromptRuntime.d.ts.map +1 -1
  130. package/bin/session/services/SessionStateService.d.ts +7 -8
  131. package/bin/session/services/SessionStateService.d.ts.map +1 -1
  132. package/bin/session/services/SessionStateService.js +15 -31
  133. package/bin/session/services/SessionStateService.js.map +1 -1
  134. package/bin/session/services/SessionViewService.d.ts +4 -4
  135. package/bin/session/services/SessionViewService.js +12 -12
  136. package/bin/session/services/SessionViewService.js.map +1 -1
  137. package/bin/session/storage/Persistence.d.ts +4 -4
  138. package/bin/session/storage/Persistence.d.ts.map +1 -1
  139. package/bin/session/storage/RuntimeSessionPort.d.ts +2 -2
  140. package/bin/session/storage/RuntimeSessionPort.d.ts.map +1 -1
  141. package/bin/session/storage/RuntimeSessionPort.js +4 -4
  142. package/bin/session/storage/RuntimeSessionPort.js.map +1 -1
  143. package/bin/types/agent/AgentTypes.d.ts +2 -2
  144. package/bin/types/agent/AgentTypes.d.ts.map +1 -1
  145. package/bin/types/agent/SessionActor.d.ts +11 -11
  146. package/bin/types/agent/SessionActor.d.ts.map +1 -1
  147. package/bin/types/agent/SessionTypes.d.ts +12 -12
  148. package/bin/types/agent/SessionTypes.d.ts.map +1 -1
  149. package/bin/types/executor/SessionRunContext.d.ts +2 -2
  150. package/bin/types/executor/SessionRunContext.d.ts.map +1 -1
  151. package/bin/types/rpc/RpcProtocol.d.ts +6 -6
  152. package/bin/types/runtime/agent/AgentContext.d.ts +7 -7
  153. package/bin/types/runtime/agent/AgentContext.d.ts.map +1 -1
  154. package/bin/types/sdk/AgentSessionAction.d.ts +8 -49
  155. package/bin/types/sdk/AgentSessionAction.d.ts.map +1 -1
  156. package/bin/types/sdk/AgentSessionAction.js +4 -4
  157. package/bin/types/sdk/AgentSessionTurn.d.ts +2 -2
  158. package/bin/types/sdk/AgentSessionTurn.d.ts.map +1 -1
  159. package/package.json +3 -3
  160. package/scripts/agent-ready.test.mjs +1 -1
  161. package/scripts/city-model-tool-loop.test.mjs +36 -4
  162. package/scripts/plugin-tool-bridge.test.mjs +13 -0
  163. package/scripts/session-action-message.test.mjs +25 -25
  164. package/scripts/session-compaction-prompts.test.mjs +97 -0
  165. package/scripts/session-history-archive.test.mjs +8 -8
  166. package/scripts/session-history-inflight.test.mjs +10 -10
  167. package/scripts/session-list-title.test.mjs +9 -9
  168. package/scripts/session-title-event.test.mjs +12 -10
  169. package/src/agent/local/Agent.ts +16 -22
  170. package/src/agent/local/services/{AgentSessionManager.ts → AgentSessions.ts} +16 -32
  171. package/src/agent/remote/RemoteAgent.ts +58 -23
  172. package/src/agent/remote/RemoteSession.ts +10 -8
  173. package/src/agent/remote/RemoteTransport.ts +5 -5
  174. package/src/agent/remote/transports/HttpRemoteAgentTransport.ts +10 -10
  175. package/src/agent/remote/transports/RpcRemoteAgentTransport.ts +6 -6
  176. package/src/executor/Executor.ts +30 -19
  177. package/src/executor/SessionRunScope.ts +1 -1
  178. package/src/executor/composer/compaction/SessionCompactionComposer.ts +3 -3
  179. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.ts +73 -29
  180. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.ts +197 -0
  181. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.ts +162 -0
  182. package/src/executor/composer/context/LocalSessionContextComposer.ts +5 -5
  183. package/src/executor/composer/context/SessionContextComposer.ts +5 -5
  184. package/src/executor/composer/history/SessionHistoryComposer.ts +2 -2
  185. package/src/executor/composer/history/SessionHistoryWriter.ts +10 -10
  186. package/src/executor/composer/history/jsonl/JsonlSessionHistoryComposer.ts +13 -13
  187. package/src/executor/core-engine/CoreEngineMessageState.ts +8 -8
  188. package/src/executor/core-engine/CoreEngineRunner.ts +7 -7
  189. package/src/executor/core-engine/CoreEngineSignals.ts +7 -7
  190. package/src/executor/core-engine/CoreEngineUiStreamCollector.ts +5 -5
  191. package/src/executor/messages/AssistantResultPersistence.ts +8 -8
  192. package/src/executor/messages/SessionAttachmentMapper.ts +11 -11
  193. package/src/executor/messages/SessionMessageCodec.ts +10 -10
  194. package/src/executor/messages/SessionMessageLog.ts +3 -3
  195. package/src/executor/messages/SessionStepEventMapper.ts +5 -5
  196. package/src/executor/messages/UserVisibleText.ts +9 -9
  197. package/src/executor/services/ExecutorInflightService.ts +7 -7
  198. package/src/executor/store/history/SessionHistoryStore.ts +26 -23
  199. package/src/executor/store/history/jsonl/JsonlSessionHistoryStore.ts +58 -62
  200. package/src/executor/tools/plugin/PluginToolSchemas.ts +24 -10
  201. package/src/executor/types/{SessionMessages.ts → SessionRecords.ts} +71 -40
  202. package/src/executor/types/SessionRun.ts +5 -5
  203. package/src/index.ts +4 -4
  204. package/src/rpc/Client.ts +9 -9
  205. package/src/session/Session.ts +10 -10
  206. package/src/session/SessionTitle.ts +7 -7
  207. package/src/session/browse/Browse.ts +38 -38
  208. package/src/session/index.ts +1 -1
  209. package/src/session/runtime/SessionPromptRuntime.ts +6 -6
  210. package/src/session/services/SessionStateService.ts +29 -44
  211. package/src/session/services/SessionTurnService.ts +4 -4
  212. package/src/session/services/SessionViewService.ts +21 -21
  213. package/src/session/storage/Persistence.ts +6 -6
  214. package/src/session/storage/RuntimeSessionPort.ts +6 -6
  215. package/src/types/agent/AgentTypes.ts +4 -4
  216. package/src/types/agent/SessionActor.ts +12 -12
  217. package/src/types/agent/SessionTypes.ts +12 -12
  218. package/src/types/executor/SessionRunContext.ts +2 -2
  219. package/src/types/rpc/RpcProtocol.ts +6 -6
  220. package/src/types/runtime/agent/AgentContext.ts +8 -8
  221. package/src/types/sdk/AgentSessionAction.ts +12 -56
  222. package/src/types/sdk/AgentSessionTurn.ts +2 -2
  223. package/tsconfig.tsbuildinfo +1 -1
  224. package/bin/agent/local/services/AgentSessionManager.d.ts.map +0 -1
  225. package/bin/agent/local/services/AgentSessionManager.js.map +0 -1
  226. package/bin/executor/types/SessionMessages.d.ts.map +0 -1
  227. package/bin/executor/types/SessionMessages.js +0 -46
  228. package/bin/executor/types/SessionMessages.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SessionStepEventMapper.d.ts","sourceRoot":"","sources":["../../../src/executor/messages/SessionStepEventMapper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAiGjF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACrC,GAAG,qBAAqB,CAAC,OAAO,CAAC,CA4EjC"}
1
+ {"version":3,"file":"SessionStepEventMapper.d.ts","sourceRoot":"","sources":["../../../src/executor/messages/SessionStepEventMapper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAiGjF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACrC,GAAG,sBAAsB,CAAC,OAAO,CAAC,CA4ElC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionStepEventMapper.js","sourceRoot":"","sources":["../../../src/executor/messages/SessionStepEventMapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionStepEventMapper.js","sourceRoot":"","sources":["../../../src/executor/messages/SessionStepEventMapper.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * - 真实的“最终回复”往往由 `chat_send` 工具的 input.text 决定
7
7
  * - 因此需要一个稳定的、与 Agent 解耦的提取逻辑(属于 chat/egress 语义)
8
8
  */
9
- import { type SessionMessageV1, type SessionModelMessageV1 } from "../../executor/types/SessionMessages.js";
9
+ import { type SessionRecordV1, type SessionMessageRecordV1 } from "../../executor/types/SessionRecords.js";
10
10
  /**
11
11
  * 生成真正应该落盘到 session 的 assistant message。
12
12
  *
@@ -14,7 +14,7 @@ import { type SessionMessageV1, type SessionModelMessageV1 } from "../../executo
14
14
  * - session 正式历史应尽量保留 AI SDK 最终 assistant UIMessage。
15
15
  * - 运行中 step/tool 的中断恢复由 inflight 快照承担,不再通过跳过最终 message 收口。
16
16
  */
17
- export declare function resolveAssistantMessageForPersistence(message: SessionMessageV1 | null | undefined): SessionModelMessageV1 | null;
17
+ export declare function resolveAssistantMessageForPersistence(message: SessionRecordV1 | null | undefined): SessionMessageRecordV1 | null;
18
18
  /**
19
19
  * 提取策略(中文)
20
20
  * - 倒序扫描:优先使用最后一次 `chat_send`,与最终用户感知一致。
@@ -22,5 +22,5 @@ export declare function resolveAssistantMessageForPersistence(message: SessionMe
22
22
  * - 若 tool output 为空/非 JSON,走 best-effort 采用 input.text。
23
23
  * - 若无 tool call,则回退到 message 文本内容。
24
24
  */
25
- export declare function pickLastSuccessfulChatSendText(message: SessionMessageV1 | null | undefined): string;
25
+ export declare function pickLastSuccessfulChatSendText(message: SessionRecordV1 | null | undefined): string;
26
26
  //# sourceMappingURL=UserVisibleText.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserVisibleText.d.ts","sourceRoot":"","sources":["../../../src/executor/messages/UserVisibleText.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC3B,MAAM,qCAAqC,CAAC;AAM7C;;;;;;GAMG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAC3C,qBAAqB,GAAG,IAAI,CAI9B;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAC3C,MAAM,CA+BR"}
1
+ {"version":3,"file":"UserVisibleText.d.ts","sourceRoot":"","sources":["../../../src/executor/messages/UserVisibleText.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC5B,MAAM,oCAAoC,CAAC;AAM5C;;;;;;GAMG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GAC1C,sBAAsB,GAAG,IAAI,CAI/B;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GAC1C,MAAM,CA+BR"}
@@ -6,7 +6,7 @@
6
6
  * - 真实的“最终回复”往往由 `chat_send` 工具的 input.text 决定
7
7
  * - 因此需要一个稳定的、与 Agent 解耦的提取逻辑(属于 chat/egress 语义)
8
8
  */
9
- import { isSessionModelMessage, } from "../../executor/types/SessionMessages.js";
9
+ import { is_session_message_record, } from "../../executor/types/SessionRecords.js";
10
10
  import { extractTextFromUiMessage, extractToolCallsFromUiMessage, } from "./UIMessageTransformer.js";
11
11
  /**
12
12
  * 生成真正应该落盘到 session 的 assistant message。
@@ -18,7 +18,7 @@ import { extractTextFromUiMessage, extractToolCallsFromUiMessage, } from "./UIMe
18
18
  export function resolveAssistantMessageForPersistence(message) {
19
19
  if (!message || typeof message !== "object")
20
20
  return null;
21
- if (!isSessionModelMessage(message))
21
+ if (!is_session_message_record(message))
22
22
  return null;
23
23
  return message;
24
24
  }
@@ -30,7 +30,7 @@ export function resolveAssistantMessageForPersistence(message) {
30
30
  * - 若无 tool call,则回退到 message 文本内容。
31
31
  */
32
32
  export function pickLastSuccessfulChatSendText(message) {
33
- if (!isSessionModelMessage(message))
33
+ if (!is_session_message_record(message))
34
34
  return "";
35
35
  const toolCalls = extractToolCallsFromUiMessage(message);
36
36
  // 关键点(中文):优先从 chat_send 的 input.text 还原"用户可见回复"。
@@ -1 +1 @@
1
- {"version":3,"file":"UserVisibleText.js","sourceRoot":"","sources":["../../../src/executor/messages/UserVisibleText.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,GAGtB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,UAAU,qCAAqC,CACnD,OAA4C;IAE5C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAA4C;IAE5C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACzD,iDAAiD;IACjD,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,WAAW;YAAE,SAAS;QAEpD,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,MAAM,IAAI,GAAG,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,CAAC,wBAAwB;QAE/C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IACE,MAAM;gBACN,OAAO,MAAM,KAAK,QAAQ;gBACzB,MAAgC,CAAC,OAAO,KAAK,IAAI,EAClD,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"UserVisibleText.js","sourceRoot":"","sources":["../../../src/executor/messages/UserVisibleText.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,yBAAyB,GAG1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,UAAU,qCAAqC,CACnD,OAA2C;IAE3C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAA2C;IAE3C,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACzD,iDAAiD;IACjD,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,WAAW;YAAE,SAAS;QAEpD,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,MAAM,IAAI,GAAG,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,CAAC,wBAAwB;QAE/C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IACE,MAAM;gBACN,OAAO,MAAM,KAAK,QAAQ;gBACzB,MAAgC,CAAC,OAAO,KAAK,IAAI,EAClD,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * - 保持与 SessionHistoryStore 的交互边界清晰,避免 Executor 自身同时承担编排与写入细节。
8
8
  */
9
9
  import type { SessionHistoryStore } from "../../executor/store/history/SessionHistoryStore.js";
10
- import type { SessionModelMessageV1 } from "../../executor/types/SessionMessages.js";
10
+ import type { SessionMessageRecordV1 } from "../../executor/types/SessionRecords.js";
11
11
  interface ExecutorInflightServiceOptions {
12
12
  /**
13
13
  * 当前 session 标识。
@@ -33,7 +33,7 @@ export declare class ExecutorInflightService {
33
33
  /**
34
34
  * 把 step/tool 过程增量写入当前运行中的 assistant 快照。
35
35
  */
36
- append_assistant_step_parts(parts: SessionModelMessageV1["parts"]): Promise<void>;
36
+ append_assistant_step_parts(parts: SessionMessageRecordV1["parts"]): Promise<void>;
37
37
  }
38
38
  export {};
39
39
  //# sourceMappingURL=ExecutorInflightService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutorInflightService.d.ts","sourceRoot":"","sources":["../../../src/executor/services/ExecutorInflightService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAGjF,UAAU,8BAA8B;IACtC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,EAAE,mBAAmB,CAAC;IAEnC;;OAEG;IACH,+BAA+B,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAoE;gBAEzG,OAAO,EAAE,8BAA8B;IAWnD;;OAEG;IACG,2BAA2B,CAC/B,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC;CAiDjB"}
1
+ {"version":3,"file":"ExecutorInflightService.d.ts","sourceRoot":"","sources":["../../../src/executor/services/ExecutorInflightService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAGjF,UAAU,8BAA8B;IACtC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,EAAE,mBAAmB,CAAC;IAEnC;;OAEG;IACH,+BAA+B,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAoE;gBAEzG,OAAO,EAAE,8BAA8B;IAWnD;;OAEG;IACG,2BAA2B,CAC/B,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC;CAiDjB"}
@@ -7,7 +7,7 @@
7
7
  * - 保持与 SessionHistoryStore 的交互边界清晰,避免 Executor 自身同时承担编排与写入细节。
8
8
  */
9
9
  import { generateId } from "../../utils/Id.js";
10
- import { isSessionModelMessage } from "../../executor/types/SessionMessages.js";
10
+ import { is_session_message_record } from "../../executor/types/SessionRecords.js";
11
11
  /**
12
12
  * 运行中 assistant 快照写入服务。
13
13
  */
@@ -33,8 +33,8 @@ export class ExecutorInflightService {
33
33
  : [];
34
34
  if (normalized_parts.length === 0)
35
35
  return;
36
- const current_inflight = await this.history_store.readInflight();
37
- const normalized_inflight = isSessionModelMessage(current_inflight)
36
+ const current_inflight = await this.history_store.read_inflight();
37
+ const normalized_inflight = is_session_message_record(current_inflight)
38
38
  ? current_inflight
39
39
  : null;
40
40
  const next_message = normalized_inflight
@@ -70,7 +70,7 @@ export class ExecutorInflightService {
70
70
  },
71
71
  parts: normalized_parts,
72
72
  };
73
- await this.history_store.writeInflight(next_message);
73
+ await this.history_store.write_inflight(next_message);
74
74
  if (this.run_after_session_updated_async) {
75
75
  await this.run_after_session_updated_async();
76
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutorInflightService.js","sourceRoot":"","sources":["../../../src/executor/services/ExecutorInflightService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAmB5E;;GAEG;AACH,MAAM,OAAO,uBAAuB;IACjB,UAAU,CAAS;IACnB,aAAa,CAAsB;IACnC,+BAA+B,CAAqE;IAErH,YAAY,OAAuC;QACjD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,+BAA+B;YAClC,OAAO,CAAC,+BAA+B,CAAC;QAE1C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,2BAA2B,CAC/B,KAAqC;QAErC,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAC3C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC;YAC1D,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE1C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QACjE,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,gBAAgB,CAAC;YACjE,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,YAAY,GAA0B,mBAAmB;YAC7D,CAAC,CAAC;gBACE,GAAG,mBAAmB;gBACtB,QAAQ,EAAE;oBACR,GAAG,CAAC,mBAAmB,CAAC,QAAQ,IAAI;wBAClC,CAAC,EAAE,CAAU;wBACb,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;wBACd,SAAS,EAAE,IAAI,CAAC,UAAU;qBAC3B,CAAC;oBACF,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;oBACd,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,QAAQ;iBACf;gBACD,KAAK,EAAE;oBACL,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC;wBAC1C,CAAC,CAAC,mBAAmB,CAAC,KAAK;wBAC3B,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,gBAAgB;iBACpB;aACF;YACH,CAAC,CAAC;gBACE,EAAE,EAAE,KAAK,IAAI,CAAC,UAAU,IAAI,UAAU,EAAE,EAAE;gBAC1C,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE;oBACR,CAAC,EAAE,CAAC;oBACJ,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;oBACd,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,QAAQ;iBACf;gBACD,KAAK,EAAE,gBAAgB;aACxB,CAAC;QAEN,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ExecutorInflightService.js","sourceRoot":"","sources":["../../../src/executor/services/ExecutorInflightService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAmB/E;;GAEG;AACH,MAAM,OAAO,uBAAuB;IACjB,UAAU,CAAS;IACnB,aAAa,CAAsB;IACnC,+BAA+B,CAAqE;IAErH,YAAY,OAAuC;QACjD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,+BAA+B;YAClC,OAAO,CAAC,+BAA+B,CAAC;QAE1C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,2BAA2B,CAC/B,KAAsC;QAEtC,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAC3C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC;YAC1D,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE1C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QAClE,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,gBAAgB,CAAC;YACrE,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,YAAY,GAA2B,mBAAmB;YAC9D,CAAC,CAAC;gBACE,GAAG,mBAAmB;gBACtB,QAAQ,EAAE;oBACR,GAAG,CAAC,mBAAmB,CAAC,QAAQ,IAAI;wBAClC,CAAC,EAAE,CAAU;wBACb,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;wBACd,SAAS,EAAE,IAAI,CAAC,UAAU;qBAC3B,CAAC;oBACF,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;oBACd,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,QAAQ;iBACf;gBACD,KAAK,EAAE;oBACL,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC;wBAC1C,CAAC,CAAC,mBAAmB,CAAC,KAAK;wBAC3B,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,gBAAgB;iBACpB;aACF;YACH,CAAC,CAAC;gBACE,EAAE,EAAE,KAAK,IAAI,CAAC,UAAU,IAAI,UAAU,EAAE,EAAE;gBAC1C,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE;oBACR,CAAC,EAAE,CAAC;oBACJ,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;oBACd,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,QAAQ;iBACf;gBACD,KAAK,EAAE,gBAAgB;aACxB,CAAC;QAEN,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;CACF"}
@@ -1,15 +1,14 @@
1
1
  /**
2
- * SessionHistoryStore:会话历史事实源接口。
2
+ * SessionHistoryStore:会话 record 事实源接口。
3
3
  *
4
4
  * 关键点(中文)
5
- * - Store 负责消息、meta、archive、lock 等持久化能力。
6
- * - Composer 只负责把 Store 中的历史组装成本轮模型输入。
5
+ * - Store 负责 records、meta、archive、lock 等持久化能力。
6
+ * - Composer 只负责把 Store 中的模型消息 record 组装成本轮模型输入。
7
7
  * - 这个接口刻意独立于 Composer,避免把“落盘事实源”误当成“组装策略”。
8
8
  */
9
9
  import type { LanguageModel } from "ai";
10
- import type { SessionActionMessageV1, SessionMessageV1, SessionMetadataV1 } from "../../../executor/types/SessionMessages.js";
10
+ import type { SessionActionRecordV1, SessionRecordV1, SessionMetadataV1 } from "../../../executor/types/SessionRecords.js";
11
11
  import type { SessionSystemMessage } from "../../../executor/types/SessionPrompts.js";
12
- import type { AgentSessionActionRecord } from "../../../types/sdk/AgentSessionAction.js";
13
12
  /**
14
13
  * compact 输入参数。
15
14
  */
@@ -41,7 +40,7 @@ export type SessionHistoryCompactInput = {
41
40
  /**
42
41
  * 可选 action 发布回调。
43
42
  */
44
- onAction?: (action: AgentSessionActionRecord) => Promise<void>;
43
+ onAction?: (action: SessionActionRecordV1) => Promise<void>;
45
44
  };
46
45
  /**
47
46
  * 会话历史事实源。
@@ -52,33 +51,37 @@ export interface SessionHistoryStore {
52
51
  */
53
52
  readonly sessionId: string;
54
53
  /**
55
- * 追加一条消息到历史。
54
+ * 写入一条 session record。
55
+ *
56
+ * 说明(中文)
57
+ * - 模型消息会追加到 JSONL。
58
+ * - action record 会按稳定 ID upsert 为同一条 record。
56
59
  */
57
- append(message: SessionMessageV1): Promise<void>;
60
+ write_record(message: SessionRecordV1): Promise<void>;
58
61
  /**
59
62
  * 读取当前运行中的 assistant 快照。
60
63
  */
61
- readInflight(): Promise<SessionMessageV1 | null>;
64
+ read_inflight(): Promise<SessionRecordV1 | null>;
62
65
  /**
63
66
  * 写入当前运行中的 assistant 快照。
64
67
  */
65
- writeInflight(message: SessionMessageV1): Promise<void>;
68
+ write_inflight(message: SessionRecordV1): Promise<void>;
66
69
  /**
67
70
  * 用最终 assistant 收口 inflight 快照。
68
71
  */
69
- finalizeInflight(message?: SessionMessageV1 | null): Promise<void>;
72
+ finalize_inflight(message?: SessionRecordV1 | null): Promise<void>;
70
73
  /**
71
- * 读取完整消息历史。
74
+ * 读取完整 session records。
72
75
  */
73
- list(): Promise<SessionMessageV1[]>;
76
+ list_records(): Promise<SessionRecordV1[]>;
74
77
  /**
75
- * 读取消息区间 [start, end)。
78
+ * 读取 session record 区间 [start, end)。
76
79
  */
77
- slice(start: number, end: number): Promise<SessionMessageV1[]>;
80
+ slice_records(start: number, end: number): Promise<SessionRecordV1[]>;
78
81
  /**
79
- * 读取消息总条数。
82
+ * 读取 session record 总条数。
80
83
  */
81
- size(): Promise<number>;
84
+ record_count(): Promise<number>;
82
85
  /**
83
86
  * 读取元信息。
84
87
  */
@@ -106,7 +109,7 @@ export interface SessionHistoryStore {
106
109
  * 可选消息 ID(默认自动生成)。
107
110
  */
108
111
  id?: string;
109
- }): SessionMessageV1;
112
+ }): SessionRecordV1;
110
113
  /**
111
114
  * 构造 assistant 文本消息。
112
115
  */
@@ -131,7 +134,7 @@ export interface SessionHistoryStore {
131
134
  * 消息来源(egress/compact)。
132
135
  */
133
136
  source?: "egress" | "compact";
134
- }): SessionMessageV1;
137
+ }): SessionRecordV1;
135
138
  /**
136
139
  * 构造 action 消息。
137
140
  */
@@ -139,7 +142,7 @@ export interface SessionHistoryStore {
139
142
  /**
140
143
  * 当前 action 结构化记录。
141
144
  */
142
- action: AgentSessionActionRecord;
145
+ action: SessionActionRecordV1;
143
146
  /**
144
147
  * 消息元信息(除 schema 字段)。
145
148
  */
@@ -148,6 +151,6 @@ export interface SessionHistoryStore {
148
151
  * 可选消息 ID(默认自动生成)。
149
152
  */
150
153
  id?: string;
151
- }): SessionActionMessageV1;
154
+ }): SessionActionRecordV1;
152
155
  }
153
156
  //# sourceMappingURL=SessionHistoryStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SessionHistoryStore.d.ts","sourceRoot":"","sources":["../../../../src/executor/store/history/SessionHistoryStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,KAAK,EAAE,aAAa,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAE/B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAEjD;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;OAEG;IACH,gBAAgB,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEpC;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAE/D;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAExB;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEzC;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC;QAClD,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IAEH;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE;QACd;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;WAEG;QACH,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,GAAG,IAAI,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QAEzC;;WAEG;QACH,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,GAAG,gBAAgB,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE;QACnB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;WAEG;QACH,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,GAAG,IAAI,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QAEzC;;WAEG;QACH,EAAE,CAAC,EAAE,MAAM,CAAC;QAEZ;;WAEG;QACH,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;QAE5B;;WAEG;QACH,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;KAC/B,GAAG,gBAAgB,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE;QACZ;;WAEG;QACH,MAAM,EAAE,wBAAwB,CAAC;QAEjC;;WAEG;QACH,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAC5C,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QAEzC;;WAEG;QACH,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,GAAG,sBAAsB,CAAC;CAC5B"}
1
+ {"version":3,"file":"SessionHistoryStore.d.ts","sourceRoot":"","sources":["../../../../src/executor/store/history/SessionHistoryStore.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * SessionHistoryStore:会话历史事实源接口。
2
+ * SessionHistoryStore:会话 record 事实源接口。
3
3
  *
4
4
  * 关键点(中文)
5
- * - Store 负责消息、meta、archive、lock 等持久化能力。
6
- * - Composer 只负责把 Store 中的历史组装成本轮模型输入。
5
+ * - Store 负责 records、meta、archive、lock 等持久化能力。
6
+ * - Composer 只负责把 Store 中的模型消息 record 组装成本轮模型输入。
7
7
  * - 这个接口刻意独立于 Composer,避免把“落盘事实源”误当成“组装策略”。
8
8
  */
9
9
  export {};
@@ -1,13 +1,12 @@
1
1
  /**
2
- * JsonlSessionHistoryStore:基于 JSONL 的 session history 事实源。
2
+ * JsonlSessionHistoryStore:基于 JSONL 的 session records 事实源。
3
3
  *
4
4
  * 关键点(中文)
5
5
  * - 负责 `.downcity/.../messages/messages.jsonl`、`meta.json`、archive 与文件锁。
6
6
  * - append 与 compact 共用同一把文件锁,避免并发覆盖。
7
7
  * - 不负责为模型组装 messages;组装逻辑放在 `JsonlSessionHistoryComposer`。
8
8
  */
9
- import type { SessionActionMessageV1, SessionMessageV1, SessionMetadataV1 } from "../../../../executor/types/SessionMessages.js";
10
- import type { AgentSessionActionRecord } from "../../../../types/sdk/AgentSessionAction.js";
9
+ import type { SessionActionRecordV1, SessionRecordV1, SessionMetadataV1 } from "../../../../executor/types/SessionRecords.js";
11
10
  import type { SessionHistoryPathOverrides } from "../../../../executor/types/SessionHistoryPaths.js";
12
11
  import type { SessionHistoryCompactInput, SessionHistoryStore } from "../../../../executor/store/history/SessionHistoryStore.js";
13
12
  /**
@@ -59,24 +58,24 @@ export declare class JsonlSessionHistoryStore implements SessionHistoryStore {
59
58
  private ensureLayout;
60
59
  private normalizeText;
61
60
  private normalizePersistedMessage;
62
- private normalizeActionMessage;
61
+ private normalize_action_record;
63
62
  private hasStructuredAssistantParts;
64
63
  private mergeInflightWithFinal;
65
64
  private readMetaUnsafe;
66
65
  private writeMetaUnsafe;
67
- private readInflightUnsafe;
68
- private writeInflightUnsafe;
66
+ private read_inflight_unsafe;
67
+ private write_inflight_unsafe;
69
68
  private removeInflightUnsafe;
70
69
  private appendMessageUnsafe;
71
70
  private rewriteMessagesUnsafe;
72
- private upsertActionMessageUnsafe;
71
+ private upsert_action_record_unsafe;
73
72
  private withWriteLock;
74
73
  private normalizeSystem;
75
74
  compact(input: SessionHistoryCompactInput): Promise<{
76
75
  compacted: boolean;
77
76
  reason?: string;
78
77
  }>;
79
- append(message: SessionMessageV1): Promise<void>;
78
+ write_record(message: SessionRecordV1): Promise<void>;
80
79
  /**
81
80
  * 批量追加消息。
82
81
  *
@@ -84,30 +83,30 @@ export declare class JsonlSessionHistoryStore implements SessionHistoryStore {
84
83
  * - 一次锁、一次 IO,适合 fork 等需要拷贝整段历史的场景。
85
84
  * - 不处理 inflight,调用方需自行确保历史已经收口。
86
85
  */
87
- appendMany(messages: SessionMessageV1[]): Promise<void>;
88
- readInflight(): Promise<SessionMessageV1 | null>;
89
- writeInflight(message: SessionMessageV1): Promise<void>;
90
- finalizeInflight(message?: SessionMessageV1 | null): Promise<void>;
91
- list(): Promise<SessionMessageV1[]>;
92
- slice(start: number, end: number): Promise<SessionMessageV1[]>;
93
- size(): Promise<number>;
86
+ write_records(messages: SessionRecordV1[]): Promise<void>;
87
+ read_inflight(): Promise<SessionRecordV1 | null>;
88
+ write_inflight(message: SessionRecordV1): Promise<void>;
89
+ finalize_inflight(message?: SessionRecordV1 | null): Promise<void>;
90
+ list_records(): Promise<SessionRecordV1[]>;
91
+ slice_records(start: number, end: number): Promise<SessionRecordV1[]>;
92
+ record_count(): Promise<number>;
94
93
  meta(): Promise<Record<string, unknown>>;
95
94
  userText(input: {
96
95
  text: string;
97
96
  metadata: Omit<SessionMetadataV1, "v" | "ts"> & Partial<Pick<SessionMetadataV1, "ts">>;
98
97
  id?: string;
99
- }): SessionMessageV1;
98
+ }): SessionRecordV1;
100
99
  assistantText(input: {
101
100
  text: string;
102
101
  metadata: Omit<SessionMetadataV1, "v" | "ts"> & Partial<Pick<SessionMetadataV1, "ts">>;
103
102
  id?: string;
104
103
  kind?: "normal" | "summary";
105
104
  source?: "egress" | "compact";
106
- }): SessionMessageV1;
105
+ }): SessionRecordV1;
107
106
  action(input: {
108
- action: AgentSessionActionRecord;
107
+ action: SessionActionRecordV1;
109
108
  metadata: Pick<SessionMetadataV1, "sessionId"> & Partial<Pick<SessionMetadataV1, "ts">>;
110
109
  id?: string;
111
- }): SessionActionMessageV1;
110
+ }): SessionActionRecordV1;
112
111
  }
113
112
  //# sourceMappingURL=JsonlSessionHistoryStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JsonlSessionHistoryStore.d.ts","sourceRoot":"","sources":["../../../../../src/executor/store/history/jsonl/JsonlSessionHistoryStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonlSessionHistoryStore.d.ts","sourceRoot":"","sources":["../../../../../src/executor/store/history/jsonl/JsonlSessionHistoryStore.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * JsonlSessionHistoryStore:基于 JSONL 的 session history 事实源。
2
+ * JsonlSessionHistoryStore:基于 JSONL 的 session records 事实源。
3
3
  *
4
4
  * 关键点(中文)
5
5
  * - 负责 `.downcity/.../messages/messages.jsonl`、`meta.json`、archive 与文件锁。
@@ -12,7 +12,7 @@ import path from "node:path";
12
12
  import { generateId } from "../../../../utils/Id.js";
13
13
  import { getLogger } from "../../../../utils/logger/Logger.js";
14
14
  import { compactSessionMessagesIfNeeded } from "../../../composer/compaction/jsonl/JsonlSessionCompactionExecutor.js";
15
- import { isSessionActionMessage, isSessionModelMessage, toSessionActionMessage, } from "../../../../executor/types/SessionMessages.js";
15
+ import { is_session_action_record, is_session_message_record, to_session_action_record, } from "../../../../executor/types/SessionRecords.js";
16
16
  function getDowncityDirPath(rootPath) {
17
17
  return path.join(rootPath, ".downcity");
18
18
  }
@@ -124,7 +124,7 @@ export class JsonlSessionHistoryStore {
124
124
  if (!input || typeof input !== "object")
125
125
  return null;
126
126
  if (input.type === "action") {
127
- return this.normalizeActionMessage(input);
127
+ return this.normalize_action_record(input);
128
128
  }
129
129
  const candidate = input;
130
130
  const role = String(candidate.role || "");
@@ -135,7 +135,7 @@ export class JsonlSessionHistoryStore {
135
135
  return null;
136
136
  return input;
137
137
  }
138
- normalizeActionMessage(input) {
138
+ normalize_action_record(input) {
139
139
  if (!input || typeof input !== "object")
140
140
  return null;
141
141
  const candidate = input;
@@ -170,7 +170,7 @@ export class JsonlSessionHistoryStore {
170
170
  };
171
171
  }
172
172
  hasStructuredAssistantParts(message) {
173
- if (!isSessionModelMessage(message) ||
173
+ if (!is_session_message_record(message) ||
174
174
  message.role !== "assistant" ||
175
175
  !Array.isArray(message.parts)) {
176
176
  return false;
@@ -183,9 +183,9 @@ export class JsonlSessionHistoryStore {
183
183
  });
184
184
  }
185
185
  mergeInflightWithFinal(inflight, finalMessage) {
186
- if (!isSessionModelMessage(finalMessage))
186
+ if (!is_session_message_record(finalMessage))
187
187
  return inflight;
188
- if (!isSessionModelMessage(inflight))
188
+ if (!is_session_message_record(inflight))
189
189
  return finalMessage;
190
190
  const final_parts = Array.isArray(finalMessage.parts)
191
191
  ? finalMessage.parts.filter((part) => part && typeof part === "object")
@@ -288,7 +288,7 @@ export class JsonlSessionHistoryStore {
288
288
  };
289
289
  await fs.writeJson(this.getMetaFilePath(), normalized, { spaces: 2 });
290
290
  }
291
- async readInflightUnsafe() {
291
+ async read_inflight_unsafe() {
292
292
  const file = this.getInflightFilePath();
293
293
  try {
294
294
  const raw = await fs.readJson(file);
@@ -298,9 +298,9 @@ export class JsonlSessionHistoryStore {
298
298
  return null;
299
299
  }
300
300
  }
301
- async writeInflightUnsafe(message) {
301
+ async write_inflight_unsafe(message) {
302
302
  const normalized = this.normalizePersistedMessage(message);
303
- if (!isSessionModelMessage(normalized) ||
303
+ if (!is_session_message_record(normalized) ||
304
304
  normalized.role !== "assistant") {
305
305
  throw new Error("inflight assistant must be an assistant UIMessage");
306
306
  }
@@ -325,7 +325,7 @@ export class JsonlSessionHistoryStore {
325
325
  await fs.writeFile(temp, payload, "utf8");
326
326
  await fs.move(temp, file, { overwrite: true });
327
327
  }
328
- async upsertActionMessageUnsafe(message) {
328
+ async upsert_action_record_unsafe(message) {
329
329
  const file = this.getMessagesFilePath();
330
330
  const raw = await fs.readFile(file, "utf8").catch(() => "");
331
331
  const messages = [];
@@ -335,7 +335,7 @@ export class JsonlSessionHistoryStore {
335
335
  const current = this.normalizePersistedMessage(JSON.parse(line));
336
336
  if (!current)
337
337
  continue;
338
- if (isSessionActionMessage(current) && current.id === message.id) {
338
+ if (is_session_action_record(current) && current.id === message.id) {
339
339
  messages.push(message);
340
340
  replaced = true;
341
341
  continue;
@@ -416,7 +416,7 @@ export class JsonlSessionHistoryStore {
416
416
  rootPath: this.rootPath,
417
417
  sessionId: this.sessionId,
418
418
  withWriteLock: (fn) => this.withWriteLock(fn),
419
- loadAll: () => this.list(),
419
+ loadAll: () => this.list_records(),
420
420
  createSummaryMessage: ({ text, archiveId, sourceRange }) => ({
421
421
  id: `a:${this.sessionId}:${generateId()}`,
422
422
  role: "assistant",
@@ -445,19 +445,19 @@ export class JsonlSessionHistoryStore {
445
445
  ...(input.onAction ? { onAction: input.onAction } : {}),
446
446
  });
447
447
  }
448
- async append(message) {
448
+ async write_record(message) {
449
449
  await this.withWriteLock(async () => {
450
450
  const normalized = this.normalizePersistedMessage(message);
451
451
  if (!normalized)
452
452
  return;
453
- if (isSessionActionMessage(normalized)) {
454
- await this.upsertActionMessageUnsafe(normalized);
453
+ if (is_session_action_record(normalized)) {
454
+ await this.upsert_action_record_unsafe(normalized);
455
455
  return;
456
456
  }
457
457
  // 关键点(中文):若上一次 assistant 在运行中中断,新的 user 到来前先把残留快照收口到正式历史,
458
- // 避免 `list()` 时旧 inflight 跑到新 user 后面,打乱时序。
459
- if (isSessionModelMessage(normalized) && normalized.role === "user") {
460
- const current_inflight = await this.readInflightUnsafe();
458
+ // 避免 `list_records()` 时旧 inflight 跑到新 user 后面,打乱时序。
459
+ if (is_session_message_record(normalized) && normalized.role === "user") {
460
+ const current_inflight = await this.read_inflight_unsafe();
461
461
  if (current_inflight) {
462
462
  await this.appendMessageUnsafe(current_inflight);
463
463
  await this.removeInflightUnsafe();
@@ -473,7 +473,7 @@ export class JsonlSessionHistoryStore {
473
473
  * - 一次锁、一次 IO,适合 fork 等需要拷贝整段历史的场景。
474
474
  * - 不处理 inflight,调用方需自行确保历史已经收口。
475
475
  */
476
- async appendMany(messages) {
476
+ async write_records(messages) {
477
477
  if (!Array.isArray(messages) || messages.length === 0)
478
478
  return;
479
479
  const normalized_list = messages
@@ -488,18 +488,18 @@ export class JsonlSessionHistoryStore {
488
488
  await fs.appendFile(this.getMessagesFilePath(), payload, "utf8");
489
489
  });
490
490
  }
491
- async readInflight() {
491
+ async read_inflight() {
492
492
  await this.ensureLayout();
493
- return this.readInflightUnsafe();
493
+ return this.read_inflight_unsafe();
494
494
  }
495
- async writeInflight(message) {
495
+ async write_inflight(message) {
496
496
  await this.withWriteLock(async () => {
497
- await this.writeInflightUnsafe(message);
497
+ await this.write_inflight_unsafe(message);
498
498
  });
499
499
  }
500
- async finalizeInflight(message) {
500
+ async finalize_inflight(message) {
501
501
  await this.withWriteLock(async () => {
502
- const current_inflight = await this.readInflightUnsafe();
502
+ const current_inflight = await this.read_inflight_unsafe();
503
503
  const normalized_message = this.normalizePersistedMessage(message);
504
504
  const final_message = current_inflight && normalized_message
505
505
  ? this.mergeInflightWithFinal(current_inflight, normalized_message)
@@ -512,7 +512,7 @@ export class JsonlSessionHistoryStore {
512
512
  }
513
513
  });
514
514
  }
515
- async list() {
515
+ async list_records() {
516
516
  await this.ensureLayout();
517
517
  const file = this.getMessagesFilePath();
518
518
  const raw = await fs.readFile(file, "utf8");
@@ -529,20 +529,20 @@ export class JsonlSessionHistoryStore {
529
529
  // ignore invalid lines
530
530
  }
531
531
  }
532
- const current_inflight = await this.readInflightUnsafe();
532
+ const current_inflight = await this.read_inflight_unsafe();
533
533
  if (current_inflight) {
534
534
  out.push(current_inflight);
535
535
  }
536
536
  return out;
537
537
  }
538
- async slice(start, end) {
539
- const msgs = await this.list();
538
+ async slice_records(start, end) {
539
+ const msgs = await this.list_records();
540
540
  const startIndex = Math.max(0, Math.floor(start));
541
541
  const endIndex = Math.max(startIndex, Math.floor(end));
542
542
  return msgs.slice(startIndex, endIndex);
543
543
  }
544
- async size() {
545
- const msgs = await this.list();
544
+ async record_count() {
545
+ const msgs = await this.list_records();
546
546
  return msgs.length;
547
547
  }
548
548
  async meta() {
@@ -586,10 +586,7 @@ export class JsonlSessionHistoryStore {
586
586
  }
587
587
  action(input) {
588
588
  const { ts, ...metadata } = input.metadata;
589
- const message = toSessionActionMessage({
590
- ...input.action,
591
- ...(input.id ? { id: input.id } : {}),
592
- }, metadata.sessionId || this.sessionId);
589
+ const message = to_session_action_record(input.id ? { ...input.action, id: input.id } : input.action, metadata.sessionId || this.sessionId);
593
590
  return {
594
591
  ...message,
595
592
  metadata: {