@downcity/agent 1.1.74 → 1.1.81

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 (514) hide show
  1. package/README.md +15 -18
  2. package/bin/agent/local/Agent.d.ts +82 -0
  3. package/bin/agent/local/Agent.d.ts.map +1 -0
  4. package/bin/agent/local/Agent.js +154 -0
  5. package/bin/agent/local/Agent.js.map +1 -0
  6. package/bin/agent/local/AgentInstructions.d.ts +22 -0
  7. package/bin/agent/local/AgentInstructions.d.ts.map +1 -0
  8. package/bin/agent/local/AgentInstructions.js +57 -0
  9. package/bin/agent/local/AgentInstructions.js.map +1 -0
  10. package/bin/agent/local/AgentPluginFactory.d.ts +29 -0
  11. package/bin/agent/local/AgentPluginFactory.d.ts.map +1 -0
  12. package/bin/agent/local/AgentPluginFactory.js +53 -0
  13. package/bin/agent/local/AgentPluginFactory.js.map +1 -0
  14. package/bin/{runtime/host/AgentHostRuntime.d.ts → agent/local/AgentRuntimeAssembly.d.ts} +2 -2
  15. package/bin/agent/local/AgentRuntimeAssembly.d.ts.map +1 -0
  16. package/bin/{runtime/host/AgentHostRuntime.js → agent/local/AgentRuntimeAssembly.js} +2 -2
  17. package/bin/agent/local/AgentRuntimeAssembly.js.map +1 -0
  18. package/bin/agent/local/AgentRuntimeFactory.d.ts +72 -0
  19. package/bin/agent/local/AgentRuntimeFactory.d.ts.map +1 -0
  20. package/bin/agent/local/AgentRuntimeFactory.js +73 -0
  21. package/bin/agent/local/AgentRuntimeFactory.js.map +1 -0
  22. package/bin/{runtime/host → agent/local}/ProjectSetup.d.ts +1 -1
  23. package/bin/agent/local/ProjectSetup.d.ts.map +1 -0
  24. package/bin/{runtime/host → agent/local}/ProjectSetup.js +1 -1
  25. package/bin/agent/local/ProjectSetup.js.map +1 -0
  26. package/bin/agent/local/services/AgentAssemblyService.d.ts +112 -0
  27. package/bin/agent/local/services/AgentAssemblyService.d.ts.map +1 -0
  28. package/bin/agent/local/services/AgentAssemblyService.js +135 -0
  29. package/bin/agent/local/services/AgentAssemblyService.js.map +1 -0
  30. package/bin/agent/local/services/AgentLifecycleService.d.ts +59 -0
  31. package/bin/agent/local/services/AgentLifecycleService.d.ts.map +1 -0
  32. package/bin/agent/local/services/AgentLifecycleService.js +136 -0
  33. package/bin/agent/local/services/AgentLifecycleService.js.map +1 -0
  34. package/bin/agent/local/services/AgentSessionManager.d.ts +106 -0
  35. package/bin/agent/local/services/AgentSessionManager.d.ts.map +1 -0
  36. package/bin/agent/local/services/AgentSessionManager.js +182 -0
  37. package/bin/agent/local/services/AgentSessionManager.js.map +1 -0
  38. package/bin/agent/{RemoteAgent.d.ts → remote/RemoteAgent.d.ts} +3 -3
  39. package/bin/agent/remote/RemoteAgent.d.ts.map +1 -0
  40. package/bin/agent/remote/RemoteAgent.js +58 -0
  41. package/bin/agent/remote/RemoteAgent.js.map +1 -0
  42. package/bin/agent/remote/RemoteSession.d.ts +62 -0
  43. package/bin/agent/remote/RemoteSession.d.ts.map +1 -0
  44. package/bin/agent/remote/RemoteSession.js +225 -0
  45. package/bin/agent/remote/RemoteSession.js.map +1 -0
  46. package/bin/agent/remote/RemoteTransport.d.ts +52 -0
  47. package/bin/agent/remote/RemoteTransport.d.ts.map +1 -0
  48. package/bin/agent/remote/RemoteTransport.js +9 -0
  49. package/bin/agent/remote/RemoteTransport.js.map +1 -0
  50. package/bin/agent/remote/TransportFactory.d.ts +13 -0
  51. package/bin/agent/remote/TransportFactory.d.ts.map +1 -0
  52. package/bin/agent/remote/TransportFactory.js +22 -0
  53. package/bin/agent/remote/TransportFactory.js.map +1 -0
  54. package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts +35 -0
  55. package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts.map +1 -0
  56. package/bin/agent/remote/transports/HttpRemoteAgentTransport.js +259 -0
  57. package/bin/agent/remote/transports/HttpRemoteAgentTransport.js.map +1 -0
  58. package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts +34 -0
  59. package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts.map +1 -0
  60. package/bin/agent/remote/transports/RpcRemoteAgentTransport.js +66 -0
  61. package/bin/agent/remote/transports/RpcRemoteAgentTransport.js.map +1 -0
  62. package/bin/executor/Executor.d.ts +7 -20
  63. package/bin/executor/Executor.d.ts.map +1 -1
  64. package/bin/executor/Executor.js +77 -348
  65. package/bin/executor/Executor.js.map +1 -1
  66. package/bin/executor/SessionRunScope.d.ts +18 -34
  67. package/bin/executor/SessionRunScope.d.ts.map +1 -1
  68. package/bin/executor/SessionRunScope.js +42 -28
  69. package/bin/executor/SessionRunScope.js.map +1 -1
  70. package/bin/executor/composer/context/LocalSessionContextComposer.d.ts +5 -3
  71. package/bin/executor/composer/context/LocalSessionContextComposer.d.ts.map +1 -1
  72. package/bin/executor/composer/context/LocalSessionContextComposer.js +11 -18
  73. package/bin/executor/composer/context/LocalSessionContextComposer.js.map +1 -1
  74. package/bin/executor/composer/context/SessionContextComposer.d.ts +8 -3
  75. package/bin/executor/composer/context/SessionContextComposer.d.ts.map +1 -1
  76. package/bin/executor/composer/history/SessionHistoryWriter.js +2 -2
  77. package/bin/executor/composer/history/SessionHistoryWriter.js.map +1 -1
  78. package/bin/executor/composer/system/SessionSystemComposer.d.ts +2 -1
  79. package/bin/executor/composer/system/SessionSystemComposer.d.ts.map +1 -1
  80. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts +2 -1
  81. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts.map +1 -1
  82. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js +2 -4
  83. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js.map +1 -1
  84. package/bin/executor/core-engine/CoreEngineRunner.d.ts +62 -0
  85. package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -0
  86. package/bin/executor/core-engine/CoreEngineRunner.js +309 -0
  87. package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -0
  88. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts +5 -0
  89. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts.map +1 -1
  90. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js +2 -4
  91. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js.map +1 -1
  92. package/bin/executor/messages/AssistantResultPersistence.d.ts +3 -3
  93. package/bin/executor/messages/AssistantResultPersistence.d.ts.map +1 -1
  94. package/bin/executor/messages/AssistantResultPersistence.js +2 -6
  95. package/bin/executor/messages/AssistantResultPersistence.js.map +1 -1
  96. package/bin/executor/messages/SessionStepEventMapper.d.ts +7 -8
  97. package/bin/executor/messages/SessionStepEventMapper.d.ts.map +1 -1
  98. package/bin/executor/messages/SessionStepEventMapper.js +55 -86
  99. package/bin/executor/messages/SessionStepEventMapper.js.map +1 -1
  100. package/bin/executor/messages/UserVisibleText.d.ts +2 -10
  101. package/bin/executor/messages/UserVisibleText.d.ts.map +1 -1
  102. package/bin/executor/messages/UserVisibleText.js +3 -16
  103. package/bin/executor/messages/UserVisibleText.js.map +1 -1
  104. package/bin/executor/services/ExecutorInflightService.d.ts +39 -0
  105. package/bin/executor/services/ExecutorInflightService.d.ts.map +1 -0
  106. package/bin/executor/services/ExecutorInflightService.js +75 -0
  107. package/bin/executor/services/ExecutorInflightService.js.map +1 -0
  108. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +103 -0
  109. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +1 -0
  110. package/bin/executor/services/ExecutorRecoveryPolicy.js +87 -0
  111. package/bin/executor/services/ExecutorRecoveryPolicy.js.map +1 -0
  112. package/bin/executor/store/history/SessionHistoryStore.d.ts +12 -0
  113. package/bin/executor/store/history/SessionHistoryStore.d.ts.map +1 -1
  114. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts +12 -0
  115. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts.map +1 -1
  116. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js +145 -8
  117. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js.map +1 -1
  118. package/bin/executor/tools/plugin/PluginToolBridge.d.ts +19 -0
  119. package/bin/executor/tools/plugin/PluginToolBridge.d.ts.map +1 -0
  120. package/bin/executor/tools/plugin/PluginToolBridge.js +143 -0
  121. package/bin/executor/tools/plugin/PluginToolBridge.js.map +1 -0
  122. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts +32 -0
  123. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts.map +1 -0
  124. package/bin/executor/tools/plugin/PluginToolDefinition.js +27 -0
  125. package/bin/executor/tools/plugin/PluginToolDefinition.js.map +1 -0
  126. package/bin/executor/tools/plugin/PluginToolSchemas.d.ts +14 -0
  127. package/bin/executor/tools/plugin/PluginToolSchemas.d.ts.map +1 -0
  128. package/bin/executor/tools/plugin/PluginToolSchemas.js +19 -0
  129. package/bin/executor/tools/plugin/PluginToolSchemas.js.map +1 -0
  130. package/bin/executor/tools/plugin/types/PluginTool.d.ts +39 -0
  131. package/bin/executor/tools/plugin/types/PluginTool.d.ts.map +1 -0
  132. package/bin/executor/tools/plugin/types/PluginTool.js +9 -0
  133. package/bin/executor/tools/plugin/types/PluginTool.js.map +1 -0
  134. package/bin/executor/tools/shell/ShellToolBridge.js +3 -3
  135. package/bin/executor/tools/shell/ShellToolBridge.js.map +1 -1
  136. package/bin/executor/tools/shell/ShellToolFormatting.d.ts +1 -10
  137. package/bin/executor/tools/shell/ShellToolFormatting.d.ts.map +1 -1
  138. package/bin/executor/tools/shell/ShellToolFormatting.js +1 -39
  139. package/bin/executor/tools/shell/ShellToolFormatting.js.map +1 -1
  140. package/bin/executor/types/SessionHistoryPaths.d.ts +4 -0
  141. package/bin/executor/types/SessionHistoryPaths.d.ts.map +1 -1
  142. package/bin/executor/types/SessionRun.d.ts +18 -0
  143. package/bin/executor/types/SessionRun.d.ts.map +1 -1
  144. package/bin/index.d.ts +15 -6
  145. package/bin/index.d.ts.map +1 -1
  146. package/bin/index.js +6 -3
  147. package/bin/index.js.map +1 -1
  148. package/bin/plugin/core/BasePlugin.d.ts +2 -2
  149. package/bin/plugin/core/BasePlugin.d.ts.map +1 -1
  150. package/bin/plugin/core/BasePlugin.js.map +1 -1
  151. package/bin/plugin/core/ImagePlugin.d.ts +56 -0
  152. package/bin/plugin/core/ImagePlugin.d.ts.map +1 -0
  153. package/bin/plugin/core/ImagePlugin.js +109 -0
  154. package/bin/plugin/core/ImagePlugin.js.map +1 -0
  155. package/bin/plugin/core/PluginCommandRequest.d.ts +1 -1
  156. package/bin/plugin/core/PluginCommandRequest.js +1 -1
  157. package/bin/plugin/core/PluginLocalExecution.js +1 -1
  158. package/bin/plugin/core/PluginLocalExecution.js.map +1 -1
  159. package/bin/plugin/core/ProjectConfigStore.d.ts +3 -2
  160. package/bin/plugin/core/ProjectConfigStore.d.ts.map +1 -1
  161. package/bin/plugin/core/ProjectConfigStore.js +3 -4
  162. package/bin/plugin/core/ProjectConfigStore.js.map +1 -1
  163. package/bin/plugin/types/Plugin.d.ts +10 -842
  164. package/bin/plugin/types/Plugin.d.ts.map +1 -1
  165. package/bin/plugin/types/Plugin.js +3 -4
  166. package/bin/plugin/types/Plugin.js.map +1 -1
  167. package/bin/plugin/types/PluginState.d.ts +1 -1
  168. package/bin/plugin/types/PluginState.d.ts.map +1 -1
  169. package/bin/rpc/Client.d.ts +2 -99
  170. package/bin/rpc/Client.d.ts.map +1 -1
  171. package/bin/rpc/Client.js +0 -46
  172. package/bin/rpc/Client.js.map +1 -1
  173. package/bin/rpc/Server.d.ts +5 -21
  174. package/bin/rpc/Server.d.ts.map +1 -1
  175. package/bin/rpc/Server.js +30 -315
  176. package/bin/rpc/Server.js.map +1 -1
  177. package/bin/rpc/server/InternalHandlers.d.ts +21 -0
  178. package/bin/rpc/server/InternalHandlers.d.ts.map +1 -0
  179. package/bin/rpc/server/InternalHandlers.js +190 -0
  180. package/bin/rpc/server/InternalHandlers.js.map +1 -0
  181. package/bin/rpc/server/RequestDispatcher.d.ts +27 -0
  182. package/bin/rpc/server/RequestDispatcher.d.ts.map +1 -0
  183. package/bin/rpc/server/RequestDispatcher.js +38 -0
  184. package/bin/rpc/server/RequestDispatcher.js.map +1 -0
  185. package/bin/rpc/server/SdkSessionHandlers.d.ts +25 -0
  186. package/bin/rpc/server/SdkSessionHandlers.d.ts.map +1 -0
  187. package/bin/rpc/server/SdkSessionHandlers.js +86 -0
  188. package/bin/rpc/server/SdkSessionHandlers.js.map +1 -0
  189. package/bin/rpc/server/ServerTypes.d.ts +59 -0
  190. package/bin/rpc/server/ServerTypes.d.ts.map +1 -0
  191. package/bin/rpc/server/ServerTypes.js +9 -0
  192. package/bin/rpc/server/ServerTypes.js.map +1 -0
  193. package/bin/{runtime/sandbox → sandbox}/MacOsSeatbeltSandbox.d.ts +1 -1
  194. package/bin/sandbox/MacOsSeatbeltSandbox.d.ts.map +1 -0
  195. package/bin/sandbox/MacOsSeatbeltSandbox.js.map +1 -0
  196. package/bin/{runtime/sandbox → sandbox}/SandboxConfigResolver.d.ts +2 -2
  197. package/bin/sandbox/SandboxConfigResolver.d.ts.map +1 -0
  198. package/bin/sandbox/SandboxConfigResolver.js.map +1 -0
  199. package/bin/{runtime/sandbox → sandbox}/SandboxRunner.d.ts +2 -2
  200. package/bin/sandbox/SandboxRunner.d.ts.map +1 -0
  201. package/bin/{runtime/sandbox → sandbox}/SandboxRunner.js +2 -2
  202. package/bin/sandbox/SandboxRunner.js.map +1 -0
  203. package/bin/sandbox/types/Sandbox.d.ts.map +1 -0
  204. package/bin/sandbox/types/Sandbox.js.map +1 -0
  205. package/bin/{runtime/sandbox → sandbox}/types/SandboxRuntime.d.ts +2 -2
  206. package/bin/sandbox/types/SandboxRuntime.d.ts.map +1 -0
  207. package/bin/sandbox/types/SandboxRuntime.js.map +1 -0
  208. package/bin/session/Session.d.ts +14 -83
  209. package/bin/session/Session.d.ts.map +1 -1
  210. package/bin/session/Session.js +140 -362
  211. package/bin/session/Session.js.map +1 -1
  212. package/bin/session/SessionSystemBuilder.d.ts +2 -1
  213. package/bin/session/SessionSystemBuilder.d.ts.map +1 -1
  214. package/bin/session/SessionSystemBuilder.js +2 -3
  215. package/bin/session/SessionSystemBuilder.js.map +1 -1
  216. package/bin/session/browse/Browse.d.ts +1 -1
  217. package/bin/session/browse/Browse.d.ts.map +1 -1
  218. package/bin/session/browse/Browse.js +28 -13
  219. package/bin/session/browse/Browse.js.map +1 -1
  220. package/bin/session/index.d.ts +1 -1
  221. package/bin/session/index.d.ts.map +1 -1
  222. package/bin/session/index.js +1 -1
  223. package/bin/session/index.js.map +1 -1
  224. package/bin/session/services/SessionStateService.d.ts +132 -0
  225. package/bin/session/services/SessionStateService.d.ts.map +1 -0
  226. package/bin/session/services/SessionStateService.js +242 -0
  227. package/bin/session/services/SessionStateService.js.map +1 -0
  228. package/bin/session/services/SessionTurnService.d.ts +66 -0
  229. package/bin/session/services/SessionTurnService.d.ts.map +1 -0
  230. package/bin/session/services/SessionTurnService.js +137 -0
  231. package/bin/session/services/SessionTurnService.js.map +1 -0
  232. package/bin/session/services/SessionViewService.d.ts +105 -0
  233. package/bin/session/services/SessionViewService.d.ts.map +1 -0
  234. package/bin/session/services/SessionViewService.js +184 -0
  235. package/bin/session/services/SessionViewService.js.map +1 -0
  236. package/bin/session/storage/Paths.d.ts +9 -0
  237. package/bin/session/storage/Paths.d.ts.map +1 -1
  238. package/bin/session/storage/Paths.js +11 -0
  239. package/bin/session/storage/Paths.js.map +1 -1
  240. package/bin/types/agent/AgentOptions.d.ts +152 -0
  241. package/bin/types/agent/AgentOptions.d.ts.map +1 -0
  242. package/bin/types/agent/AgentOptions.js +9 -0
  243. package/bin/types/agent/AgentOptions.js.map +1 -0
  244. package/bin/types/{runtime/host/AgentHost.d.ts → agent/AgentRuntimeAssembly.d.ts} +4 -4
  245. package/bin/types/agent/AgentRuntimeAssembly.d.ts.map +1 -0
  246. package/bin/types/{runtime/host/AgentHost.js → agent/AgentRuntimeAssembly.js} +3 -3
  247. package/bin/types/agent/AgentRuntimeAssembly.js.map +1 -0
  248. package/bin/types/agent/AgentTypes.d.ts +10 -613
  249. package/bin/types/agent/AgentTypes.d.ts.map +1 -1
  250. package/bin/types/agent/AgentTypes.js +4 -4
  251. package/bin/types/agent/RemoteAgentOptions.d.ts +28 -0
  252. package/bin/types/agent/RemoteAgentOptions.d.ts.map +1 -0
  253. package/bin/types/agent/RemoteAgentOptions.js +9 -0
  254. package/bin/types/agent/RemoteAgentOptions.js.map +1 -0
  255. package/bin/types/agent/SessionActor.d.ts +60 -0
  256. package/bin/types/agent/SessionActor.d.ts.map +1 -0
  257. package/bin/types/agent/SessionActor.js +9 -0
  258. package/bin/types/agent/SessionActor.js.map +1 -0
  259. package/bin/types/agent/SessionTypes.d.ts +312 -0
  260. package/bin/types/agent/SessionTypes.d.ts.map +1 -0
  261. package/bin/types/agent/SessionTypes.js +9 -0
  262. package/bin/types/agent/SessionTypes.js.map +1 -0
  263. package/bin/types/config/DowncityConfig.d.ts +1 -1
  264. package/bin/types/config/DowncityConfig.d.ts.map +1 -1
  265. package/bin/types/executor/SessionRunContext.d.ts +66 -0
  266. package/bin/types/executor/SessionRunContext.d.ts.map +1 -0
  267. package/bin/types/executor/SessionRunContext.js +10 -0
  268. package/bin/types/executor/SessionRunContext.js.map +1 -0
  269. package/bin/types/{runtime/host → platform}/Store.d.ts +1 -1
  270. package/bin/types/platform/Store.d.ts.map +1 -0
  271. package/bin/types/{runtime/host → platform}/Store.js +1 -1
  272. package/bin/types/platform/Store.js.map +1 -0
  273. package/bin/types/plugin/ImagePlugin.d.ts +94 -0
  274. package/bin/types/plugin/ImagePlugin.d.ts.map +1 -0
  275. package/bin/types/plugin/ImagePlugin.js +10 -0
  276. package/bin/types/plugin/ImagePlugin.js.map +1 -0
  277. package/bin/types/plugin/PluginAction.d.ts +119 -0
  278. package/bin/types/plugin/PluginAction.d.ts.map +1 -0
  279. package/bin/types/plugin/PluginAction.js +9 -0
  280. package/bin/types/plugin/PluginAction.js.map +1 -0
  281. package/bin/types/plugin/PluginCommand.d.ts +80 -0
  282. package/bin/types/plugin/PluginCommand.d.ts.map +1 -0
  283. package/bin/types/plugin/PluginCommand.js +9 -0
  284. package/bin/types/plugin/PluginCommand.js.map +1 -0
  285. package/bin/types/plugin/PluginDefinition.d.ts +57 -0
  286. package/bin/types/plugin/PluginDefinition.d.ts.map +1 -0
  287. package/bin/types/plugin/PluginDefinition.js +9 -0
  288. package/bin/types/plugin/PluginDefinition.js.map +1 -0
  289. package/bin/types/plugin/PluginHttp.d.ts +34 -0
  290. package/bin/types/plugin/PluginHttp.d.ts.map +1 -0
  291. package/bin/types/plugin/PluginHttp.js +9 -0
  292. package/bin/types/plugin/PluginHttp.js.map +1 -0
  293. package/bin/types/plugin/PluginRuntime.d.ts +148 -0
  294. package/bin/types/plugin/PluginRuntime.d.ts.map +1 -0
  295. package/bin/types/plugin/PluginRuntime.js +9 -0
  296. package/bin/types/plugin/PluginRuntime.js.map +1 -0
  297. package/bin/types/plugin/PluginSetup.d.ts +133 -0
  298. package/bin/types/plugin/PluginSetup.d.ts.map +1 -0
  299. package/bin/types/plugin/PluginSetup.js +9 -0
  300. package/bin/types/plugin/PluginSetup.js.map +1 -0
  301. package/bin/types/plugin/PluginState.d.ts +69 -0
  302. package/bin/types/plugin/PluginState.d.ts.map +1 -0
  303. package/bin/types/plugin/PluginState.js +9 -0
  304. package/bin/types/plugin/PluginState.js.map +1 -0
  305. package/bin/types/rpc/RpcProtocol.d.ts +323 -0
  306. package/bin/types/rpc/RpcProtocol.d.ts.map +1 -0
  307. package/bin/types/rpc/RpcProtocol.js +10 -0
  308. package/bin/types/rpc/RpcProtocol.js.map +1 -0
  309. package/bin/types/runtime/agent/AgentContext.d.ts +1 -1
  310. package/bin/types/runtime/agent/AgentContext.d.ts.map +1 -1
  311. package/bin/types/runtime/agent/AgentRuntime.d.ts +1 -1
  312. package/bin/types/runtime/agent/AgentRuntime.d.ts.map +1 -1
  313. package/bin/types/session/SessionComposerOptions.d.ts +90 -0
  314. package/bin/types/session/SessionComposerOptions.d.ts.map +1 -0
  315. package/bin/types/session/SessionComposerOptions.js +10 -0
  316. package/bin/types/session/SessionComposerOptions.js.map +1 -0
  317. package/bin/types/session/SessionLocalState.d.ts +35 -0
  318. package/bin/types/session/SessionLocalState.d.ts.map +1 -0
  319. package/bin/types/session/SessionLocalState.js +10 -0
  320. package/bin/types/session/SessionLocalState.js.map +1 -0
  321. package/bin/types/session/SessionOptions.d.ts +85 -0
  322. package/bin/types/session/SessionOptions.d.ts.map +1 -0
  323. package/bin/types/session/SessionOptions.js +10 -0
  324. package/bin/types/session/SessionOptions.js.map +1 -0
  325. package/package.json +2 -2
  326. package/scripts/session-history-inflight.test.mjs +146 -0
  327. package/src/agent/local/Agent.ts +197 -0
  328. package/src/agent/local/AgentInstructions.ts +68 -0
  329. package/src/agent/local/AgentPluginFactory.ts +83 -0
  330. package/src/{runtime/host/AgentHostRuntime.ts → agent/local/AgentRuntimeAssembly.ts} +2 -2
  331. package/src/agent/local/AgentRuntimeFactory.ts +152 -0
  332. package/src/{runtime/host → agent/local}/ProjectSetup.ts +1 -1
  333. package/src/agent/local/services/AgentAssemblyService.ts +268 -0
  334. package/src/agent/local/services/AgentLifecycleService.ts +187 -0
  335. package/src/agent/local/services/AgentSessionManager.ts +291 -0
  336. package/src/agent/remote/RemoteAgent.ts +76 -0
  337. package/src/agent/remote/RemoteSession.ts +287 -0
  338. package/src/agent/remote/RemoteTransport.ts +71 -0
  339. package/src/agent/remote/TransportFactory.ts +29 -0
  340. package/src/agent/remote/transports/HttpRemoteAgentTransport.ts +347 -0
  341. package/src/agent/remote/transports/RpcRemoteAgentTransport.ts +107 -0
  342. package/src/executor/Executor.ts +107 -426
  343. package/src/executor/README.md +4 -4
  344. package/src/executor/SessionRunScope.ts +47 -71
  345. package/src/executor/composer/context/LocalSessionContextComposer.ts +24 -20
  346. package/src/executor/composer/context/SessionContextComposer.ts +13 -3
  347. package/src/executor/composer/history/SessionHistoryWriter.ts +2 -2
  348. package/src/executor/composer/system/SessionSystemComposer.ts +2 -1
  349. package/src/executor/composer/system/default/DefaultSessionSystemComposer.ts +3 -4
  350. package/src/executor/core-engine/CoreEngineRunner.ts +433 -0
  351. package/src/executor/core-engine/CoreEngineUiStreamCollector.ts +7 -5
  352. package/src/executor/messages/AssistantResultPersistence.ts +4 -12
  353. package/src/executor/messages/SessionStepEventMapper.ts +59 -101
  354. package/src/executor/messages/UserVisibleText.ts +3 -18
  355. package/src/executor/services/ExecutorInflightService.ts +101 -0
  356. package/src/executor/services/ExecutorRecoveryPolicy.ts +213 -0
  357. package/src/executor/store/history/SessionHistoryStore.ts +15 -0
  358. package/src/executor/store/history/jsonl/JsonlSessionHistoryStore.ts +164 -11
  359. package/src/executor/tools/plugin/PluginToolBridge.ts +161 -0
  360. package/src/executor/tools/plugin/PluginToolDefinition.ts +32 -0
  361. package/src/executor/tools/plugin/PluginToolSchemas.ts +20 -0
  362. package/src/executor/tools/plugin/types/PluginTool.ts +41 -0
  363. package/src/executor/tools/shell/ShellToolBridge.ts +3 -3
  364. package/src/executor/tools/shell/ShellToolFormatting.ts +1 -50
  365. package/src/executor/types/SessionHistoryPaths.ts +5 -0
  366. package/src/executor/types/SessionRun.ts +20 -0
  367. package/src/index.ts +38 -5
  368. package/src/plugin/core/BasePlugin.ts +2 -2
  369. package/src/plugin/core/ImagePlugin.ts +128 -0
  370. package/src/plugin/core/PluginCommandRequest.ts +1 -1
  371. package/src/plugin/core/PluginLocalExecution.ts +1 -1
  372. package/src/plugin/core/ProjectConfigStore.ts +4 -4
  373. package/src/plugin/types/Plugin.ts +54 -913
  374. package/src/plugin/types/PluginState.ts +1 -1
  375. package/src/rpc/Client.ts +16 -322
  376. package/src/rpc/Server.ts +39 -565
  377. package/src/rpc/server/InternalHandlers.ts +230 -0
  378. package/src/rpc/server/RequestDispatcher.ts +67 -0
  379. package/src/rpc/server/SdkSessionHandlers.ts +106 -0
  380. package/src/rpc/server/ServerTypes.ts +65 -0
  381. package/src/{runtime/sandbox → sandbox}/MacOsSeatbeltSandbox.ts +1 -1
  382. package/src/{runtime/sandbox → sandbox}/SandboxConfigResolver.ts +1 -1
  383. package/src/{runtime/sandbox → sandbox}/SandboxRunner.ts +3 -3
  384. package/src/{runtime/sandbox → sandbox}/types/SandboxRuntime.ts +2 -2
  385. package/src/session/Session.ts +184 -485
  386. package/src/session/SessionSystemBuilder.ts +3 -3
  387. package/src/session/browse/Browse.ts +29 -10
  388. package/src/session/index.ts +1 -0
  389. package/src/session/services/SessionStateService.ts +341 -0
  390. package/src/session/services/SessionTurnService.ts +202 -0
  391. package/src/session/services/SessionViewService.ts +301 -0
  392. package/src/session/storage/Paths.ts +19 -0
  393. package/src/types/agent/AgentOptions.ts +172 -0
  394. package/src/types/{runtime/host/AgentHost.ts → agent/AgentRuntimeAssembly.ts} +2 -2
  395. package/src/types/agent/AgentTypes.ts +47 -709
  396. package/src/types/agent/RemoteAgentOptions.ts +29 -0
  397. package/src/types/agent/SessionActor.ts +88 -0
  398. package/src/types/agent/SessionTypes.ts +335 -0
  399. package/src/types/config/DowncityConfig.ts +1 -1
  400. package/src/types/executor/SessionRunContext.ts +76 -0
  401. package/src/types/{runtime/host → platform}/Store.ts +1 -1
  402. package/src/types/plugin/ImagePlugin.ts +103 -0
  403. package/src/types/plugin/PluginAction.ts +133 -0
  404. package/src/types/plugin/PluginCommand.ts +89 -0
  405. package/src/types/plugin/PluginDefinition.ts +74 -0
  406. package/src/types/plugin/PluginHttp.ts +36 -0
  407. package/src/types/plugin/PluginRuntime.ts +169 -0
  408. package/src/types/plugin/PluginSetup.ts +138 -0
  409. package/src/types/plugin/PluginState.ts +82 -0
  410. package/src/types/rpc/RpcProtocol.ts +361 -0
  411. package/src/types/runtime/agent/AgentContext.ts +1 -1
  412. package/src/types/runtime/agent/AgentRuntime.ts +1 -1
  413. package/src/types/session/SessionComposerOptions.ts +107 -0
  414. package/src/types/session/SessionLocalState.ts +40 -0
  415. package/src/types/session/SessionOptions.ts +99 -0
  416. package/tsconfig.tsbuildinfo +1 -1
  417. package/bin/agent/Agent.d.ts +0 -223
  418. package/bin/agent/Agent.d.ts.map +0 -1
  419. package/bin/agent/Agent.js +0 -627
  420. package/bin/agent/Agent.js.map +0 -1
  421. package/bin/agent/RemoteAgent.d.ts.map +0 -1
  422. package/bin/agent/RemoteAgent.js +0 -585
  423. package/bin/agent/RemoteAgent.js.map +0 -1
  424. package/bin/runtime/auth/AuthEnv.d.ts +0 -36
  425. package/bin/runtime/auth/AuthEnv.d.ts.map +0 -1
  426. package/bin/runtime/auth/AuthEnv.js +0 -54
  427. package/bin/runtime/auth/AuthEnv.js.map +0 -1
  428. package/bin/runtime/auth/CliAuthStateStore.d.ts +0 -29
  429. package/bin/runtime/auth/CliAuthStateStore.d.ts.map +0 -1
  430. package/bin/runtime/auth/CliAuthStateStore.js +0 -26
  431. package/bin/runtime/auth/CliAuthStateStore.js.map +0 -1
  432. package/bin/runtime/control/AuthControlService.d.ts +0 -34
  433. package/bin/runtime/control/AuthControlService.d.ts.map +0 -1
  434. package/bin/runtime/control/AuthControlService.js +0 -129
  435. package/bin/runtime/control/AuthControlService.js.map +0 -1
  436. package/bin/runtime/control/CommonHelpers.d.ts +0 -36
  437. package/bin/runtime/control/CommonHelpers.d.ts.map +0 -1
  438. package/bin/runtime/control/CommonHelpers.js +0 -63
  439. package/bin/runtime/control/CommonHelpers.js.map +0 -1
  440. package/bin/runtime/control/ExecuteBySession.d.ts +0 -30
  441. package/bin/runtime/control/ExecuteBySession.d.ts.map +0 -1
  442. package/bin/runtime/control/ExecuteBySession.js +0 -41
  443. package/bin/runtime/control/ExecuteBySession.js.map +0 -1
  444. package/bin/runtime/control/ExecuteInput.d.ts +0 -18
  445. package/bin/runtime/control/ExecuteInput.d.ts.map +0 -1
  446. package/bin/runtime/control/ExecuteInput.js +0 -201
  447. package/bin/runtime/control/ExecuteInput.js.map +0 -1
  448. package/bin/runtime/control/Helpers.d.ts +0 -13
  449. package/bin/runtime/control/Helpers.d.ts.map +0 -1
  450. package/bin/runtime/control/Helpers.js +0 -13
  451. package/bin/runtime/control/Helpers.js.map +0 -1
  452. package/bin/runtime/control/MessageTimeline.d.ts +0 -22
  453. package/bin/runtime/control/MessageTimeline.d.ts.map +0 -1
  454. package/bin/runtime/control/MessageTimeline.js +0 -226
  455. package/bin/runtime/control/MessageTimeline.js.map +0 -1
  456. package/bin/runtime/control/SessionSummaryStore.d.ts +0 -20
  457. package/bin/runtime/control/SessionSummaryStore.d.ts.map +0 -1
  458. package/bin/runtime/control/SessionSummaryStore.js +0 -50
  459. package/bin/runtime/control/SessionSummaryStore.js.map +0 -1
  460. package/bin/runtime/control/TaskStore.d.ts +0 -33
  461. package/bin/runtime/control/TaskStore.d.ts.map +0 -1
  462. package/bin/runtime/control/TaskStore.js +0 -175
  463. package/bin/runtime/control/TaskStore.js.map +0 -1
  464. package/bin/runtime/control/types/AuthControl.d.ts +0 -30
  465. package/bin/runtime/control/types/AuthControl.d.ts.map +0 -1
  466. package/bin/runtime/control/types/AuthControl.js +0 -9
  467. package/bin/runtime/control/types/AuthControl.js.map +0 -1
  468. package/bin/runtime/control/types/ControlSessionExecute.d.ts +0 -85
  469. package/bin/runtime/control/types/ControlSessionExecute.d.ts.map +0 -1
  470. package/bin/runtime/control/types/ControlSessionExecute.js +0 -9
  471. package/bin/runtime/control/types/ControlSessionExecute.js.map +0 -1
  472. package/bin/runtime/control/types/ControlViewData.d.ts +0 -320
  473. package/bin/runtime/control/types/ControlViewData.d.ts.map +0 -1
  474. package/bin/runtime/control/types/ControlViewData.js +0 -9
  475. package/bin/runtime/control/types/ControlViewData.js.map +0 -1
  476. package/bin/runtime/host/AgentHostRuntime.d.ts.map +0 -1
  477. package/bin/runtime/host/AgentHostRuntime.js.map +0 -1
  478. package/bin/runtime/host/ProjectSetup.d.ts.map +0 -1
  479. package/bin/runtime/host/ProjectSetup.js.map +0 -1
  480. package/bin/runtime/sandbox/MacOsSeatbeltSandbox.d.ts.map +0 -1
  481. package/bin/runtime/sandbox/MacOsSeatbeltSandbox.js.map +0 -1
  482. package/bin/runtime/sandbox/SandboxConfigResolver.d.ts.map +0 -1
  483. package/bin/runtime/sandbox/SandboxConfigResolver.js.map +0 -1
  484. package/bin/runtime/sandbox/SandboxRunner.d.ts.map +0 -1
  485. package/bin/runtime/sandbox/SandboxRunner.js.map +0 -1
  486. package/bin/runtime/sandbox/types/Sandbox.d.ts.map +0 -1
  487. package/bin/runtime/sandbox/types/Sandbox.js.map +0 -1
  488. package/bin/runtime/sandbox/types/SandboxRuntime.d.ts.map +0 -1
  489. package/bin/runtime/sandbox/types/SandboxRuntime.js.map +0 -1
  490. package/bin/types/runtime/host/AgentHost.d.ts.map +0 -1
  491. package/bin/types/runtime/host/AgentHost.js.map +0 -1
  492. package/bin/types/runtime/host/Store.d.ts.map +0 -1
  493. package/bin/types/runtime/host/Store.js.map +0 -1
  494. package/src/agent/Agent.ts +0 -734
  495. package/src/agent/RemoteAgent.ts +0 -834
  496. package/src/runtime/auth/AuthEnv.ts +0 -62
  497. package/src/runtime/auth/CliAuthStateStore.ts +0 -46
  498. package/src/runtime/control/AuthControlService.ts +0 -169
  499. package/src/runtime/control/CommonHelpers.ts +0 -69
  500. package/src/runtime/control/ExecuteBySession.ts +0 -52
  501. package/src/runtime/control/ExecuteInput.ts +0 -236
  502. package/src/runtime/control/Helpers.ts +0 -22
  503. package/src/runtime/control/MessageTimeline.ts +0 -269
  504. package/src/runtime/control/SessionSummaryStore.ts +0 -72
  505. package/src/runtime/control/TaskStore.ts +0 -242
  506. package/src/runtime/control/types/AuthControl.ts +0 -34
  507. package/src/runtime/control/types/ControlSessionExecute.ts +0 -99
  508. package/src/runtime/control/types/ControlViewData.ts +0 -392
  509. /package/bin/{runtime/sandbox → sandbox}/MacOsSeatbeltSandbox.js +0 -0
  510. /package/bin/{runtime/sandbox → sandbox}/SandboxConfigResolver.js +0 -0
  511. /package/bin/{runtime/sandbox → sandbox}/types/Sandbox.d.ts +0 -0
  512. /package/bin/{runtime/sandbox → sandbox}/types/Sandbox.js +0 -0
  513. /package/bin/{runtime/sandbox → sandbox}/types/SandboxRuntime.js +0 -0
  514. /package/src/{runtime/sandbox → sandbox}/types/Sandbox.ts +0 -0
