@downcity/agent 1.1.238 → 1.1.259

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 (578) hide show
  1. package/README.md +38 -45
  2. package/bin/agent/{local/Agent.d.ts → Agent.d.ts} +37 -27
  3. package/bin/agent/Agent.d.ts.map +1 -0
  4. package/bin/agent/Agent.js +211 -0
  5. package/bin/agent/Agent.js.map +1 -0
  6. package/bin/agent/AgentContext.d.ts +64 -0
  7. package/bin/agent/AgentContext.d.ts.map +1 -0
  8. package/bin/agent/AgentContext.js +53 -0
  9. package/bin/agent/AgentContext.js.map +1 -0
  10. package/bin/agent/{local/AgentInstructions.d.ts → AgentInstructions.d.ts} +1 -6
  11. package/bin/agent/AgentInstructions.d.ts.map +1 -0
  12. package/bin/agent/{local/AgentInstructions.js → AgentInstructions.js} +1 -10
  13. package/bin/agent/AgentInstructions.js.map +1 -0
  14. package/bin/{model/CityModelAdapter.d.ts → agent/AgentModel.d.ts} +3 -3
  15. package/bin/agent/AgentModel.d.ts.map +1 -0
  16. package/bin/{model/CityModelAdapter.js → agent/AgentModel.js} +11 -4
  17. package/bin/agent/AgentModel.js.map +1 -0
  18. package/bin/agent/{local/services/AgentSessions.d.ts → AgentSessions.d.ts} +30 -40
  19. package/bin/agent/AgentSessions.d.ts.map +1 -0
  20. package/bin/agent/{local/services/AgentSessions.js → AgentSessions.js} +62 -79
  21. package/bin/agent/AgentSessions.js.map +1 -0
  22. package/bin/agent/AgentState.d.ts +64 -0
  23. package/bin/agent/AgentState.d.ts.map +1 -0
  24. package/bin/agent/AgentState.js +118 -0
  25. package/bin/agent/AgentState.js.map +1 -0
  26. package/bin/config/Paths.d.ts +0 -43
  27. package/bin/config/Paths.d.ts.map +1 -1
  28. package/bin/config/Paths.js +0 -79
  29. package/bin/config/Paths.js.map +1 -1
  30. package/bin/config/ProjectSetup.d.ts.map +1 -0
  31. package/bin/{agent/local → config}/ProjectSetup.js +1 -1
  32. package/bin/config/ProjectSetup.js.map +1 -0
  33. package/bin/executor/Executor.d.ts +20 -86
  34. package/bin/executor/Executor.d.ts.map +1 -1
  35. package/bin/executor/Executor.js +109 -260
  36. package/bin/executor/Executor.js.map +1 -1
  37. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts +1 -1
  38. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts.map +1 -1
  39. package/bin/executor/composer/system/default/SystemDomain.d.ts +1 -1
  40. package/bin/executor/composer/system/default/SystemDomain.d.ts.map +1 -1
  41. package/bin/executor/composer/system/default/SystemDomain.js +4 -1
  42. package/bin/executor/composer/system/default/SystemDomain.js.map +1 -1
  43. package/bin/executor/composer/system/default/assets/core.prompt.d.ts +1 -1
  44. package/bin/executor/composer/system/default/assets/core.prompt.d.ts.map +1 -1
  45. package/bin/executor/composer/system/default/assets/core.prompt.js +1 -1
  46. package/bin/executor/composer/system/default/assets/core.prompt.js.map +1 -1
  47. package/bin/executor/core-engine/CoreEngineRunner.d.ts +7 -13
  48. package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -1
  49. package/bin/executor/core-engine/CoreEngineRunner.js +81 -34
  50. package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
  51. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +6 -12
  52. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +1 -1
  53. package/bin/executor/services/ExecutorRecoveryPolicy.js +20 -6
  54. package/bin/executor/services/ExecutorRecoveryPolicy.js.map +1 -1
  55. package/bin/executor/tools/file/ReadImageToolBridge.d.ts +21 -0
  56. package/bin/executor/tools/file/ReadImageToolBridge.d.ts.map +1 -0
  57. package/bin/executor/tools/file/ReadImageToolBridge.js +69 -0
  58. package/bin/executor/tools/file/ReadImageToolBridge.js.map +1 -0
  59. package/bin/executor/tools/plugin/PluginToolBridge.d.ts.map +1 -1
  60. package/bin/executor/tools/plugin/PluginToolBridge.js +6 -5
  61. package/bin/executor/tools/plugin/PluginToolBridge.js.map +1 -1
  62. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts.map +1 -1
  63. package/bin/executor/tools/plugin/PluginToolDefinition.js +15 -2
  64. package/bin/executor/tools/plugin/PluginToolDefinition.js.map +1 -1
  65. package/bin/executor/types/SessionHistoryMeta.d.ts +0 -2
  66. package/bin/executor/types/SessionHistoryMeta.d.ts.map +1 -1
  67. package/bin/index.d.ts +17 -21
  68. package/bin/index.d.ts.map +1 -1
  69. package/bin/index.js +9 -11
  70. package/bin/index.js.map +1 -1
  71. package/bin/plugin/core/ActionScheduleExecutor.d.ts +1 -1
  72. package/bin/plugin/core/ActionScheduleExecutor.d.ts.map +1 -1
  73. package/bin/plugin/core/ActionScheduleRuntime.d.ts +1 -1
  74. package/bin/plugin/core/ActionScheduleRuntime.d.ts.map +1 -1
  75. package/bin/plugin/core/BasePlugin.d.ts +4 -3
  76. package/bin/plugin/core/BasePlugin.d.ts.map +1 -1
  77. package/bin/plugin/core/BasePlugin.js.map +1 -1
  78. package/bin/plugin/core/HookRegistry.d.ts +5 -8
  79. package/bin/plugin/core/HookRegistry.d.ts.map +1 -1
  80. package/bin/plugin/core/HookRegistry.js +12 -12
  81. package/bin/plugin/core/HookRegistry.js.map +1 -1
  82. package/bin/plugin/core/PluginActionFactory.d.ts +6 -3
  83. package/bin/plugin/core/PluginActionFactory.d.ts.map +1 -1
  84. package/bin/plugin/core/PluginActionFactory.js.map +1 -1
  85. package/bin/plugin/core/PluginActionRunner.d.ts +1 -1
  86. package/bin/plugin/core/PluginActionRunner.d.ts.map +1 -1
  87. package/bin/plugin/core/PluginCatalog.d.ts +1 -1
  88. package/bin/plugin/core/PluginCatalog.d.ts.map +1 -1
  89. package/bin/plugin/core/PluginHttpRoutes.d.ts +1 -1
  90. package/bin/plugin/core/PluginHttpRoutes.d.ts.map +1 -1
  91. package/bin/plugin/core/PluginLocalExecution.d.ts +4 -5
  92. package/bin/plugin/core/PluginLocalExecution.d.ts.map +1 -1
  93. package/bin/plugin/core/PluginLocalExecution.js +4 -12
  94. package/bin/plugin/core/PluginLocalExecution.js.map +1 -1
  95. package/bin/plugin/core/PluginRegistry.d.ts +16 -12
  96. package/bin/plugin/core/PluginRegistry.d.ts.map +1 -1
  97. package/bin/plugin/core/PluginRegistry.js +43 -22
  98. package/bin/plugin/core/PluginRegistry.js.map +1 -1
  99. package/bin/plugin/core/PluginStateController.d.ts +1 -1
  100. package/bin/plugin/core/PluginStateController.d.ts.map +1 -1
  101. package/bin/{agent/remote → remote}/RemoteAgent.d.ts +4 -4
  102. package/bin/remote/RemoteAgent.d.ts.map +1 -0
  103. package/bin/{agent/remote → remote}/RemoteAgent.js +3 -3
  104. package/bin/remote/RemoteAgent.js.map +1 -0
  105. package/bin/{agent/remote → remote}/RemoteSession.d.ts +9 -11
  106. package/bin/remote/RemoteSession.d.ts.map +1 -0
  107. package/bin/{agent/remote → remote}/RemoteSession.js +3 -33
  108. package/bin/remote/RemoteSession.js.map +1 -0
  109. package/bin/{agent/remote → remote}/RemoteTransport.d.ts +7 -9
  110. package/bin/remote/RemoteTransport.d.ts.map +1 -0
  111. package/bin/remote/RemoteTransport.js.map +1 -0
  112. package/bin/{agent/remote → remote}/TransportFactory.d.ts +1 -1
  113. package/bin/remote/TransportFactory.d.ts.map +1 -0
  114. package/bin/{agent/remote → remote}/TransportFactory.js +2 -2
  115. package/bin/remote/TransportFactory.js.map +1 -0
  116. package/bin/{agent/remote → remote}/transports/HttpRemoteAgentTransport.d.ts +8 -9
  117. package/bin/remote/transports/HttpRemoteAgentTransport.d.ts.map +1 -0
  118. package/bin/{agent/remote → remote}/transports/HttpRemoteAgentTransport.js +0 -13
  119. package/bin/remote/transports/HttpRemoteAgentTransport.js.map +1 -0
  120. package/bin/{rpc/Client.d.ts → remote/transports/RpcClient.d.ts} +15 -22
  121. package/bin/remote/transports/RpcClient.d.ts.map +1 -0
  122. package/bin/{rpc/Client.js → remote/transports/RpcClient.js} +2 -13
  123. package/bin/remote/transports/RpcClient.js.map +1 -0
  124. package/bin/{agent/remote → remote}/transports/RpcRemoteAgentTransport.d.ts +8 -9
  125. package/bin/remote/transports/RpcRemoteAgentTransport.d.ts.map +1 -0
  126. package/bin/{agent/remote → remote}/transports/RpcRemoteAgentTransport.js +1 -4
  127. package/bin/remote/transports/RpcRemoteAgentTransport.js.map +1 -0
  128. package/bin/session/DefaultSessionComposer.d.ts +18 -0
  129. package/bin/session/DefaultSessionComposer.d.ts.map +1 -0
  130. package/bin/session/DefaultSessionComposer.js +62 -0
  131. package/bin/session/DefaultSessionComposer.js.map +1 -0
  132. package/bin/session/Session.d.ts +44 -33
  133. package/bin/session/Session.d.ts.map +1 -1
  134. package/bin/session/Session.js +440 -274
  135. package/bin/session/Session.js.map +1 -1
  136. package/bin/session/SessionMessages.d.ts +133 -0
  137. package/bin/session/SessionMessages.d.ts.map +1 -0
  138. package/bin/session/{recorder/SessionRecorder.js → SessionMessages.js} +247 -284
  139. package/bin/session/SessionMessages.js.map +1 -0
  140. package/bin/session/SessionQueue.d.ts +34 -0
  141. package/bin/session/SessionQueue.d.ts.map +1 -0
  142. package/bin/session/SessionQueue.js +60 -0
  143. package/bin/session/SessionQueue.js.map +1 -0
  144. package/bin/session/SessionState.d.ts +70 -0
  145. package/bin/session/SessionState.d.ts.map +1 -0
  146. package/bin/session/SessionState.js +267 -0
  147. package/bin/session/SessionState.js.map +1 -0
  148. package/bin/session/SessionSystem.d.ts +15 -0
  149. package/bin/session/SessionSystem.d.ts.map +1 -0
  150. package/bin/session/SessionSystem.js +95 -0
  151. package/bin/session/SessionSystem.js.map +1 -0
  152. package/bin/session/SessionTurn.d.ts +84 -0
  153. package/bin/session/SessionTurn.d.ts.map +1 -0
  154. package/bin/session/SessionTurn.js +588 -0
  155. package/bin/session/SessionTurn.js.map +1 -0
  156. package/bin/session/approval/SessionApprovalBroker.d.ts +48 -0
  157. package/bin/session/approval/SessionApprovalBroker.d.ts.map +1 -0
  158. package/bin/session/approval/SessionApprovalBroker.js +126 -0
  159. package/bin/session/approval/SessionApprovalBroker.js.map +1 -0
  160. package/bin/session/browse/Browse.d.ts.map +1 -1
  161. package/bin/session/browse/Browse.js +1 -4
  162. package/bin/session/browse/Browse.js.map +1 -1
  163. package/bin/session/{recorder → messages}/JsonlSessionMessageStore.d.ts.map +1 -1
  164. package/bin/session/{recorder → messages}/JsonlSessionMessageStore.js.map +1 -1
  165. package/bin/session/messages/SessionAssistantMessageWriter.d.ts +62 -0
  166. package/bin/session/messages/SessionAssistantMessageWriter.d.ts.map +1 -0
  167. package/bin/session/messages/SessionAssistantMessageWriter.js +287 -0
  168. package/bin/session/messages/SessionAssistantMessageWriter.js.map +1 -0
  169. package/bin/session/messages/SessionJsonValue.d.ts +10 -0
  170. package/bin/session/messages/SessionJsonValue.d.ts.map +1 -0
  171. package/bin/session/messages/SessionJsonValue.js +23 -0
  172. package/bin/session/messages/SessionJsonValue.js.map +1 -0
  173. package/bin/session/{recorder → messages}/SessionMessageCodec.d.ts +4 -1
  174. package/bin/session/messages/SessionMessageCodec.d.ts.map +1 -0
  175. package/bin/session/{recorder → messages}/SessionMessageCodec.js +33 -19
  176. package/bin/session/messages/SessionMessageCodec.js.map +1 -0
  177. package/bin/session/messages/SessionMessageCompaction.d.ts +22 -0
  178. package/bin/session/messages/SessionMessageCompaction.d.ts.map +1 -0
  179. package/bin/session/{recorder/SessionRecorderCompaction.js → messages/SessionMessageCompaction.js} +19 -51
  180. package/bin/session/messages/SessionMessageCompaction.js.map +1 -0
  181. package/bin/session/runtime/SessionEventHub.d.ts +1 -8
  182. package/bin/session/runtime/SessionEventHub.d.ts.map +1 -1
  183. package/bin/session/runtime/SessionEventHub.js +1 -6
  184. package/bin/session/runtime/SessionEventHub.js.map +1 -1
  185. package/bin/session/storage/Metadata.d.ts +23 -5
  186. package/bin/session/storage/Metadata.d.ts.map +1 -1
  187. package/bin/session/storage/Metadata.js +32 -29
  188. package/bin/session/storage/Metadata.js.map +1 -1
  189. package/bin/session/storage/RuntimeSessionPort.d.ts +5 -10
  190. package/bin/session/storage/RuntimeSessionPort.d.ts.map +1 -1
  191. package/bin/session/storage/RuntimeSessionPort.js +2 -4
  192. package/bin/session/storage/RuntimeSessionPort.js.map +1 -1
  193. package/bin/types/agent/AgentOptions.d.ts +6 -35
  194. package/bin/types/agent/AgentOptions.d.ts.map +1 -1
  195. package/bin/types/agent/AgentState.d.ts +28 -0
  196. package/bin/types/agent/AgentState.d.ts.map +1 -0
  197. package/bin/types/agent/AgentState.js +9 -0
  198. package/bin/types/agent/AgentState.js.map +1 -0
  199. package/bin/types/agent/SessionActor.d.ts +0 -2
  200. package/bin/types/agent/SessionActor.d.ts.map +1 -1
  201. package/bin/types/agent/SessionTypes.d.ts +5 -18
  202. package/bin/types/agent/SessionTypes.d.ts.map +1 -1
  203. package/bin/types/executor/SessionRunContext.d.ts +8 -2
  204. package/bin/types/executor/SessionRunContext.d.ts.map +1 -1
  205. package/bin/types/executor/SessionRunContext.js +1 -1
  206. package/bin/types/executor/SessionToolExecutionContext.d.ts +20 -0
  207. package/bin/types/executor/SessionToolExecutionContext.d.ts.map +1 -0
  208. package/bin/types/executor/SessionToolExecutionContext.js +10 -0
  209. package/bin/types/executor/SessionToolExecutionContext.js.map +1 -0
  210. package/bin/types/plugin/PluginAction.d.ts +10 -1
  211. package/bin/types/plugin/PluginAction.d.ts.map +1 -1
  212. package/bin/types/plugin/PluginCommand.d.ts +3 -11
  213. package/bin/types/plugin/PluginCommand.d.ts.map +1 -1
  214. package/bin/types/plugin/PluginConfig.d.ts +12 -0
  215. package/bin/types/plugin/PluginConfig.d.ts.map +1 -0
  216. package/bin/types/plugin/PluginConfig.js +5 -0
  217. package/bin/types/plugin/PluginConfig.js.map +1 -0
  218. package/bin/types/plugin/PluginDefinition.d.ts +10 -3
  219. package/bin/types/plugin/PluginDefinition.d.ts.map +1 -1
  220. package/bin/types/plugin/PluginHttp.d.ts +1 -1
  221. package/bin/types/plugin/PluginHttp.d.ts.map +1 -1
  222. package/bin/types/plugin/PluginRunContext.d.ts +26 -0
  223. package/bin/types/plugin/PluginRunContext.d.ts.map +1 -0
  224. package/bin/types/plugin/PluginRunContext.js +10 -0
  225. package/bin/types/plugin/PluginRunContext.js.map +1 -0
  226. package/bin/types/plugin/PluginRuntime.d.ts +9 -3
  227. package/bin/types/plugin/PluginRuntime.d.ts.map +1 -1
  228. package/bin/types/plugin/PluginToolRuntime.d.ts +11 -0
  229. package/bin/types/plugin/PluginToolRuntime.d.ts.map +1 -1
  230. package/bin/types/rpc/RpcProtocol.d.ts +1 -13
  231. package/bin/types/rpc/RpcProtocol.d.ts.map +1 -1
  232. package/bin/types/session/SessionApproval.d.ts +4 -38
  233. package/bin/types/session/SessionApproval.d.ts.map +1 -1
  234. package/bin/types/session/SessionApprovalBroker.d.ts +17 -0
  235. package/bin/types/session/SessionApprovalBroker.d.ts.map +1 -0
  236. package/bin/types/session/SessionApprovalBroker.js +7 -0
  237. package/bin/types/session/SessionApprovalBroker.js.map +1 -0
  238. package/bin/types/session/SessionComposer.d.ts +99 -0
  239. package/bin/types/session/SessionComposer.d.ts.map +1 -0
  240. package/bin/types/session/SessionComposer.js +8 -0
  241. package/bin/types/session/SessionComposer.js.map +1 -0
  242. package/bin/types/session/SessionLocalState.d.ts +6 -6
  243. package/bin/types/session/SessionLocalState.d.ts.map +1 -1
  244. package/bin/types/session/SessionLocalState.js +1 -1
  245. package/bin/types/session/SessionMessage.d.ts +3 -2
  246. package/bin/types/session/SessionMessage.d.ts.map +1 -1
  247. package/bin/types/session/SessionMessages.d.ts +115 -0
  248. package/bin/types/session/SessionMessages.d.ts.map +1 -0
  249. package/bin/types/session/SessionMessages.js +7 -0
  250. package/bin/types/session/SessionMessages.js.map +1 -0
  251. package/bin/types/session/SessionMutation.d.ts +1 -10
  252. package/bin/types/session/SessionMutation.d.ts.map +1 -1
  253. package/bin/types/session/SessionMutation.js.map +1 -1
  254. package/bin/types/session/SessionOptions.d.ts +8 -23
  255. package/bin/types/session/SessionOptions.d.ts.map +1 -1
  256. package/bin/types/session/SessionPort.d.ts +72 -0
  257. package/bin/types/session/SessionPort.d.ts.map +1 -0
  258. package/bin/types/session/SessionPort.js +9 -0
  259. package/bin/types/session/SessionPort.js.map +1 -0
  260. package/bin/types/session/SessionQueue.d.ts +104 -0
  261. package/bin/types/session/SessionQueue.d.ts.map +1 -0
  262. package/bin/types/session/SessionQueue.js +7 -0
  263. package/bin/types/session/SessionQueue.js.map +1 -0
  264. package/bin/types/session/SessionState.d.ts +43 -0
  265. package/bin/types/session/SessionState.d.ts.map +1 -0
  266. package/bin/types/session/SessionState.js +7 -0
  267. package/bin/types/session/SessionState.js.map +1 -0
  268. package/bin/types/session/SessionSystem.d.ts +26 -0
  269. package/bin/types/session/SessionSystem.d.ts.map +1 -0
  270. package/bin/types/session/SessionSystem.js +7 -0
  271. package/bin/types/session/SessionSystem.js.map +1 -0
  272. package/bin/types/session/SessionTool.d.ts +23 -0
  273. package/bin/types/session/SessionTool.d.ts.map +1 -0
  274. package/bin/types/session/SessionTool.js +7 -0
  275. package/bin/types/session/SessionTool.js.map +1 -0
  276. package/bin/types/session/SessionTurn.d.ts +52 -0
  277. package/bin/types/session/SessionTurn.d.ts.map +1 -0
  278. package/bin/types/session/SessionTurn.js +7 -0
  279. package/bin/types/session/SessionTurn.js.map +1 -0
  280. package/package.json +3 -3
  281. package/scripts/agent-env.test.mjs +4 -18
  282. package/scripts/agent-ready.test.mjs +33 -2
  283. package/scripts/agent-session-maintenance.test.mjs +52 -0
  284. package/scripts/city-model-tool-loop.test.mjs +3 -4
  285. package/scripts/core-engine-context-compaction.test.mjs +5 -22
  286. package/scripts/image-plugin-job.test.mjs +4 -6
  287. package/scripts/plugin-tool-bridge.test.mjs +44 -36
  288. package/scripts/read-image-tool-bridge.test.mjs +71 -0
  289. package/scripts/remote-session-reconnect.test.mjs +1 -34
  290. package/scripts/session-compaction-prompts.test.mjs +1 -49
  291. package/scripts/session-composer.test.mjs +163 -0
  292. package/scripts/session-config-turn-boundary.test.mjs +2 -5
  293. package/scripts/session-list-title.test.mjs +3 -2
  294. package/scripts/session-messages-error.test.mjs +57 -0
  295. package/scripts/{session-recorder.test.mjs → session-messages.test.mjs} +245 -93
  296. package/scripts/session-queue.test.mjs +64 -0
  297. package/scripts/session-shell-approval.test.mjs +171 -0
  298. package/scripts/session-system-blocks.test.mjs +10 -10
  299. package/scripts/session-title-event.test.mjs +1 -0
  300. package/src/agent/Agent.ts +241 -0
  301. package/src/agent/AgentContext.ts +92 -0
  302. package/src/agent/{local/AgentInstructions.ts → AgentInstructions.ts} +0 -11
  303. package/src/{model/CityModelAdapter.ts → agent/AgentModel.ts} +10 -3
  304. package/src/agent/{local/services/AgentSessions.ts → AgentSessions.ts} +81 -110
  305. package/src/agent/AgentState.ts +151 -0
  306. package/src/config/Paths.ts +0 -91
  307. package/src/executor/Executor.ts +180 -386
  308. package/src/executor/README.md +62 -86
  309. package/src/executor/composer/system/default/DefaultSessionSystemComposer.ts +1 -1
  310. package/src/executor/composer/system/default/SystemDomain.ts +4 -2
  311. package/src/executor/composer/system/default/assets/core.prompt.ts +1 -1
  312. package/src/executor/composer/system/default/assets/core.prompt.ts.txt +15 -2
  313. package/src/executor/core-engine/CoreEngineRunner.ts +95 -54
  314. package/src/executor/services/ExecutorRecoveryPolicy.ts +24 -19
  315. package/src/executor/tools/file/ReadImageToolBridge.ts +79 -0
  316. package/src/executor/tools/plugin/PluginToolBridge.ts +6 -8
  317. package/src/executor/tools/plugin/PluginToolDefinition.ts +23 -3
  318. package/src/executor/types/SessionHistoryMeta.ts +0 -2
  319. package/src/index.ts +34 -53
  320. package/src/plugin/core/ActionScheduleExecutor.ts +1 -1
  321. package/src/plugin/core/ActionScheduleRuntime.ts +1 -1
  322. package/src/plugin/core/BasePlugin.ts +7 -3
  323. package/src/plugin/core/HookRegistry.ts +15 -18
  324. package/src/plugin/core/PluginActionFactory.ts +9 -3
  325. package/src/plugin/core/PluginActionRunner.ts +1 -1
  326. package/src/plugin/core/PluginCatalog.ts +1 -1
  327. package/src/plugin/core/PluginHttpRoutes.ts +1 -1
  328. package/src/plugin/core/PluginLocalExecution.ts +11 -24
  329. package/src/plugin/core/PluginRegistry.ts +55 -32
  330. package/src/plugin/core/PluginStateController.ts +1 -1
  331. package/src/{agent/remote → remote}/RemoteAgent.ts +4 -4
  332. package/src/{agent/remote → remote}/RemoteSession.ts +2 -35
  333. package/src/{agent/remote → remote}/RemoteTransport.ts +0 -3
  334. package/src/{agent/remote → remote}/TransportFactory.ts +3 -3
  335. package/src/{agent/remote → remote}/transports/HttpRemoteAgentTransport.ts +1 -23
  336. package/src/{rpc/Client.ts → remote/transports/RpcClient.ts} +1 -19
  337. package/src/{agent/remote → remote}/transports/RpcRemoteAgentTransport.ts +2 -10
  338. package/src/session/DefaultSessionComposer.ts +79 -0
  339. package/src/session/Session.ts +496 -332
  340. package/src/session/{recorder/SessionRecorder.ts → SessionMessages.ts} +324 -428
  341. package/src/session/SessionQueue.ts +86 -0
  342. package/src/session/SessionState.ts +322 -0
  343. package/src/session/SessionSystem.ts +117 -0
  344. package/src/session/SessionTurn.ts +684 -0
  345. package/src/session/approval/SessionApprovalBroker.ts +164 -0
  346. package/src/session/browse/Browse.ts +1 -4
  347. package/src/session/messages/SessionAssistantMessageWriter.ts +345 -0
  348. package/src/session/messages/SessionJsonValue.ts +25 -0
  349. package/src/session/{recorder → messages}/SessionMessageCodec.ts +38 -20
  350. package/src/session/{recorder/SessionRecorderCompaction.ts → messages/SessionMessageCompaction.ts} +30 -69
  351. package/src/session/runtime/SessionEventHub.ts +1 -14
  352. package/src/session/storage/Metadata.ts +60 -34
  353. package/src/session/storage/RuntimeSessionPort.ts +7 -14
  354. package/src/types/agent/AgentOptions.ts +6 -38
  355. package/src/types/agent/AgentState.ts +33 -0
  356. package/src/types/agent/SessionActor.ts +0 -3
  357. package/src/types/agent/SessionTypes.ts +5 -18
  358. package/src/types/executor/SessionRunContext.ts +10 -2
  359. package/src/types/executor/SessionToolExecutionContext.ts +21 -0
  360. package/src/types/plugin/PluginAction.ts +10 -1
  361. package/src/types/plugin/PluginCommand.ts +3 -14
  362. package/src/types/plugin/PluginConfig.ts +13 -0
  363. package/src/types/plugin/PluginDefinition.ts +13 -6
  364. package/src/types/plugin/PluginHttp.ts +1 -1
  365. package/src/types/plugin/PluginRunContext.ts +31 -0
  366. package/src/types/plugin/PluginRuntime.ts +13 -6
  367. package/src/types/plugin/PluginToolRuntime.ts +13 -1
  368. package/src/types/rpc/RpcProtocol.ts +0 -14
  369. package/src/types/session/SessionApproval.ts +4 -43
  370. package/src/types/session/SessionApprovalBroker.ts +18 -0
  371. package/src/types/session/SessionComposer.ts +114 -0
  372. package/src/types/session/SessionLocalState.ts +6 -6
  373. package/src/types/session/SessionMessage.ts +3 -2
  374. package/src/types/session/SessionMessages.ts +127 -0
  375. package/src/types/session/SessionMutation.ts +0 -11
  376. package/src/types/session/SessionOptions.ts +8 -40
  377. package/src/types/session/SessionPort.ts +97 -0
  378. package/src/types/session/SessionQueue.ts +122 -0
  379. package/src/types/session/SessionState.ts +47 -0
  380. package/src/types/session/SessionSystem.ts +27 -0
  381. package/src/types/session/SessionTool.ts +25 -0
  382. package/src/types/session/SessionTurn.ts +56 -0
  383. package/tsconfig.tsbuildinfo +1 -1
  384. package/bin/agent/local/Agent.d.ts.map +0 -1
  385. package/bin/agent/local/Agent.js +0 -216
  386. package/bin/agent/local/Agent.js.map +0 -1
  387. package/bin/agent/local/AgentInstructions.d.ts.map +0 -1
  388. package/bin/agent/local/AgentInstructions.js.map +0 -1
  389. package/bin/agent/local/AgentPluginFactory.d.ts +0 -26
  390. package/bin/agent/local/AgentPluginFactory.d.ts.map +0 -1
  391. package/bin/agent/local/AgentPluginFactory.js +0 -33
  392. package/bin/agent/local/AgentPluginFactory.js.map +0 -1
  393. package/bin/agent/local/AgentRuntimeAssembly.d.ts +0 -10
  394. package/bin/agent/local/AgentRuntimeAssembly.d.ts.map +0 -1
  395. package/bin/agent/local/AgentRuntimeAssembly.js +0 -43
  396. package/bin/agent/local/AgentRuntimeAssembly.js.map +0 -1
  397. package/bin/agent/local/ProjectSetup.d.ts.map +0 -1
  398. package/bin/agent/local/ProjectSetup.js.map +0 -1
  399. package/bin/agent/local/services/AgentAssemblyService.d.ts +0 -105
  400. package/bin/agent/local/services/AgentAssemblyService.d.ts.map +0 -1
  401. package/bin/agent/local/services/AgentAssemblyService.js +0 -184
  402. package/bin/agent/local/services/AgentAssemblyService.js.map +0 -1
  403. package/bin/agent/local/services/AgentBackgroundService.d.ts +0 -55
  404. package/bin/agent/local/services/AgentBackgroundService.d.ts.map +0 -1
  405. package/bin/agent/local/services/AgentBackgroundService.js +0 -85
  406. package/bin/agent/local/services/AgentBackgroundService.js.map +0 -1
  407. package/bin/agent/local/services/AgentSessions.d.ts.map +0 -1
  408. package/bin/agent/local/services/AgentSessions.js.map +0 -1
  409. package/bin/agent/remote/RemoteAgent.d.ts.map +0 -1
  410. package/bin/agent/remote/RemoteAgent.js.map +0 -1
  411. package/bin/agent/remote/RemoteSession.d.ts.map +0 -1
  412. package/bin/agent/remote/RemoteSession.js.map +0 -1
  413. package/bin/agent/remote/RemoteTransport.d.ts.map +0 -1
  414. package/bin/agent/remote/RemoteTransport.js.map +0 -1
  415. package/bin/agent/remote/TransportFactory.d.ts.map +0 -1
  416. package/bin/agent/remote/TransportFactory.js.map +0 -1
  417. package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts.map +0 -1
  418. package/bin/agent/remote/transports/HttpRemoteAgentTransport.js.map +0 -1
  419. package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts.map +0 -1
  420. package/bin/agent/remote/transports/RpcRemoteAgentTransport.js.map +0 -1
  421. package/bin/executor/SessionRunScope.d.ts +0 -68
  422. package/bin/executor/SessionRunScope.d.ts.map +0 -1
  423. package/bin/executor/SessionRunScope.js +0 -96
  424. package/bin/executor/SessionRunScope.js.map +0 -1
  425. package/bin/executor/composer/compaction/SessionCompactionComposer.d.ts +0 -74
  426. package/bin/executor/composer/compaction/SessionCompactionComposer.d.ts.map +0 -1
  427. package/bin/executor/composer/compaction/SessionCompactionComposer.js +0 -9
  428. package/bin/executor/composer/compaction/SessionCompactionComposer.js.map +0 -1
  429. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.d.ts +0 -27
  430. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.d.ts.map +0 -1
  431. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.js +0 -39
  432. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.js.map +0 -1
  433. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.d.ts +0 -44
  434. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.d.ts.map +0 -1
  435. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.js +0 -218
  436. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.js.map +0 -1
  437. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.d.ts +0 -27
  438. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.d.ts.map +0 -1
  439. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.js +0 -181
  440. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.js.map +0 -1
  441. package/bin/executor/composer/context/LocalSessionContextComposer.d.ts +0 -50
  442. package/bin/executor/composer/context/LocalSessionContextComposer.d.ts.map +0 -1
  443. package/bin/executor/composer/context/LocalSessionContextComposer.js +0 -108
  444. package/bin/executor/composer/context/LocalSessionContextComposer.js.map +0 -1
  445. package/bin/executor/composer/context/SessionContextComposer.d.ts +0 -67
  446. package/bin/executor/composer/context/SessionContextComposer.d.ts.map +0 -1
  447. package/bin/executor/composer/context/SessionContextComposer.js +0 -9
  448. package/bin/executor/composer/context/SessionContextComposer.js.map +0 -1
  449. package/bin/executor/composer/history/SessionHistoryComposer.d.ts +0 -54
  450. package/bin/executor/composer/history/SessionHistoryComposer.d.ts.map +0 -1
  451. package/bin/executor/composer/history/SessionHistoryComposer.js +0 -10
  452. package/bin/executor/composer/history/SessionHistoryComposer.js.map +0 -1
  453. package/bin/executor/composer/history/SessionHistoryWriter.d.ts +0 -46
  454. package/bin/executor/composer/history/SessionHistoryWriter.d.ts.map +0 -1
  455. package/bin/executor/composer/history/SessionHistoryWriter.js +0 -65
  456. package/bin/executor/composer/history/SessionHistoryWriter.js.map +0 -1
  457. package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.d.ts +0 -35
  458. package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.d.ts.map +0 -1
  459. package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.js +0 -105
  460. package/bin/executor/composer/history/jsonl/JsonlSessionHistoryComposer.js.map +0 -1
  461. package/bin/executor/messages/AssistantResultPersistence.d.ts +0 -66
  462. package/bin/executor/messages/AssistantResultPersistence.d.ts.map +0 -1
  463. package/bin/executor/messages/AssistantResultPersistence.js +0 -44
  464. package/bin/executor/messages/AssistantResultPersistence.js.map +0 -1
  465. package/bin/executor/services/ExecutorInflightService.d.ts +0 -34
  466. package/bin/executor/services/ExecutorInflightService.d.ts.map +0 -1
  467. package/bin/executor/services/ExecutorInflightService.js +0 -73
  468. package/bin/executor/services/ExecutorInflightService.js.map +0 -1
  469. package/bin/executor/store/history/SessionHistoryStore.d.ts +0 -140
  470. package/bin/executor/store/history/SessionHistoryStore.d.ts.map +0 -1
  471. package/bin/executor/store/history/SessionHistoryStore.js +0 -10
  472. package/bin/executor/store/history/SessionHistoryStore.js.map +0 -1
  473. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts +0 -116
  474. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts.map +0 -1
  475. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js +0 -709
  476. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js.map +0 -1
  477. package/bin/executor/types/SessionHistoryPaths.d.ts +0 -34
  478. package/bin/executor/types/SessionHistoryPaths.d.ts.map +0 -1
  479. package/bin/executor/types/SessionHistoryPaths.js +0 -2
  480. package/bin/executor/types/SessionHistoryPaths.js.map +0 -1
  481. package/bin/model/CityModelAdapter.d.ts.map +0 -1
  482. package/bin/model/CityModelAdapter.js.map +0 -1
  483. package/bin/rpc/Client.d.ts.map +0 -1
  484. package/bin/rpc/Client.js.map +0 -1
  485. package/bin/session/SessionSystemBuilder.d.ts +0 -107
  486. package/bin/session/SessionSystemBuilder.d.ts.map +0 -1
  487. package/bin/session/SessionSystemBuilder.js +0 -148
  488. package/bin/session/SessionSystemBuilder.js.map +0 -1
  489. package/bin/session/recorder/SessionMessageCodec.d.ts.map +0 -1
  490. package/bin/session/recorder/SessionMessageCodec.js.map +0 -1
  491. package/bin/session/recorder/SessionRecorder.d.ts +0 -217
  492. package/bin/session/recorder/SessionRecorder.d.ts.map +0 -1
  493. package/bin/session/recorder/SessionRecorder.js.map +0 -1
  494. package/bin/session/recorder/SessionRecorderCompaction.d.ts +0 -18
  495. package/bin/session/recorder/SessionRecorderCompaction.d.ts.map +0 -1
  496. package/bin/session/recorder/SessionRecorderCompaction.js.map +0 -1
  497. package/bin/session/recorder/SessionRecorderHistoryStore.d.ts +0 -66
  498. package/bin/session/recorder/SessionRecorderHistoryStore.d.ts.map +0 -1
  499. package/bin/session/recorder/SessionRecorderHistoryStore.js +0 -190
  500. package/bin/session/recorder/SessionRecorderHistoryStore.js.map +0 -1
  501. package/bin/session/runtime/SessionPromptRuntime.d.ts +0 -112
  502. package/bin/session/runtime/SessionPromptRuntime.d.ts.map +0 -1
  503. package/bin/session/runtime/SessionPromptRuntime.js +0 -357
  504. package/bin/session/runtime/SessionPromptRuntime.js.map +0 -1
  505. package/bin/session/services/SessionStateService.d.ts +0 -187
  506. package/bin/session/services/SessionStateService.d.ts.map +0 -1
  507. package/bin/session/services/SessionStateService.js +0 -467
  508. package/bin/session/services/SessionStateService.js.map +0 -1
  509. package/bin/session/services/SessionTurnService.d.ts +0 -90
  510. package/bin/session/services/SessionTurnService.d.ts.map +0 -1
  511. package/bin/session/services/SessionTurnService.js +0 -293
  512. package/bin/session/services/SessionTurnService.js.map +0 -1
  513. package/bin/session/services/SessionViewService.d.ts +0 -114
  514. package/bin/session/services/SessionViewService.d.ts.map +0 -1
  515. package/bin/session/services/SessionViewService.js +0 -204
  516. package/bin/session/services/SessionViewService.js.map +0 -1
  517. package/bin/session/storage/Persistence.d.ts +0 -73
  518. package/bin/session/storage/Persistence.d.ts.map +0 -1
  519. package/bin/session/storage/Persistence.js +0 -63
  520. package/bin/session/storage/Persistence.js.map +0 -1
  521. package/bin/types/agent/AgentRuntimeAssembly.d.ts +0 -72
  522. package/bin/types/agent/AgentRuntimeAssembly.d.ts.map +0 -1
  523. package/bin/types/agent/AgentRuntimeAssembly.js +0 -10
  524. package/bin/types/agent/AgentRuntimeAssembly.js.map +0 -1
  525. package/bin/types/runtime/agent/AgentContext.d.ts +0 -306
  526. package/bin/types/runtime/agent/AgentContext.d.ts.map +0 -1
  527. package/bin/types/runtime/agent/AgentContext.js +0 -128
  528. package/bin/types/runtime/agent/AgentContext.js.map +0 -1
  529. package/bin/types/session/SessionComposerOptions.d.ts +0 -90
  530. package/bin/types/session/SessionComposerOptions.d.ts.map +0 -1
  531. package/bin/types/session/SessionComposerOptions.js +0 -10
  532. package/bin/types/session/SessionComposerOptions.js.map +0 -1
  533. package/bin/types/session/SessionQueueCommand.d.ts +0 -68
  534. package/bin/types/session/SessionQueueCommand.d.ts.map +0 -1
  535. package/bin/types/session/SessionQueueCommand.js +0 -10
  536. package/bin/types/session/SessionQueueCommand.js.map +0 -1
  537. package/scripts/session-action-message.test.mjs +0 -410
  538. package/scripts/session-compaction-context-window.test.mjs +0 -96
  539. package/scripts/session-history-inflight.test.mjs +0 -146
  540. package/scripts/session-history-writer-error.test.mjs +0 -57
  541. package/scripts/session-prompt-runtime.test.mjs +0 -390
  542. package/src/agent/local/Agent.ts +0 -250
  543. package/src/agent/local/AgentPluginFactory.ts +0 -51
  544. package/src/agent/local/AgentRuntimeAssembly.ts +0 -65
  545. package/src/agent/local/services/AgentAssemblyService.ts +0 -307
  546. package/src/agent/local/services/AgentBackgroundService.ts +0 -115
  547. package/src/executor/SessionRunScope.ts +0 -122
  548. package/src/executor/composer/compaction/SessionCompactionComposer.ts +0 -84
  549. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.ts +0 -51
  550. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionExecutor.ts +0 -294
  551. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionFileOperations.ts +0 -197
  552. package/src/executor/composer/context/LocalSessionContextComposer.ts +0 -175
  553. package/src/executor/composer/context/SessionContextComposer.ts +0 -83
  554. package/src/executor/composer/history/SessionHistoryComposer.ts +0 -62
  555. package/src/executor/composer/history/SessionHistoryWriter.ts +0 -100
  556. package/src/executor/composer/history/jsonl/JsonlSessionHistoryComposer.ts +0 -133
  557. package/src/executor/messages/AssistantResultPersistence.ts +0 -106
  558. package/src/executor/services/ExecutorInflightService.ts +0 -95
  559. package/src/executor/store/history/SessionHistoryStore.ts +0 -172
  560. package/src/executor/store/history/jsonl/JsonlSessionHistoryStore.ts +0 -879
  561. package/src/executor/types/SessionHistoryPaths.ts +0 -38
  562. package/src/session/SessionSystemBuilder.ts +0 -262
  563. package/src/session/recorder/SessionRecorderHistoryStore.ts +0 -256
  564. package/src/session/runtime/SessionPromptRuntime.ts +0 -518
  565. package/src/session/services/SessionStateService.ts +0 -628
  566. package/src/session/services/SessionTurnService.ts +0 -368
  567. package/src/session/services/SessionViewService.ts +0 -335
  568. package/src/session/storage/Persistence.ts +0 -137
  569. package/src/types/agent/AgentRuntimeAssembly.ts +0 -74
  570. package/src/types/runtime/agent/AgentContext.ts +0 -387
  571. package/src/types/session/SessionComposerOptions.ts +0 -107
  572. package/src/types/session/SessionQueueCommand.ts +0 -78
  573. /package/bin/{agent/local → config}/ProjectSetup.d.ts +0 -0
  574. /package/bin/{agent/remote → remote}/RemoteTransport.js +0 -0
  575. /package/bin/session/{recorder → messages}/JsonlSessionMessageStore.d.ts +0 -0
  576. /package/bin/session/{recorder → messages}/JsonlSessionMessageStore.js +0 -0
  577. /package/src/{agent/local → config}/ProjectSetup.ts +0 -0
  578. /package/src/session/{recorder → messages}/JsonlSessionMessageStore.ts +0 -0
