@downcity/agent 1.1.228 → 1.1.236

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 (221) hide show
  1. package/bin/agent/local/Agent.d.ts +6 -1
  2. package/bin/agent/local/Agent.d.ts.map +1 -1
  3. package/bin/agent/local/Agent.js +30 -3
  4. package/bin/agent/local/Agent.js.map +1 -1
  5. package/bin/agent/local/services/AgentSessions.d.ts +23 -0
  6. package/bin/agent/local/services/AgentSessions.d.ts.map +1 -1
  7. package/bin/agent/local/services/AgentSessions.js +44 -0
  8. package/bin/agent/local/services/AgentSessions.js.map +1 -1
  9. package/bin/agent/remote/RemoteSession.d.ts +2 -0
  10. package/bin/agent/remote/RemoteSession.d.ts.map +1 -1
  11. package/bin/agent/remote/RemoteSession.js +4 -0
  12. package/bin/agent/remote/RemoteSession.js.map +1 -1
  13. package/bin/agent/remote/RemoteTransport.d.ts +2 -0
  14. package/bin/agent/remote/RemoteTransport.d.ts.map +1 -1
  15. package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts +1 -0
  16. package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts.map +1 -1
  17. package/bin/agent/remote/transports/HttpRemoteAgentTransport.js +11 -7
  18. package/bin/agent/remote/transports/HttpRemoteAgentTransport.js.map +1 -1
  19. package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts +1 -0
  20. package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts.map +1 -1
  21. package/bin/agent/remote/transports/RpcRemoteAgentTransport.js +3 -0
  22. package/bin/agent/remote/transports/RpcRemoteAgentTransport.js.map +1 -1
  23. package/bin/executor/Executor.d.ts +43 -0
  24. package/bin/executor/Executor.d.ts.map +1 -1
  25. package/bin/executor/Executor.js +127 -7
  26. package/bin/executor/Executor.js.map +1 -1
  27. package/bin/executor/composer/compaction/SessionCompactionComposer.d.ts +10 -0
  28. package/bin/executor/composer/compaction/SessionCompactionComposer.d.ts.map +1 -1
  29. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.d.ts +0 -10
  30. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.d.ts.map +1 -1
  31. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.js +4 -34
  32. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.js.map +1 -1
  33. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.d.ts +1 -3
  34. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.d.ts.map +1 -1
  35. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.js +7 -59
  36. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.js.map +1 -1
  37. package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts +38 -0
  38. package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts.map +1 -0
  39. package/bin/executor/core-engine/CoreEngineContextCompaction.js +392 -0
  40. package/bin/executor/core-engine/CoreEngineContextCompaction.js.map +1 -0
  41. package/bin/executor/core-engine/CoreEngineMessageState.d.ts +15 -0
  42. package/bin/executor/core-engine/CoreEngineMessageState.d.ts.map +1 -1
  43. package/bin/executor/core-engine/CoreEngineMessageState.js +20 -0
  44. package/bin/executor/core-engine/CoreEngineMessageState.js.map +1 -1
  45. package/bin/executor/core-engine/CoreEngineRunner.d.ts +15 -0
  46. package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -1
  47. package/bin/executor/core-engine/CoreEngineRunner.js +150 -35
  48. package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
  49. package/bin/executor/store/history/SessionHistoryStore.d.ts +7 -23
  50. package/bin/executor/store/history/SessionHistoryStore.d.ts.map +1 -1
  51. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts.map +1 -1
  52. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js +2 -4
  53. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js.map +1 -1
  54. package/bin/executor/tools/plugin/PluginToolBridge.d.ts.map +1 -1
  55. package/bin/executor/tools/plugin/PluginToolBridge.js +4 -2
  56. package/bin/executor/tools/plugin/PluginToolBridge.js.map +1 -1
  57. package/bin/executor/types/SessionRun.d.ts +8 -0
  58. package/bin/executor/types/SessionRun.d.ts.map +1 -1
  59. package/bin/index.d.ts +3 -2
  60. package/bin/index.d.ts.map +1 -1
  61. package/bin/index.js +2 -2
  62. package/bin/index.js.map +1 -1
  63. package/bin/model/CityModelAdapter.d.ts +6 -0
  64. package/bin/model/CityModelAdapter.d.ts.map +1 -1
  65. package/bin/model/CityModelAdapter.js +13 -0
  66. package/bin/model/CityModelAdapter.js.map +1 -1
  67. package/bin/plugin/core/PluginLocalExecution.js +3 -3
  68. package/bin/plugin/core/PluginLocalExecution.js.map +1 -1
  69. package/bin/plugin/core/PluginRegistry.d.ts +41 -2
  70. package/bin/plugin/core/PluginRegistry.d.ts.map +1 -1
  71. package/bin/plugin/core/PluginRegistry.js +145 -6
  72. package/bin/plugin/core/PluginRegistry.js.map +1 -1
  73. package/bin/rpc/Client.d.ts +4 -0
  74. package/bin/rpc/Client.d.ts.map +1 -1
  75. package/bin/rpc/Client.js +11 -0
  76. package/bin/rpc/Client.js.map +1 -1
  77. package/bin/session/Session.d.ts +15 -1
  78. package/bin/session/Session.d.ts.map +1 -1
  79. package/bin/session/Session.js +83 -11
  80. package/bin/session/Session.js.map +1 -1
  81. package/bin/session/SessionSystemBuilder.d.ts.map +1 -1
  82. package/bin/session/SessionSystemBuilder.js +3 -1
  83. package/bin/session/SessionSystemBuilder.js.map +1 -1
  84. package/bin/session/browse/Browse.d.ts +0 -8
  85. package/bin/session/browse/Browse.d.ts.map +1 -1
  86. package/bin/session/browse/Browse.js +72 -57
  87. package/bin/session/browse/Browse.js.map +1 -1
  88. package/bin/session/recorder/JsonlSessionMessageStore.d.ts +69 -16
  89. package/bin/session/recorder/JsonlSessionMessageStore.d.ts.map +1 -1
  90. package/bin/session/recorder/JsonlSessionMessageStore.js +283 -60
  91. package/bin/session/recorder/JsonlSessionMessageStore.js.map +1 -1
  92. package/bin/session/recorder/SessionRecorder.d.ts +20 -2
  93. package/bin/session/recorder/SessionRecorder.d.ts.map +1 -1
  94. package/bin/session/recorder/SessionRecorder.js +91 -46
  95. package/bin/session/recorder/SessionRecorder.js.map +1 -1
  96. package/bin/session/recorder/SessionRecorderCompaction.d.ts +3 -3
  97. package/bin/session/recorder/SessionRecorderCompaction.d.ts.map +1 -1
  98. package/bin/session/recorder/SessionRecorderCompaction.js +118 -88
  99. package/bin/session/recorder/SessionRecorderCompaction.js.map +1 -1
  100. package/bin/session/recorder/SessionRecorderHistoryStore.d.ts +2 -2
  101. package/bin/session/recorder/SessionRecorderHistoryStore.d.ts.map +1 -1
  102. package/bin/session/recorder/SessionRecorderHistoryStore.js +31 -36
  103. package/bin/session/recorder/SessionRecorderHistoryStore.js.map +1 -1
  104. package/bin/session/runtime/SessionPromptRuntime.d.ts +21 -1
  105. package/bin/session/runtime/SessionPromptRuntime.d.ts.map +1 -1
  106. package/bin/session/runtime/SessionPromptRuntime.js +65 -8
  107. package/bin/session/runtime/SessionPromptRuntime.js.map +1 -1
  108. package/bin/session/services/SessionStateService.d.ts +19 -1
  109. package/bin/session/services/SessionStateService.d.ts.map +1 -1
  110. package/bin/session/services/SessionStateService.js +70 -40
  111. package/bin/session/services/SessionStateService.js.map +1 -1
  112. package/bin/session/services/SessionTurnService.d.ts +15 -0
  113. package/bin/session/services/SessionTurnService.d.ts.map +1 -1
  114. package/bin/session/services/SessionTurnService.js +104 -7
  115. package/bin/session/services/SessionTurnService.js.map +1 -1
  116. package/bin/session/services/SessionViewService.d.ts +1 -5
  117. package/bin/session/services/SessionViewService.d.ts.map +1 -1
  118. package/bin/session/services/SessionViewService.js +4 -34
  119. package/bin/session/services/SessionViewService.js.map +1 -1
  120. package/bin/session/storage/Paths.d.ts +3 -15
  121. package/bin/session/storage/Paths.d.ts.map +1 -1
  122. package/bin/session/storage/Paths.js +5 -21
  123. package/bin/session/storage/Paths.js.map +1 -1
  124. package/bin/types/agent/SessionActor.d.ts +8 -0
  125. package/bin/types/agent/SessionActor.d.ts.map +1 -1
  126. package/bin/types/agent/SessionTypes.d.ts +2 -24
  127. package/bin/types/agent/SessionTypes.d.ts.map +1 -1
  128. package/bin/types/executor/SessionRunContext.d.ts +29 -0
  129. package/bin/types/executor/SessionRunContext.d.ts.map +1 -1
  130. package/bin/types/plugin/PluginRuntime.d.ts +59 -2
  131. package/bin/types/plugin/PluginRuntime.d.ts.map +1 -1
  132. package/bin/types/plugin/PluginState.d.ts +10 -0
  133. package/bin/types/plugin/PluginState.d.ts.map +1 -1
  134. package/bin/types/rpc/RpcProtocol.d.ts +10 -0
  135. package/bin/types/rpc/RpcProtocol.d.ts.map +1 -1
  136. package/bin/types/runtime/agent/AgentContext.d.ts +17 -5
  137. package/bin/types/runtime/agent/AgentContext.d.ts.map +1 -1
  138. package/bin/types/runtime/agent/AgentContext.js +29 -6
  139. package/bin/types/runtime/agent/AgentContext.js.map +1 -1
  140. package/bin/types/session/SessionLocalState.d.ts +8 -0
  141. package/bin/types/session/SessionLocalState.d.ts.map +1 -1
  142. package/bin/types/session/SessionMessage.d.ts +16 -12
  143. package/bin/types/session/SessionMessage.d.ts.map +1 -1
  144. package/bin/types/session/SessionMutation.d.ts +1 -1
  145. package/bin/types/session/SessionMutation.js +1 -1
  146. package/bin/types/session/SessionOptions.d.ts +16 -0
  147. package/bin/types/session/SessionOptions.d.ts.map +1 -1
  148. package/bin/types/session/SessionQueueCommand.d.ts +68 -0
  149. package/bin/types/session/SessionQueueCommand.d.ts.map +1 -0
  150. package/bin/types/session/SessionQueueCommand.js +10 -0
  151. package/bin/types/session/SessionQueueCommand.js.map +1 -0
  152. package/bin/types/session/SessionSegment.d.ts +57 -0
  153. package/bin/types/session/SessionSegment.d.ts.map +1 -0
  154. package/bin/types/session/SessionSegment.js +8 -0
  155. package/bin/types/session/SessionSegment.js.map +1 -0
  156. package/bin/utils/logger/Logger.d.ts +7 -9
  157. package/bin/utils/logger/Logger.d.ts.map +1 -1
  158. package/bin/utils/logger/Logger.js +11 -9
  159. package/bin/utils/logger/Logger.js.map +1 -1
  160. package/package.json +3 -3
  161. package/scripts/city-model-tool-loop.test.mjs +32 -0
  162. package/scripts/core-engine-context-compaction.test.mjs +411 -0
  163. package/scripts/logger-isolation.test.mjs +55 -0
  164. package/scripts/multi-agent-plugin-isolation.test.mjs +289 -0
  165. package/scripts/plugin-tool-bridge.test.mjs +52 -0
  166. package/scripts/remote-session-reconnect.test.mjs +18 -0
  167. package/scripts/session-action-message.test.mjs +59 -13
  168. package/scripts/session-compaction-context-window.test.mjs +96 -0
  169. package/scripts/session-config-turn-boundary.test.mjs +278 -0
  170. package/scripts/session-list-title.test.mjs +21 -3
  171. package/scripts/session-prompt-runtime.test.mjs +93 -0
  172. package/scripts/session-recorder.test.mjs +335 -15
  173. package/src/agent/local/Agent.ts +34 -3
  174. package/src/agent/local/services/AgentSessions.ts +61 -0
  175. package/src/agent/remote/RemoteSession.ts +5 -0
  176. package/src/agent/remote/RemoteTransport.ts +2 -0
  177. package/src/agent/remote/transports/HttpRemoteAgentTransport.ts +15 -5
  178. package/src/agent/remote/transports/RpcRemoteAgentTransport.ts +4 -0
  179. package/src/executor/Executor.ts +161 -7
  180. package/src/executor/composer/compaction/SessionCompactionComposer.ts +12 -0
  181. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.ts +4 -55
  182. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.ts +8 -66
  183. package/src/executor/core-engine/CoreEngineContextCompaction.ts +477 -0
  184. package/src/executor/core-engine/CoreEngineMessageState.ts +29 -0
  185. package/src/executor/core-engine/CoreEngineRunner.ts +211 -43
  186. package/src/executor/store/history/SessionHistoryStore.ts +7 -26
  187. package/src/executor/store/history/jsonl/JsonlSessionHistoryStore.ts +2 -4
  188. package/src/executor/tools/plugin/PluginToolBridge.ts +4 -2
  189. package/src/executor/types/SessionRun.ts +9 -0
  190. package/src/index.ts +9 -1
  191. package/src/model/CityModelAdapter.ts +15 -0
  192. package/src/plugin/core/PluginLocalExecution.ts +3 -3
  193. package/src/plugin/core/PluginRegistry.ts +187 -6
  194. package/src/rpc/Client.ts +12 -0
  195. package/src/session/Session.ts +97 -11
  196. package/src/session/SessionSystemBuilder.ts +4 -1
  197. package/src/session/browse/Browse.ts +73 -69
  198. package/src/session/recorder/JsonlSessionMessageStore.ts +378 -60
  199. package/src/session/recorder/SessionRecorder.ts +116 -49
  200. package/src/session/recorder/SessionRecorderCompaction.ts +131 -108
  201. package/src/session/recorder/SessionRecorderHistoryStore.ts +29 -49
  202. package/src/session/runtime/SessionPromptRuntime.ts +86 -10
  203. package/src/session/services/SessionStateService.ts +89 -45
  204. package/src/session/services/SessionTurnService.ts +112 -7
  205. package/src/session/services/SessionViewService.ts +4 -50
  206. package/src/session/storage/Paths.ts +5 -38
  207. package/src/types/agent/SessionActor.ts +9 -0
  208. package/src/types/agent/SessionTypes.ts +2 -24
  209. package/src/types/executor/SessionRunContext.ts +34 -0
  210. package/src/types/plugin/PluginRuntime.ts +63 -2
  211. package/src/types/plugin/PluginState.ts +10 -0
  212. package/src/types/rpc/RpcProtocol.ts +11 -0
  213. package/src/types/runtime/agent/AgentContext.ts +32 -7
  214. package/src/types/session/SessionLocalState.ts +9 -0
  215. package/src/types/session/SessionMessage.ts +16 -12
  216. package/src/types/session/SessionMutation.ts +1 -1
  217. package/src/types/session/SessionOptions.ts +21 -0
  218. package/src/types/session/SessionQueueCommand.ts +78 -0
  219. package/src/types/session/SessionSegment.ts +62 -0
  220. package/src/utils/logger/Logger.ts +10 -10
  221. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRecorderHistoryStore.d.ts","sourceRoot":"","sources":["../../../src/session/recorder/SessionRecorderHistoryStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAQxE,mCAAmC;AACnC,MAAM,WAAW,kCAAkC;IACjD,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,wDAAwD;AACxD,qBAAa,2BAA4B,YAAW,mBAAmB;IACrE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,OAAO,EAAE,kCAAkC;IAQvD,kDAAkD;IAC5C,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D3D,uCAAuC;IACjC,aAAa,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IActD,mDAAmD;IAC7C,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D,wDAAwD;IAClD,iBAAiB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzE,4CAA4C;IACtC,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAYhD,6BAA6B;IACvB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAI3E,6BAA6B;IACvB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,kDAAkD;IAC5C,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI9C,uDAAuD;IACjD,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC;QACxD,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAOF,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,GAAG,IAAI,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,GAAG,eAAe;IAgBnB,gCAAgC;IAChC,aAAa,CAAC,KAAK,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,GAAG,IAAI,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;QAC5B,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;KAC/B,GAAG,eAAe;IAgBnB,2CAA2C;IAC3C,MAAM,CAAC,KAAK,EAAE;QACZ,MAAM,EAAE,qBAAqB,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAC5C,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,GAAG,qBAAqB;CAc1B"}