@@ -1,54 +1,20 @@
1
1
  import { AsyncLocalStorage } from "node:async_hooks";
2
+ import type { FileUIPart } from "ai";
2
3
  import type { SessionUserMessageV1 } from "@/executor/types/SessionMessages.js";
3
- import type {
4
- SessionAssistantStepCallback,
5
- SessionUiMessageChunkCallback,
6
- } from "@/executor/types/SessionRun.js";
4
+ import type { SessionRunContext } from "@/types/executor/SessionRunContext.js";
7
5
 
8
6
  /**
9
7
  * SessionRunScope(单次请求作用域)。
10
8
  *
11
9
  * 关键点(中文)
12
10
  * - 这是 session run 层请求作用域上下文,不属于具体 plugin 业务模块。
13
- * - 统一承载请求链需要透传的字段(如 `sessionId`)。
11
+ * - 当前阶段仅作为深层工具回调读取 `runContext` 的薄包装。
14
12
  */
15
13
  export type SessionRunScope = {
16
- sessionId?: string;
17
14
  /**
18
- * step 边界合并回调(可选)。
19
- *
20
- * 关键点(中文)
21
- * - 由调用侧(如 chat queue)注入。
22
- * - Orchestrator 从 SessionRunScope 读取并编排到本轮运行上下文。
15
+ * 当前显式运行上下文。
23
16
  */
24
- onStepCallback?: () => Promise<SessionUserMessageV1[]>;
25
-
26
- /**
27
- * assistant step 完成回调(可选)。
28
- *
29
- * 关键点(中文)
30
- * - 在每个 LLM step 结束时触发。
31
- * - 用于把中间文本增量派发到外部通道(如 direct 模式分步发送)。
32
- */
33
- onAssistantStepCallback?: SessionAssistantStepCallback;
34
-
35
- /**
36
- * UI stream chunk 回调(可选)。
37
- *
38
- * 关键点(中文)
39
- * - 用于把底层模型 UI stream 事件向上层 SDK / transport 旁路输出。
40
- * - 不影响最终 assistantMessage 的收敛与落盘。
41
- */
42
- onUiMessageChunkCallback?: SessionUiMessageChunkCallback;
43
-
44
- /**
45
- * 运行时注入的 user 消息队列(可选)。
46
- *
47
- * 关键点(中文)
48
- * - 用于在 tool 执行后向下一 step 注入结构化 user 消息。
49
- * - 队列内容由上层 plugin runtime 通过统一协议下发,main 不感知业务语义。
50
- */
51
- injectedUserMessages?: SessionUserMessageV1[];
17
+ runContext: SessionRunContext;
52
18
  };
