@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
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Session 输入队列类型。
3
+ *
4
+ * 队列只保存明确的输入事实,不保存可执行闭包。SessionTurn 是这些输入的唯一解释者。
5
+ */
6
+ import type { AgentSessionConfigSnapshot, AgentSessionSystemBlock } from "../../types/agent/SessionTypes.js";
7
+ import type { AgentPluginExecutionRuntime } from "../../types/plugin/PluginRuntime.js";
8
+ import type { AgentSessionPromptInput } from "../../types/sdk/AgentSessionPrompt.js";
9
+ import type { AgentSessionTurnHandle } from "../../types/sdk/AgentSessionTurn.js";
10
+ /** Session 模型配置在 Step 检查点生效的命令。 */
11
+ export interface SessionModelQueueCommand {
12
+ /** 命令种类固定为 Session 模型更新。 */
13
+ type: "session_model";
14
+ /** 当前命令的稳定唯一标识。 */
15
+ command_id: string;
16
+ /** 等待提交为 effective state 的完整 Session 配置。 */
17
+ config: AgentSessionConfigSnapshot;
18
+ /** 配置生效后需要写入的可选 Action 标识。 */
19
+ action_id?: string;
20
+ /** 配置生效后需要写入的可选 Action 标题。 */
21
+ action_title?: string;
22
+ }
23
+ /** Agent instruction 在 Session Step 检查点生效的命令。 */
24
+ export interface SessionInstructionQueueCommand {
25
+ /** 命令种类固定为 Agent instruction 更新。 */
26
+ type: "agent_instruction";
27
+ /** 当前命令的稳定唯一标识。 */
28
+ command_id: string;
29
+ /** 下一 Step 使用的完整 instruction blocks。 */
30
+ instruction_blocks: AgentSessionSystemBlock[];
31
+ }
32
+ /** Agent env 在 Session Step 检查点生效的命令。 */
33
+ export interface SessionEnvQueueCommand {
34
+ /** 命令种类固定为 Agent env 更新。 */
35
+ type: "agent_env";
36
+ /** 当前命令的稳定唯一标识。 */
37
+ command_id: string;
38
+ /** 下一 Step 使用的完整环境变量快照。 */
39
+ env: Record<string, string>;
40
+ }
41
+ /** Agent Plugin 视图在 Session Step 检查点生效的命令。 */
42
+ export interface SessionPluginsQueueCommand {
43
+ /** 命令种类固定为 Agent Plugin 更新。 */
44
+ type: "agent_plugins";
45
+ /** 当前命令的稳定唯一标识。 */
46
+ command_id: string;
47
+ /** 当前 Plugin 修改的用户可读标题。 */
48
+ title: string;
49
+ /** 下一 Step 使用的 Plugin 执行视图。 */
50
+ plugins: AgentPluginExecutionRuntime;
51
+ }
52
+ /** 显式持久化历史压缩命令。 */
53
+ export interface SessionCompactQueueCommand {
54
+ /** 命令种类固定为 compact。 */
55
+ type: "compact";
56
+ /** 当前命令的稳定唯一标识。 */
57
+ command_id: string;
58
+ }
59
+ /** Session FIFO 中允许出现的领域命令。 */
60
+ export type SessionQueueCommand = SessionModelQueueCommand | SessionInstructionQueueCommand | SessionEnvQueueCommand | SessionPluginsQueueCommand | SessionCompactQueueCommand;
61
+ /** Agent configured state 广播给既有 Session 的输入。 */
62
+ export type AgentSessionCommand = {
63
+ /** 当前修改固定为 instruction。 */
64
+ type: "instruction";
65
+ /** 当前命令唯一标识。 */
66
+ command_id: string;
67
+ /** 下一 Session Step 使用的 instruction blocks。 */
68
+ instruction_blocks: AgentSessionSystemBlock[];
69
+ } | {
70
+ /** 当前修改固定为 env。 */
71
+ type: "env";
72
+ /** 当前命令唯一标识。 */
73
+ command_id: string;
74
+ /** 下一 Session Step 使用的完整 Agent env。 */
75
+ env: Record<string, string>;
76
+ } | {
77
+ /** 当前修改固定为 plugins。 */
78
+ type: "plugins";
79
+ /** 当前命令唯一标识。 */
80
+ command_id: string;
81
+ /** 当前 Plugin 修改的用户可读标题。 */
82
+ title: string;
83
+ /** 下一 Session Step 使用的 Plugin 执行视图。 */
84
+ plugins: AgentPluginExecutionRuntime;
85
+ };
86
+ /** Promise 的显式兑现控制器。 */
87
+ export interface SessionQueueDeferred<T> {
88
+ /** 调用方等待的 Promise。 */
89
+ promise: Promise<T>;
90
+ /** 成功兑现 Promise。 */
91
+ resolve: (value: T) => void;
92
+ }
93
+ /** FIFO 中等待创建或并入 Turn 的 Prompt。 */
94
+ export interface SessionQueuedPrompt {
95
+ /** 队列项种类固定为 prompt。 */
96
+ type: "prompt";
97
+ /** 当前 Prompt 的结构化输入。 */
98
+ input: AgentSessionPromptInput;
99
+ /** 等待 SessionTurn 返回 Turn Handle 的控制器。 */
100
+ deferred_handle: SessionQueueDeferred<AgentSessionTurnHandle>;
101
+ }
102
+ /** Session FIFO 中的全部输入类型。 */
103
+ export type SessionQueueItem = SessionQueuedPrompt | SessionQueueCommand;
104
+ //# sourceMappingURL=SessionQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionQueue.d.ts","sourceRoot":"","sources":["../../../src/types/session/SessionQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACzG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE9E,mCAAmC;AACnC,MAAM,WAAW,wBAAwB;IACvC,4BAA4B;IAC5B,IAAI,EAAE,eAAe,CAAC;IACtB,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,MAAM,EAAE,0BAA0B,CAAC;IACnC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,iDAAiD;AACjD,MAAM,WAAW,8BAA8B;IAC7C,oCAAoC;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;CAC/C;AAED,yCAAyC;AACzC,MAAM,WAAW,sBAAsB;IACrC,4BAA4B;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,8CAA8C;AAC9C,MAAM,WAAW,0BAA0B;IACzC,+BAA+B;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,OAAO,EAAE,2BAA2B,CAAC;CACtC;AAED,mBAAmB;AACnB,MAAM,WAAW,0BAA0B;IACzC,uBAAuB;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,+BAA+B;AAC/B,MAAM,MAAM,mBAAmB,GAC3B,wBAAwB,GACxB,8BAA8B,GAC9B,sBAAsB,GACtB,0BAA0B,GAC1B,0BAA0B,CAAC;AAE/B,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAC3B;IACE,2BAA2B;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;CAC/C,GACD;IACE,mBAAmB;IACnB,IAAI,EAAE,KAAK,CAAC;IACZ,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,GACD;IACE,uBAAuB;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,OAAO,EAAE,2BAA2B,CAAC;CACtC,CAAC;AAEN,wBAAwB;AACxB,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,oBAAoB;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC7B;AAED,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,uBAAuB;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,wBAAwB;IACxB,KAAK,EAAE,uBAAuB,CAAC;IAC/B,0CAA0C;IAC1C,eAAe,EAAE,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;CAC/D;AAED,6BAA6B;AAC7B,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Session 输入队列类型。
3
+ *
4
+ * 队列只保存明确的输入事实,不保存可执行闭包。SessionTurn 是这些输入的唯一解释者。
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=SessionQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionQueue.js","sourceRoot":"","sources":["../../../src/types/session/SessionQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * SessionState 构造与配置变更类型。
3
+ *
4
+ * 这些类型只描述 Session 配置和 Metadata 状态,不承载 Message 行为。
5
+ */
6
+ import type { LanguageModel } from "ai";
7
+ import type { SessionMessages } from "../../session/SessionMessages.js";
8
+ import type { SessionLocalState } from "../../types/session/SessionLocalState.js";
9
+ import type { SessionMutation } from "../../types/session/SessionMutation.js";
10
+ import type { SessionQueueCommand } from "../../types/session/SessionQueue.js";
11
+ import type { Logger } from "../../utils/logger/Logger.js";
12
+ /** SessionState 构造参数。 */
13
+ export interface SessionStateOptions {
14
+ /** 当前 Agent 的稳定标识。 */
15
+ agent_id: string;
16
+ /** 当前项目的绝对根目录。 */
17
+ project_root: string;
18
+ /** 当前 Session 的稳定标识。 */
19
+ session_id: string;
20
+ /** 当前 Session 的 canonical Message 入口。 */
21
+ messages: SessionMessages;
22
+ /** 当前 Session 的可变内存状态。 */
23
+ state: SessionLocalState;
24
+ /** 当前 Session 的运行日志器。 */
25
+ logger: Logger;
26
+ /** 在执行前补齐宿主级配置的异步钩子。 */
27
+ ensure_configured_hook?: () => Promise<void>;
28
+ /** 按 Session 优先、Agent 兜底规则读取当前模型。 */
29
+ get_model: () => LanguageModel | undefined;
30
+ /** 发布 Session Mutation 的函数。 */
31
+ publish_event: (mutation: SessionMutation) => void;
32
+ }
33
+ /** Session 配置写入选项。 */
34
+ export interface SessionSetOptions {
35
+ /** 是否为本次配置变化生成 Model Switching Action。 */
36
+ emit_action?: boolean;
37
+ }
38
+ /** Session 配置成功写入后的队列提交结果。 */
39
+ export interface SessionConfiguredCommandResult {
40
+ /** 等待在下一 Session Step 检查点执行的 Command。 */
41
+ command?: SessionQueueCommand;
42
+ }
43
+ //# sourceMappingURL=SessionState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionState.d.ts","sourceRoot":"","sources":["../../../src/types/session/SessionState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,yBAAyB;AACzB,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,0BAA0B;IAC1B,KAAK,EAAE,iBAAiB,CAAC;IACzB,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,qCAAqC;IACrC,SAAS,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;IAC3C,+BAA+B;IAC/B,aAAa,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CACpD;AAED,sBAAsB;AACtB,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,8BAA8B;AAC9B,MAAM,WAAW,8BAA8B;IAC7C,yCAAyC;IACzC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SessionState 构造与配置变更类型。
3
+ *
4
+ * 这些类型只描述 Session 配置和 Metadata 状态,不承载 Message 行为。
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=SessionState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionState.js","sourceRoot":"","sources":["../../../src/types/session/SessionState.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Session System Block 组装类型。
3
+ *
4
+ * 该类型只描述默认 Composer 组装 system block 所需的只读输入。
5
+ */
6
+ import type { AgentSessionSystemBlock } from "../../types/agent/SessionTypes.js";
7
+ /** 默认 Session System Block 的组装参数。 */
8
+ export interface BuildSessionSystemBlocksInput {
9
+ /** 当前 Agent 的稳定标识。 */
10
+ agent_id: string;
11
+ /** 当前 Agent 绑定的项目绝对根目录。 */
12
+ project_root: string;
13
+ /** 当前 Session 的稳定标识。 */
14
+ session_id: string;
15
+ /** 当前 Session 首次创建时间,单位为毫秒。 */
16
+ created_at: number;
17
+ /** 当前 Session 初始化时解析到的系统时区。 */
18
+ timezone: string;
19
+ /** 读取当前调用方传入的 Instruction System Block。 */
20
+ get_instruction_system_blocks: () => AgentSessionSystemBlock[];
21
+ /** 读取当前显式注入的受托管 Plugin System Block。 */
22
+ get_managed_plugin_system_blocks: () => Promise<AgentSessionSystemBlock[]>;
23
+ /** 读取当前显式注册 Plugin 的 System Block。 */
24
+ get_plugin_system_blocks: () => Promise<AgentSessionSystemBlock[]>;
25
+ }
26
+ //# sourceMappingURL=SessionSystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionSystem.d.ts","sourceRoot":"","sources":["../../../src/types/session/SessionSystem.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAE7E,qCAAqC;AACrC,MAAM,WAAW,6BAA6B;IAC5C,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,6BAA6B,EAAE,MAAM,uBAAuB,EAAE,CAAC;IAC/D,wCAAwC;IACxC,gCAAgC,EAAE,MAAM,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC3E,sCAAsC;IACtC,wBAAwB,EAAE,MAAM,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;CACpE"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Session System Block 组装类型。
3
+ *
4
+ * 该类型只描述默认 Composer 组装 system block 所需的只读输入。
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=SessionSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionSystem.js","sourceRoot":"","sources":["../../../src/types/session/SessionSystem.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Session Tool Message 类型。
3
+ *
4
+ * 这些类型描述 Tool 生命周期协调器与 Recorder 之间的稳定边界。
5
+ */
6
+ import type { SessionAssistantToolPart } from "../../types/session/SessionMessage.js";
7
+ /** 当前流式 Assistant 中的 Tool Part 定位结果。 */
8
+ export interface SessionStreamingToolLocation {
9
+ /** Tool Part 所属 Assistant Message。 */
10
+ message_id: string;
11
+ /** 当前 Tool Part 完整快照。 */
12
+ part: SessionAssistantToolPart;
13
+ }
14
+ /** Executor 在调用 Tool 实现前提交的完整输入。 */
15
+ export interface SessionToolInputReady {
16
+ /** 当前 Tool Call 标识。 */
17
+ tool_call_id: string;
18
+ /** 当前 Tool 注册名称。 */
19
+ tool_name: string;
20
+ /** 已完成解析的 Tool 输入。 */
21
+ input: unknown;
22
+ }
23
+ //# sourceMappingURL=SessionTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionTool.d.ts","sourceRoot":"","sources":["../../../src/types/session/SessionTool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAElF,wCAAwC;AACxC,MAAM,WAAW,4BAA4B;IAC3C,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,IAAI,EAAE,wBAAwB,CAAC;CAChC;AAED,oCAAoC;AACpC,MAAM,WAAW,qBAAqB;IACpC,uBAAuB;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,KAAK,EAAE,OAAO,CAAC;CAChB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Session Tool Message 类型。
3
+ *
4
+ * 这些类型描述 Tool 生命周期协调器与 Recorder 之间的稳定边界。
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=SessionTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionTool.js","sourceRoot":"","sources":["../../../src/types/session/SessionTool.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * SessionTurn 构造参数与内部运行态类型。
3
+ *
4
+ * 这些类型描述 Turn 编排所依赖的领域对象,不实现任何调度行为。
5
+ */
6
+ import type { Executor } from "../../executor/Executor.js";
7
+ import type { SessionApprovalBroker } from "../../session/approval/SessionApprovalBroker.js";
8
+ import type { SessionEventHub } from "../../session/runtime/SessionEventHub.js";
9
+ import type { SessionMessages } from "../../session/SessionMessages.js";
10
+ import type { SessionState } from "../../session/SessionState.js";
11
+ import type { AgentSessionTurnResult } from "../../types/sdk/AgentSessionTurn.js";
12
+ import type { SessionQueueCommand } from "../../types/session/SessionQueue.js";
13
+ /** Promise 延迟控制器。 */
14
+ export interface SessionDeferred<T> {
15
+ /** 等待兑现的 Promise。 */
16
+ promise: Promise<T>;
17
+ /** 兑现 Promise 的函数。 */
18
+ resolve: (value: T) => void;
19
+ }
20
+ /** 当前活跃 Turn 的内存状态。 */
21
+ export interface ActiveSessionTurnState {
22
+ /** 当前 Turn 的稳定标识。 */
23
+ turn_id: string;
24
+ /** 当前 Turn 的最终结果快照。 */
25
+ result: AgentSessionTurnResult | null;
26
+ /** 当前 Turn 完成状态的延迟控制器。 */
27
+ deferred_finished: SessionDeferred<AgentSessionTurnResult>;
28
+ /** 当前 Turn 的取消控制器。 */
29
+ abort_controller: AbortController;
30
+ }
31
+ /** SessionTurn 构造参数。 */
32
+ export interface SessionTurnOptions {
33
+ /** 当前 Session 的稳定标识。 */
34
+ session_id: string;
35
+ /** 当前项目的绝对根目录。 */
36
+ project_root: string;
37
+ /** 当前 Session 的模型执行器。 */
38
+ executor: Executor;
39
+ /** 当前 Session 的配置与 Metadata 状态。 */
40
+ state: SessionState;
41
+ /** 当前 Session 的 canonical Message 入口。 */
42
+ messages: SessionMessages;
43
+ /** 当前 Session 的 Mutation 总线。 */
44
+ events: SessionEventHub;
45
+ /** 当前 Session 的 Tool 审批入口。 */
46
+ approvals: SessionApprovalBroker;
47
+ /** 在 Step 检查点提交 Session 或 Agent 状态 Command。 */
48
+ apply_command: (command: Exclude<SessionQueueCommand, {
49
+ type: "compact";
50
+ }>, turn_id: string) => Promise<void>;
51
+ }
52
+ //# sourceMappingURL=SessionTurn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionTurn.d.ts","sourceRoot":"","sources":["../../../src/types/session/SessionTurn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,qBAAqB;AACrB,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,sBAAsB;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC7B;AAED,uBAAuB;AACvB,MAAM,WAAW,sBAAsB;IACrC,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,0BAA0B;IAC1B,iBAAiB,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAC3D,sBAAsB;IACtB,gBAAgB,EAAE,eAAe,CAAC;CACnC;AAED,wBAAwB;AACxB,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,mCAAmC;IACnC,KAAK,EAAE,YAAY,CAAC;IACpB,yCAAyC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,gCAAgC;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,8BAA8B;IAC9B,SAAS,EAAE,qBAAqB,CAAC;IACjC,+CAA+C;IAC/C,aAAa,EAAE,CACb,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,EAC1D,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SessionTurn 构造参数与内部运行态类型。
3
+ *
4
+ * 这些类型描述 Turn 编排所依赖的领域对象,不实现任何调度行为。
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=SessionTurn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionTurn.js","sourceRoot":"","sources":["../../../src/types/session/SessionTurn.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@downcity/agent",
3
- "version": "1.1.237",
3
+ "version": "1.1.258",
4
4
  "type": "module",