@@ -0,0 +1,79 @@
1
+ /**
2
+ * read 图片结果与模型 UserMessage 的桥接。
3
+ *
4
+ * 关键点(中文)
5
+ * - Shell read 只负责把图片读取为 data URL。
6
+ * - Agent 在当前 turn 的下一 step 注入临时 user file part,不写入长期历史。
7
+ * - 注入后从普通 tool result 移除 data URL,避免图片同时作为 JSON 内容传给模型。
8
+ */
9
+
10
+ import path from "node:path";
11
+ import { generateId } from "@/utils/Id.js";
12
+ import type { SessionRunContext } from "@/types/executor/SessionRunContext.js";
13
+
14
+ /** 把普通对象归一为可检查的记录。 */
15
+ function to_record(value: unknown): Record<string, unknown> | null {
16
+ if (!value || typeof value !== "object" || Array.isArray(value)) return null;
17
+ return value as Record<string, unknown>;
18
+ }
19
+
20
+ /**
21
+ * 在 read 返回图片时注入下一 step,并返回不含 data URL 的 tool result。
22
+ */
23
+ export function inject_read_image_user_message(params: {
24
+ /** 当前工具名称。 */
25
+ tool_name: string;
26
+ /** 工具原始执行结果。 */
27
+ output: unknown;
28
+ /** 当前 Session turn 的显式运行上下文。 */
29
+ run_context: SessionRunContext;
30
+ }): unknown {
31
+ if (params.tool_name !== "read") return params.output;
32
+ const output = to_record(params.output);
33
+ if (!output || output.success !== true || output.type !== "image") {
34
+ return params.output;
35
+ }
36
+ const data_url = String(output.data_url || "").trim();
37
+ const media_type = String(output.mime_type || "").trim();
38
+ const file_path = String(output.file_path || "").trim();
39
+ if (!data_url.startsWith("data:image/") || !media_type.startsWith("image/")) {
40
+ return params.output;
41
+ }
42
+
43
+ params.run_context.injectedUserMessages.push({
44
+ id: `read-image:${generateId()}`,
45
+ role: "user",
46
+ metadata: {
47
+ v: 1,
48
+ ts: Date.now(),
49
+ sessionId: params.run_context.sessionId,
50
+ ...(params.run_context.turnId
51
+ ? { turnId: params.run_context.turnId }
52
+ : {}),
53
+ source: "ingress",
54
+ kind: "normal",
55
+ extra: {
56
+ internal: "read_image",
57
+ file_path,
58
+ },
59
+ },
60
+ parts: [
61
+ {
62
+ type: "text",
63
+ text: `Image read from ${file_path || "project file"}.`,
64
+ },
65
+ {
66
+ type: "file",
67
+ mediaType: media_type,
68
+ url: data_url,
69
+ ...(file_path ? { filename: path.basename(file_path) } : {}),
70
+ },
71
+ ],
72
+ });
73
+
74
+ const { data_url: _data_url, ...result } = output;
75
+ return {
76
+ ...result,
77
+ image_attached: true,
78
+ };
79
+ }
@@ -25,10 +25,6 @@ import {
25
25
  materializeAssistantFileParts,
26
26
  resolveAgentFilePath,
27
27
  } from "@executor/messages/AssistantFileResource.js";