53
19
 
54
20
  /**
@@ -56,23 +22,10 @@ export type SessionRunScope = {
56
22
  *
57
23
  * 关键点(中文)
58
24
  * - 同一条异步调用链内可读取一致的 SessionRunScope。
59
- * - 用于把 `sessionId` 从入口透传到 plugin runtime 与工具层。
25
+ * - 当前主要用于 tool 深层桥接层读取活跃 runContext。
60
26
  */
61
27
  export const sessionRunScopeStorage = new AsyncLocalStorage<SessionRunScope>();
62
28
 
63
- /**
64
- * 待持久化的运行时注入 user 消息队列(按 sessionId)。
65
- *
66
- * 关键点(中文)
67
- * - sessionRunScopeStorage 中的 injectedUserMessages 只负责“下一 step 临时可见”。
68
- * - 为了让时间线顺序稳定,这里把“真正写入历史”的动作延后到
69
- * assistant message 落盘之后再统一执行。
70
- */
71
- const deferredPersistedUserMessagesBySession = new Map<
72
- string,
73
- SessionUserMessageV1[]
74
- >();
75
-
76
29
  /**
77
30
  * 在当前异步调用链内绑定 session run 作用域。
78
31
  */
@@ -87,6 +40,13 @@ export function getSessionRunScope(): SessionRunScope | undefined {
87
40
  return sessionRunScopeStorage.getStore();
88
41
  }