5
5
  "description": "Downcity Agent 运行时 — 单 Agent 执行壳与本机 RPC 能力",
6
6
  "main": "./bin/index.js",
@@ -13,8 +13,8 @@
13
13
  },
14
14
  "dependencies": {
15
15
  "@ai-sdk/openai-compatible": "^2.0.48",
16
- "@downcity/shell": "^0.1.95",
17
- "@downcity/type": "0.1.128",
16
+ "@downcity/shell": "^0.1.112",
17
+ "@downcity/type": "0.1.145",
18
18
  "ai": "^6.0.193",
19
19
  "commander": "^15.0.0",
20
20
  "dotenv": "^17.4.2",
@@ -37,7 +37,7 @@ test("项目 .env 覆盖宿主环境且不修改 process.env", () => {
37
37
  }
38
38
  });
39
39
 
40
- test("SDK 未传 config 时不读取 downcity.json", async () => {
40
+ test("Agent 运行时只使用显式 id,不读取完整项目 config", async () => {
41
41
  const project_root = create_project_root();
42
42
  try {
43
43
  fs.writeFileSync(path.join(project_root, "downcity.json"), JSON.stringify({
@@ -45,23 +45,9 @@ test("SDK 未传 config 时不读取 downcity.json", async () => {
45
45
  version: "9.9.9",
46
46
  }));
47
47
  const agent = new Agent({ id: "sdk_id", path: project_root });
48
- assert.equal(agent.getContext().config.id, "sdk_id");
49
- assert.equal(agent.getContext().config.version, "0.0.0");
50
- await agent.ready();
51
- await agent.dispose();
52
- } finally {
53
- fs.rmSync(project_root, { recursive: true, force: true, maxRetries: 5, retryDelay: 20 });
54
- }
55
- });
56
-
57
- test("SDK 未注入 plugin_config 时明确拒绝持久化", async () => {
58
- const project_root = create_project_root();
59
- try {
60
- const agent = new Agent({ id: "sdk_id", path: project_root });
61
- await assert.rejects(
62
- agent.getContext().pluginConfig.persistProjectPlugins({}),
63
- /Plugin config persistence is not configured/,
64
- );
48
+ assert.equal(agent.id, "sdk_id");
49
+ assert.equal(agent.getContext().agent_id, "sdk_id");
50
+ assert.equal(agent.getContext().rootPath, project_root);
65
51
  await agent.ready();
66
52
  await agent.dispose();
67
53
  } finally {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @file 验证 session.prompt 会等待当前 Agent 后台能力 ready。
2
+ * @file 验证 session.prompt 会等待当前 Agent runtime ready。
3
3
  *
4
4
  * 关键点(中文)
5
5
  * - 这里走编译后的公开 SDK,覆盖宿主真实入口。
@@ -86,7 +86,7 @@ function create_stream_text_result(text) {
86
86
  };
87
87
  }
88
88
 
89
- test("session.prompt waits for agent background ready before model execution", async () => {
89
+ test("session.prompt waits for agent runtime ready before model execution", async () => {
90
90
  const agent_path = await fs.mkdtemp(
91
91
  path.join(os.tmpdir(), "downcity-agent-ready-"),
92
92
  );
@@ -203,3 +203,34 @@ test("agent ready isolates plugin lifecycle start failures", async () => {
203
203
  await agent.dispose();
204
204
  }
205
205
  });
206
+
207
+ test("AgentState installs plugin tools when an action plugin is registered", async () => {
208
+ const agent_path = await fs.mkdtemp(
209
+ path.join(os.tmpdir(), "downcity-agent-state-plugin-tools-"),
210
+ );
211
+ const agent = new Agent({
212
+ id: "state_plugin_tools_agent",
213
+ path: agent_path,
214
+ });
215
+ const action_plugin = createPlugin({
216
+ name: "dynamic_action",
217
+ actions: {
218
+ ping: {
219
+ description: "Return pong",
220
+ execute: async () => ({ success: true, data: { value: "pong" } }),
221
+ },
222
+ },
223
+ });
224
+
225
+ try {
226
+ assert.equal(agent.tools.plugin_read, undefined);
227
+ assert.equal(agent.tools.plugin_call, undefined);
228
+
229
+ await agent.plugins.register(action_plugin);
230
+
231
+ assert.notEqual(agent.tools.plugin_read, undefined);
232
+ assert.notEqual(agent.tools.plugin_call, undefined);
233
+ } finally {
234
+ await agent.dispose();
235
+ }
236
+ });
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Agent Session 领域维护能力测试。
3
+ */
4
+
5
+ import assert from "node:assert/strict";
6
+ import fs from "node:fs";
7
+ import os from "node:os";
8
+ import path from "node:path";
9
+ import test from "node:test";
10
+ import { Agent } from "../bin/index.js";
11
+
12
+ function create_project_root() {
13
+ return fs.mkdtempSync(path.join(os.tmpdir(), "downcity-session-maintenance-"));
14
+ }
15
+
16
+ function get_session_path(root_path, agent_id, session_id) {
17
+ return path.join(
18
+ root_path,
19
+ ".downcity",
20
+ "agents",
21
+ encodeURIComponent(agent_id),
22
+ "sessions",
23
+ encodeURIComponent(session_id),
24
+ );
25
+ }
26
+
27
+ test("AgentContext sessions 负责清空消息和删除 Session 数据", async () => {
28
+ const root_path = create_project_root();
29
+ const agent = new Agent({ id: "agent_test", path: root_path });
30
+ try {
31
+ assert.equal(agent.getContext().sessions, agent.sessions);
32
+ const session_id = "session_test";
33
+ await agent.sessions.create({ sessionId: session_id });
34
+ const session_path = get_session_path(root_path, agent.id, session_id);
35
+ const messages_path = path.join(session_path, "messages");
36
+ fs.mkdirSync(messages_path, { recursive: true });
37
+ fs.writeFileSync(path.join(messages_path, "active.jsonl"), "{}\n");
38
+
39
+ assert.equal(
40
+ await agent.getContext().sessions.clear_messages(session_id),
41
+ true,
42
+ );
43
+ assert.equal(fs.existsSync(messages_path), false);
44
+ assert.equal(fs.existsSync(session_path), true);
45
+
46
+ assert.equal(await agent.getContext().sessions.remove(session_id), true);
47
+ assert.equal(fs.existsSync(session_path), false);
48
+ } finally {
49
+ await agent.dispose();
50
+ fs.rmSync(root_path, { recursive: true, force: true });
51
+ }
52
+ });
@@ -15,7 +15,6 @@ import os from "node:os";
15
15
  import path from "node:path";
16
16
  import fs from "node:fs/promises";
17
17
  import { Agent } from "../bin/index.js";
18
- import { enqueueAssistantFileParts } from "../bin/executor/SessionRunScope.js";
19
18
  import { createAction, createPlugin } from "../bin/plugin/core/PluginActionFactory.js";
20
19
  import { CITY_MODEL_INVOKER, CITY_MODEL_KIND } from "@downcity/type";
21
20
  import { tool } from "ai";
@@ -256,14 +255,14 @@ test("CityModel uses direct LanguageModel path and sends tool result back", asyn
256
255
  inputSchema: z.object({
257
256
  value: z.string(),
258
257
  }),
259
- execute: async ({ value }) => {
258
+ execute: async ({ value }, options) => {
260
259
  tool_executed = true;
261
- enqueueAssistantFileParts([{
260
+ options.experimental_context.session_run_context.pendingAssistantFileParts.push({
262
261
  type: "file",
263
262
  mediaType: "image/png",
264
263
  url: ".downcity/resources/tool-output.png",
265
264
  filename: "tool-output.png",
266
- }]);
265
+ });
267
266
  return { echoed: value };
268
267
  },
269
268
  }),
@@ -13,7 +13,6 @@ import {
13
13
  should_compact_after_usage,
14
14
  } from "../bin/executor/core-engine/CoreEngineContextCompaction.js";
15
15
  import { CoreEngineRunner } from "../bin/executor/core-engine/CoreEngineRunner.js";
16
- import { LocalSessionContextComposer } from "../bin/executor/composer/context/LocalSessionContextComposer.js";
17
16
 
18
17
  function create_stream_text_result(text, input_tokens, output_tokens) {
19
18
  return {
@@ -47,26 +46,16 @@ function create_stream_text_result(text, input_tokens, output_tokens) {
47
46
  }
48
47
 
49
48
  function create_runner() {
50
- const context_composer = new LocalSessionContextComposer({
51
- sessionId: "compact-runner-session",
52
- getTools: () => ({}),
53
- });
54
49
  return new CoreEngineRunner({
55
- history_store: { sessionId: "compact-runner-session" },
56
- context_composer,
50
+ session_id: "compact-runner-session",
57
51
  logger: { log: async () => {} },
58
52
  should_compact_on_error: () => false,
59
53
  });
60
54
  }
61
55
 
62
56
  function create_context_error_runner() {
63
- const context_composer = new LocalSessionContextComposer({
64
- sessionId: "compact-runner-session",
65
- getTools: () => ({}),
66
- });
67
57
  return new CoreEngineRunner({
68
- history_store: { sessionId: "compact-runner-session" },
69
- context_composer,
58
+ session_id: "compact-runner-session",
70
59
  logger: { log: async () => {} },
71
60
  should_compact_on_error: (error) =>
72
61
  String(error || "").includes("context length"),
@@ -94,6 +83,7 @@ function create_run_input(model, messages, context_window = 100) {
94
83
  tools: {},
95
84
  context_window,
96
85
  }),
86
+ reload_history: async () => messages,
97
87
  };
98
88
  }
99
89
 
@@ -191,16 +181,8 @@ test("显式 compact 后在下一次 provider 调用前重载 canonical history"
191
181
  },
192
182
  parts: [{ type: "text", text: "compacted checkpoint" }],
193
183
  }];
194
- const context_composer = new LocalSessionContextComposer({
195
- sessionId: "compact-runner-session",
196
- getTools: () => ({}),
197
- });
198
184
  const runner = new CoreEngineRunner({
199
- history_store: {
200
- sessionId: "compact-runner-session",
201
- list_records: async () => compacted_records,
202
- },
203
- context_composer,
185
+ session_id: "compact-runner-session",
204
186
  logger: { log: async () => {} },
205
187
  should_compact_on_error: () => false,
206
188
  });
@@ -229,6 +211,7 @@ test("显式 compact 后在下一次 provider 调用前重载 canonical history"
229
211
  reload_requested = false;
230
212
  return requested;
231
213
  };
214
+ input.reload_history = async () => compacted_records;
232
215
 
233
216
  const result = await runner.run(input);
234
217
 
@@ -14,7 +14,7 @@ import os from "node:os";
14
14
  import path from "node:path";
15
15
 
16
16
  import { ImagePlugin } from "../../plugins/bin/index.js";
17
- import { createAgentPluginRegistry } from "../bin/agent/local/AgentPluginFactory.js";
17
+ import { PluginRegistry } from "../bin/plugin/core/PluginRegistry.js";
18
18
 
19
19
  function create_image_message() {
20
20
  return {
@@ -36,11 +36,9 @@ function create_context(rootPath = process.cwd()) {
36
36
  }
37
37
 
38
38
  function create_registry(plugin, rootPath = process.cwd()) {
39
- return createAgentPluginRegistry({
40
- plugins: [plugin],
41
- plugin_instances: new Map(),
42
- get_context: () => create_context(rootPath),
43
- });
39
+ const registry = new PluginRegistry([plugin]);
40
+ registry.bind_context(create_context(rootPath));
41
+ return registry;
44
42
  }
45
43
 
46
44
  test("ImagePlugin exposes only job-style image actions", async () => {