@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
@@ -7,16 +7,14 @@
7
7
  * - Session 对象创建细节集中在这里,避免 facade 和 lifecycle 重复依赖 Session 构造逻辑。
8
8
  */
9
9
  import type { Tool } from "ai";
10
- import type { Logger } from "../../../utils/logger/Logger.js";
11
- import type { AgentCreateSessionInput, AgentArchiveSessionInput, AgentArchiveSessionsInput, AgentArchiveSessionResult, AgentArchiveSessionsResult, AgentCleanArchiveResult, AgentListSessionsInput, AgentSessionSummaryPage } from "../../../types/agent/SessionTypes.js";
12
- import type { AgentModel } from "../../../model/CityModelAdapter.js";
13
- import type { AgentSessionConstructor } from "../../../types/agent/AgentOptions.js";
14
- import type { AgentSession, AgentSessions as AgentSessionsApi } from "../../../types/agent/SessionActor.js";
15
- import type { AgentManagedSession } from "../../../types/session/SessionOptions.js";
16
- import type { AgentContext } from "../../../types/runtime/agent/AgentContext.js";
17
- import type { SessionPort } from "../../../types/runtime/agent/AgentContext.js";
18
- import type { Shell } from "@downcity/shell";
19
- import type { AgentPluginExecutionRuntime } from "../../../types/plugin/PluginRuntime.js";
10
+ import type { AgentModel } from "../agent/AgentModel.js";
11
+ import type { Logger } from "../utils/logger/Logger.js";
12
+ import type { AgentCreateSessionInput, AgentArchiveSessionInput, AgentArchiveSessionsInput, AgentArchiveSessionResult, AgentArchiveSessionsResult, AgentCleanArchiveResult, AgentListSessionsInput, AgentSessionSummaryPage } from "../types/agent/SessionTypes.js";
13
+ import type { AgentSessionConstructor } from "../types/agent/AgentOptions.js";
14
+ import type { AgentSession, AgentSessions as AgentSessionsContract } from "../types/agent/SessionActor.js";
15
+ import type { AgentManagedSession } from "../types/session/SessionOptions.js";
16
+ import type { SessionPort } from "../types/session/SessionPort.js";
17
+ import type { AgentPluginExecutionRuntime } from "../types/plugin/PluginRuntime.js";
20
18
  type AgentSessionsOptions = {
21
19
  /**
22
20
  * 当前 agent 稳定标识。
@@ -34,15 +32,6 @@ type AgentSessionsOptions = {
34
32
  * 当前统一日志器。
35
33
  */
36
34
  logger: Logger;
37
- /**
38
- * 延迟读取当前 agent context。
39
- *
40
- * 关键点(中文)
41
- * - 装配期通过 getter 拿到 context,避免循环引用。
42
- */
43
- get_agent_context: () => AgentContext;
44
- /** 延迟读取当前 Agent 挂载的 Shell Runtime。 */
45
- get_shell: () => Shell | undefined;
46
35
  /**
47
36
  * 当前静态 instruction 文本集合。
48
37
  */
@@ -52,47 +41,40 @@ type AgentSessionsOptions = {
52
41
  /** 创建当前 configured Plugin registry 的 Session step 执行视图。 */
53
42
  get_agent_plugins: () => AgentPluginExecutionRuntime;
54
43
  /**
55
- * 等待当前 Agent 后台能力启动完成。
44
+ * 等待当前 Agent 持有的长期运行时启动完成。
56
45
  */
57
46
  ensure_agent_ready: () => Promise<void>;
58
- /**
59
- * 当前默认模型实例。
60
- */
61
- default_model?: AgentModel;
62
- /** 当前默认模型的稳定 ID。 */
63
- default_model_id?: string;
64
- /** 按稳定 ID 解析 Session 模型。 */
65
- resolve_model?: (model_id: string) => Promise<AgentModel>;
66
47
  /**
67
48
  * 当前 agent 使用的本地 Session 类。
68
49
  */
69
50
  SessionClass?: AgentSessionConstructor;
51
+ /** 读取 Agent 当前持有的运行时模型实例。 */
52
+ get_agent_model: () => AgentModel | undefined;
70
53
  };
71
54
  /**
72
55
  * 本地 Agent session 管理服务。
73
56
  */
74
- export declare class AgentSessions implements AgentSessionsApi<AgentSession> {
57
+ export declare class AgentSessions implements AgentSessionsContract<AgentSession> {
75
58
  private readonly agent_id;
76
59
  private readonly project_root;
77
60
  private readonly tools;
78
61
  private readonly logger;
79
- private readonly get_agent_context;
80
- private readonly get_shell;
81
62
  private readonly get_instruction;
82
63
  private readonly get_agent_env;
83
64
  private readonly get_agent_plugins;
84
65
  private readonly ensure_agent_ready;
85
- private readonly default_model?;
86
- private readonly default_model_id?;
87
- private readonly resolve_model?;
88
66
  private readonly SessionClass;
67
+ private readonly get_agent_model;
89
68
  private readonly sessions_by_id;
90
- private readonly configured_session_ids;
91
69
  constructor(options: AgentSessionsOptions);
92
70
  /**
93
71
  * 返回当前缓存的 session 实例。
94
72
  */
95
73
  list_cached_sessions(): AgentManagedSession[];
74
+ /** 返回当前所有执行中的 Session 标识。 */
75
+ list_executing_session_ids(): string[];
76
+ /** 返回当前执行中的 Session 数量。 */
77
+ get_executing_session_count(): number;
96
78
  /**
97
79
  * 把 Agent instruction 修改广播到已有 Session 的统一输入队列。
98
80
  */
@@ -112,7 +94,7 @@ export declare class AgentSessions implements AgentSessionsApi<AgentSession> {
112
94
  /**
113
95
  * 获取或创建一个 session runtime port。
114
96
  */
115
- get_session_port(session_id: string): SessionPort;
97
+ runtime(session_id: string): SessionPort;
116
98
  /**
117
99
  * 新建一个 session。
118
100
  */
@@ -121,6 +103,18 @@ export declare class AgentSessions implements AgentSessionsApi<AgentSession> {
121
103
  * 获取一个已存在的 session。
122
104
  */
123
105
  get(session_id: string): Promise<AgentSession>;
106
+ /**
107
+ * 永久删除一个 Session 及其全部 Agent 领域数据。
108
+ *
109
+ * 关键点(中文)
110
+ * - 正在执行的 Session 会先停止,避免删除后继续写入。
111
+ * - 该方法不处理任何 Plugin 自有数据。
112
+ */
113
+ remove(session_id: string): Promise<boolean>;
114
+ /**
115
+ * 清空一个 Session 的消息目录。
116
+ */
117
+ clear_messages(session_id: string): Promise<boolean>;
124
118
  /**
125
119
  * 列出当前 agent 的 session 摘要页。
126
120
  */
@@ -138,11 +132,7 @@ export declare class AgentSessions implements AgentSessionsApi<AgentSession> {
138
132
  */
139
133
  clean_archive(): Promise<AgentCleanArchiveResult>;
140
134
  private get_or_create_session;
141
- private require_shell;
142
- private list_session_approvals;
143
- private apply_session_defaults;
144
135
  private load_instruction_system_blocks;
145
- private load_plugin_system_blocks;
146
136
  }
147
137
  export {};
148
138
  //# sourceMappingURL=AgentSessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentSessions.d.ts","sourceRoot":"","sources":["../../src/agent/AgentSessions.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,10 @@
8
8
  */
9
9
  import fs from "fs-extra";
10
10
  import { nanoid } from "nanoid";
11
- import { Session } from "../../../session/Session.js";
12
- import { getSdkAgentArchivedSessionDirPath, getSdkAgentArchivedSessionsDirPath, getSdkAgentSessionDirPath, } from "../../../session/storage/Paths.js";
13
- import { listArchivedAgentSessionSummaryPage, listAgentSessionSummaryPage, } from "../../../session/browse/Browse.js";
14
- import { createInstructionSystemBlocks } from "../../../agent/local/AgentInstructions.js";
11
+ import { Session } from "../session/Session.js";
12
+ import { getSdkAgentArchivedSessionDirPath, getSdkAgentArchivedSessionsDirPath, getSdkAgentSessionDirPath, getSdkAgentSessionMessagesDirPath, } from "../session/storage/Paths.js";
13
+ import { listArchivedAgentSessionSummaryPage, listAgentSessionSummaryPage, } from "../session/browse/Browse.js";
14
+ import { createInstructionSystemBlocks } from "../agent/AgentInstructions.js";
15
15
  function decodeMaybe(input) {
16
16
  try {
17
17
  return decodeURIComponent(input);
@@ -28,33 +28,24 @@ export class AgentSessions {
28
28
  project_root;
29
29
  tools;
30
30
  logger;
31
- get_agent_context;
32
- get_shell;
33
31
  get_instruction;
34
32
  get_agent_env;
35
33
  get_agent_plugins;
36
34
  ensure_agent_ready;
37
- default_model;
38
- default_model_id;
39
- resolve_model;
40
35
  SessionClass;
36
+ get_agent_model;
41
37
  sessions_by_id = new Map();
42
- configured_session_ids = new Set();
43
38
  constructor(options) {
44
39
  this.agent_id = options.agent_id;
45
40
  this.project_root = options.project_root;
46
41
  this.tools = options.tools;
47
42
  this.logger = options.logger;
48
- this.get_agent_context = options.get_agent_context;
49
- this.get_shell = options.get_shell;
50
43
  this.get_instruction = options.get_instruction;
51
44
  this.get_agent_env = options.get_agent_env;
52
45
  this.get_agent_plugins = options.get_agent_plugins;
53
46
  this.ensure_agent_ready = options.ensure_agent_ready;
54
- this.default_model = options.default_model;
55
- this.default_model_id = options.default_model_id;
56
- this.resolve_model = options.resolve_model;
57
47
  this.SessionClass = options.SessionClass || Session;
48
+ this.get_agent_model = options.get_agent_model;
58
49
  }
59
50
  /**
60
51
  * 返回当前缓存的 session 实例。
@@ -62,6 +53,16 @@ export class AgentSessions {
62
53
  list_cached_sessions() {
63
54
  return [...this.sessions_by_id.values()];
64
55
  }
56
+ /** 返回当前所有执行中的 Session 标识。 */
57
+ list_executing_session_ids() {
58
+ return this.list_cached_sessions()
59
+ .filter((session) => session.isExecuting())
60
+ .map((session) => session.id);
61
+ }
62
+ /** 返回当前执行中的 Session 数量。 */
63
+ get_executing_session_count() {
64
+ return this.list_executing_session_ids().length;
65
+ }
65
66
  /**
66
67
  * 把 Agent instruction 修改广播到已有 Session 的统一输入队列。
67
68
  */
@@ -103,7 +104,7 @@ export class AgentSessions {
103
104
  /**
104
105
  * 获取或创建一个 session runtime port。
105
106
  */
106
- get_session_port(session_id) {
107
+ runtime(session_id) {
107
108
  return this.get_or_create_session({
108
109
  session_id,
109
110
  }).getRuntimePort();
@@ -122,7 +123,6 @@ export class AgentSessions {
122
123
  session_id: explicit_session_id,
123
124
  });
124
125
  await session.initialize();
125
- await this.apply_session_defaults(session);
126
126
  return session;
127
127
  }
128
128
  /**
@@ -142,9 +142,50 @@ export class AgentSessions {
142
142
  session_id: resolved_session_id,
143
143
  });
144
144
  await session.initialize();
145
- await this.apply_session_defaults(session);
146
145
  return session;
147
146
  }
147
+ /**
148
+ * 永久删除一个 Session 及其全部 Agent 领域数据。
149
+ *
150
+ * 关键点(中文)
151
+ * - 正在执行的 Session 会先停止,避免删除后继续写入。
152
+ * - 该方法不处理任何 Plugin 自有数据。
153
+ */
154
+ async remove(session_id) {
155
+ const resolved_session_id = String(session_id || "").trim();
156
+ if (!resolved_session_id) {
157
+ throw new Error("sessions.remove requires a non-empty sessionId");
158
+ }
159
+ const cached = this.sessions_by_id.get(resolved_session_id);
160
+ if (cached?.isExecuting()) {
161
+ await cached.stop();
162
+ }
163
+ const session_dir_path = getSdkAgentSessionDirPath(this.project_root, this.agent_id, resolved_session_id);
164
+ const existed = await fs.pathExists(session_dir_path);
165
+ if (existed)
166
+ await fs.remove(session_dir_path);
167
+ this.sessions_by_id.delete(resolved_session_id);
168
+ return existed;
169
+ }
170
+ /**
171
+ * 清空一个 Session 的消息目录。
172
+ */
173
+ async clear_messages(session_id) {
174
+ const resolved_session_id = String(session_id || "").trim();
175
+ if (!resolved_session_id) {
176
+ throw new Error("sessions.clear_messages requires a non-empty sessionId");
177
+ }
178
+ const cached = this.sessions_by_id.get(resolved_session_id);
179
+ if (cached?.isExecuting()) {
180
+ throw new Error(`Session "${resolved_session_id}" is currently executing`);
181
+ }
182
+ const messages_dir_path = getSdkAgentSessionMessagesDirPath(this.project_root, this.agent_id, resolved_session_id);
183
+ const existed = await fs.pathExists(messages_dir_path);
184
+ if (existed)
185
+ await fs.remove(messages_dir_path);
186
+ this.sessions_by_id.delete(resolved_session_id);
187
+ return existed;
188
+ }
148
189
  /**
149
190
  * 列出当前 agent 的 session 摘要页。
150
191
  */
@@ -153,7 +194,7 @@ export class AgentSessions {
153
194
  projectRoot: this.project_root,
154
195
  agentId: this.agent_id,
155
196
  input,
156
- executingSessionIds: new Set(this.get_agent_context().listExecutingSessionIds()),
197
+ executingSessionIds: new Set(this.list_executing_session_ids()),
157
198
  });
158
199
  }
159
200
  /**
@@ -164,7 +205,7 @@ export class AgentSessions {
164
205
  if (!session_id) {
165
206
  throw new Error("sessions.archive requires a non-empty id");
166
207
  }
167
- const executing_session_ids = new Set(this.get_agent_context().listExecutingSessionIds());
208
+ const executing_session_ids = new Set(this.list_executing_session_ids());
168
209
  if (executing_session_ids.has(session_id)) {
169
210
  throw new Error(`Session "${session_id}" is currently executing`);
170
211
  }
@@ -180,7 +221,6 @@ export class AgentSessions {
180
221
  await fs.move(source_path, target_path);
181
222
  // 关键点(中文):归档后清理缓存,避免后续操作访问已移动目录。
182
223
  this.sessions_by_id.delete(session_id);
183
- this.configured_session_ids.delete(session_id);
184
224
  return {
185
225
  sessionId: session_id,
186
226
  archivedAt: Date.now(),
@@ -236,75 +276,18 @@ export class AgentSessions {
236
276
  logger: this.logger,
237
277
  getInstructionSystemBlocks: () => this.load_instruction_system_blocks(),
238
278
  getAgentEnv: () => this.get_agent_env(),
279
+ getAgentModel: () => this.get_agent_model(),
239
280
  get_agent_plugins: () => this.get_agent_plugins(),
240
281
  getManagedPluginSystemBlocks: async () => [],
241
- getPluginSystemBlocks: async () => await this.load_plugin_system_blocks(),
242
282
  ensureConfigured: async (session) => {
243
283
  await this.ensure_agent_ready();
244
- await this.apply_session_defaults(session);
245
- },
246
- ...(this.resolve_model ? { resolve_model: this.resolve_model } : {}),
247
- list_approvals: async (session_id) => this.list_session_approvals(session_id),
248
- get_approval_mode: async (session_id) => {
249
- const shell = this.require_shell();
250
- return shell.approval_mode({ session_id });
251
- },
252
- set_approval_mode: async (session_id, { mode }) => {
253
- const shell = this.require_shell();
254
- return shell.set_approval_mode({ session_id, mode });
255
- },
256
- resolve_approval: async (session_id, { approval_id, decision }) => {
257
- const approval = this.list_session_approvals(session_id)
258
- .find((item) => item.approval_id === approval_id);
259
- if (!approval)
260
- return { success: false, approval_id, decision };
261
- return decision === "approved"
262
- ? await this.require_shell().approve({ approval_id })
263
- : await this.require_shell().deny({ approval_id });
264
284
  },
265
285
  });
266
286
  this.sessions_by_id.set(resolved_session_id, created);
267
287
  return created;
268
288
  }
269
- require_shell() {
270
- const shell = this.get_shell();
271
- if (!shell)
272
- throw new Error("Session shell is not configured");
273
- return shell;
274
- }
275
- list_session_approvals(session_id) {
276
- return (this.get_shell()?.approvals() || [])
277
- .filter((approval) => approval.session_id === session_id)
278
- .map((approval) => ({
279
- approval_id: approval.approval_id,
280
- session_id,
281
- ...(approval.turn_id ? { turn_id: approval.turn_id } : {}),
282
- ...(approval.tool_call_id ? { tool_call_id: approval.tool_call_id } : {}),
283
- tool_name: approval.tool_name,
284
- command: approval.cmd,
285
- cwd: approval.cwd,
286
- reason: approval.reason,
287
- operation: approval.operation,
288
- created_at: approval.created_at,
289
- }));
290
- }
291
- async apply_session_defaults(session) {
292
- if (this.configured_session_ids.has(session.id))
293
- return;
294
- const persisted_model_id = String(session.config.modelId || "").trim();
295
- if (!persisted_model_id && this.default_model) {
296
- await session.set({
297
- model: this.default_model,
298
- ...(this.default_model_id ? { modelId: this.default_model_id } : {}),
299
- });
300
- }
301
- this.configured_session_ids.add(session.id);
302
- }
303
289
  load_instruction_system_blocks() {
304
290
  return createInstructionSystemBlocks(this.get_instruction(), this.project_root);
305
291
  }
306
- async load_plugin_system_blocks() {
307
- return await this.get_agent_context().plugins.systemBlocks();
308
- }
309
292
  }
310
293
  //# sourceMappingURL=AgentSessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentSessions.js","sourceRoot":"","sources":["../../src/agent/AgentSessions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * AgentState:本地 Agent 长期运行状态与生命周期。
3
+ *
4
+ * 职责说明(中文)
5
+ * - 统一连接 PluginRegistry、AgentContext、AgentSessions 与共享 tools。
6
+ * - 持有 Plugin lifecycle 与 ActionSchedule 的启动状态。
7
+ * - Agent 构造完成后立即开始启动,调用方通过 `ready()` 等待。
8
+ * - Agent 释放时统一停止 ActionSchedule、Plugin lifecycle 与 Shell。
9
+ * - RPC / HTTP 等 transport 不属于 AgentState,由上游宿主独立管理。
10
+ */
11
+ import type { AgentStateOptions } from "../types/agent/AgentState.js";
12
+ /**
13
+ * 本地 Agent 长期运行状态。
14
+ */
15
+ export declare class AgentState {
16
+ /** 当前 Agent 共用的执行上下文。 */
17
+ private readonly context;
18
+ /** 当前 Agent 唯一的 PluginRegistry 实例。 */
19
+ private readonly plugins;
20
+ /** 当前 Agent 唯一的 Session 集合。 */
21
+ private readonly sessions;
22
+ /** 当前 Agent 与 Session 共享的可变工具集合。 */
23
+ private readonly tools;
24
+ /** 当前 Agent 持有的可选 Shell 实例。 */
25
+ private readonly shell?;
26
+ /** Plugin lifecycle 与 ActionSchedule 的唯一启动 Promise。 */
27
+ private readonly ready_promise;
28
+ /** Plugin lifecycle 是否已经完成启动流程。 */
29
+ private plugins_started;
30
+ /** 当前 Agent 持有的 ActionSchedule 轮询运行时。 */
31
+ private action_schedule_runtime;
32
+ constructor(options: AgentStateOptions);
33
+ /**
34
+ * 等待当前 Agent 持有的长期运行时启动完成。
35
+ */
36
+ ready(): Promise<void>;
37
+ /**
38
+ * 释放当前 Agent 持有的长期运行时对象。
39
+ */
40
+ dispose(): Promise<void>;
41
+ /**
42
+ * 启动 Plugin lifecycle 与 ActionSchedule。
43
+ *
44
+ * 关键点(中文)
45
+ * - Plugin lifecycle 先启动,避免到期任务调用未就绪的 Plugin。
46
+ * - 单个 Plugin 启动失败由 PluginRegistry 隔离,只记录错误并继续启动 Agent。
47
+ * - ActionSchedule 启动失败不阻断 Agent ready。
48
+ */
49
+ private start_runtime;
50
+ /**
51
+ * 确保带 action 的 PluginRegistry 已连接通用调用工具。
52
+ *
53
+ * 关键点(中文)
54
+ * - 初始 Plugin 与运行中动态注册 Plugin 统一走这里。
55
+ * - 只补充缺失工具,不覆盖调用方提供的同名自定义工具。
56
+ * - tools 是 AgentSessions 与 Session 共享引用,原地写入会立即对现有 Session 生效。
57
+ */
58
+ private ensure_plugin_tools;
59
+ /**
60
+ * 处理 PluginRegistry 修改后的 Agent 运行时同步。
61
+ */
62
+ private handle_plugin_change;
63
+ }
64
+ //# sourceMappingURL=AgentState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentState.d.ts","sourceRoot":"","sources":["../../src/agent/AgentState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAQrE;;GAEG;AACH,qBAAa,UAAU;IACrB,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IAEzC,oCAAoC;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAE7C,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAQ;IAE/B,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C,mCAAmC;IACnC,OAAO,CAAC,eAAe,CAAS;IAEhC,yCAAyC;IACzC,OAAO,CAAC,uBAAuB,CAA4C;gBAE/D,OAAO,EAAE,iBAAiB;IAetC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B;;;;;;;OAOG;YACW,aAAa;IAsB3B;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAY7B"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * AgentState:本地 Agent 长期运行状态与生命周期。
3
+ *
4
+ * 职责说明(中文)
5
+ * - 统一连接 PluginRegistry、AgentContext、AgentSessions 与共享 tools。
6
+ * - 持有 Plugin lifecycle 与 ActionSchedule 的启动状态。
7
+ * - Agent 构造完成后立即开始启动,调用方通过 `ready()` 等待。
8
+ * - Agent 释放时统一停止 ActionSchedule、Plugin lifecycle 与 Shell。
9
+ * - RPC / HTTP 等 transport 不属于 AgentState,由上游宿主独立管理。
10
+ */
11
+ import { createPluginTools } from "../executor/tools/plugin/PluginToolDefinition.js";
12
+ import { generateId } from "../utils/Id.js";
13
+ import { startActionScheduleRuntime, } from "../plugin/core/ActionScheduleRuntime.js";
14
+ /**
15
+ * 本地 Agent 长期运行状态。
16
+ */
17
+ export class AgentState {
18
+ /** 当前 Agent 共用的执行上下文。 */
19
+ context;
20
+ /** 当前 Agent 唯一的 PluginRegistry 实例。 */
21
+ plugins;
22
+ /** 当前 Agent 唯一的 Session 集合。 */
23
+ sessions;
24
+ /** 当前 Agent 与 Session 共享的可变工具集合。 */
25
+ tools;
26
+ /** 当前 Agent 持有的可选 Shell 实例。 */
27
+ shell;
28
+ /** Plugin lifecycle 与 ActionSchedule 的唯一启动 Promise。 */
29
+ ready_promise;
30
+ /** Plugin lifecycle 是否已经完成启动流程。 */
31
+ plugins_started = false;
32
+ /** 当前 Agent 持有的 ActionSchedule 轮询运行时。 */
33
+ action_schedule_runtime = null;
34
+ constructor(options) {
35
+ this.context = options.context;
36
+ this.plugins = options.plugins;
37
+ this.sessions = options.sessions;
38
+ this.tools = options.tools;
39
+ this.shell = options.shell;
40
+ this.plugins.bind_context(this.context);
41
+ this.ensure_plugin_tools();
42
+ this.plugins.set_change_listener(({ type, plugin_name }) => {
43
+ this.handle_plugin_change(type, plugin_name);
44
+ });
45
+ this.ready_promise = this.start_runtime();
46
+ }
47
+ /**
48
+ * 等待当前 Agent 持有的长期运行时启动完成。
49
+ */
50
+ async ready() {
51
+ await this.ready_promise;
52
+ }
53
+ /**
54
+ * 释放当前 Agent 持有的长期运行时对象。
55
+ */
56
+ async dispose() {
57
+ await this.ready_promise.catch(() => undefined);
58
+ this.action_schedule_runtime?.stop();
59
+ this.action_schedule_runtime = null;
60
+ if (this.plugins_started) {
61
+ await this.context.plugins.unregisterAll();
62
+ this.plugins_started = false;
63
+ }
64
+ await this.shell?.dispose();
65
+ }
66
+ /**
67
+ * 启动 Plugin lifecycle 与 ActionSchedule。
68
+ *
69
+ * 关键点(中文)
70
+ * - Plugin lifecycle 先启动,避免到期任务调用未就绪的 Plugin。
71
+ * - 单个 Plugin 启动失败由 PluginRegistry 隔离,只记录错误并继续启动 Agent。
72
+ * - ActionSchedule 启动失败不阻断 Agent ready。
73
+ */
74
+ async start_runtime() {
75
+ const snapshots = await this.plugins.startAll();
76
+ this.plugins_started = true;
77
+ for (const item of snapshots) {
78
+ if (item.status === "error") {
79
+ this.context.logger.error(`Plugin start failed: ${item.name} - ${item.last_error || "unknown error"}`);
80
+ }
81
+ }
82
+ try {
83
+ this.action_schedule_runtime = await startActionScheduleRuntime(this.context);
84
+ }
85
+ catch (error) {
86
+ this.context.logger.error(`ActionSchedule start failed: ${String(error)}`);
87
+ }
88
+ }
89
+ /**
90
+ * 确保带 action 的 PluginRegistry 已连接通用调用工具。
91
+ *
92
+ * 关键点(中文)
93
+ * - 初始 Plugin 与运行中动态注册 Plugin 统一走这里。
94
+ * - 只补充缺失工具,不覆盖调用方提供的同名自定义工具。
95
+ * - tools 是 AgentSessions 与 Session 共享引用,原地写入会立即对现有 Session 生效。
96
+ */
97
+ ensure_plugin_tools() {
98
+ if (!this.plugins.list().some((plugin) => plugin.actions.length > 0)) {
99
+ return;
100
+ }
101
+ const plugin_tools = createPluginTools({ plugins: this.plugins });
102
+ this.tools.plugin_read = this.tools.plugin_read || plugin_tools.plugin_read;
103
+ this.tools.plugin_call = this.tools.plugin_call || plugin_tools.plugin_call;
104
+ }
105
+ /**
106
+ * 处理 PluginRegistry 修改后的 Agent 运行时同步。
107
+ */
108
+ handle_plugin_change(type, plugin_name) {
109
+ this.ensure_plugin_tools();
110
+ const verb = type === "register" ? "registered" : "unregistered";
111
+ this.sessions.broadcast_plugins({
112
+ command_id: generateId(),
113
+ title: `Agent plugin ${plugin_name} ${verb}`,
114
+ plugins: this.plugins.execution_view(),
115
+ });
116
+ }
117
+ }
118
+ //# sourceMappingURL=AgentState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentState.js","sourceRoot":"","sources":["../../src/agent/AgentState.ts"],"names":[],"mappings":"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"}
@@ -35,18 +35,6 @@ export declare function getDowncityProfilePrimaryPath(cwd: string): string;
35
35
  * - 该文件用于存放不适合进入主 profile 的补充材料。
36
36
  */
37
37
  export declare function getDowncityProfileOtherPath(cwd: string): string;
38
- /**
39
- * 长期记忆文件路径(V2)。
40
- */
41
- export declare function getDowncityMemoryLongTermPath(cwd: string): string;
42
- /**
43
- * 每日记忆目录路径(V2)。
44
- */
45
- export declare function getDowncityMemoryDailyDirPath(cwd: string): string;
46
- /**
47
- * 每日记忆文件路径(V2)。
48
- */
49
- export declare function getDowncityMemoryDailyPath(cwd: string, date: string): string;
50
38
  /**
51
39
  * Plugin Schedule JSONL 路径。
52
40
  *
@@ -131,35 +119,4 @@ export declare function getDowncityTasksDirPath(cwd: string): string;
131
119
  * - 当前使用隐藏目录 `.debug`,避免与用户显式业务目录冲突。
132
120
  */
133
121
  export declare function getDowncityDebugDirPath(cwd: string): string;
134
- /**
135
- * Channel 目录(channel -> sessionId 映射)。
136
- *
137
- * 关键点(中文)
138
- * - 专门承载渠道目标与内部 sessionId 的映射关系。
139
- * - 与 `chat/` 审计事件目录分离,避免职责混淆。
140
- */
141
- export declare function getDowncityChannelDirPath(cwd: string): string;
142
- /**
143
- * Channel 元信息文件路径。
144
- *
145
- * 关键点(中文)
146
- * - 采用单文件 JSON(`meta.json`)存储映射表与最近路由信息。
147
- */
148
- export declare function getDowncityChannelMetaPath(cwd: string): string;
149
- /**
150
- * Chat 会话目录(按 sessionId 组织)。
151
- *
152
- * 关键点(中文)
153
- * - 用于存放聊天事件流(history.jsonl)等审计向数据。
154
- * - 与 `chat/meta` 分离,避免路由快照与事件流混在一起。
155
- */
156
- export declare function getDowncityChatSessionDirPath(cwd: string, sessionId: string): string;
157
- /**
158
- * Chat 事件流文件路径(JSONL)。
159
- *
160
- * 关键点(中文)
161
- * - 每行一条 chat 事件(当前为 inbound)。
162
- * - 设计为 append-only,便于审计与回放。
163
- */
164
- export declare function getDowncityChatHistoryPath(cwd: string, sessionId: string): string;
165
122
  //# sourceMappingURL=Paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Paths.d.ts","sourceRoot":"","sources":["../../src/config/Paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Paths.d.ts","sourceRoot":"","sources":["../../src/config/Paths.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhE;AAgBD;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,MAAM,CAKR;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,wCAAwC,CACtD,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,qCAAqC,CACnD,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3D"}