89
42
 
43
+ /**
44
+ * 读取当前异步链路上的显式 runContext。
45
+ */
46
+ export function getSessionRunContext(): SessionRunContext | undefined {
47
+ return sessionRunScopeStorage.getStore()?.runContext;
48
+ }
49
+
90
50
  /**
91
51
  * 入队一条“待注入 user 消息”。
92
52
  *
@@ -96,12 +56,9 @@ export function getSessionRunScope(): SessionRunScope | undefined {
96
56
  export function enqueueInjectedUserMessage(
97
57
  message: SessionUserMessageV1,
98
58
  ): void {
99
- const store = sessionRunScopeStorage.getStore();
100
- if (!store || !message) return;
101
- if (!Array.isArray(store.injectedUserMessages)) {
102
- store.injectedUserMessages = [];
103
- }
104
- store.injectedUserMessages.push(message);
59
+ const run_context = getSessionRunContext();
60
+ if (!run_context || !message) return;
61
+ run_context.injectedUserMessages.push(message);
105
62
  }
106
63
 
107
64
  /**
@@ -111,10 +68,10 @@ export function enqueueInjectedUserMessage(
111
68
  * - 采用 drain 语义,确保每条注入消息只在下一 step 使用一次。
112
69
  */
113
70
  export function drainInjectedUserMessages(): SessionUserMessageV1[] {
114
- const store = sessionRunScopeStorage.getStore();
115
- if (!store || !Array.isArray(store.injectedUserMessages)) return [];
116
- const out = [...store.injectedUserMessages];
117
- store.injectedUserMessages = [];
71
+ const run_context = getSessionRunContext();
72
+ if (!run_context) return [];
73
+ const out = [...run_context.injectedUserMessages];
74
+ run_context.injectedUserMessages = [];
118
75
  return out;
119
76
  }
