@downcity/agent 1.1.237 → 1.1.258

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 +21 -20
  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 +117 -0
  137. package/bin/session/SessionMessages.d.ts.map +1 -0
  138. package/bin/session/{recorder/SessionRecorder.js → SessionMessages.js} +194 -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} +131 -90
  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 +29 -89
  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} +254 -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
@@ -1,137 +0,0 @@
1
- /**
2
- * SDK Session 持久化辅助。
3
- *
4
- * 关键点(中文)
5
- * - 集中处理 session meta 更新时间、模型展示标签与 assistant 消息落盘。
6
- * - `Session` 只负责调用这些能力,不直接拼装 meta 结构。
7
- */
8
-
9
- import { extractTextFromUiMessage } from "@/executor/messages/UIMessageTransformer.js";
10
- import type { SessionHistoryMetaV1 } from "@/executor/types/SessionHistoryMeta.js";
11
- import type {
12
- SessionRecordV1,
13
- SessionMessageRecordV1,
14
- } from "@/executor/types/SessionRecords.js";
15
- import { persistAssistantResult } from "@/executor/messages/AssistantResultPersistence.js";
16
- import type { AgentSessionConfigSnapshot } from "@/types/agent/SessionTypes.js";
17
- import {
18
- readSessionMetadata,
19
- writeSessionMetadata,
20
- } from "@/session/storage/Metadata.js";
21
-
22
- /**
23
- * SDK Session 元数据写入参数。
24
- */
25
- export interface TouchSessionMetadataParams {
26
- /**
27
- * 当前项目根目录。
28
- */
29
- projectRoot: string;
30
- /**
31
- * 当前 agent 稳定标识。
32
- */
33
- agentId: string;
34
- /**
35
- * 当前 sessionId。
36
- */
37
- sessionId: string;
38
- /**
39
- * 当前 session 内存配置快照。
40
- */
41
- sessionConfig: AgentSessionConfigSnapshot;
42
- /** 当前 canonical Message 总数。 */
43
- message_count?: number;
44
- /** 当前 Message 日志文件字节数。 */
45
- history_bytes?: number;
46
- /** 最近一条用户可见 Message 的文本摘要。 */
47
- preview_text?: string;
48
- }
49
-
50
- /**
51
- * Assistant 结果落盘参数。
52
- */
53
- export interface PersistSdkAssistantResultParams
54
- extends TouchSessionMetadataParams {
55
- /**
56
- * 追加 assistant 消息的底层执行编排器。
57
- */
58
- executor: {
59
- append_assistant_message(params: {
60
- /**
61
- * 已构造好的完整消息。
62
- */
63
- message?: SessionRecordV1 | null;
64
- /**
65
- * 兜底文本内容。
66
- */
67
- fallbackText?: string;
68
- }): Promise<void>;
69
- };
70
- /**
71
- * 本轮执行得到的 assistant 消息。
72
- *
73
- * 关键点(中文)
74
- * - stop/abort 且没有 assistant 内容时允许为空。
75
- * - 为空时仅刷新 metadata,不写入伪造 assistant 正文。
76
- */
77
- assistantMessage?: SessionMessageRecordV1 | null;
78
- }
79
-
80
- /**
81
- * 刷新 SDK session 元数据。
82
- */
83
- export async function touchSessionMetadata(
84
- params: TouchSessionMetadataParams,
85
- ): Promise<void> {
86
- const current = await readSessionMetadata({
87
- projectRoot: params.projectRoot,
88
- agentId: params.agentId,
89
- sessionId: params.sessionId,
90
- });
91
- const next: SessionHistoryMetaV1 = {
92
- ...current,
93
- agentId: params.agentId,
94
- createdAt:
95
- typeof current.createdAt === "number" ? current.createdAt : Date.now(),
96
- updatedAt: Date.now(),
97
- ...(params.sessionConfig.modelLabel
98
- ? {
99
- modelLabel: params.sessionConfig.modelLabel,
100
- }
101
- : {}),
102
- ...(params.sessionConfig.modelId
103
- ? {
104
- modelId: params.sessionConfig.modelId,
105
- }
106
- : {}),
107
- ...(typeof params.message_count === "number"
108
- ? { messageCount: params.message_count }
109
- : {}),
110
- ...(typeof params.history_bytes === "number"
111
- ? { historyBytes: params.history_bytes }
112
- : {}),
113
- ...(params.preview_text ? { previewText: params.preview_text } : {}),
114
- };
115
- await writeSessionMetadata({
116
- projectRoot: params.projectRoot,
117
- agentId: params.agentId,
118
- sessionId: params.sessionId,
119
- meta: next,
120
- });
121
- }
122
-
123
- /**
124
- * 持久化 assistant 结果并同步刷新 session meta。
125
- */
126
- export async function persistSdkAssistantResult(
127
- params: PersistSdkAssistantResultParams,
128
- ): Promise<void> {
129
- await persistAssistantResult({
130
- writer: params.executor,
131
- assistantMessage: params.assistantMessage,
132
- fallbackText: params.assistantMessage
133
- ? extractTextFromUiMessage(params.assistantMessage)
134
- : undefined,
135
- });
136
- await touchSessionMetadata(params);
137
- }
@@ -1,74 +0,0 @@
1
- /**
2
- * AgentRuntimeAssembly 类型定义。
3
- *
4
- * 关键点(中文)
5
- * - 这里统一描述由本地 agent 装配、再挂入 AgentRuntime 的能力。
6
- * - plugin runtime / session / plugin 作者 API 只能消费这些稳定能力,不应直接依赖具体宿主实现。
7
- * - 当前先收敛路径与 plugin 配置持久化两类高频能力。
8
- */
9
-
10
- import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
11
-
12
- /**
13
- * Agent 路径能力集合。
14
- */
15
- export interface AgentPathRuntime {
16
- /**
17
- * 当前项目根目录。
18
- */
19
- projectRoot: string;
20
- /**
21
- * 当前 agent 的稳定标识。
22
- */
23
- agentId: string;
24
- /**
25
- * `.downcity` 根目录路径。
26
- */
27
- getDowncityDirPath(): string;
28
- /**
29
- * `.downcity/.cache` 目录路径。
30
- */
31
- getCacheDirPath(): string;
32
- /**
33
- * `.downcity/channel` 目录路径。
34
- */
35
- getDowncityChannelDirPath(): string;
36
- /**
37
- * `.downcity/channel/meta.json` 文件路径。
38
- */
39
- getDowncityChannelMetaPath(): string;
40
- /**
41
- * `.downcity/chat/<sessionId>/history.jsonl` 文件路径。
42
- */
43
- getDowncityChatHistoryPath(sessionId: string): string;
44
- /**
45
- * `.downcity/memory/MEMORY.md` 文件路径。
46
- */
47
- getDowncityMemoryLongTermPath(): string;
48
- /**
49
- * `.downcity/memory/daily` 目录路径。
50
- */
51
- getDowncityMemoryDailyDirPath(): string;
52
- /**
53
- * `.downcity/memory/daily/<date>.md` 文件路径。
54
- */
55
- getDowncityMemoryDailyPath(date: string): string;
56
- /**
57
- * `.downcity/agents/<agentId>/sessions` 根目录路径。
58
- */
59
- getDowncitySessionRootDirPath(): string;
60
- /**
61
- * `.downcity/agents/<agentId>/sessions/<sessionId>` 目录路径。
62
- */
63
- getDowncitySessionDirPath(sessionId: string): string;
64
- }
65
-
66
- /**
67
- * Plugin 配置持久化能力集合。
68
- */
69
- export interface AgentPluginConfigRuntime {
70
- /**
71
- * 将当前 `plugins` 配置块写回宿主配置存储。
72
- */
73
- persistProjectPlugins(plugins: DowncityConfig["plugins"] | undefined): Promise<string>;
74
- }
@@ -1,387 +0,0 @@
1
- /**
2
- * Agent 执行上下文类型定义。
3
- *
4
- * 职责说明(中文)
5
- * - 这里定义 plugin runtime、plugin、prompt system 共用的统一执行上下文。
6
- * - `AgentContext` 是一个 class,表达"当前一次执行可见的能力面",不是宿主状态本体。
7
- * - 同一 agent 实例全程共享同一个 context;plugin、session、executor 都基于它读写状态。
8
- */
9
-
10
- import type { LanguageModel } from "ai";
11
- import type { Logger } from "@/utils/logger/Logger.js";
12
- import type {
13
- AgentPathRuntime,
14
- AgentPluginConfigRuntime,
15
- } from "@/types/agent/AgentRuntimeAssembly.js";
16
- import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
17
- import type { JsonValue } from "@/types/common/Json.js";
18
- import type { AgentPlugins } from "@/types/plugin/PluginRuntime.js";
19
- import type { Plugin } from "@/types/plugin/PluginDefinition.js";
20
- import type {
21
- SessionMetadataV1,
22
- SessionRecordV1,
23
- } from "@/executor/types/SessionRecords.js";
24
- import type {
25
- SessionRunInput,
26
- SessionRunResult,
27
- } from "@/executor/types/SessionRun.js";
28
- import type { SessionHistoryStore } from "@/executor/store/history/SessionHistoryStore.js";
29
- import type { AgentSessionPromptInput } from "@/types/sdk/AgentSessionPrompt.js";
30
- import type { AgentSessionStopResult } from "@/types/sdk/AgentSessionStop.js";
31
- import type {
32
- SessionMutationSubscriber,
33
- SessionMutationUnsubscribe,
34
- } from "@/types/session/SessionMutation.js";
35
- import type { SessionApprovalRuntimeEvent } from "@/types/session/SessionApproval.js";
36
- import type { AgentSessionTurnHandle } from "@/types/sdk/AgentSessionTurn.js";
37
- import { getSessionRunContext } from "@/executor/SessionRunScope.js";
38
-
39
- /**
40
- * 跨 plugin runtime 调用参数。
41
- */
42
- export interface InvokePluginParams {
43
- /**
44
- * 目标 plugin 名称。
45
- */
46
- plugin: string;
47
- /**
48
- * 目标 action 名称。
49
- */
50
- action: string;
51
- /**
52
- * 调用时附带的结构化 payload。
53
- */
54
- payload?: JsonValue;
55
- }
56
-
57
- /**
58
- * 跨 plugin runtime 调用结果。
59
- */
60
- export interface InvokePluginResult {
61
- /**
62
- * 调用是否成功。
63
- */
64
- success: boolean;
65
- /**
66
- * 成功时返回的数据载荷。
67
- */
68
- data?: JsonValue;
69
- /**
70
- * 失败时的错误信息。
71
- */
72
- error?: string;
73
- }
74
-
75
- /**
76
- * 跨 plugin runtime 调用端口。
77
- */
78
- export interface InvokePluginPort {
79
- /**
80
- * 调用指定 plugin action。
81
- */
82
- invoke(params: InvokePluginParams): Promise<InvokePluginResult>;
83
- }
84
-
85
- /**
86
- * 单个 Session 执行端口。
87
- */
88
- export interface SessionExecutorPort {
89
- /**
90
- * 执行一次 session run。
91
- */
92
- run(params: SessionRunInput): Promise<SessionRunResult>;
93
-
94
- /**
95
- * 请求取消当前正在执行的 turn。
96
- *
97
- * 关键点(中文)
98
- * - 返回 `true` 表示已发出取消请求。
99
- * - 返回 `false` 表示当前没有可取消的执行。
100
- */
101
- stop(): boolean;
102
- }
103
-
104
- /**
105
- * 单个 Session 实例端口。
106
- */
107
- export interface SessionPort {
108
- /**
109
- * 当前 session 标识。
110
- */
111
- readonly sessionId: string;
112
- /**
113
- * 获取当前 session 的执行端口。
114
- */
115
- getExecutor(): SessionExecutorPort;
116
- /**
117
- * 获取当前 session 的持久化端口。
118
- */
119
- getHistoryStore(): SessionHistoryStore;
120
- /**
121
- * 向当前 session actor 追加一条新的 prompt。
122
- *
123
- * 关键点(中文)
124
- * - 这是面向 SDK / transport 的统一交互输入入口。
125
- * - 返回值只有在当前输入被绑定到某个 turn 后才会兑现。
126
- */
127
- prompt(input: AgentSessionPromptInput): Promise<AgentSessionTurnHandle>;
128
- /**
129
- * 停止当前 turn,并取消尚未被吸收的排队 prompt。
130
- */
131
- stop(): Promise<AgentSessionStopResult>;
132
- /**
133
- * 订阅当前 session 后续产生的 future 事件。
134
- *
135
- * 关键点(中文)
136
- * - 只广播订阅之后产生的事件。
137
- * - 当前 Message snapshot 通过公开 SDK `session.messages()` 读取。
138
- */
139
- subscribe(
140
- subscriber: SessionMutationSubscriber,
141
- ): SessionMutationUnsubscribe;
142
- /**
143
- * 发布一条 session runtime 事件。
144
- *
145
- * 关键点(中文)
146
- * - plugin runtime 用它把审批、外部进度等非模型 chunk 事件推送给订阅方。
147
- * - 历史消息持久化仍由 append_user_message / append_assistant_message 负责。
148
- */
149
- publishEvent(event: SessionApprovalRuntimeEvent): Promise<void>;
150
- /**
151
- * 追加一条 user 消息。
152
- */
153
- append_user_message(params: {
154
- /**
155
- * 已构造好的完整消息。
156
- */
157
- message?: SessionRecordV1 | null;
158
- /**
159
- * 兜底文本内容。
160
- */
161
- text?: string;
162
- /**
163
- * 附加元数据。
164
- */
165
- extra?: SessionMetadataV1["extra"];
166
- }): Promise<void>;
167
- /**
168
- * 追加一条 assistant 消息。
169
- */
170
- append_assistant_message(params: {
171
- /**
172
- * 已构造好的完整消息。
173
- */
174
- message?: SessionRecordV1 | null;
175
- /**
176
- * 兜底文本内容。
177
- */
178
- fallbackText?: string;
179
- /**
180
- * 附加元数据。
181
- */
182
- extra?: SessionMetadataV1["extra"];
183
- }): Promise<void>;
184
- /**
185
- * 返回当前 session 是否正在执行。
186
- */
187
- isExecuting(): boolean;
188
- }
189
-
190
- /**
191
- * Session 集合入口。
192
- */
193
- export interface SessionCollectionPort {
194
- /**
195
- * 获取指定 sessionId 对应的 Session 实例。
196
- */
197
- get(sessionId: string): SessionPort;
198
- /**
199
- * 返回当前所有执行中的 sessionId。
200
- */
201
- listExecutingSessionIds(): string[];
202
- /**
203
- * 返回当前执行中的 session 数量。
204
- */
205
- getExecutingSessionCount(): number;
206
- /**
207
- * 解析指定 session 当前绑定的模型实例。
208
- *
209
- * 关键点(中文)
210
- * - 模型归属于 session,而不是 agent 全局运行时。
211
- * - 这里会触发 session 初始化/宿主配置,适合 task 等后台链路按 session 读取模型。
212
- */
213
- resolveModel(sessionId: string): Promise<LanguageModel | undefined>;
214
- }
215
-
216
- /**
217
- * AgentContext 构造参数。
218
- *
219
- * 关键点(中文)
220
- * - 装配方负责把 session / plugins 等上层依赖注入进来。
221
- * - `env` 必须传入 agent 持有的 mutable 共享对象引用,不要在这里克隆。
222
- */
223
- export interface AgentContextOptions {
224
- /** 当前命令工作目录。 */
225
- cwd: string;
226
- /** 当前项目根目录。 */
227
- rootPath: string;
228
- /** 统一日志器。 */
229
- logger: Logger;
230
- /** 当前运行时已解析配置。 */
231
- config: DowncityConfig;
232
- /**
233
- * 当前 agent env 共享对象引用。
234
- *
235
- * 关键点(中文)
236
- * - 必须是 Agent 持有的同一个 mutable 引用,不要克隆后再传入。
237
- * - Session step 内优先读取队列已经提交的 effective env。
238
- */
239
- env: Record<string, string>;
240
- /** 当前生效的 system 文本集合。 */
241
- systems: string[];
242
- /** 当前可见的路径能力集合。 */
243
- paths: AgentPathRuntime;
244
- /** 当前可见的 plugin 配置持久化能力集合。 */
245
- pluginConfig: AgentPluginConfigRuntime;
246
- /** 当前 agent 持有的插件实例集合。 */
247
- pluginInstances: Map<string, Plugin>;
248
- /** Session 能力入口。 */
249
- session: SessionCollectionPort;
250
- /** Plugin 调用入口。 */
251
- plugins: AgentPlugins;
252
- }
253
-
254
- /**
255
- * 统一执行上下文。
256
- *
257
- * 关键点(中文)
258
- * - 字段全部 readonly,构造一次后语义稳定,避免 plugin 误改。
259
- * - `env` 引用 agent 级共享 mutable 对象,`...ctx.env` / `ctx.env.FOO` 直接可用。
260
- * - `invoke` 是构造期组装的 plugin 调用端口,对外仍以 `InvokePluginPort` 形态暴露。
261
- */
262
- export class AgentContext {
263
- /** 当前命令工作目录。 */
264
- readonly cwd: string;
265
- /** 当前项目根目录。 */
266
- readonly rootPath: string;
267
- /** 统一日志器。 */
268
- readonly logger: Logger;
269
- /** 当前运行时已解析配置。 */
270
- readonly config: DowncityConfig;
271
- /** 当前 Agent configured env 共享对象。 */
272
- private readonly configured_env: Record<string, string>;
273
- /** 当前 Agent configured system 文本。 */
274
- private readonly configured_systems: string[];
275
- /** 当前可见的路径能力集合。 */
276
- readonly paths: AgentPathRuntime;
277
- /** 当前可见的 plugin 配置持久化能力集合。 */
278
- readonly pluginConfig: AgentPluginConfigRuntime;
279
- /** 当前 agent 持有的插件实例集合。 */
280
- readonly pluginInstances: Map<string, Plugin>;
281
- /** Session 能力入口。 */
282
- readonly session: SessionCollectionPort;
283
- /** Plugin 调用入口。 */
284
- readonly plugins: AgentPlugins;
285
- /** 跨 plugin runtime 调用主入口。 */
286
- readonly invoke: InvokePluginPort;
287
-
288
- constructor(options: AgentContextOptions) {
289
- this.cwd = options.cwd;
290
- this.rootPath = options.rootPath;
291
- this.logger = options.logger;
292
- this.config = options.config;
293
- this.configured_env = options.env;
294
- this.configured_systems = options.systems;
295
- this.paths = options.paths;
296
- this.pluginConfig = options.pluginConfig;
297
- this.pluginInstances = options.pluginInstances;
298
- this.session = options.session;
299
- this.plugins = options.plugins;
300
- this.invoke = {
301
- invoke: (params) => this.invoke_plugin_action(params),
302
- };
303
- }
304
-
305
- /**
306
- * 读取当前调用链可见的 Agent env。
307
- *
308
- * 关键点(中文)
309
- * - Session step 内优先返回统一输入队列已经提交的 effective env。
310
- * - Session 运行外返回 Agent 配置 API 最近一次成功写入的 configured env。
311
- */
312
- get env(): Record<string, string> {
313
- const effective_env = getSessionRunContext()?.agentEnv;
314
- return effective_env
315
- ? { ...effective_env }
316
- : this.configured_env;
317
- }
318
-
319
- /**
320
- * 读取当前调用链可见的 Agent instruction。
321
- */
322
- get systems(): string[] {
323
- const effective_systems = getSessionRunContext()?.agentSystems;
324
- return effective_systems
325
- ? [...effective_systems]
326
- : this.configured_systems;
327
- }
328
-
329
- /**
330
- * 读取指定 sessionId 对应的 session 端口。
331
- *
332
- * 关键点(中文)
333
- * - 返回值是统一的 `SessionPort`,而不是裸 `Executor`。
334
- * - 这样 HTTP / plugin runtime / chat queue / contact 等入口都能复用同一层会话装配与执行兜底。
335
- */
336
- getSession(sessionId: string): SessionPort {
337
- return this.session.get(sessionId);
338
- }
339
-
340
- /**
341
- * 返回当前执行中的 sessionId 列表。
342
- */
343
- listExecutingSessionIds(): string[] {
344
- return this.session.listExecutingSessionIds();
345
- }
346
-
347
- /**
348
- * 返回当前执行中的 session 数量。
349
- */
350
- getExecutingSessionCount(): number {
351
- return this.session.getExecutingSessionCount();
352
- }
353
-
354
- /**
355
- * 跨 plugin runtime 调用 action 的内部实现。
356
- *
357
- * 关键点(中文)
358
- * - 统一把 `runAction` 的成功/失败结果归一化为 `InvokePluginResult`。
359
- * - 这里替代了原 `createAgentContext` 工厂里的胶水匿名函数。
360
- */
361
- private async invoke_plugin_action(
362
- params: InvokePluginParams,
363
- ): Promise<InvokePluginResult> {
364
- const result = await this.plugins.runAction({
365
- plugin: params.plugin,
366
- action: params.action,
367
- ...(params.payload !== undefined ? { payload: params.payload } : {}),
368
- });
369
- if (!result.success) {
370
- return {
371
- success: false,
372
- error: result.error || result.message || "plugin action failed",
373
- };
374
- }
375
- return {
376
- success: true,
377
- ...(result.data !== undefined ? { data: result.data } : {}),
378
- };
379
- }
380
- }
381
-
382
- /**
383
- * 允许 optional 字段的结构化配置对象。
384
- */
385
- export type StructuredConfig = {
386
- [key: string]: JsonValue | undefined;
387
- };
@@ -1,107 +0,0 @@
1
- /**
2
- * Session Composer 配置类型。
3
- *
4
- * 关键点(中文)
5
- * - Composer 是 session 执行阶段的可替换策略对象。
6
- * - 调用方可以传入现成实例,也可以传入 factory 为每个 session 创建独立实例。
7
- * - factory 适合 history/system 等可能绑定 sessionId、historyStore 或 session 元信息的 composer。
8
- */
9
-
10
- import type { Tool } from "ai";
11
- import type { SessionCompactionComposer } from "@/executor/composer/compaction/SessionCompactionComposer.js";
12
- import type { SessionContextComposer } from "@/executor/composer/context/SessionContextComposer.js";
13
- import type { SessionHistoryComposer } from "@/executor/composer/history/SessionHistoryComposer.js";
14
- import type { SessionSystemComposer } from "@/executor/composer/system/SessionSystemComposer.js";
15
- import type { SessionHistoryStore } from "@/executor/store/history/SessionHistoryStore.js";
16
- import type { AgentSessionSystemBlock } from "@/types/agent/SessionTypes.js";
17
-
18
- /**
19
- * 单个 session 创建 Composer 时可读取的稳定上下文。
20
- */
21
- export interface SessionComposerFactoryContext {
22
- /**
23
- * 当前 agent 的稳定标识。
24
- */
25
- agentId: string;
26
-
27
- /**
28
- * 当前 agent 绑定的项目根目录。
29
- */
30
- projectRoot: string;
31
-
32
- /**
33
- * 当前 session 唯一标识。
34
- */
35
- sessionId: string;
36
-
37
- /**
38
- * 当前 session 对应的 history 事实源。
39
- *
40
- * 关键点(中文)
41
- * - history composer 和 compaction composer 通常需要基于它读取或压缩历史。
42
- * - factory 每次收到的都是当前 session 自己的 store。
43
- */
44
- historyStore: SessionHistoryStore;
45
-
46
- /**
47
- * 当前 agent 默认工具集合读取器。
48
- */
49
- getTools: () => Record<string, Tool>;
50
-
51
- /**
52
- * 读取当前 SDK 调用方传入的 instruction system blocks。
53
- */
54
- getInstructionSystemBlocks: () => AgentSessionSystemBlock[];
55
-
56
- /**
57
- * 读取当前 agent 显式注入的受托管 plugin system blocks。
58
- */
59
- getManagedPluginSystemBlocks: () => Promise<AgentSessionSystemBlock[]>;
60
-
61
- /**
62
- * 读取当前 agent 显式注册 plugin 的 system blocks。
63
- */
64
- getPluginSystemBlocks: () => Promise<AgentSessionSystemBlock[]>;
65
-
66
- /**
67
- * 读取当前 session 首次创建时间(ms)。
68
- */
69
- getSessionCreatedAt: () => number;
70
-
71
- /**
72
- * 读取当前 session 初始化时解析到的系统时区。
73
- */
74
- getSessionTimezone: () => string;
75
- }
76
-
77
- /**
78
- * 可直接传入 composer 实例,也可传入按 session 创建 composer 的 factory。
79
- */
80
- export type SessionComposerInput<TComposer> =
81
- | TComposer
82
- | ((context: SessionComposerFactoryContext) => TComposer);
83
-
84
- /**
85
- * Session Composer 覆盖项。
86
- */
87
- export interface SessionComposerOptions {
88
- /**
89
- * 覆盖本轮 system messages 的 composer。
90
- */
91
- systemComposer?: SessionComposerInput<SessionSystemComposer>;
92
-
93
- /**
94
- * 覆盖本轮 history messages 的 composer。
95
- */
96
- historyComposer?: SessionComposerInput<SessionHistoryComposer>;
97
-
98
- /**
99
- * 覆盖本轮 tools、step hooks、fallback assistant message 等运行上下文 composer。
100
- */
101
- contextComposer?: SessionComposerInput<SessionContextComposer>;
102
-
103
- /**
104
- * 覆盖本轮上下文压缩 composer。
105
- */
106
- compactionComposer?: SessionComposerInput<SessionCompactionComposer>;
107
- }