28
- import {
29
- enqueueAssistantFileParts,
30
- getSessionRunContext,
31
- } from "@executor/SessionRunScope.js";
32
28
 
33
29
  /**
34
30
  * 判断值是否为普通对象。
@@ -138,13 +134,15 @@ export async function invokePluginCallTool(
138
134
  }
139
135
 
140
136
  try {
141
- const plugins = getSessionRunContext()?.agentPlugins || params.plugins;
137
+ const run_context = params.run_context;
138
+ const plugins = run_context.agentPlugins || params.plugins;
142
139
  const result = await plugins.runAction({
143
140
  plugin,
144
141
  action,
145
142
  payload,
143
+ run_context,
146
144
  });
147
- const project_root = resolve_project_root(getSessionRunContext()?.projectRoot);
145
+ const project_root = resolve_project_root(run_context.projectRoot);
148
146
  const raw_file_parts = result.success
149
147
  ? extract_assistant_file_parts(result.data)
150
148
  : [];
@@ -157,7 +155,7 @@ export async function invokePluginCallTool(
157
155
  : [];
158
156
  const files = summarize_materialized_files(file_parts, project_root);
159
157
  if (file_parts.length > 0) {
160
- enqueueAssistantFileParts(file_parts);
158
+ run_context.pendingAssistantFileParts.push(...file_parts);
161
159
  }
162
160
  const data = summarize_action_data(result.data);
163
161
  return {
@@ -192,7 +190,7 @@ export async function invokePluginReadTool(
192
190
  ): Promise<PluginReadToolResult> {
193
191
  const input: PluginReadInput = params.input;
194
192
  try {
195
- const plugins = getSessionRunContext()?.agentPlugins || params.plugins;
193
+ const plugins = params.run_context.agentPlugins || params.plugins;
196
194
  const data = plugins.read({
197
195
  plugin: typeof input.plugin === "string" ? input.plugin : undefined,
198
196
  action: typeof input.action === "string" ? input.action : undefined,
@@ -7,7 +7,7 @@
7
7
  * - 插件业务输出若包含 UIMessage file parts,会由 bridge 并入最终 assistant 消息。
8
8
  */