120
77
 
@@ -125,11 +82,11 @@ export function enqueueDeferredPersistedUserMessage(
125
82
  sessionId: string,
126
83
  message: SessionUserMessageV1,
127
84
  ): void {
85
+ const run_context = getSessionRunContext();
128
86
  const key = String(sessionId || "").trim();
129
- if (!key || !message) return;
130
- const current = deferredPersistedUserMessagesBySession.get(key) || [];
131
- current.push(message);
132
- deferredPersistedUserMessagesBySession.set(key, current);
87
+ if (!run_context || !key || !message) return;
88
+ if (run_context.sessionId !== key) return;
89
+ run_context.deferredPersistedUserMessages.push(message);
133
90
  }
134
91
 
135
92
  /**
@@ -138,9 +95,28 @@ export function enqueueDeferredPersistedUserMessage(
138
95
  export function drainDeferredPersistedUserMessages(
139
96
  sessionId: string,
140
97
  ): SessionUserMessageV1[] {
98
+ const run_context = getSessionRunContext();
141
99
  const key = String(sessionId || "").trim();
142
- if (!key) return [];
143
- const current = deferredPersistedUserMessagesBySession.get(key) || [];
144
- deferredPersistedUserMessagesBySession.delete(key);
145
- return [...current];
100
+ if (!run_context || !key || run_context.sessionId !== key) return [];
101
+ const current = [...run_context.deferredPersistedUserMessages];
102
+ run_context.deferredPersistedUserMessages = [];
103
+ return current;
104
+ }
105
+
106
+ /**
107
+ * 入队一组“待并入 assistant 消息的 file parts”。
108
+ */
109
+ export function enqueueAssistantFileParts(parts: FileUIPart[]): void {
110
+ const run_context = getSessionRunContext();
111
+ if (!run_context || !Array.isArray(parts) || parts.length === 0) return;
112
+ run_context.pendingAssistantFileParts.push(...parts);
113
+ }
114
+
115
+ /**
116
+ * 读取当前 run 内待并入 assistant 消息的 file parts。
117
+ */
118
+ export function readPendingAssistantFileParts(): FileUIPart[] {
119
+ const run_context = getSessionRunContext();
120
+ if (!run_context) return [];
121
+ return [...run_context.pendingAssistantFileParts];
146
122
  }