1
+ {"version":3,"file":"SessionRecorderHistoryStore.d.ts","sourceRoot":"","sources":["../../../src/session/recorder/SessionRecorderHistoryStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAQxE,mCAAmC;AACnC,MAAM,WAAW,kCAAkC;IACjD,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,wDAAwD;AACxD,qBAAa,2BAA4B,YAAW,mBAAmB;IACrE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,OAAO,EAAE,kCAAkC;IAQvD,kDAAkD;IAC5C,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D3D,uCAAuC;IACjC,aAAa,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAWtD,mDAAmD;IAC7C,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D,wDAAwD;IAClD,iBAAiB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzE,4CAA4C;IACtC,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA6BhD,6BAA6B;IACvB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAI3E,6BAA6B;IACvB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,kDAAkD;IAC5C,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI9C,uDAAuD;IACjD,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC;QACxD,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAOF,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,GAAG,IAAI,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,GAAG,eAAe;IAgBnB,gCAAgC;IAChC,aAAa,CAAC,KAAK,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,GAAG,IAAI,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;QAC5B,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;KAC/B,GAAG,eAAe;IAgBnB,2CAA2C;IAC3C,MAAM,CAAC,KAAK,EAAE;QACZ,MAAM,EAAE,qBAAqB,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAC5C,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,GAAG,qBAAqB;CAc1B"}
@@ -2,7 +2,7 @@
2
2
  * SessionRecorder 到 Executor SessionHistoryStore 的内部投影适配器。
3
3
  *
4
4
  * 关键点(中文)
5
- * - Recorder 的 messages.jsonl 与 assistant_message.json 共同组成持久化事实源。
5
+ * - Recorder 的 active.jsonl、segments 与 assistant_message.json 共同组成持久化事实源。
6
6
  * - Executor 继续读取临时 UIMessage 投影,不直接拥有文件写入权。
7
7
  * - 流式草稿写入由 AssistantMessageWriter 负责,Executor 的旧接口只提供投影兼容。
8
8
  */
@@ -77,11 +77,8 @@ export class SessionRecorderHistoryStore {
77
77
  }
78
78
  /** 从 Recorder 当前快照投影运行中的 Assistant。 */
79
79
  async read_inflight() {
80
- const page = await this.recorder.list_messages({
81
- limit: 500,
82
- include_internal: true,
83
- });
84
- const assistant = [...page.items]
80
+ const snapshot = await this.recorder.context_snapshot();
81
+ const assistant = [...snapshot.messages]
85
82
  .reverse()
86
83
  .find((message) => message.type === "assistant" && message.status === "streaming");
87
84
  return assistant ? to_executor_ui_message(assistant) : null;
@@ -92,15 +89,34 @@ export class SessionRecorderHistoryStore {
92
89
  async finalize_inflight(_message) { }
93
90
  /** 返回 Context Composer 使用的 UIMessage 投影。 */
94
91
  async list_records() {
95
- const page = await this.recorder.list_messages({
96
- limit: 500,
97
- include_internal: true,
98
- });
99
- const messages = project_context_messages(page.items);
100
- return messages.flatMap((message) => {
92
+ const snapshot = await this.recorder.context_snapshot();
93
+ const records = [];
94
+ if (snapshot.summary) {
95
+ records.push({
96
+ id: snapshot.summary.summary_id,
97
+ role: "assistant",
98
+ metadata: {
99
+ v: 1,
100
+ ts: snapshot.summary.created_at,
101
+ sessionId: this.sessionId,
102
+ source: "compact",
103
+ kind: "summary",
104
+ extra: {
105
+ visibility: "internal",
106
+ summaryThroughSequence: snapshot.summary.through_sequence,
107
+ },
108
+ },
109
+ parts: [{ type: "text", text: snapshot.summary.text }],
110
+ });
111
+ }
112
+ for (const message of snapshot.messages) {
113
+ if (message.type !== "user" && message.type !== "assistant")
114
+ continue;
101
115
  const projected = to_executor_ui_message(message);
102
- return projected ? [projected] : [];
103
- });
116
+ if (projected)
117
+ records.push(projected);
118
+ }
119
+ return records;
104
120
  }
105
121
  /** 返回 Context Message 区间。 */
106
122
  async slice_records(start, end) {
@@ -114,7 +130,7 @@ export class SessionRecorderHistoryStore {
114
130
  async meta() {
115
131
  return {};
116
132
  }
117
- /** 通过 Recorder 追加 internal summary,不重写 Mutation 历史。 */
133
+ /** 通过 Recorder Active 前缀关闭为带累计 Summary Segment。 */
118
134
  async compact(input) {
119
135
  return await compact_session_recorder_messages({
120
136
  recorder: this.recorder,
@@ -168,27 +184,6 @@ export class SessionRecorderHistoryStore {
168
184
  };
169
185
  }
170
186
  }
171
- function project_context_messages(messages) {
172
- const latest_summary = [...messages]
173
- .reverse()
174
- .find((message) => message.type === "assistant" &&
175
- message.kind === "summary" &&
176
- message.visibility === "internal");
177
- if (!latest_summary ||
178
- latest_summary.type !== "assistant" ||
179
- !latest_summary.summary_through_message_id) {
180
- return messages.filter((message) => message.type === "user" || message.type === "assistant");
181
- }
182
- const boundary_index = messages.findIndex((message) => message.message_id === latest_summary.summary_through_message_id);
183
- return [
184
- latest_summary,
185
- ...messages
186
- .slice(boundary_index + 1)
187
- .filter((message) => message !== latest_summary &&
188
- message.type === "user" ||
189
- (message.type === "assistant" && message.kind !== "summary")),
190
- ];
191
- }
192
187
  function infer_action_type(message_id) {
193
188
  return String(message_id || "").split(":")[0] || "action";
194
189
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRecorderHistoryStore.js","sourceRoot":"","sources":["../../../src/session/recorder/SessionRecorderHistoryStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionRecorderHistoryStore.js","sourceRoot":"","sources":["../../../src/session/recorder/SessionRecorderHistoryStore.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import type { SessionMessageRecordV1 } from "../../executor/types/SessionRecords
11
11
  import type { SessionMutation } from "../../types/session/SessionMutation.js";
12
12
  import type { AgentSessionPromptInput } from "../../types/sdk/AgentSessionPrompt.js";
13
13
  import type { AgentSessionStopResult } from "../../types/sdk/AgentSessionStop.js";
14
+ import type { SessionQueueCommand } from "../../types/session/SessionQueueCommand.js";
14
15
  import type { AgentSessionTurnHandle } from "../../types/sdk/AgentSessionTurn.js";
15
16
  /**
16
17
  * SessionPromptRuntime 构造参数。
@@ -72,6 +73,18 @@ export declare class SessionPromptRuntime {
72
73
  * 追加一条新的 prompt。
73
74
  */
74
75
  prompt(input: AgentSessionPromptInput): Promise<AgentSessionTurnHandle>;
76
+ /**
77
+ * 把一次已成功创建的 command 加入统一输入队列。
78
+ */
79
+ enqueue_command(command: SessionQueueCommand): void;
80
+ /**
81
+ * 判断是否存在等待并入下一 Session step 的 prompt。
82
+ */
83
+ has_pending_prompt(): boolean;
84
+ /**
85
+ * 判断是否存在等待在下一 Session step 检查点执行的 command。
86
+ */
87
+ has_pending_command(): boolean;
75
88
  /**
76
89
  * 返回当前 actor prompt 调度器是否仍处于活跃态。
77
90
  *
@@ -87,6 +100,13 @@ export declare class SessionPromptRuntime {
87
100
  private ensureProcessing;
88
101
  private processLoop;
89
102
  private cancelQueuedPrompts;
90
- private drainQueuedPromptsAsMessages;
103
+ /**
104
+ * 在下一 Session step 检查点按入队顺序提交配置并持久化 steer。
105
+ */
106
+ private drain_queued_inputs;
107
+ /**
108
+ * 执行一组已经从统一队列截取的 command。
109
+ */
110
+ private execute_commands;
91
111
  }
92
112
  //# sourceMappingURL=SessionPromptRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SessionPromptRuntime.d.ts","sourceRoot":"","sources":["../../../src/session/runtime/SessionPromptRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EACV,sBAAsB,EAEvB,MAAM,iCAAiC,CAAC;AA0DzC;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IAE7C;;OAEG;IACH,2BAA2B,EAAE,CAC3B,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,QAAQ,GAAG,OAAO,KAC3B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnC,kCAAkC;IAClC,kBAAkB,EAAE,CAAC,KAAK,EAAE;QAC1B,iBAAiB;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpB;;OAEG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,uBAAuB,CAAC;QACrC,WAAW,EAAE,MAAM,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACnD,WAAW,EAAE,WAAW,CAAC;KAC1B,KAAK,OAAO,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;QACjD,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAEH;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAA6D;IACzG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoD;IACvF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,UAAU,CAAgC;gBAEtC,OAAO,EAAE,2BAA2B;IAYhD;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAUvE;;;;;;OAMG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,IAAI,IAAI,sBAAsB;IAyB9B,OAAO,CAAC,gBAAgB;YAUV,WAAW;IAmGzB,OAAO,CAAC,mBAAmB;YA2Cb,4BAA4B;CA2B3C"}
1
+ {"version":3,"file":"SessionPromptRuntime.d.ts","sourceRoot":"","sources":["../../../src/session/runtime/SessionPromptRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EACV,sBAAsB,EAEvB,MAAM,iCAAiC,CAAC;AAkEzC;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IAE7C;;OAEG;IACH,2BAA2B,EAAE,CAC3B,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,QAAQ,GAAG,OAAO,KAC3B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnC,kCAAkC;IAClC,kBAAkB,EAAE,CAAC,KAAK,EAAE;QAC1B,iBAAiB;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpB;;OAEG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,uBAAuB,CAAC;QACrC,WAAW,EAAE,MAAM,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACnD,WAAW,EAAE,WAAW,CAAC;KAC1B,KAAK,OAAO,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;QACjD,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAEH;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAA6D;IACzG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoD;IACvF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,UAAU,CAAgC;gBAEtC,OAAO,EAAE,2BAA2B;IAYhD;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAWvE;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAInD;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;;;;;OAMG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,IAAI,IAAI,sBAAsB;IAyB9B,OAAO,CAAC,gBAAgB;YAUV,WAAW;IA4GzB,OAAO,CAAC,mBAAmB;IA+C3B;;OAEG;YACW,mBAAmB;IAsCjC;;OAEG;YACW,gBAAgB;CAe/B"}
@@ -39,12 +39,31 @@ export class SessionPromptRuntime {
39
39
  prompt(input) {
40
40
  const deferredHandle = createDeferred();
41
41
  this.queue.push({
42
+ type: "prompt",
42
43
  input,
43
44
  deferredHandle,
44
45
  });
45
46
  this.ensureProcessing();
46
47
  return deferredHandle.promise;
47
48
  }
49
+ /**
50
+ * 把一次已成功创建的 command 加入统一输入队列。
51
+ */
52
+ enqueue_command(command) {
53
+ this.queue.push(command);
54
+ }
55
+ /**
56
+ * 判断是否存在等待并入下一 Session step 的 prompt。
57
+ */
58
+ has_pending_prompt() {
59
+ return this.queue.some((item) => item.type === "prompt");
60
+ }
61
+ /**
62
+ * 判断是否存在等待在下一 Session step 检查点执行的 command。
63
+ */
64
+ has_pending_command() {
65
+ return this.queue.some((item) => item.type === "command");
66
+ }
48
67
  /**
49
68
  * 返回当前 actor prompt 调度器是否仍处于活跃态。
50
69
  *
@@ -53,7 +72,7 @@ export class SessionPromptRuntime {
53
72
  * - Session 会用它阻止内部 direct execution 与 actor 模式并发混用。
54
73
  */
55
74
  isActive() {
56
- return this.processingPromise !== null || this.queue.length > 0;
75
+ return this.processingPromise !== null || this.has_pending_prompt();
57
76
  }
58
77
  /**
59
78
  * 停止当前 turn,并取消尚未被吸收的排队 prompt。
@@ -83,15 +102,19 @@ export class SessionPromptRuntime {
83
102
  return;
84
103
  this.processingPromise = this.processLoop().finally(() => {
85
104
  this.processingPromise = null;
86
- if (this.queue.length > 0) {
105
+ if (this.has_pending_prompt()) {
87
106
  this.ensureProcessing();
88
107
  }
89
108
  });
90
109
  }
91
110
  async processLoop() {
92
- while (this.queue.length > 0) {
111
+ while (this.has_pending_prompt()) {
112
+ const prompt_index = this.queue.findIndex((item) => item.type === "prompt");
113
+ if (prompt_index < 0)
114
+ break;
115
+ const queued_before_prompt = this.queue.splice(0, prompt_index);
93
116
  const current = this.queue.shift();
94
- if (!current)
117
+ if (!current || current.type !== "prompt")
95
118
  break;
96
119
  const turnId = `turn:${this.sessionId}:${Date.now()}:${nanoid(6)}`;
97
120
  const activeTurn = createActiveTurnState(turnId);
@@ -107,12 +130,13 @@ export class SessionPromptRuntime {
107
130
  });
108
131
  current.deferredHandle.resolve(createTurnHandle(activeTurn));
109
132
  try {
133
+ await this.execute_commands(queued_before_prompt.filter((item) => item.type === "command"), activeTurn);
110
134
  await this.createAndPersistUserMessage(current.input, turnId, "prompt");
111
135
  const result = await this.executeTurn({
112
136
  turnId,
113
137
  promptInput: current.input,
114
138
  onStepMerge: async () => {
115
- return await this.drainQueuedPromptsAsMessages(activeTurn);
139
+ return await this.drain_queued_inputs(activeTurn);
116
140
  },
117
141
  abortSignal: activeTurn.abortController.signal,
118
142
  });
@@ -189,9 +213,11 @@ export class SessionPromptRuntime {
189
213
  }
190
214
  }
191
215
  cancelQueuedPrompts() {
192
- if (this.queue.length <= 0)
216
+ const cancelled = this.queue.filter((item) => item.type === "prompt");
217
+ if (cancelled.length <= 0)
193
218
  return 0;
194
- const cancelled = this.queue.splice(0, this.queue.length);
219
+ const retained = this.queue.filter((item) => item.type === "command");
220
+ this.queue.splice(0, this.queue.length, ...retained);
195
221
  for (const item of cancelled) {
196
222
  const turnId = `turn:${this.sessionId}:cancelled:${Date.now()}:${nanoid(6)}`;
197
223
  const cancelledTurn = createActiveTurnState(turnId);
@@ -231,13 +257,27 @@ export class SessionPromptRuntime {
231
257
  }
232
258
  return cancelled.length;
233
259
  }
234
- async drainQueuedPromptsAsMessages(activeTurn) {
260
+ /**
261
+ * 在下一 Session step 检查点按入队顺序提交配置并持久化 steer。
262
+ */
263
+ async drain_queued_inputs(activeTurn) {
235
264
  if (this.queue.length <= 0)
236
265
  return [];
237
266
  const drained = this.queue.splice(0, this.queue.length);
238
267
  const merged = [];
239
268
  for (let index = 0; index < drained.length; index += 1) {
240
269
  const item = drained[index];
270
+ if (item.type === "command") {
271
+ try {
272
+ await item.execute({
273
+ turn_id: activeTurn.turnId,
274
+ });
275
+ }
276
+ catch {
277
+ // command 自己负责失败观测;单条失败不能吞掉后续 steer 或 command。
278
+ }
279
+ continue;
280
+ }
241
281
  try {
242
282
  const message = await this.createAndPersistUserMessage(item.input, activeTurn.turnId, "steer");
243
283
  item.deferredHandle.resolve(createTurnHandle(activeTurn));
@@ -252,6 +292,23 @@ export class SessionPromptRuntime {
252
292
  }
253
293
  return merged;
254
294
  }
295
+ /**
296
+ * 执行一组已经从统一队列截取的 command。
297
+ */
298
+ async execute_commands(commands, active_turn) {
299
+ if (commands.length <= 0)
300
+ return;
301
+ for (const command of commands) {
302
+ try {
303
+ await command.execute({
304
+ turn_id: active_turn.turnId,
305
+ });
306
+ }
307
+ catch {
308
+ // command 自己负责失败观测;单条失败不能阻断当前 prompt。
309
+ }
310
+ }
311
+ }
255
312
  }
256
313
  function buildPromptRuntimeErrorAssistantMessage(input) {
257
314
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"SessionPromptRuntime.js","sourceRoot":"","sources":["../../../src/session/runtime/SessionPromptRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAchC,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAC5C,MAAM,+BAA+B,GACnC,8CAA8C,CAAC;AA0GjD;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACd,SAAS,CAAS;IAClB,OAAO,CAAyC;IAChD,2BAA2B,CAA6D;IACxF,kBAAkB,CAAoD;IACtE,WAAW,CAA6C;IACxD,QAAQ,CAA0C;IAClD,KAAK,GAAmB,EAAE,CAAC;IACpC,iBAAiB,GAAyB,IAAI,CAAC;IAC/C,UAAU,GAA2B,IAAI,CAAC;IAElD,YAAY,OAAoC;QAC9C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAC;QACvE,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAA8B;QACnC,MAAM,cAAc,GAAG,cAAc,EAA0B,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,KAAK;YACL,cAAc;SACf,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,cAAc,CAAC,OAAO,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,iBAAiB,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,IAAI;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC5D,IAAI,uBAAuB,GAAG,KAAK,CAAC;QAEpC,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAChD,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,uBAAuB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5C,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CACrB,WAAW;YACT,uBAAuB;YACvB,wBAAwB,GAAG,CAAC,CAC/B,CAAC;QACF,OAAO;YACL,OAAO;YACP,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,sBAAsB,EAAE,wBAAwB;YAChD,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;SACrC,CAAC;IACJ,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO;gBAAE,MAAM;YAEpB,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC;gBACX,WAAW,EAAE,MAAM,EAAE;gBACrB,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;aACvB,CAAC,CAAC;YACH,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;YAE7D,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;oBACpC,MAAM;oBACN,WAAW,EAAE,OAAO,CAAC,KAAK;oBAC1B,WAAW,EAAE,KAAK,IAAI,EAAE;wBACtB,OAAO,MAAM,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;oBAC7D,CAAC;oBACD,WAAW,EAAE,UAAU,CAAC,eAAe,CAAC,MAAM;iBAC/C,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC1D,MAAM,WAAW,GAA2B;oBAC1C,MAAM;oBACN,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO;oBACzC,GAAG,CAAC,MAAM,CAAC,gBAAgB;wBACzB,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE;wBAC/C,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,OAAO;wBACT,CAAC,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE;wBACjC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjD,CAAC;gBACF,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC;oBACX,WAAW,EAAE,MAAM,EAAE;oBACrB,OAAO,EAAE,MAAM;oBACf,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,IAAI,CAAC,SAAS;oBAC1B,OAAO,EAAE,MAAM;oBACf,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;oBAC1E,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3D,CAAC,CAAC;gBACH,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO;oBACvD,CAAC,CAAC,oBAAoB;oBACtB,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM,WAAW,GAA2B;oBAC1C,MAAM;oBACN,IAAI,EAAE,EAAE;oBACR,OAAO,EAAE,KAAK;oBACd,gBAAgB,EAAE,uCAAuC,CAAC;wBACxD,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,OAAO;qBACR,CAAC;oBACF,KAAK,EAAE,OAAO;iBACf,CAAC;gBACF,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC;gBAChC,IAAI,OAAO,KAAK,oBAAoB,EAAE,CAAC;oBACrC,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,kBAAkB,CAAC;4BAC5B,OAAO,EAAE,MAAM;4BACf,OAAO;yBACR,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,yCAAyC;oBAC3C,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC;oBACX,WAAW,EAAE,MAAM,EAAE;oBACrB,OAAO,EAAE,MAAM;oBACf,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,IAAI,CAAC,SAAS;oBAC1B,OAAO,EAAE,MAAM;oBACf,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;oBACxE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,OAAO;iBACf,CAAC,CAAC;gBACH,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC;oBAAS,CAAC;gBACT,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;oBACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,SAAS,cAAc,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,WAAW,GAA2B;gBAC1C,MAAM;gBACN,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,KAAK;gBACd,gBAAgB,EAAE,uCAAuC,CAAC;oBACxD,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,OAAO,EAAE,+BAA+B;iBACzC,CAAC;gBACF,KAAK,EAAE,+BAA+B;aACvC,CAAC;YACF,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC;YACnC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC;gBACX,WAAW,EAAE,MAAM,EAAE;gBACrB,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC;gBACX,WAAW,EAAE,MAAM,EAAE;gBACrB,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;gBACtB,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,+BAA+B;aACvC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,SAAS,CAAC,MAAM,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,4BAA4B,CACxC,UAA2B;QAE3B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACpD,IAAI,CAAC,KAAK,EACV,UAAU,CAAC,MAAM,EACjB,OAAO,CACR,CAAC;gBACF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,4CAA4C;gBAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;gBACjC,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,SAAS,uCAAuC,CAAC,KAGhD;IACC,OAAO;QACL,EAAE,EAAE,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;QACrD,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE;YACR,CAAC,EAAE,CAAC;YACJ,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,8BAA8B;aACrC;SACF;QACD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,OAA4B,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,YAAY,EAAE,EAAE;QAC9C,OAAO,GAAG,YAAY,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,OAAO;QACL,MAAM;QACN,MAAM,EAAE,IAAI;QACZ,gBAAgB,EAAE,cAAc,EAA0B;QAC1D,eAAe,EAAE,IAAI,eAAe,EAAE;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,UAA2B;IAE3B,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,MAAM;QACrB,IAAI,MAAM;YACR,OAAO,UAAU,CAAC,MAAM,CAAC;QAC3B,CAAC;QACD,QAAQ,EAAE,UAAU,CAAC,gBAAgB,CAAC,OAAO;KAC9C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SessionPromptRuntime.js","sourceRoot":"","sources":["../../../src/session/runtime/SessionPromptRuntime.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import type { SessionMutation } from "../../types/session/SessionMutation.js";
13
13
  import type { AgentSessionPromptInput } from "../../types/sdk/AgentSessionPrompt.js";
14
14
  import type { SessionActionRecordInputV1, SessionActionRecordV1, SessionRecordV1, SessionMessageRecordV1, SessionUserMessageV1 } from "../../executor/types/SessionRecords.js";
15
15
  import type { SessionLocalState } from "../../types/session/SessionLocalState.js";
16
+ import type { SessionQueueCommand } from "../../types/session/SessionQueueCommand.js";
16
17
  import type { Logger } from "../../utils/logger/Logger.js";
17
18
  import type { AgentModel } from "../../model/CityModelAdapter.js";
18
19
  import { SessionRecorder } from "../../session/recorder/SessionRecorder.js";
@@ -69,6 +70,19 @@ type SessionSetOptions = {
69
70
  emit_action?: boolean;
70
71
  };
71
72
  type EmitActionInput = SessionActionRecordInputV1 | SessionActionRecordV1;
73
+ /**
74
+ * Session 配置成功写入后的队列提交结果。
75
+ */
76
+ export interface SessionConfiguredCommandResult {
77
+ /**
78
+ * 等待在下一 Session step 检查点执行的 command。
79
+ *
80
+ * 说明(中文)
81
+ * - 输入未产生实际配置变化时为空。
82
+ * - fork 等内部初始化路径可以选择立即提交而不返回 command。
83
+ */
84
+ command?: SessionQueueCommand;
85
+ }
72
86
  /**
73
87
  * 本地 Session 状态与持久化服务。
74
88
  */
@@ -112,7 +126,7 @@ export declare class SessionStateService {
112
126
  /**
113
127
  * 写入当前 session 配置。
114
128
  */
115
- set(input: AgentSessionSetInput, options?: SessionSetOptions): Promise<void>;
129
+ set(input: AgentSessionSetInput, options?: SessionSetOptions): Promise<SessionConfiguredCommandResult>;
116
130
  /** 恢复 metadata 中持久化的模型覆盖。 */
117
131
  private restore_persisted_model;
118
132
  /** 使用宿主 resolver 解析稳定模型 ID。 */
@@ -156,6 +170,10 @@ export declare class SessionStateService {
156
170
  * 写入并发布一条 action。
157
171
  */
158
172
  emit_action_event(input: EmitActionInput): Promise<void>;
173
+ /**
174
+ * 尽力写入配置生效 action,不让 timeline 故障改变 effective state。
175
+ */
176
+ emit_config_action_event(input: EmitActionInput): Promise<boolean>;
159
177
  /**
160
178
  * 构造并持久化一条 prompt user 消息。
161
179
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SessionStateService.d.ts","sourceRoot":"","sources":["../../../src/session/services/SessionStateService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionStateService.d.ts","sourceRoot":"","sources":["../../../src/session/services/SessionStateService.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * - 该服务只关心状态事实源与持久化副作用,不负责 turn 编排。
7
7
  * - `Session` facade 与 turn/view service 都通过它访问可变 session 运行态。
8
8
  */
9
- import { inferAgentModelLabel, normalizeAgentModel, } from "../../model/CityModelAdapter.js";
9
+ import { inferAgentModelLabel, normalizeAgentModel, read_agent_model_context_window, } from "../../model/CityModelAdapter.js";
10
10
  import { patchSessionModelLabel, readSessionMetadata, resolveSystemTimezone, writeSessionMetadata, } from "../../session/storage/Metadata.js";
11
11
  import { touchSessionMetadata } from "../../session/storage/Persistence.js";
12
12
  import { ensureSessionTitle } from "../../session/SessionTitle.js";
@@ -14,8 +14,6 @@ import { hydrateUserPromptFileParts } from "../../executor/messages/SessionAttac
14
14
  import { generateId } from "../../utils/Id.js";
15
15
  import { normalize_session_user_parts } from "../../session/recorder/SessionRecorder.js";
16
16
  import { from_ui_assistant_parts, from_ui_user_parts, to_executor_ui_message, } from "../../session/recorder/SessionMessageCodec.js";
17
- import fs from "fs-extra";
18
- import { getSdkAgentSessionMessagesPath } from "../../session/storage/Paths.js";
19
17
  /**
20
18
  * 本地 Session 状态与持久化服务。
21
19
  */
@@ -102,6 +100,9 @@ export class SessionStateService {
102
100
  ...(metadata.modelId ? { modelId: metadata.modelId } : {}),
103
101
  };
104
102
  await this.restore_persisted_model();
103
+ this.state.effective_session_config = {
104
+ ...this.state.sessionConfig,
105
+ };
105
106
  })();
106
107
  await this.state.initializePromise;
107
108
  }
@@ -160,46 +161,58 @@ export class SessionStateService {
160
161
  const previous_model_name = previous_model_label || previous_model_id;
161
162
  const next_model_name = next_model_label || next_model_id;
162
163
  const action_id = `model-switching:${this.session_id}:${Date.now()}:${generateId()}`;
163
- if (should_emit_model_switch_action) {
164
- await this.emit_action_event({
165
- id: action_id,
166
- title: `Switching session model from ${previous_model_name} to ${next_model_name}`,
167
- state: "running",
168
- });
169
- }
170
164
  try {
165
+ const next_config = {
166
+ ...this.state.sessionConfig,
167
+ };
171
168
  if (next_model) {
172
- this.state.sessionConfig.model = normalizeAgentModel(next_model);
173
- this.state.sessionConfig.modelLabel = next_model_label;
169
+ next_config.model = normalizeAgentModel(next_model);
170
+ next_config.modelLabel = next_model_label;
171
+ next_config.model_context_window =
172
+ read_agent_model_context_window(next_model);
174
173
  }
175
174
  if (next_model_id) {
176
- this.state.sessionConfig.modelId = next_model_id;
175
+ next_config.modelId = next_model_id;
177
176
  }
178
177
  await patchSessionModelLabel({
179
178
  projectRoot: this.project_root,
180
179
  agentId: this.agent_id,
181
180
  sessionId: this.session_id,
182
- model: this.state.sessionConfig.model,
183
- modelId: this.state.sessionConfig.modelId,
181
+ model: next_config.model,
182
+ modelId: next_config.modelId,
184
183
  });
185
- }
186
- catch (error) {
187
- if (should_emit_model_switch_action) {
188
- await this.emit_action_event({
184
+ this.state.sessionConfig = next_config;
185
+ const apply_effective_config = async (turn_id) => {
186
+ this.state.effective_session_config = {
187
+ ...next_config,
188
+ };
189
+ if (!should_emit_model_switch_action)
190
+ return;
191
+ await this.emit_config_action_event({
189
192
  id: action_id,
190
- title: `Session model switch from ${previous_model_name} to ${next_model_name} failed`,
191
- description: error instanceof Error ? error.message : String(error),
192
- state: "failed",
193
+ title: `Session model switched from ${previous_model_name} to ${next_model_name}`,
194
+ state: "completed",
195
+ ...(turn_id ? { turnId: turn_id } : {}),
193
196
  });
197
+ };
198
+ if (options?.emit_action === false) {
199
+ await apply_effective_config();
200
+ return {};
194
201
  }
195
- throw error;
202
+ const command_id = generateId();
203
+ return {
204
+ command: {
205
+ type: "command",
206
+ command_id,
207
+ scope: "session",
208
+ execute: async ({ turn_id }) => {
209
+ await apply_effective_config(turn_id);
210
+ },
211
+ },
212
+ };
196
213
  }
197
- if (should_emit_model_switch_action) {
198
- await this.emit_action_event({
199
- id: action_id,
200
- title: `Session model switched from ${previous_model_name} to ${next_model_name}`,
201
- state: "completed",
202
- });
214
+ catch (error) {
215
+ throw error;
203
216
  }
204
217
  }
205
218
  /** 恢复 metadata 中持久化的模型覆盖。 */
@@ -210,6 +223,8 @@ export class SessionStateService {
210
223
  const model = await this.resolve_model_by_id(model_id);
211
224
  this.state.sessionConfig.model = normalizeAgentModel(model);
212
225
  this.state.sessionConfig.modelLabel = inferAgentModelLabel(model);
226
+ this.state.sessionConfig.model_context_window =
227
+ read_agent_model_context_window(model);
213
228
  }
214
229
  /** 使用宿主 resolver 解析稳定模型 ID。 */
215
230
  async resolve_model_by_id(model_id) {
@@ -262,22 +277,15 @@ export class SessionStateService {
262
277
  * 仅刷新当前 session metadata。
263
278
  */
264
279
  async touch_metadata() {
265
- const message_page = await this.recorder.list_messages({
266
- limit: 500,
267
- include_internal: true,
268
- });
269
- const messages_path = getSdkAgentSessionMessagesPath(this.project_root, this.agent_id, this.session_id);
270
- const history_bytes = await fs.stat(messages_path)
271
- .then((file_stat) => file_stat.size)
272
- .catch(() => 0);
273
- const preview_text = resolve_message_preview(message_page.items[message_page.items.length - 1]).slice(0, 180);
280
+ const stats = await this.recorder.storage_stats();
281
+ const preview_text = resolve_message_preview(stats.latest_message || undefined).slice(0, 180);
274
282
  await touchSessionMetadata({
275
283
  projectRoot: this.project_root,
276
284
  agentId: this.agent_id,
277
285
  sessionId: this.session_id,
278
286
  sessionConfig: this.state.sessionConfig,
279
- message_count: message_page.total,
280
- history_bytes,
287
+ message_count: stats.message_count,
288
+ history_bytes: stats.history_bytes,
281
289
  ...(preview_text ? { preview_text } : {}),
282
290
  });
283
291
  }
@@ -374,6 +382,28 @@ export class SessionStateService {
374
382
  },
375
383
  });
376
384
  }
385
+ /**
386
+ * 尽力写入配置生效 action,不让 timeline 故障改变 effective state。
387
+ */
388
+ async emit_config_action_event(input) {
389
+ try {
390
+ await this.emit_action_event(input);
391
+ return true;
392
+ }
393
+ catch (error) {
394
+ try {
395
+ await this.logger.log("warn", "[agent] config action persistence failed", {
396
+ sessionId: this.session_id,
397
+ actionId: String(input.id || ""),
398
+ error: error instanceof Error ? error.message : String(error),
399
+ });
400
+ }
401
+ catch {
402
+ // 配置已经提交,日志失败也不能反向改变 effective state。
403
+ }
404
+ return false;
405
+ }
406
+ }
377
407
  /**
378
408
  * 构造并持久化一条 prompt user 消息。
379
409
  */