9
9
 
10
- import { tool } from "ai";
10
+ import { tool, type ToolExecutionOptions } from "ai";
11
11
  import type {
12
12
  PluginCallInput,
13
13
  PluginReadInput,
@@ -24,6 +24,24 @@ import {
24
24
  plugin_call_input_schema,
25
25
  plugin_read_input_schema,
26
26
  } from "./PluginToolSchemas.js";
27
+ import type { SessionToolExecutionContext } from "@/types/executor/SessionToolExecutionContext.js";
28
+ import type { SessionRunContext } from "@/types/executor/SessionRunContext.js";
29
+
30
+ /**
31
+ * 要求当前 plugin tool 具有 Executor 显式绑定的 Session 上下文。
32
+ */
33
+ function require_run_context(
34
+ options: ToolExecutionOptions,
35
+ ): SessionRunContext {
36
+ const execution_context = options.experimental_context as
37
+ | Partial<SessionToolExecutionContext>
38
+ | undefined;
39
+ const run_context = execution_context?.session_run_context;
40
+ if (!run_context) {
41
+ throw new Error("plugin tool requires an explicit session run context");
42
+ }
43
+ return run_context;
44
+ }
27
45
 
28
46
  /**
29
47
  * 创建 `plugin_call`:调用当前 Agent 已注册 plugin action。
@@ -33,9 +51,10 @@ export function createPluginCallTool(options: CreatePluginToolsOptions) {
33
51
  description:
34
52
  "Call a registered agent plugin action. Use plugin_read first when you need the action list, input schema, or examples. Generated files may be attached to the final assistant message automatically.",
35
53
  inputSchema: plugin_call_input_schema,
36
- execute: async (input) =>
54
+ execute: async (input, execution_options) =>
37
55
  await invokePluginCallTool({
38
56
  plugins: options.plugins,
57
+ run_context: require_run_context(execution_options),
39
58
  input: input as PluginCallInput,
40
59
  }),
41
60
  });
@@ -49,9 +68,10 @@ export function createPluginReadTool(options: CreatePluginToolsOptions) {
49
68
  description:
50
69
  "Read registered agent plugin metadata, including action names, descriptions, input schemas, and examples. Use this before plugin_call when the payload shape is unclear.",
51
70
  inputSchema: plugin_read_input_schema,
52
- execute: async (input) =>
71
+ execute: async (input, execution_options) =>
53
72
  await invokePluginReadTool({
54
73
  plugins: options.plugins,
74
+ run_context: require_run_context(execution_options),
55
75
  input: input as PluginReadInput,
56
76
  }),
57
77
  });
@@ -23,8 +23,6 @@ export type SessionHistoryMetaV1 = {
23
23
  title?: string;
24
24
  /** 当前 session 绑定模型的可读标签。 */
25
25
  modelLabel?: string;
26
- /** 当前 session 绑定模型的稳定 ID,用于进程重启后恢复模型实例。 */
27
- modelId?: string;
28
26
  /** 当前 session 已持久化记录数量,用于列表查询避免扫描完整历史。 */
29
27
  messageCount?: number;
30
28
  /** 当前 session 最后一条记录的用户可见摘要,用于列表预览。 */
package/src/index.ts CHANGED
@@ -8,16 +8,16 @@
8
8
  */
9
9
 
10
10
  // Agent 入口
11
- export { Agent } from "./agent/local/Agent.js";
12
- export { RemoteAgent } from "./agent/remote/RemoteAgent.js";
11
+ export { Agent } from "./agent/Agent.js";
12
+ export { RemoteAgent } from "./remote/RemoteAgent.js";
13
13
  export { Session } from "./session/Session.js";
14
14
  export type { SessionOptions } from "./types/session/SessionOptions.js";
15
15
  export {
16
16
  inferAgentModelLabel,
17
17
  normalizeAgentModel,
18
18
  read_agent_model_context_window,
19
- } from "./model/CityModelAdapter.js";
20
- export type { AgentModel } from "./model/CityModelAdapter.js";
19
+ } from "./agent/AgentModel.js";
20
+ export type { AgentModel } from "./agent/AgentModel.js";
21
21
  export type {
22
22
  AgentArchiveSessionInput,
23
23
  AgentArchiveSessionsInput,
@@ -63,7 +63,6 @@ export type {
63
63
  SessionDeltaMutation,
64
64
  SessionMessageMutation,
65
65
  SessionMutation,
66
- SessionMutationReply,
67
66
  SessionMutationSubscriber,
68
67
  SessionMutationUnsubscribe,
69
68
  SessionPartMutation,
@@ -107,14 +106,9 @@ export type {
107
106
  AgentSessionTurnHandle,
108
107
  AgentSessionTurnResult,
109
108
  } from "./types/sdk/AgentSessionTurn.js";
110
- export { AgentContext } from "./types/runtime/agent/AgentContext.js";
111
- export type {
112
- AgentContextOptions,
113
- InvokePluginPort,
114
- SessionCollectionPort,
115
- SessionPort,
116
- StructuredConfig,
117
- } from "./types/runtime/agent/AgentContext.js";
109
+ export { AgentContext } from "./agent/AgentContext.js";
110
+ export type { SessionPort } from "./types/session/SessionPort.js";
111
+ export type { StructuredConfig } from "./types/plugin/PluginConfig.js";
118
112
 
119
113
  // Plugin 作者 API
120
114
  export { BasePlugin } from "./plugin/core/BasePlugin.js";
@@ -129,39 +123,40 @@ export type {
129
123
 
130
124
  // Session 与即时执行集成
131
125
  export { Executor } from "./executor/Executor.js";
132
- export {
133
- drainDeferredPersistedUserMessages,
134
- drainInjectedUserMessages,
135
- getSessionRunContext,
136
- getSessionRunScope,
137
- withSessionRunScope,
138
- } from "./executor/SessionRunScope.js";
139
- export { JsonlSessionHistoryComposer } from "./executor/composer/history/jsonl/JsonlSessionHistoryComposer.js";
140
- export { LocalSessionContextComposer } from "./executor/composer/context/LocalSessionContextComposer.js";
141
- export { JsonlSessionHistoryStore } from "./executor/store/history/jsonl/JsonlSessionHistoryStore.js";
142
- export { JsonlSessionCompactionComposer } from "./executor/composer/compaction/jsonl/JsonlSessionCompactionComposer.js";
143
- export type {
144
- SessionCompactionComposer,
126
+ export { DefaultSessionComposer } from "./session/DefaultSessionComposer.js";
127
+ export { SessionMessages } from "./session/SessionMessages.js";
128
+ export { JsonlSessionMessageStore } from "./session/messages/JsonlSessionMessageStore.js";
129
+ export type {
130
+ AppendCompletedAssistantMessageInput,
131
+ AppendExternalSessionAssistantMessageInput,
132
+ AppendExternalSessionUserMessageInput,
133
+ AppendSessionErrorMessageInput,
134
+ AppendSessionPromptMessageInput,
135
+ AppendSessionUserMessageInput,
136
+ OpenSessionActionMessageInput,
137
+ OpenSessionAssistantMessageInput,
138
+ SessionMessagesOptions,
139
+ } from "./types/session/SessionMessages.js";
140
+ export type {
141
+ SessionComposer,
145
142
  SessionCompactionInput,
146
- } from "./executor/composer/compaction/SessionCompactionComposer.js";
147
- export type {
148
- SessionContextComposer,
149
- SessionContextComposeResult,
150
- } from "./executor/composer/context/SessionContextComposer.js";
151
- export type {
152
- SessionHistoryComposer,
153
- SessionHistoryPrepareInput,
154
- } from "./executor/composer/history/SessionHistoryComposer.js";
155
- export type { SessionSystemComposer } from "./executor/composer/system/SessionSystemComposer.js";
143
+ SessionCompactionPlan,
144
+ SessionComposeIdentity,
145
+ SessionComposeInput,
146
+ SessionComposeState,
147
+ SessionComposeTurn,
148
+ SessionStepInput,
149
+ } from "./types/session/SessionComposer.js";
156
150
  export { DefaultSessionSystemComposer } from "./executor/composer/system/default/DefaultSessionSystemComposer.js";
157
151
  export { resolveSessionSystemMessages } from "./executor/composer/system/default/SystemDomain.js";
158
- export type { SessionHistoryStore } from "./executor/store/history/SessionHistoryStore.js";
159
152
  export type { SessionExecutor } from "./executor/types/SessionExecutor.js";
160
153
  export type {
161
154
  SessionAssistantStepCallback,
162
155
  SessionRunResult,
163
156
  } from "./executor/types/SessionRun.js";
164
157
  export type { SessionRunContext } from "./types/executor/SessionRunContext.js";
158
+ export type { SessionToolExecutionContext } from "./types/executor/SessionToolExecutionContext.js";
159
+ export type { PluginRunContext } from "./types/plugin/PluginRunContext.js";
165
160
  export type {
166
161
  SessionActionRecordV1,
167
162
  SessionMessageRecordV1,
@@ -174,11 +169,6 @@ export {
174
169
  is_session_message_record,
175
170
  } from "./executor/types/SessionRecords.js";
176
171
  export type { SessionSystemMessage } from "./executor/types/SessionPrompts.js";
177
- export type {
178
- SessionComposerFactoryContext,
179
- SessionComposerInput,
180
- SessionComposerOptions,
181
- } from "./types/session/SessionComposerOptions.js";
182
172
  export { transformPromptsIntoSystemMessages } from "./executor/composer/system/default/PromptRenderer.js";
183
173
  // 通用 plugin 宿主工具
184
174
  export {
@@ -233,17 +223,14 @@ export {
233
223
  load_project_dotenv,
234
224
  resolve_agent_env,
235
225
  } from "./config/AgentEnv.js";
236
- export {
237
- getDowncityChatHistoryPath,
238
- getDowncitySessionMessagesPath,
239
- } from "./config/Paths.js";
226
+ export { getDowncitySessionMessagesPath } from "./config/Paths.js";
240
227
  export {
241
228
  getPlatformStoreDbPath,
242
229
  getPlatformStoreKeyPath,
243
230
  } from "./config/PlatformPaths.js";
244
231
  export {
245
232
  ensureRuntimeProjectReady,
246
- } from "./agent/local/ProjectSetup.js";
233
+ } from "./config/ProjectSetup.js";
247
234
  export { assertProjectExecutionTarget } from "./config/ExecutionBinding.js";
248
235
 
249
236
  // 日志
@@ -254,12 +241,6 @@ export {
254
241
  resolveRuntimeTimezone,
255
242
  } from "./utils/Time.js";
256
243
 
257
- // 宿主端口类型
258
- export type {
259
- AgentPathRuntime,
260
- AgentPluginConfigRuntime,
261
- } from "./types/agent/AgentRuntimeAssembly.js";
262
-
263
244
  // 项目协议类型
264
245
  export type {
265
246
  AgentProjectChannel,
@@ -7,7 +7,7 @@
7
7
  * - 到期后重新走 `runPluginCommand`,复用 plugin action 的统一执行规则。
8
8
  */
9
9
 
10
- import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
10
+ import type { AgentContext } from "@/agent/AgentContext.js";
11
11
  import type { ActionScheduleStore } from "@/plugin/core/ActionScheduleStore.js";
12
12
  import { runPluginCommand } from "@/plugin/core/PluginActionRunner.js";
13
13
 
@@ -7,7 +7,7 @@
7
7
  * - 普通 plugin 先启动,ActionSchedule 再开始轮询,避免到期 action 执行到未启动的 plugin。
8
8
  */
9
9
 
10
- import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
10
+ import type { AgentContext } from "@/agent/AgentContext.js";
11
11
  import { runDueActionScheduleJobs } from "@/plugin/core/ActionScheduleExecutor.js";
12
12
  import { ActionScheduleStore } from "@/plugin/core/ActionScheduleStore.js";
13
13
 
@@ -7,7 +7,7 @@
7
7
  * - Agent 注册 plugin 时自动启动 lifecycle;卸载时自动停止 lifecycle。
8
8
  */
9
9
 
10
- import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
10
+ import type { AgentContext } from "@/agent/AgentContext.js";
11
11
  import type { Plugin } from "@/types/plugin/PluginDefinition.js";
12
12
  import type { PluginActions } from "@/types/plugin/PluginAction.js";
13
13
  import type { PluginCommandContext, PluginLifecycle } from "@/types/plugin/PluginCommand.js";
@@ -22,7 +22,8 @@ import type {
22
22
  PluginSetupDefinition,
23
23
  PluginUsageDefinition,
24
24
  } from "@/types/plugin/PluginSetup.js";
25
- import type { StructuredConfig } from "@/types/runtime/agent/AgentContext.js";
25
+ import type { StructuredConfig } from "@/types/plugin/PluginConfig.js";
26
+ import type { PluginRunContext } from "@/types/plugin/PluginRunContext.js";
26
27
 
27
28
  /**
28
29
  * BasePlugin 抽象基类。
@@ -91,6 +92,9 @@ export abstract class BasePlugin implements Plugin {
91
92
  /**
92
93
  * Plugin system 文本提供器。
93
94
  */
94
- system?(context: AgentContext): Promise<string> | string;
95
+ system?(
96
+ context: AgentContext,
97
+ run_context?: PluginRunContext,
98
+ ): Promise<string> | string;
95
99
 
96
100
  }
@@ -13,10 +13,7 @@ import type {
13
13
  PluginPipelineHook,
14
14
  PluginResolveHook,
15
15
  } from "@/types/plugin/PluginRuntime.js";
16
- import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
17
-
18
- type ContextResolver = () => AgentContext;
19
- type PluginEnabledChecker = (pluginName: string, context: AgentContext) => boolean;
16
+ import type { AgentContext } from "@/agent/AgentContext.js";
20
17
 
21
18
  type PipelineRecord = {
22
19
  pluginName: string;
@@ -42,8 +39,8 @@ type ResolveRecord = {
42
39
  * HookRegistry:plugin 点注册与执行实现。
43
40
  */
44
41
  export class HookRegistry {
45
- private readonly contextResolver: ContextResolver;
46
- private readonly pluginEnabledChecker: PluginEnabledChecker;
42
+ private readonly get_context: () => AgentContext;
43
+ private readonly is_plugin_ready: (plugin_name: string) => boolean;
47
44
 
48
45
  private readonly pipelineHooks = new Map<string, PipelineRecord[]>();
49
46
 
@@ -54,11 +51,11 @@ export class HookRegistry {
54
51
  private readonly resolveHooks = new Map<string, ResolveRecord>();
55
52
 
56
53
  constructor(params: {
57
- contextResolver: ContextResolver;
58
- pluginEnabledChecker: PluginEnabledChecker;
54
+ get_context: () => AgentContext;
55
+ is_plugin_ready: (plugin_name: string) => boolean;
59
56
  }) {
60
- this.contextResolver = params.contextResolver;
61
- this.pluginEnabledChecker = params.pluginEnabledChecker;
57
+ this.get_context = params.get_context;
58
+ this.is_plugin_ready = params.is_plugin_ready;
62
59
  }
63
60
 
64
61
  /**
@@ -208,10 +205,10 @@ export class HookRegistry {
208
205
  const bucket = this.pipelineHooks.get(key) || [];
209
206
  if (bucket.length === 0) return value;
210
207
 
211
- const context = this.contextResolver();
208
+ const context = this.get_context();
212
209
  let current = value as JsonValue;
213
210
  for (const item of bucket) {
214
- if (!this.pluginEnabledChecker(item.pluginName, context)) continue;
211
+ if (!this.is_plugin_ready(item.pluginName)) continue;
215
212
  current = await item.handler({
216
213
  context,
217
214
  value: current,
@@ -230,9 +227,9 @@ export class HookRegistry {
230
227
  const bucket = this.guardHooks.get(key) || [];
231
228
  if (bucket.length === 0) return;
232
229
 
233
- const context = this.contextResolver();
230
+ const context = this.get_context();
234
231
  for (const item of bucket) {
235
- if (!this.pluginEnabledChecker(item.pluginName, context)) continue;
232
+ if (!this.is_plugin_ready(item.pluginName)) continue;
236
233
  await item.handler({
237
234
  context,
238
235
  value: value as JsonValue,
@@ -250,9 +247,9 @@ export class HookRegistry {
250
247
  const bucket = this.effectHooks.get(key) || [];
251
248
  if (bucket.length === 0) return;
252
249
 
253
- const context = this.contextResolver();
250
+ const context = this.get_context();
254
251
  for (const item of bucket) {
255
- if (!this.pluginEnabledChecker(item.pluginName, context)) continue;
252
+ if (!this.is_plugin_ready(item.pluginName)) continue;
256
253
  await item.handler({
257
254
  context,
258
255
  value: value as JsonValue,
@@ -276,8 +273,8 @@ export class HookRegistry {
276
273
  if (!record) {
277
274
  throw new Error(`No plugin resolver registered for point: ${key}`);
278
275
  }
279
- const context = this.contextResolver();
280
- if (!this.pluginEnabledChecker(record.pluginName, context)) {
276
+ const context = this.get_context();
277
+ if (!this.is_plugin_ready(record.pluginName)) {
281
278
  throw new Error(`No active plugin resolver registered for point: ${key}`);
282
279
  }
283
280
 
@@ -8,7 +8,7 @@
8
8
  */
9
9
 
10
10
  import type { z } from "zod";
11
- import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
11
+ import type { AgentContext } from "@/agent/AgentContext.js";
12
12
  import type { JsonValue } from "@/types/common/Json.js";
13
13
  import type {
14
14
  PluginAction,
@@ -35,7 +35,8 @@ import type {
35
35
  PluginUsageDefinition,
36
36
  } from "@/types/plugin/PluginSetup.js";
37
37
  import type { PluginHttpDefinition } from "@/types/plugin/PluginHttp.js";
38
- import type { StructuredConfig } from "@/types/runtime/agent/AgentContext.js";
38
+ import type { StructuredConfig } from "@/types/plugin/PluginConfig.js";
39
+ import type { PluginRunContext } from "@/types/plugin/PluginRunContext.js";
39
40
 
40
41
  /**
41
42
  * 从 Zod schema 推导 JSON 输入类型。
@@ -64,6 +65,8 @@ export interface CreatePluginActionOptions<
64
65
  execute: (params: {
65
66
  /** 当前执行上下文。 */
66
67
  context: AgentContext;
68
+ /** 当前 action 的显式 Session run 上下文。 */
69
+ run_context?: PluginRunContext;
67
70
  /** 已通过 schema 校验后的输入。 */
68
71
  input: P;
69
72
  /** 当前插件名称。 */
@@ -96,7 +99,10 @@ export interface CreatePluginOptions<TActions extends PluginActions> {
96
99
  /** Plugin resolve 集合。 */
97
100
  resolves?: PluginResolves;
98
101
  /** Plugin system 文本构建器。 */
99
- system?: (context: AgentContext) => string | Promise<string>;
102
+ system?: (
103
+ context: AgentContext,
104
+ run_context?: PluginRunContext,
105
+ ) => string | Promise<string>;
100
106
  /** Plugin 生命周期定义。 */
101
107
  lifecycle?: PluginLifecycle;
102
108
  /** Plugin 可用性检查。 */
@@ -7,7 +7,7 @@
7
7
  * - 延迟调度仍复用本模块,保证 schedule 到点后走统一 action 规则。
8
8
  */
9
9
 
10
- import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
10
+ import type { AgentContext } from "@/agent/AgentContext.js";
11
11
  import type { PluginAction, PluginActionResult } from "@/types/plugin/PluginAction.js";
12
12
  import type { PluginCommandResult } from "@/types/plugin/PluginCommand.js";
13
13
  import type { PluginSnapshot } from "@/types/plugin/PluginState.js";
@@ -9,7 +9,7 @@
9
9
 
10
10
  import type { Plugin } from "@/types/plugin/PluginDefinition.js";
11
11
  import type { PluginAvailability, PluginView } from "@/types/plugin/PluginRuntime.js";
12
- import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
12
+ import type { AgentContext } from "@/agent/AgentContext.js";
13
13
 
14
14
  /**
15
15
  * 判断 plugin 是否声明了运行时生命周期。
@@ -8,7 +8,7 @@
8
8
 
9
9
  import type { Hono } from "hono";
10
10
  import type { Plugin } from "@/types/plugin/PluginDefinition.js";
11
- import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
11
+ import type { AgentContext } from "@/agent/AgentContext.js";
12
12
  import type { AuthRoutePolicy } from "@/types/runtime/auth/AuthRoute.js";
13
13
 
14
14
  function dedupeAuthPolicies(policies: AuthRoutePolicy[]): AuthRoutePolicy[] {
@@ -11,24 +11,18 @@ import path from "node:path";
11
11
  import { getLogger } from "@/utils/logger/Logger.js";
12
12
  import { resolve_agent_env } from "@/config/AgentEnv.js";
13
13
  import { findPluginByName } from "@/plugin/core/PluginCatalog.js";
14
- import {
15
- createAgentPathRuntime,
16
- createAgentPluginConfigRuntime,
17
- } from "@/agent/local/AgentRuntimeAssembly.js";
18
- import { createFallbackSdkConfig } from "@/agent/local/AgentInstructions.js";
19
14
  import type { JsonValue } from "@/types/common/Json.js";
20
15
  import type { Plugin } from "@/types/plugin/PluginDefinition.js";
21
16
  import type { PluginActionResult } from "@/types/plugin/PluginAction.js";
22
17
  import type { PluginCommandContext } from "@/types/plugin/PluginCommand.js";
23
18
  import type { PluginAvailability } from "@/types/plugin/PluginRuntime.js";
24
- import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
25
- import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
19
+ import type { AgentContext } from "@/agent/AgentContext.js";
26
20
 
27
21
  type LocalPluginCommandContextInput = {
28
22
  /** 当前项目根目录。 */
29
23
  projectRoot: string;
30
- /** 宿主显式传入的 agent 配置。 */
31
- config?: DowncityConfig;
24
+ /** 当前 Agent 稳定标识。 */
25
+ agent_id?: string;
32
26
  };
33
27
 
34
28
  /**
@@ -40,24 +34,17 @@ export function createLocalPluginCommandContext(
40
34
  const projectRoot = typeof input === "string" ? input : input.projectRoot;
41
35
  const rootPath = path.resolve(String(projectRoot || "").trim() || ".");
42
36
  const env = resolve_agent_env(rootPath);
43
- const config = typeof input === "string" || !input.config
44
- ? createFallbackSdkConfig(path.basename(rootPath) || "agent")
45
- : input.config;
46
- const agent_id = String(config.id || "").trim() || path.basename(rootPath) || "agent";
37
+ const agent_id = String(
38
+ typeof input === "string" ? "" : input.agent_id || "",
39
+ ).trim() || path.basename(rootPath) || "agent";
47
40
 
48
41
  const logger = getLogger(rootPath);
49
42
 
50
43
  return {
51
- cwd: rootPath,
44
+ agent_id,
52
45
  rootPath,
53
46
  logger,
54
- config,
55
47
  env,
56
- paths: createAgentPathRuntime(
57
- rootPath,
58
- agent_id,
59
- ),
60
- pluginConfig: createAgentPluginConfigRuntime(rootPath),
61
48
  };
62
49
  }
63
50
 
@@ -68,7 +55,7 @@ export async function getLocalPluginAvailability(params: {
68
55
  plugins: Iterable<Plugin>;
69
56
  projectRoot: string;
70
57
  pluginName: string;
71
- config?: DowncityConfig;
58
+ agent_id?: string;
72
59
  }): Promise<PluginAvailability> {
73
60
  const plugin = findPluginByName(params.plugins, params.pluginName);
74
61
  if (!plugin) {
@@ -81,7 +68,7 @@ export async function getLocalPluginAvailability(params: {
81
68
 
82
69
  const context = createLocalPluginCommandContext({
83
70
  projectRoot: params.projectRoot,
84
- config: params.config,
71
+ agent_id: params.agent_id,
85
72
  });
86
73
  if (plugin.availability) {
87
74
  return await plugin.availability(context);
@@ -103,7 +90,7 @@ export async function runLocalPluginAction(params: {
103
90
  pluginName: string;
104
91
  actionName: string;
105
92
  payload?: JsonValue;
106
- config?: DowncityConfig;
93
+ agent_id?: string;
107
94
  }): Promise<PluginActionResult<JsonValue>> {
108
95
  const plugin = findPluginByName(params.plugins, params.pluginName);
109
96
  if (!plugin) {
@@ -134,7 +121,7 @@ export async function runLocalPluginAction(params: {
134
121
 
135
122
  const context = createLocalPluginCommandContext({
136
123
  projectRoot: params.projectRoot,
137
- config: params.config,
124
+ agent_id: params.agent_id,
138
125
  });
139
126
 
140
127
  try {