@downcity/agent 1.1.199 → 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 (247) 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 +7 -7
  23. package/bin/executor/Executor.d.ts.map +1 -1
  24. package/bin/executor/Executor.js +41 -33
  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 +5 -5
  29. package/bin/executor/composer/compaction/SessionCompactionComposer.d.ts.map +1 -1
  30. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.js +1 -1
  31. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.js.map +1 -1
  32. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.d.ts +4 -5
  33. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.d.ts.map +1 -1
  34. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.js +73 -40
  35. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.js.map +1 -1
  36. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.d.ts +27 -0
  37. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.d.ts.map +1 -0
  38. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.js +181 -0
  39. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.js.map +1 -0
  40. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.d.ts +45 -0
  41. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.d.ts.map +1 -0
  42. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.js +144 -0
  43. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.js.map +1 -0
  44. package/bin/executor/composer/context/LocalSessionContextComposer.d.ts +3 -3
  45. package/bin/executor/composer/context/LocalSessionContextComposer.d.ts.map +1 -1
  46. package/bin/executor/composer/context/SessionContextComposer.d.ts +3 -3
  47. package/bin/executor/composer/context/SessionContextComposer.d.ts.map +1 -1
  48. package/bin/executor/composer/history/SessionHistoryComposer.d.ts +2 -2
  49. package/bin/executor/composer/history/SessionHistoryComposer.d.ts.map +1 -1
  50. package/bin/executor/composer/history/SessionHistoryWriter.d.ts +5 -5
  51. package/bin/executor/composer/history/SessionHistoryWriter.d.ts.map +1 -1
  52. package/bin/executor/composer/history/SessionHistoryWriter.js +6 -6
  53. package/bin/executor/composer/history/SessionHistoryWriter.js.map +1 -1
  54. package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.d.ts +2 -2
  55. package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.d.ts.map +1 -1
  56. package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.js +5 -4
  57. package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.js.map +1 -1
  58. package/bin/executor/core-engine/CoreEngineMessageState.d.ts +5 -5
  59. package/bin/executor/core-engine/CoreEngineMessageState.d.ts.map +1 -1
  60. package/bin/executor/core-engine/CoreEngineMessageState.js.map +1 -1
  61. package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
  62. package/bin/executor/core-engine/CoreEngineSignals.d.ts +4 -4
  63. package/bin/executor/core-engine/CoreEngineSignals.d.ts.map +1 -1
  64. package/bin/executor/core-engine/CoreEngineSignals.js.map +1 -1
  65. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts +3 -3
  66. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts.map +1 -1
  67. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js.map +1 -1
  68. package/bin/executor/messages/AssistantResultPersistence.d.ts +5 -5
  69. package/bin/executor/messages/AssistantResultPersistence.d.ts.map +1 -1
  70. package/bin/executor/messages/AssistantResultPersistence.js +1 -1
  71. package/bin/executor/messages/AssistantResultPersistence.js.map +1 -1
  72. package/bin/executor/messages/SessionAttachmentMapper.d.ts +3 -3
  73. package/bin/executor/messages/SessionAttachmentMapper.d.ts.map +1 -1
  74. package/bin/executor/messages/SessionAttachmentMapper.js.map +1 -1
  75. package/bin/executor/messages/SessionMessageCodec.d.ts +4 -4
  76. package/bin/executor/messages/SessionMessageCodec.d.ts.map +1 -1
  77. package/bin/executor/messages/SessionMessageCodec.js +5 -5
  78. package/bin/executor/messages/SessionMessageCodec.js.map +1 -1
  79. package/bin/executor/messages/SessionMessageLog.d.ts +3 -3
  80. package/bin/executor/messages/SessionMessageLog.d.ts.map +1 -1
  81. package/bin/executor/messages/SessionMessageLog.js.map +1 -1
  82. package/bin/executor/messages/SessionStepEventMapper.d.ts +2 -2
  83. package/bin/executor/messages/SessionStepEventMapper.d.ts.map +1 -1
  84. package/bin/executor/messages/SessionStepEventMapper.js.map +1 -1
  85. package/bin/executor/messages/UserVisibleText.d.ts +3 -3
  86. package/bin/executor/messages/UserVisibleText.d.ts.map +1 -1
  87. package/bin/executor/messages/UserVisibleText.js +3 -3
  88. package/bin/executor/messages/UserVisibleText.js.map +1 -1
  89. package/bin/executor/services/ExecutorInflightService.d.ts +2 -2
  90. package/bin/executor/services/ExecutorInflightService.d.ts.map +1 -1
  91. package/bin/executor/services/ExecutorInflightService.js +11 -7
  92. package/bin/executor/services/ExecutorInflightService.js.map +1 -1
  93. package/bin/executor/store/history/SessionHistoryStore.d.ts +30 -27
  94. package/bin/executor/store/history/SessionHistoryStore.d.ts.map +1 -1
  95. package/bin/executor/store/history/SessionHistoryStore.js +3 -3
  96. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts +21 -20
  97. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts.map +1 -1
  98. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js +114 -72
  99. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js.map +1 -1
  100. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts +1 -7
  101. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts.map +1 -1
  102. package/bin/executor/tools/plugin/PluginToolSchemas.d.ts +4 -6
  103. package/bin/executor/tools/plugin/PluginToolSchemas.d.ts.map +1 -1
  104. package/bin/executor/tools/plugin/PluginToolSchemas.js +24 -10
  105. package/bin/executor/tools/plugin/PluginToolSchemas.js.map +1 -1
  106. package/bin/executor/types/SessionRecords.d.ts +162 -0
  107. package/bin/executor/types/SessionRecords.d.ts.map +1 -0
  108. package/bin/executor/types/SessionRecords.js +52 -0
  109. package/bin/executor/types/SessionRecords.js.map +1 -0
  110. package/bin/executor/types/SessionRun.d.ts +3 -3
  111. package/bin/executor/types/SessionRun.d.ts.map +1 -1
  112. package/bin/index.d.ts +2 -2
  113. package/bin/index.d.ts.map +1 -1
  114. package/bin/index.js.map +1 -1
  115. package/bin/rpc/Client.d.ts +5 -5
  116. package/bin/rpc/Client.js +4 -4
  117. package/bin/session/Session.d.ts +6 -6
  118. package/bin/session/Session.d.ts.map +1 -1
  119. package/bin/session/Session.js +8 -8
  120. package/bin/session/Session.js.map +1 -1
  121. package/bin/session/SessionTitle.d.ts +2 -2
  122. package/bin/session/SessionTitle.d.ts.map +1 -1
  123. package/bin/session/SessionTitle.js +5 -0
  124. package/bin/session/SessionTitle.js.map +1 -1
  125. package/bin/session/browse/Browse.d.ts +12 -12
  126. package/bin/session/browse/Browse.d.ts.map +1 -1
  127. package/bin/session/browse/Browse.js +37 -34
  128. package/bin/session/browse/Browse.js.map +1 -1
  129. package/bin/session/index.d.ts +1 -1
  130. package/bin/session/index.js +1 -1
  131. package/bin/session/runtime/SessionPromptRuntime.d.ts +3 -3
  132. package/bin/session/runtime/SessionPromptRuntime.d.ts.map +1 -1
  133. package/bin/session/services/SessionStateService.d.ts +11 -12
  134. package/bin/session/services/SessionStateService.d.ts.map +1 -1
  135. package/bin/session/services/SessionStateService.js +43 -69
  136. package/bin/session/services/SessionStateService.js.map +1 -1
  137. package/bin/session/services/SessionTurnService.js +3 -3
  138. package/bin/session/services/SessionTurnService.js.map +1 -1
  139. package/bin/session/services/SessionViewService.d.ts +4 -4
  140. package/bin/session/services/SessionViewService.d.ts.map +1 -1
  141. package/bin/session/services/SessionViewService.js +26 -36
  142. package/bin/session/services/SessionViewService.js.map +1 -1
  143. package/bin/session/storage/Persistence.d.ts +4 -4
  144. package/bin/session/storage/Persistence.d.ts.map +1 -1
  145. package/bin/session/storage/RuntimeSessionPort.d.ts +2 -2
  146. package/bin/session/storage/RuntimeSessionPort.d.ts.map +1 -1
  147. package/bin/session/storage/RuntimeSessionPort.js +4 -4
  148. package/bin/session/storage/RuntimeSessionPort.js.map +1 -1
  149. package/bin/types/agent/AgentTypes.d.ts +2 -2
  150. package/bin/types/agent/AgentTypes.d.ts.map +1 -1
  151. package/bin/types/agent/SessionActor.d.ts +11 -11
  152. package/bin/types/agent/SessionActor.d.ts.map +1 -1
  153. package/bin/types/agent/SessionTypes.d.ts +22 -22
  154. package/bin/types/agent/SessionTypes.d.ts.map +1 -1
  155. package/bin/types/executor/SessionRunContext.d.ts +7 -7
  156. package/bin/types/executor/SessionRunContext.d.ts.map +1 -1
  157. package/bin/types/rpc/RpcProtocol.d.ts +6 -6
  158. package/bin/types/runtime/agent/AgentContext.d.ts +7 -7
  159. package/bin/types/runtime/agent/AgentContext.d.ts.map +1 -1
  160. package/bin/types/sdk/AgentSessionAction.d.ts +26 -0
  161. package/bin/types/sdk/AgentSessionAction.d.ts.map +1 -0
  162. package/bin/types/sdk/AgentSessionAction.js +10 -0
  163. package/bin/types/sdk/AgentSessionAction.js.map +1 -0
  164. package/bin/types/sdk/AgentSessionEvent.d.ts +2 -2
  165. package/bin/types/sdk/AgentSessionEvent.d.ts.map +1 -1
  166. package/bin/types/sdk/AgentSessionTurn.d.ts +2 -2
  167. package/bin/types/sdk/AgentSessionTurn.d.ts.map +1 -1
  168. package/package.json +3 -3
  169. package/scripts/agent-ready.test.mjs +1 -1
  170. package/scripts/city-model-tool-loop.test.mjs +36 -4
  171. package/scripts/plugin-tool-bridge.test.mjs +13 -0
  172. package/scripts/session-action-message.test.mjs +199 -0
  173. package/scripts/session-compaction-prompts.test.mjs +97 -0
  174. package/scripts/session-history-archive.test.mjs +8 -8
  175. package/scripts/session-history-inflight.test.mjs +10 -10
  176. package/scripts/session-list-title.test.mjs +9 -9
  177. package/scripts/session-title-event.test.mjs +12 -10
  178. package/src/agent/local/Agent.ts +16 -22
  179. package/src/agent/local/services/{AgentSessionManager.ts → AgentSessions.ts} +16 -32
  180. package/src/agent/remote/RemoteAgent.ts +58 -23
  181. package/src/agent/remote/RemoteSession.ts +10 -8
  182. package/src/agent/remote/RemoteTransport.ts +5 -5
  183. package/src/agent/remote/transports/HttpRemoteAgentTransport.ts +10 -10
  184. package/src/agent/remote/transports/RpcRemoteAgentTransport.ts +6 -6
  185. package/src/executor/Executor.ts +51 -41
  186. package/src/executor/SessionRunScope.ts +1 -1
  187. package/src/executor/composer/compaction/SessionCompactionComposer.ts +5 -5
  188. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.ts +1 -1
  189. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.ts +91 -52
  190. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.ts +197 -0
  191. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.ts +162 -0
  192. package/src/executor/composer/context/LocalSessionContextComposer.ts +5 -5
  193. package/src/executor/composer/context/SessionContextComposer.ts +5 -5
  194. package/src/executor/composer/history/SessionHistoryComposer.ts +2 -2
  195. package/src/executor/composer/history/SessionHistoryWriter.ts +10 -10
  196. package/src/executor/composer/history/jsonl/JsonlSessionHistoryComposer.ts +13 -10
  197. package/src/executor/core-engine/CoreEngineMessageState.ts +8 -8
  198. package/src/executor/core-engine/CoreEngineRunner.ts +7 -7
  199. package/src/executor/core-engine/CoreEngineSignals.ts +7 -7
  200. package/src/executor/core-engine/CoreEngineUiStreamCollector.ts +5 -5
  201. package/src/executor/messages/AssistantResultPersistence.ts +8 -8
  202. package/src/executor/messages/SessionAttachmentMapper.ts +11 -11
  203. package/src/executor/messages/SessionMessageCodec.ts +10 -10
  204. package/src/executor/messages/SessionMessageLog.ts +3 -3
  205. package/src/executor/messages/SessionStepEventMapper.ts +5 -5
  206. package/src/executor/messages/UserVisibleText.ts +9 -9
  207. package/src/executor/services/ExecutorInflightService.ts +13 -9
  208. package/src/executor/store/history/SessionHistoryStore.ts +32 -28
  209. package/src/executor/store/history/jsonl/JsonlSessionHistoryStore.ts +146 -95
  210. package/src/executor/tools/plugin/PluginToolSchemas.ts +24 -10
  211. package/src/executor/types/SessionRecords.ts +217 -0
  212. package/src/executor/types/SessionRun.ts +5 -5
  213. package/src/index.ts +9 -10
  214. package/src/rpc/Client.ts +9 -9
  215. package/src/session/Session.ts +10 -10
  216. package/src/session/SessionTitle.ts +7 -4
  217. package/src/session/browse/Browse.ts +66 -58
  218. package/src/session/index.ts +1 -1
  219. package/src/session/runtime/SessionPromptRuntime.ts +6 -6
  220. package/src/session/services/SessionStateService.ts +61 -86
  221. package/src/session/services/SessionTurnService.ts +7 -7
  222. package/src/session/services/SessionViewService.ts +35 -45
  223. package/src/session/storage/Persistence.ts +6 -6
  224. package/src/session/storage/RuntimeSessionPort.ts +6 -6
  225. package/src/types/agent/AgentTypes.ts +4 -4
  226. package/src/types/agent/SessionActor.ts +12 -12
  227. package/src/types/agent/SessionTypes.ts +22 -22
  228. package/src/types/executor/SessionRunContext.ts +12 -12
  229. package/src/types/rpc/RpcProtocol.ts +6 -6
  230. package/src/types/runtime/agent/AgentContext.ts +8 -8
  231. package/src/types/sdk/AgentSessionAction.ts +35 -0
  232. package/src/types/sdk/AgentSessionEvent.ts +2 -2
  233. package/src/types/sdk/AgentSessionTurn.ts +2 -2
  234. package/tsconfig.tsbuildinfo +1 -1
  235. package/bin/agent/local/services/AgentSessionManager.d.ts.map +0 -1
  236. package/bin/agent/local/services/AgentSessionManager.js.map +0 -1
  237. package/bin/executor/types/SessionMessages.d.ts +0 -118
  238. package/bin/executor/types/SessionMessages.d.ts.map +0 -1
  239. package/bin/executor/types/SessionMessages.js +0 -28
  240. package/bin/executor/types/SessionMessages.js.map +0 -1
  241. package/bin/types/sdk/AgentSessionOperation.d.ts +0 -99
  242. package/bin/types/sdk/AgentSessionOperation.d.ts.map +0 -1
  243. package/bin/types/sdk/AgentSessionOperation.js +0 -10
  244. package/bin/types/sdk/AgentSessionOperation.js.map +0 -1
  245. package/scripts/session-operation-message.test.mjs +0 -197
  246. package/src/executor/types/SessionMessages.ts +0 -148
  247. package/src/types/sdk/AgentSessionOperation.ts +0 -125
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentSessionManager.d.ts","sourceRoot":"","sources":["../../../../src/agent/local/services/AgentSessionManager.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentSessionManager.js","sourceRoot":"","sources":["../../../../src/agent/local/services/AgentSessionManager.ts"],"names":[],"mappings":"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"}
@@ -1,118 +0,0 @@
1
- /**
2
- * SessionMessage 类型定义。
3
- *
4
- * 关键点(中文)
5
- * - 这里统一描述 session 消息落盘格式与元信息结构。
6
- * - session 的唯一事实源是消息 JSONL,模型消息继续使用 AI SDK `UIMessage`。
7
- * - 这些类型会被 history Store、history Composer、compact、control UI、task runtime 共同复用。
8
- */
9
- import type { UIMessage } from "ai";
10
- import type { JsonObject } from "../../types/common/Json.js";
11
- import type { AgentSessionOperationRecord } from "../../types/sdk/AgentSessionOperation.js";
12
- /**
13
- * Session 消息:以 UIMessage[] 作为唯一事实源。
14
- *
15
- * 关键点(中文)
16
- * - 持久化存储在 `.downcity/agents/<encodedAgentId>/sessions/<encodedSessionId>/messages/messages.jsonl`
17
- * - 默认只存 `role=user|assistant|operation`
18
- * - compact 会把更早消息压缩为一条 `assistant` 摘要消息
19
- * - operation 只用于 UI timeline,不进入 LLM 输入
20
- */
21
- export type SessionMessageKind = "normal" | "summary" | "operation";
22
- /**
23
- * Session 消息来源类型。
24
- *
25
- * 说明(中文)
26
- * - `ingress`:外部输入写入的 user 消息。
27
- * - `egress`:模型或 agent 输出写入的 assistant 消息。
28
- * - `compact`:由 compact 过程生成的摘要消息。
29
- */
30
- export type SessionMessageSource = "ingress" | "egress" | "compact" | "operation";
31
- /**
32
- * 入站消息细分类型。
33
- *
34
- * 说明(中文)
35
- * - 当前仅保留 `exec`,表示这条入站消息可触发一次 session 执行。
36
- */
37
- export type SessionIngressKind = "exec";
38
- /**
39
- * 摘要消息对应的原始消息范围。
40
- */
41
- export type SessionMessageSourceRangeV1 = {
42
- /** 起始消息 ID。 */
43
- fromId: string;
44
- /** 结束消息 ID。 */
45
- toId: string;
46
- /** 被覆盖的原始消息数量。 */
47
- count: number;
48
- };
49
- /**
50
- * Session 消息元信息。
51
- */
52
- export type SessionMetadataV1 = {
53
- /** 元信息 schema 版本号。 */
54
- v: 1;
55
- /** 当前消息写入时的毫秒时间戳。 */
56
- ts: number;
57
- /** 当前消息所属的 session ID。 */
58
- sessionId: string;
59
- /** 当前消息是普通消息还是摘要消息。 */
60
- kind?: SessionMessageKind;
61
- /** 当前消息来自入站、出站还是 compact。 */
62
- source?: SessionMessageSource;
63
- /** compact 摘要对应的 archive 文件 ID,用于用户历史按层读取更早消息。 */
64
- archiveId?: string;
65
- /** compact 摘要所覆盖的原始消息范围。 */
66
- sourceRange?: SessionMessageSourceRangeV1;
67
- /**
68
- * operation message 对应的结构化操作记录。
69
- *
70
- * 说明(中文)
71
- * - 仅当 `kind=operation` 或 `source=operation` 时存在。
72
- * - 该字段供前端恢复时间线状态,不会进入 LLM 输入。
73
- */
74
- operation?: AgentSessionOperationRecord;
75
- /**
76
- * 扩展元信息。
77
- *
78
- * 约定(中文)
79
- * - 对 `source=ingress` 的 user 消息,可选写入 `extra.ingressKind`:
80
- * - `exec`:可触发 Session 执行的输入
81
- */
82
- extra?: JsonObject;
83
- };
84
- /**
85
- * 模型可消费的 Session UI 消息结构。
86
- */
87
- export type SessionModelMessageV1 = UIMessage<SessionMetadataV1>;
88
- /**
89
- * operation 角色的 Session 消息结构。
90
- *
91
- * 关键点(中文)
92
- * - `operation` 不是 AI SDK 原生模型 role。
93
- * - 它只存在于 JSONL history 与前端 timeline,进入 LLM 前必须过滤。
94
- */
95
- export type SessionOperationMessageV1 = Omit<SessionModelMessageV1, "role"> & {
96
- /** 消息角色固定为 `operation`。 */
97
- role: "operation";
98
- };
99
- /**
100
- * Session 持久化消息结构。
101
- */
102
- export type SessionMessageV1 = SessionModelMessageV1 | SessionOperationMessageV1;
103
- /**
104
- * user 角色的 Session 消息结构。
105
- */
106
- export type SessionUserMessageV1 = SessionMessageV1 & {
107
- /** 消息角色固定为 `user`。 */
108
- role: "user";
109
- };
110
- /**
111
- * 判断一条消息是否为 operation message。
112
- */
113
- export declare function isSessionOperationMessage(message: SessionMessageV1 | null | undefined): boolean;
114
- /**
115
- * 判断一条消息是否为模型可消费的 UIMessage。
116
- */
117
- export declare function isSessionModelMessage(message: SessionMessageV1 | null | undefined): message is SessionModelMessageV1;
118
- //# sourceMappingURL=SessionMessages.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionMessages.d.ts","sourceRoot":"","sources":["../../../src/executor/types/SessionMessages.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAExF;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,QAAQ,GACR,SAAS,GACT,WAAW,CAAC;AAEhB;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,eAAe;IACf,MAAM,EAAE,MAAM,CAAC;IACf,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,sBAAsB;IACtB,CAAC,EAAE,CAAC,CAAC;IACL,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,6BAA6B;IAC7B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG;IAC5E,2BAA2B;IAC3B,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,yBAAyB,CAAC;AAEjF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IACpD,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAC3C,OAAO,CAQT;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAC3C,OAAO,IAAI,qBAAqB,CAGlC"}
@@ -1,28 +0,0 @@
1
- /**
2
- * SessionMessage 类型定义。
3
- *
4
- * 关键点(中文)
5
- * - 这里统一描述 session 消息落盘格式与元信息结构。
6
- * - session 的唯一事实源是消息 JSONL,模型消息继续使用 AI SDK `UIMessage`。
7
- * - 这些类型会被 history Store、history Composer、compact、control UI、task runtime 共同复用。
8
- */
9
- /**
10
- * 判断一条消息是否为 operation message。
11
- */
12
- export function isSessionOperationMessage(message) {
13
- if (!message || typeof message !== "object")
14
- return false;
15
- const metadata = (message.metadata || null);
16
- return (message.role === "operation" ||
17
- metadata?.kind === "operation" ||
18
- metadata?.source === "operation");
19
- }
20
- /**
21
- * 判断一条消息是否为模型可消费的 UIMessage。
22
- */
23
- export function isSessionModelMessage(message) {
24
- if (!message || typeof message !== "object")
25
- return false;
26
- return message.role !== "operation" && !isSessionOperationMessage(message);
27
- }
28
- //# sourceMappingURL=SessionMessages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionMessages.js","sourceRoot":"","sources":["../../../src/executor/types/SessionMessages.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqHH;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAA4C;IAE5C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAA6B,CAAC;IACxE,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,WAAW;QAC5B,QAAQ,EAAE,IAAI,KAAK,WAAW;QAC9B,QAAQ,EAAE,MAAM,KAAK,WAAW,CACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAA4C;IAE5C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAC7E,CAAC"}
@@ -1,99 +0,0 @@
1
- /**
2
- * Agent Session operation 类型定义。
3
- *
4
- * 关键点(中文)
5
- * - operation 描述 session 内部正在发生的辅助操作,不代表 assistant 正文。
6
- * - operation 可以同时作为订阅事件发布,也可以作为 UIMessage 持久化到 JSONL。
7
- * - operation message 只用于前端时间线与调试,不应进入 LLM 输入。
8
- */
9
- import type { JsonValue } from "../../types/common/Json.js";
10
- /**
11
- * Session operation 当前状态。
12
- */
13
- export type AgentSessionOperationStatus = "started" | "progress" | "finished" | "skipped" | "failed";
14
- /**
15
- * Session operation 名称。
16
- *
17
- * 说明(中文)
18
- * - 内置名称用于 SDK 与前端约定常见辅助操作。
19
- * - 字符串扩展允许 plugin 或宿主运行时声明自己的 operation。
20
- */
21
- export type AgentSessionOperationName = "compacting" | "model-switching" | "history-forking" | (string & {});
22
- /**
23
- * Session operation 记录。
24
- */
25
- export interface AgentSessionOperationRecord {
26
- /**
27
- * 同一个 operation 生命周期内稳定复用的 ID。
28
- */
29
- operationId: string;
30
- /**
31
- * 当前 operation 名称。
32
- */
33
- name: AgentSessionOperationName;
34
- /**
35
- * 当前 operation 状态。
36
- */
37
- status: AgentSessionOperationStatus;
38
- /**
39
- * 当前 operation 关联的 turn 标识。
40
- *
41
- * 说明(中文)
42
- * - turn 内触发的 operation 应写入该字段。
43
- * - session 级 operation 可以省略。
44
- */
45
- turnId?: string;
46
- /**
47
- * 面向用户展示的短文本。
48
- */
49
- label?: string;
50
- /**
51
- * 机器可读原因。
52
- *
53
- * 示例(中文)
54
- * - `under_budget`:未达到压缩阈值。
55
- * - `summary_fallback`:摘要生成失败后使用降级摘要。
56
- */
57
- reason?: string;
58
- /**
59
- * 当前 operation 进度,范围 0 到 1。
60
- *
61
- * 说明(中文)
62
- * - 无法估算进度时省略。
63
- */
64
- progress?: number;
65
- /**
66
- * operation 完成后产生的轻量结果。
67
- */
68
- result?: JsonValue;
69
- /**
70
- * operation 失败时的错误文本。
71
- */
72
- error?: string;
73
- /**
74
- * 是否建议前端展示。
75
- *
76
- * 说明(中文)
77
- * - 默认视为 `true`。
78
- * - 调试或审计类辅助事件可显式写入 `false`。
79
- */
80
- visible?: boolean;
81
- }
82
- /**
83
- * Session operation 订阅事件。
84
- */
85
- export interface AgentSessionOperationEvent extends AgentSessionOperationRecord {
86
- /**
87
- * 当前事件类型。
88
- */
89
- type: "operation";
90
- /**
91
- * 当前 session 唯一标识。
92
- */
93
- sessionId: string;
94
- }
95
- /**
96
- * Session operation 发布回调。
97
- */
98
- export type AgentSessionOperationCallback = (operation: AgentSessionOperationEvent) => Promise<void>;
99
- //# sourceMappingURL=AgentSessionOperation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentSessionOperation.d.ts","sourceRoot":"","sources":["../../../src/types/sdk/AgentSessionOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,2BAA2B,GACnC,SAAS,GACT,UAAU,GACV,UAAU,GACV,SAAS,GACT,QAAQ,CAAC;AAEb;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GACjC,YAAY,GACZ,iBAAiB,GACjB,iBAAiB,GACjB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,EAAE,yBAAyB,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,2BAA2B,CAAC;IAEpC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,2BAA2B;IAC7E;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAC1C,SAAS,EAAE,0BAA0B,KAClC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Agent Session operation 类型定义。
3
- *
4
- * 关键点(中文)
5
- * - operation 描述 session 内部正在发生的辅助操作,不代表 assistant 正文。
6
- * - operation 可以同时作为订阅事件发布,也可以作为 UIMessage 持久化到 JSONL。
7
- * - operation message 只用于前端时间线与调试,不应进入 LLM 输入。
8
- */
9
- export {};
10
- //# sourceMappingURL=AgentSessionOperation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentSessionOperation.js","sourceRoot":"","sources":["../../../src/types/sdk/AgentSessionOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -1,197 +0,0 @@
1
- /**
2
- * @file 验证 operation message 的持久化、模型输入过滤与 timeline 投影。
3
- *
4
- * 关键点(中文)
5
- * - operation message 会作为 operation role 消息写入 JSONL。
6
- * - history composer 组装 LLM 输入时必须过滤 operation message。
7
- * - timeline view 可以把 operation message 投影成前端可识别的 operation 事件。
8
- */
9
-
10
- import test from "node:test";
11
- import assert from "node:assert/strict";
12
- import os from "node:os";
13
- import path from "node:path";
14
- import fs from "node:fs/promises";
15
-
16
- import { JsonlSessionHistoryStore } from "../bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js";
17
- import { JsonlSessionHistoryComposer } from "../bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.js";
18
- import { toSessionTimelineEvents } from "../bin/session/browse/Browse.js";
19
- import { Agent } from "../bin/index.js";
20
-
21
- test("operation message is persisted but filtered from LLM history", async () => {
22
- const root_path = await fs.mkdtemp(
23
- path.join(os.tmpdir(), "downcity-agent-operation-message-"),
24
- );
25
- const session_id = "operation_session";
26
- const store = new JsonlSessionHistoryStore({
27
- rootPath: root_path,
28
- agentId: "operation_agent",
29
- sessionId: session_id,
30
- });
31
- const composer = new JsonlSessionHistoryComposer({ store });
32
-
33
- await store.append(
34
- store.userText({
35
- text: "hello",
36
- metadata: { sessionId: session_id },
37
- id: "u:1",
38
- }),
39
- );
40
- await store.append(
41
- store.operation({
42
- operation: {
43
- operationId: "op-1",
44
- name: "compacting",
45
- status: "finished",
46
- label: "Session history compacted",
47
- turnId: "turn-1",
48
- },
49
- metadata: { sessionId: session_id },
50
- id: "op:1",
51
- }),
52
- );
53
- await store.append(
54
- store.assistantText({
55
- text: "world",
56
- metadata: { sessionId: session_id },
57
- id: "a:1",
58
- }),
59
- );
60
-
61
- const persisted_messages = await store.list();
62
- assert.equal(persisted_messages.length, 3);
63
- assert.equal(persisted_messages[1].role, "operation");
64
- assert.equal(persisted_messages[1].metadata.kind, "operation");
65
- assert.equal(persisted_messages[1].metadata.operation.operationId, "op-1");
66
-
67
- const model_messages = await composer.prepare({
68
- query: "",
69
- tools: {},
70
- system: [],
71
- model: {},
72
- retryCount: 0,
73
- });
74
- assert.deepEqual(
75
- model_messages.map((message) => message.id),
76
- ["u:1", "a:1"],
77
- );
78
-
79
- const timeline_events = toSessionTimelineEvents(persisted_messages[1]);
80
- assert.equal(timeline_events.length, 1);
81
- assert.equal(timeline_events[0].role, "operation");
82
- assert.equal(timeline_events[0].operationId, "op-1");
83
- assert.equal(timeline_events[0].operationName, "compacting");
84
- assert.equal(timeline_events[0].operationStatus, "finished");
85
- assert.equal(timeline_events[0].text, "Session history compacted");
86
-
87
- const hidden_started_events = toSessionTimelineEvents(
88
- store.operation({
89
- operation: {
90
- operationId: "op-started",
91
- name: "compacting",
92
- status: "started",
93
- label: "Compacting session history",
94
- },
95
- metadata: { sessionId: session_id },
96
- id: "op:started",
97
- }),
98
- );
99
- assert.deepEqual(hidden_started_events, []);
100
- });
101
-
102
- test("session.set persists and publishes model-switching operations", async () => {
103
- const agent_path = await fs.mkdtemp(
104
- path.join(os.tmpdir(), "downcity-agent-model-switching-"),
105
- );
106
- const agent = new Agent({
107
- id: "model_switching_agent",
108
- path: agent_path,
109
- });
110
- try {
111
- const session = await agent.session_collection().create_session({
112
- sessionId: "model_switching_session",
113
- });
114
- const events = [];
115
- const unsubscribe = session.subscribe((event) => {
116
- if (event.type === "operation") events.push(event);
117
- });
118
-
119
- await session.set({
120
- model: {
121
- modelId: "test-model",
122
- provider: "test",
123
- },
124
- });
125
- unsubscribe();
126
-
127
- assert.deepEqual(
128
- events.map((event) => `${event.name}:${event.status}`),
129
- ["model-switching:started", "model-switching:finished"],
130
- );
131
-
132
- const history = await session.history({ view: "timeline" });
133
- const operation_events = history.items.filter(
134
- (item) => item.role === "operation",
135
- );
136
- assert.deepEqual(
137
- operation_events.map((event) => `${event.operationName}:${event.operationStatus}`),
138
- ["model-switching:finished"],
139
- );
140
- } finally {
141
- await agent.dispose();
142
- }
143
- });
144
-
145
- test("session.fork persists and publishes history-forking operations on source session", async () => {
146
- const agent_path = await fs.mkdtemp(
147
- path.join(os.tmpdir(), "downcity-agent-history-forking-"),
148
- );
149
- const agent = new Agent({
150
- id: "history_forking_agent",
151
- path: agent_path,
152
- });
153
- try {
154
- const session = await agent.session_collection().create_session({
155
- sessionId: "history_forking_session",
156
- });
157
- await session.set({
158
- model: {
159
- modelId: "fork-test-model",
160
- provider: "test",
161
- },
162
- });
163
- await session.appendUserMessage({ text: "source message" });
164
-
165
- const events = [];
166
- const unsubscribe = session.subscribe((event) => {
167
- if (event.type === "operation" && event.name === "history-forking") {
168
- events.push(event);
169
- }
170
- });
171
- const forked = await session.fork();
172
- unsubscribe();
173
-
174
- assert.deepEqual(
175
- events.map((event) => `${event.name}:${event.status}`),
176
- ["history-forking:started", "history-forking:finished"],
177
- );
178
- assert.notEqual(forked.id, session.id);
179
-
180
- const source_history = await session.history({ view: "timeline" });
181
- const source_fork_operations = source_history.items.filter(
182
- (item) => item.operationName === "history-forking",
183
- );
184
- assert.deepEqual(
185
- source_fork_operations.map((event) => event.operationStatus),
186
- ["finished"],
187
- );
188
-
189
- const forked_history = await forked.history({ view: "timeline" });
190
- const forked_model_operations = forked_history.items.filter(
191
- (item) => item.operationName === "model-switching",
192
- );
193
- assert.equal(forked_model_operations.length, 1);
194
- } finally {
195
- await agent.dispose();
196
- }
197
- });
@@ -1,148 +0,0 @@
1
- /**
2
- * SessionMessage 类型定义。
3
- *
4
- * 关键点(中文)
5
- * - 这里统一描述 session 消息落盘格式与元信息结构。
6
- * - session 的唯一事实源是消息 JSONL,模型消息继续使用 AI SDK `UIMessage`。
7
- * - 这些类型会被 history Store、history Composer、compact、control UI、task runtime 共同复用。
8
- */
9
-
10
- import type { UIMessage } from "ai";
11
- import type { JsonObject } from "@/types/common/Json.js";
12
- import type { AgentSessionOperationRecord } from "@/types/sdk/AgentSessionOperation.js";
13
-
14
- /**
15
- * Session 消息:以 UIMessage[] 作为唯一事实源。
16
- *
17
- * 关键点(中文)
18
- * - 持久化存储在 `.downcity/agents/<encodedAgentId>/sessions/<encodedSessionId>/messages/messages.jsonl`
19
- * - 默认只存 `role=user|assistant|operation`
20
- * - compact 会把更早消息压缩为一条 `assistant` 摘要消息
21
- * - operation 只用于 UI timeline,不进入 LLM 输入
22
- */
23
- export type SessionMessageKind = "normal" | "summary" | "operation";
24
-
25
- /**
26
- * Session 消息来源类型。
27
- *
28
- * 说明(中文)
29
- * - `ingress`:外部输入写入的 user 消息。
30
- * - `egress`:模型或 agent 输出写入的 assistant 消息。
31
- * - `compact`:由 compact 过程生成的摘要消息。
32
- */
33
- export type SessionMessageSource =
34
- | "ingress"
35
- | "egress"
36
- | "compact"
37
- | "operation";
38
-
39
- /**
40
- * 入站消息细分类型。
41
- *
42
- * 说明(中文)
43
- * - 当前仅保留 `exec`,表示这条入站消息可触发一次 session 执行。
44
- */
45
- export type SessionIngressKind = "exec";
46
-
47
- /**
48
- * 摘要消息对应的原始消息范围。
49
- */
50
- export type SessionMessageSourceRangeV1 = {
51
- /** 起始消息 ID。 */
52
- fromId: string;
53
- /** 结束消息 ID。 */
54
- toId: string;
55
- /** 被覆盖的原始消息数量。 */
56
- count: number;
57
- };
58
-
59
- /**
60
- * Session 消息元信息。
61
- */
62
- export type SessionMetadataV1 = {
63
- /** 元信息 schema 版本号。 */
64
- v: 1;
65
- /** 当前消息写入时的毫秒时间戳。 */
66
- ts: number;
67
- /** 当前消息所属的 session ID。 */
68
- sessionId: string;
69
- /** 当前消息是普通消息还是摘要消息。 */
70
- kind?: SessionMessageKind;
71
- /** 当前消息来自入站、出站还是 compact。 */
72
- source?: SessionMessageSource;
73
- /** compact 摘要对应的 archive 文件 ID,用于用户历史按层读取更早消息。 */
74
- archiveId?: string;
75
- /** compact 摘要所覆盖的原始消息范围。 */
76
- sourceRange?: SessionMessageSourceRangeV1;
77
- /**
78
- * operation message 对应的结构化操作记录。
79
- *
80
- * 说明(中文)
81
- * - 仅当 `kind=operation` 或 `source=operation` 时存在。
82
- * - 该字段供前端恢复时间线状态,不会进入 LLM 输入。
83
- */
84
- operation?: AgentSessionOperationRecord;
85
- /**
86
- * 扩展元信息。
87
- *
88
- * 约定(中文)
89
- * - 对 `source=ingress` 的 user 消息,可选写入 `extra.ingressKind`:
90
- * - `exec`:可触发 Session 执行的输入
91
- */
92
- extra?: JsonObject;
93
- };
94
-
95
- /**
96
- * 模型可消费的 Session UI 消息结构。
97
- */
98
- export type SessionModelMessageV1 = UIMessage<SessionMetadataV1>;
99
-
100
- /**
101
- * operation 角色的 Session 消息结构。
102
- *
103
- * 关键点(中文)
104
- * - `operation` 不是 AI SDK 原生模型 role。
105
- * - 它只存在于 JSONL history 与前端 timeline,进入 LLM 前必须过滤。
106
- */
107
- export type SessionOperationMessageV1 = Omit<SessionModelMessageV1, "role"> & {
108
- /** 消息角色固定为 `operation`。 */
109
- role: "operation";
110
- };
111
-
112
- /**
113
- * Session 持久化消息结构。
114
- */
115
- export type SessionMessageV1 = SessionModelMessageV1 | SessionOperationMessageV1;
116
-
117
- /**
118
- * user 角色的 Session 消息结构。
119
- */
120
- export type SessionUserMessageV1 = SessionMessageV1 & {
121
- /** 消息角色固定为 `user`。 */
122
- role: "user";
123
- };
124
-
125
- /**
126
- * 判断一条消息是否为 operation message。
127
- */
128
- export function isSessionOperationMessage(
129
- message: SessionMessageV1 | null | undefined,
130
- ): boolean {
131
- if (!message || typeof message !== "object") return false;
132
- const metadata = (message.metadata || null) as SessionMetadataV1 | null;
133
- return (
134
- message.role === "operation" ||
135
- metadata?.kind === "operation" ||
136
- metadata?.source === "operation"
137
- );
138
- }
139
-
140
- /**
141
- * 判断一条消息是否为模型可消费的 UIMessage。
142
- */
143
- export function isSessionModelMessage(
144
- message: SessionMessageV1 | null | undefined,
145
- ): message is SessionModelMessageV1 {
146
- if (!message || typeof message !== "object") return false;
147
- return message.role !== "operation" && !isSessionOperationMessage(message);
148
- }