@@ -8,10 +8,6 @@
8
8
 
9
9
  import type { ModelMessage } from "ai";
10
10
  import { generateId } from "@/utils/Id.js";
11
- import {
12
- drainInjectedUserMessages,
13
- getSessionRunScope,
14
- } from "@executor/SessionRunScope.js";
15
11
  import type {
16
12
  SessionContextComposer,
17
13
  SessionContextComposeResult,
@@ -19,6 +15,7 @@ import type {
19
15
  import type { SessionMessageV1 } from "@/executor/types/SessionMessages.js";
20
16
  import type { SessionSystemMessage } from "@/executor/types/SessionPrompts.js";
21
17
  import type { Tool } from "ai";
18
+ import type { SessionRunContext } from "@/types/executor/SessionRunContext.js";
22
19
 
23
20
  type LocalSessionContextComposerOptions = {
24
21
  /**
@@ -45,19 +42,18 @@ export class LocalSessionContextComposer implements SessionContextComposer {
45
42
  this.getTools = options.getTools;
46
43
  }
47
44
 
48
- async compose(): Promise<SessionContextComposeResult> {
45
+ async compose(
46
+ run_context: SessionRunContext,
47
+ ): Promise<SessionContextComposeResult> {
49
48
  const tools = this.getTools();
50
- const ctx = getSessionRunScope();
51
- const sessionId = String(ctx?.sessionId || this.sessionId || "").trim();
49
+ const sessionId = String(
50
+ run_context.sessionId || this.sessionId || "",
51
+ ).trim();
52
52
  if (!sessionId) {
53
53
  throw new Error(
54
- "LocalSessionContextComposer.compose requires a sessionId from sessionRunScope or options.sessionId",
54
+ "LocalSessionContextComposer.compose requires a non-empty sessionId",
55
55
  );
56
56
  }
57
- // 关键点(中文):sessionId 统一回填到请求上下文,后续组件直接读取。
58
- if (ctx && typeof ctx === "object") {
59
- if (!ctx.sessionId) ctx.sessionId = sessionId;
60
- }
61
57
  return {
62
58
  tools,
63
59
  };
@@ -69,6 +65,7 @@ export class LocalSessionContextComposer implements SessionContextComposer {
69
65
  appendMergedUserMessages: (
70
66
  messages: SessionMessageV1[],
71
67
  ) => Promise<ModelMessage[]>;
68
+ runContext: SessionRunContext;
72
69
  },
73
70
  ): (input: { messages?: ModelMessage[] }) => Promise<{
74
71
  system: SessionSystemMessage[];
@@ -82,8 +79,9 @@ export class LocalSessionContextComposer implements SessionContextComposer {
82
79
  system: SessionSystemMessage[];
83
80
  messages?: ModelMessage[];
84
81
  }> => {
85
- const injectedMessages = drainInjectedUserMessages();
86
- const onStepCallback = getSessionRunScope()?.onStepCallback;
82
+ const injectedMessages = [...input.runContext.injectedUserMessages];
83
+ input.runContext.injectedUserMessages = [];
84
+ const onStepCallback = input.runContext.onStepCallback;
87
85
  if (
88
86
  typeof onStepCallback !== "function" &&
89
87
  injectedMessages.length === 0
@@ -120,8 +118,10 @@ export class LocalSessionContextComposer implements SessionContextComposer {
120
118
  };
121
119
  }
122
120
 
123
- createOnStepFinishHandler(): (stepResult: unknown) => Promise<void> {
124
- const onAssistantStepCallback = getSessionRunScope()?.onAssistantStepCallback;
121
+ createOnStepFinishHandler(
122
+ run_context: SessionRunContext,
123
+ ): (stepResult: unknown) => Promise<void> {
124
+ const onAssistantStepCallback = run_context.onAssistantStepCallback;
125
125
  let assistantStepIndex = 0;
126
126
  return async (stepResult: unknown): Promise<void> => {
127
127
  const step = stepResult as { text?: unknown };
@@ -144,12 +144,16 @@ export class LocalSessionContextComposer implements SessionContextComposer {
144
144
  /**
145
145
  * 构造 fallback assistant 消息。
146
146
  */
147
- buildFallbackAssistantMessage(text: string): SessionMessageV1 {
148
- const ctx = getSessionRunScope();
149
- const sessionId = String(ctx?.sessionId || this.sessionId || "").trim();
147
+ buildFallbackAssistantMessage(
148
+ text: string,
149
+ run_context: SessionRunContext,
150
+ ): SessionMessageV1 {
151
+ const sessionId = String(
152
+ run_context.sessionId || this.sessionId || "",
153
+ ).trim();
150
154
  if (!sessionId) {
151
155
  throw new Error(
152
- "LocalSessionContextComposer.buildFallbackAssistantMessage requires a sessionId from sessionRunScope or options.sessionId",
156
+ "LocalSessionContextComposer.buildFallbackAssistantMessage requires a non-empty sessionId",
153
157
  );
154
158
  }
155
159
  return {
@@ -9,6 +9,7 @@
9
9
  import type { ModelMessage, Tool } from "ai";
10
10
  import type { SessionMessageV1 } from "@/executor/types/SessionMessages.js";
11
11
  import type { SessionSystemMessage } from "@/executor/types/SessionPrompts.js";
12
+ import type { SessionRunContext } from "@/types/executor/SessionRunContext.js";
12
13
 
13
14
  /**
14
15
  * 本轮运行上下文组装输出。
@@ -32,7 +33,7 @@ export interface SessionContextComposer {
32
33
  /**
33
34
  * 组装一次 run 所需上下文。
34
35
  */
35
- compose(): Promise<SessionContextComposeResult>;
36
+ compose(run_context: SessionRunContext): Promise<SessionContextComposeResult>;
36
37
 
37
38
  /**
38
39
  * 构造 prepareStep 回调。
@@ -49,6 +50,10 @@ export interface SessionContextComposer {
49
50
  appendMergedUserMessages: (
50
51
  messages: SessionMessageV1[],
51
52
  ) => Promise<ModelMessage[]>;
53
+ /**
54
+ * 当前显式运行上下文。
55
+ */
56
+ runContext: SessionRunContext;
52
57
  },
53
58
  ): (input: { messages?: ModelMessage[] }) => Promise<{
54
59
  system: SessionSystemMessage[];
@@ -58,7 +63,9 @@ export interface SessionContextComposer {
58
63
  /**
59
64
  * 构造 onStepFinish 回调。
60
65
  */
61
- createOnStepFinishHandler(): (stepResult: unknown) => Promise<void>;
66
+ createOnStepFinishHandler(
67
+ run_context: SessionRunContext,
68
+ ): (stepResult: unknown) => Promise<void>;
62
69
 
63
70
  /**
64
71
  * 构造 fallback assistant 消息。
@@ -66,5 +73,8 @@ export interface SessionContextComposer {
66
73
  * 关键点(中文)
67
74
  * - fallback 消息构造由 ContextComposer 内部实现,Executor 不直接依赖 history Composer。
68
75
  */
69
- buildFallbackAssistantMessage(text: string): SessionMessageV1;
76
+ buildFallbackAssistantMessage(
77
+ text: string,
78
+ run_context: SessionRunContext,
79
+ ): SessionMessageV1;
70
80
  }
@@ -104,7 +104,7 @@ export class SessionHistoryWriter {
104
104
  try {
105
105
  const historyStore = this.getHistoryStore();
106
106
  if (params.message && typeof params.message === "object") {
107
- await historyStore.append(params.message);
107
+ await historyStore.finalizeInflight(params.message);
108
108
  void this.afterSessionUpdatedAsync();
109
109
  return;
110
110
  }
@@ -112,7 +112,7 @@ export class SessionHistoryWriter {
112
112
  const fallbackText = String(params.fallbackText || "").trim();
113
113
  if (!fallbackText) return;
114
114
 
115
- await historyStore.append(
115
+ await historyStore.finalizeInflight(
116
116
  historyStore.assistantText({
117
117
  text: fallbackText,
118
118
  metadata: {
@@ -7,6 +7,7 @@
7
7
  */
8
8
 
9
9
  import type { SystemModelMessage } from "ai";
10
+ import type { SessionRunContext } from "@/types/executor/SessionRunContext.js";
10
11
 
11
12
  /**
12
13
  * Session system Composer 协议。
@@ -20,5 +21,5 @@ export interface SessionSystemComposer {
20
21
  /**
21
22
  * 解析本轮 system messages。
22
23
  */
23
- resolve(): Promise<SystemModelMessage[]>;
24
+ resolve(run_context: SessionRunContext): Promise<SystemModelMessage[]>;
24
25
  }
@@ -9,8 +9,8 @@
9
9
  import type {
10
10
  SessionSystemComposer,
11
11
  } from "@executor/composer/system/SessionSystemComposer.js";
12
- import { getSessionRunScope } from "@executor/SessionRunScope.js";
13
12
  import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
13
+ import type { SessionRunContext } from "@/types/executor/SessionRunContext.js";
14
14
  import {
15
15
  resolveSessionSystemMessages,
16
16
  type SystemProfile,
@@ -60,9 +60,8 @@ export class DefaultSessionSystemComposer implements SessionSystemComposer {
60
60
  this.profile = options.profile === "task" ? "task" : "chat";
61
61
  }
62
62
 
63
- async resolve() {
64
- const ctx = getSessionRunScope();
65
- const sessionId = String(ctx?.sessionId || "").trim();
63
+ async resolve(run_context: SessionRunContext) {
64
+ const sessionId = String(run_context.sessionId || "").trim();
66
65
  if (!sessionId) {
67
66
  throw new Error("DefaultSessionSystemComposer.resolve requires a non-empty sessionId");
68
67
  }