@downcity/agent 1.1.338 → 1.1.400

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 (987) hide show
  1. package/README.md +31 -15
  2. package/bin/agent/Agent.d.ts +42 -91
  3. package/bin/agent/Agent.d.ts.map +1 -1
  4. package/bin/agent/Agent.js +115 -200
  5. package/bin/agent/Agent.js.map +1 -1
  6. package/bin/agent/AgentModel.d.ts +8 -8
  7. package/bin/agent/AgentModel.d.ts.map +1 -1
  8. package/bin/agent/AgentModel.js +5 -5
  9. package/bin/agent/AgentModel.js.map +1 -1
  10. package/bin/agent/AgentSessions.d.ts +42 -28
  11. package/bin/agent/AgentSessions.d.ts.map +1 -1
  12. package/bin/agent/AgentSessions.js +80 -44
  13. package/bin/agent/AgentSessions.js.map +1 -1
  14. package/bin/agent/WorkspaceEntry.d.ts +82 -0
  15. package/bin/agent/WorkspaceEntry.d.ts.map +1 -0
  16. package/bin/agent/WorkspaceEntry.js +246 -0
  17. package/bin/agent/WorkspaceEntry.js.map +1 -0
  18. package/bin/agent/index.d.ts +5 -0
  19. package/bin/agent/index.d.ts.map +1 -0
  20. package/bin/agent/index.js +5 -0
  21. package/bin/agent/index.js.map +1 -0
  22. package/bin/city/host/CityHostRegistry.d.ts +44 -0
  23. package/bin/city/host/CityHostRegistry.d.ts.map +1 -0
  24. package/bin/city/host/CityHostRegistry.js +225 -0
  25. package/bin/city/host/CityHostRegistry.js.map +1 -0
  26. package/bin/city/index.d.ts +22 -0
  27. package/bin/city/index.d.ts.map +1 -0
  28. package/bin/city/index.js +10 -0
  29. package/bin/city/index.js.map +1 -0
  30. package/bin/city/runtime/City.d.ts +99 -0
  31. package/bin/city/runtime/City.d.ts.map +1 -0
  32. package/bin/city/runtime/City.js +376 -0
  33. package/bin/city/runtime/City.js.map +1 -0
  34. package/bin/city/transport/SerializedTransport.d.ts +30 -0
  35. package/bin/city/transport/SerializedTransport.d.ts.map +1 -0
  36. package/bin/city/transport/SerializedTransport.js +57 -0
  37. package/bin/city/transport/SerializedTransport.js.map +1 -0
  38. package/bin/city/transport/http/AgentHTTP.d.ts +66 -0
  39. package/bin/city/transport/http/AgentHTTP.d.ts.map +1 -0
  40. package/bin/city/transport/http/AgentHTTP.js +142 -0
  41. package/bin/city/transport/http/AgentHTTP.js.map +1 -0
  42. package/bin/city/transport/http/CityHTTP.d.ts +44 -0
  43. package/bin/city/transport/http/CityHTTP.d.ts.map +1 -0
  44. package/bin/city/transport/http/CityHTTP.js +171 -0
  45. package/bin/city/transport/http/CityHTTP.js.map +1 -0
  46. package/bin/city/transport/http/NodeHttpAdapter.d.ts +27 -0
  47. package/bin/city/transport/http/NodeHttpAdapter.d.ts.map +1 -0
  48. package/bin/city/transport/http/NodeHttpAdapter.js +57 -0
  49. package/bin/city/transport/http/NodeHttpAdapter.js.map +1 -0
  50. package/bin/city/transport/http/routes/RuntimeRoutes.d.ts +15 -0
  51. package/bin/city/transport/http/routes/RuntimeRoutes.d.ts.map +1 -0
  52. package/bin/city/transport/http/routes/RuntimeRoutes.js +38 -0
  53. package/bin/city/transport/http/routes/RuntimeRoutes.js.map +1 -0
  54. package/bin/city/transport/http/routes/SessionRoutes.d.ts +17 -0
  55. package/bin/city/transport/http/routes/SessionRoutes.d.ts.map +1 -0
  56. package/bin/city/transport/http/routes/SessionRoutes.js +417 -0
  57. package/bin/city/transport/http/routes/SessionRoutes.js.map +1 -0
  58. package/bin/city/transport/rpc/AgentRPC.d.ts +47 -0
  59. package/bin/city/transport/rpc/AgentRPC.d.ts.map +1 -0
  60. package/bin/city/transport/rpc/AgentRPC.js +89 -0
  61. package/bin/city/transport/rpc/AgentRPC.js.map +1 -0
  62. package/bin/city/transport/rpc/CityRPC.d.ts +26 -0
  63. package/bin/city/transport/rpc/CityRPC.d.ts.map +1 -0
  64. package/bin/city/transport/rpc/CityRPC.js +110 -0
  65. package/bin/city/transport/rpc/CityRPC.js.map +1 -0
  66. package/bin/city/transport/rpc/RpcServer.d.ts +30 -0
  67. package/bin/city/transport/rpc/RpcServer.d.ts.map +1 -0
  68. package/bin/city/transport/rpc/RpcServer.js +125 -0
  69. package/bin/city/transport/rpc/RpcServer.js.map +1 -0
  70. package/bin/city/transport/rpc/server/InternalHandlers.d.ts +22 -0
  71. package/bin/city/transport/rpc/server/InternalHandlers.d.ts.map +1 -0
  72. package/bin/city/transport/rpc/server/InternalHandlers.js +196 -0
  73. package/bin/city/transport/rpc/server/InternalHandlers.js.map +1 -0
  74. package/bin/city/transport/rpc/server/RequestDispatcher.d.ts +27 -0
  75. package/bin/city/transport/rpc/server/RequestDispatcher.d.ts.map +1 -0
  76. package/bin/city/transport/rpc/server/RequestDispatcher.js +38 -0
  77. package/bin/city/transport/rpc/server/RequestDispatcher.js.map +1 -0
  78. package/bin/city/transport/rpc/server/SdkSessionHandlers.d.ts +25 -0
  79. package/bin/city/transport/rpc/server/SdkSessionHandlers.d.ts.map +1 -0
  80. package/bin/city/transport/rpc/server/SdkSessionHandlers.js +146 -0
  81. package/bin/city/transport/rpc/server/SdkSessionHandlers.js.map +1 -0
  82. package/bin/city/transport/rpc/server/ServerTypes.d.ts +94 -0
  83. package/bin/city/transport/rpc/server/ServerTypes.d.ts.map +1 -0
  84. package/bin/city/transport/rpc/server/ServerTypes.js +9 -0
  85. package/bin/city/transport/rpc/server/ServerTypes.js.map +1 -0
  86. package/bin/city/transport/session/RemoteSessionConfig.d.ts +15 -0
  87. package/bin/city/transport/session/RemoteSessionConfig.d.ts.map +1 -0
  88. package/bin/city/transport/session/RemoteSessionConfig.js +23 -0
  89. package/bin/city/transport/session/RemoteSessionConfig.js.map +1 -0
  90. package/bin/city/transport/types/AgentHttpBinding.d.ts +24 -0
  91. package/bin/city/transport/types/AgentHttpBinding.d.ts.map +1 -0
  92. package/bin/city/transport/types/AgentHttpBinding.js +5 -0
  93. package/bin/city/transport/types/AgentHttpBinding.js.map +1 -0
  94. package/bin/city/transport/types/AgentHttpRuntime.d.ts +12 -0
  95. package/bin/city/transport/types/AgentHttpRuntime.d.ts.map +1 -0
  96. package/bin/city/transport/types/AgentHttpRuntime.js +7 -0
  97. package/bin/city/transport/types/AgentHttpRuntime.js.map +1 -0
  98. package/bin/city/transport/types/AgentRpcBinding.d.ts +27 -0
  99. package/bin/city/transport/types/AgentRpcBinding.d.ts.map +1 -0
  100. package/bin/city/transport/types/AgentRpcBinding.js +8 -0
  101. package/bin/city/transport/types/AgentRpcBinding.js.map +1 -0
  102. package/bin/city/transport/types/AgentRpcRuntime.d.ts +18 -0
  103. package/bin/city/transport/types/AgentRpcRuntime.d.ts.map +1 -0
  104. package/bin/city/transport/types/AgentRpcRuntime.js +7 -0
  105. package/bin/city/transport/types/AgentRpcRuntime.js.map +1 -0
  106. package/bin/city/transport/types/AgentSessionModelResolver.d.ts +11 -0
  107. package/bin/city/transport/types/AgentSessionModelResolver.d.ts.map +1 -0
  108. package/bin/city/transport/types/AgentSessionModelResolver.js +7 -0
  109. package/bin/city/transport/types/AgentSessionModelResolver.js.map +1 -0
  110. package/bin/city/transport/types/CityHttpRuntime.d.ts +36 -0
  111. package/bin/city/transport/types/CityHttpRuntime.d.ts.map +1 -0
  112. package/bin/city/transport/types/CityHttpRuntime.js +8 -0
  113. package/bin/city/transport/types/CityHttpRuntime.js.map +1 -0
  114. package/bin/city/transport/types/CityRpcRuntime.d.ts +17 -0
  115. package/bin/city/transport/types/CityRpcRuntime.d.ts.map +1 -0
  116. package/bin/city/transport/types/CityRpcRuntime.js +8 -0
  117. package/bin/city/transport/types/CityRpcRuntime.js.map +1 -0
  118. package/bin/city/transport/types/RpcProtocol.d.ts +24 -0
  119. package/bin/city/transport/types/RpcProtocol.d.ts.map +1 -0
  120. package/bin/city/transport/types/RpcProtocol.js +9 -0
  121. package/bin/city/transport/types/RpcProtocol.js.map +1 -0
  122. package/bin/city/types/City.d.ts +84 -0
  123. package/bin/city/types/City.d.ts.map +1 -0
  124. package/bin/city/types/City.js +7 -0
  125. package/bin/city/types/City.js.map +1 -0
  126. package/bin/city/types/PluginHostContext.d.ts +31 -0
  127. package/bin/city/types/PluginHostContext.d.ts.map +1 -0
  128. package/bin/city/types/PluginHostContext.js +11 -0
  129. package/bin/city/types/PluginHostContext.js.map +1 -0
  130. package/bin/city/types/SerializedTransport.d.ts +16 -0
  131. package/bin/city/types/SerializedTransport.d.ts.map +1 -0
  132. package/bin/city/types/SerializedTransport.js +3 -0
  133. package/bin/city/types/SerializedTransport.js.map +1 -0
  134. package/bin/executor/Executor.d.ts +4 -4
  135. package/bin/executor/Executor.d.ts.map +1 -1
  136. package/bin/executor/Executor.js +90 -34
  137. package/bin/executor/Executor.js.map +1 -1
  138. package/bin/executor/composer/system/SessionSystemComposer.d.ts +2 -2
  139. package/bin/executor/composer/system/SessionSystemComposer.d.ts.map +1 -1
  140. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts +3 -3
  141. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js +1 -1
  142. package/bin/executor/composer/system/default/PromptRenderer.d.ts +3 -3
  143. package/bin/executor/composer/system/default/PromptRenderer.d.ts.map +1 -1
  144. package/bin/executor/composer/system/default/PromptRenderer.js +1 -1
  145. package/bin/executor/composer/system/default/SystemDomain.d.ts +3 -3
  146. package/bin/executor/composer/system/default/SystemDomain.d.ts.map +1 -1
  147. package/bin/executor/composer/system/default/SystemDomain.js +3 -3
  148. package/bin/executor/composer/system/default/SystemDomain.js.map +1 -1
  149. package/bin/executor/composer/system/default/SystemPromptAssets.js +2 -2
  150. package/bin/executor/composer/system/default/assets/core.prompt.d.ts +1 -1
  151. package/bin/executor/composer/system/default/assets/core.prompt.d.ts.map +1 -1
  152. package/bin/executor/composer/system/default/assets/core.prompt.js +1 -1
  153. package/bin/executor/composer/system/default/assets/core.prompt.js.map +1 -1
  154. package/bin/executor/composer/system/default/variables/GeoContext.d.ts +1 -1
  155. package/bin/executor/composer/system/default/variables/VariableReplacer.js +1 -1
  156. package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts +6 -23
  157. package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts.map +1 -1
  158. package/bin/executor/core-engine/CoreEngineContextCompaction.js +112 -344
  159. package/bin/executor/core-engine/CoreEngineContextCompaction.js.map +1 -1
  160. package/bin/executor/core-engine/CoreEngineError.d.ts +1 -1
  161. package/bin/executor/core-engine/CoreEngineError.js +1 -1
  162. package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts +2 -3
  163. package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts.map +1 -1
  164. package/bin/executor/core-engine/CoreEngineLoopDecision.js +1 -15
  165. package/bin/executor/core-engine/CoreEngineLoopDecision.js.map +1 -1
  166. package/bin/executor/core-engine/CoreEngineMessageState.d.ts +16 -39
  167. package/bin/executor/core-engine/CoreEngineMessageState.d.ts.map +1 -1
  168. package/bin/executor/core-engine/CoreEngineMessageState.js +25 -60
  169. package/bin/executor/core-engine/CoreEngineMessageState.js.map +1 -1
  170. package/bin/executor/core-engine/CoreEngineRunner.d.ts +10 -6
  171. package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -1
  172. package/bin/executor/core-engine/CoreEngineRunner.js +146 -234
  173. package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
  174. package/bin/executor/core-engine/CoreEngineSignals.d.ts +20 -58
  175. package/bin/executor/core-engine/CoreEngineSignals.d.ts.map +1 -1
  176. package/bin/executor/core-engine/CoreEngineSignals.js +84 -304
  177. package/bin/executor/core-engine/CoreEngineSignals.js.map +1 -1
  178. package/bin/executor/messages/SessionAttachmentMapper.d.ts +6 -37
  179. package/bin/executor/messages/SessionAttachmentMapper.d.ts.map +1 -1
  180. package/bin/executor/messages/SessionAttachmentMapper.js +12 -243
  181. package/bin/executor/messages/SessionAttachmentMapper.js.map +1 -1
  182. package/bin/executor/messages/SessionMessageLog.d.ts +7 -14
  183. package/bin/executor/messages/SessionMessageLog.d.ts.map +1 -1
  184. package/bin/executor/messages/SessionMessageLog.js +11 -26
  185. package/bin/executor/messages/SessionMessageLog.js.map +1 -1
  186. package/bin/executor/messages/SessionModelMessages.d.ts +14 -0
  187. package/bin/executor/messages/SessionModelMessages.d.ts.map +1 -0
  188. package/bin/executor/messages/SessionModelMessages.js +187 -0
  189. package/bin/executor/messages/SessionModelMessages.js.map +1 -0
  190. package/bin/executor/model/ModelGenerate.d.ts +22 -0
  191. package/bin/executor/model/ModelGenerate.d.ts.map +1 -0
  192. package/bin/executor/model/ModelGenerate.js +54 -0
  193. package/bin/executor/model/ModelGenerate.js.map +1 -0
  194. package/bin/executor/model/ModelStepRunner.d.ts +70 -0
  195. package/bin/executor/model/ModelStepRunner.d.ts.map +1 -0
  196. package/bin/executor/model/ModelStepRunner.js +284 -0
  197. package/bin/executor/model/ModelStepRunner.js.map +1 -0
  198. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +4 -4
  199. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +1 -1
  200. package/bin/executor/types/SessionHistoryMeta.d.ts +7 -2
  201. package/bin/executor/types/SessionHistoryMeta.d.ts.map +1 -1
  202. package/bin/executor/types/SessionHistoryMeta.js +1 -1
  203. package/bin/executor/types/SessionLoop.d.ts +1 -21
  204. package/bin/executor/types/SessionLoop.d.ts.map +1 -1
  205. package/bin/executor/types/SessionPrompts.d.ts +8 -7
  206. package/bin/executor/types/SessionPrompts.d.ts.map +1 -1
  207. package/bin/executor/types/SessionPrompts.js +1 -2
  208. package/bin/executor/types/SessionPrompts.js.map +1 -1
  209. package/bin/group/Group.d.ts +20 -0
  210. package/bin/group/Group.d.ts.map +1 -0
  211. package/bin/group/Group.js +42 -0
  212. package/bin/group/Group.js.map +1 -0
  213. package/bin/group/GroupSession.d.ts +103 -0
  214. package/bin/group/GroupSession.d.ts.map +1 -0
  215. package/bin/group/GroupSession.js +666 -0
  216. package/bin/group/GroupSession.js.map +1 -0
  217. package/bin/group/GroupSessions.d.ts +21 -0
  218. package/bin/group/GroupSessions.d.ts.map +1 -0
  219. package/bin/group/GroupSessions.js +89 -0
  220. package/bin/group/GroupSessions.js.map +1 -0
  221. package/bin/group/index.d.ts +9 -0
  222. package/bin/group/index.d.ts.map +1 -0
  223. package/bin/group/index.js +6 -0
  224. package/bin/group/index.js.map +1 -0
  225. package/bin/index.d.ts +28 -20
  226. package/bin/index.d.ts.map +1 -1
  227. package/bin/index.js +7 -9
  228. package/bin/index.js.map +1 -1
  229. package/bin/internal/AgentRuntime.d.ts +43 -0
  230. package/bin/internal/AgentRuntime.d.ts.map +1 -0
  231. package/bin/internal/AgentRuntime.js +179 -0
  232. package/bin/internal/AgentRuntime.js.map +1 -0
  233. package/bin/internal/GroupRuntime.d.ts +17 -0
  234. package/bin/internal/GroupRuntime.d.ts.map +1 -0
  235. package/bin/internal/GroupRuntime.js +66 -0
  236. package/bin/internal/GroupRuntime.js.map +1 -0
  237. package/bin/internal/index.d.ts +8 -0
  238. package/bin/internal/index.d.ts.map +1 -0
  239. package/bin/internal/index.js +8 -0
  240. package/bin/internal/index.js.map +1 -0
  241. package/bin/plugin/core/ActionScheduleExecutor.d.ts +3 -2
  242. package/bin/plugin/core/ActionScheduleExecutor.d.ts.map +1 -1
  243. package/bin/plugin/core/ActionScheduleExecutor.js +14 -3
  244. package/bin/plugin/core/ActionScheduleExecutor.js.map +1 -1
  245. package/bin/plugin/core/ActionScheduleRuntime.d.ts +3 -1
  246. package/bin/plugin/core/ActionScheduleRuntime.d.ts.map +1 -1
  247. package/bin/plugin/core/ActionScheduleRuntime.js +9 -8
  248. package/bin/plugin/core/ActionScheduleRuntime.js.map +1 -1
  249. package/bin/plugin/core/ActionScheduleStore.d.ts +7 -3
  250. package/bin/plugin/core/ActionScheduleStore.d.ts.map +1 -1
  251. package/bin/plugin/core/ActionScheduleStore.js +32 -9
  252. package/bin/plugin/core/ActionScheduleStore.js.map +1 -1
  253. package/bin/plugin/core/HookRegistry.d.ts +4 -6
  254. package/bin/plugin/core/HookRegistry.d.ts.map +1 -1
  255. package/bin/plugin/core/HookRegistry.js +8 -14
  256. package/bin/plugin/core/HookRegistry.js.map +1 -1
  257. package/bin/plugin/core/PluginActionExecution.d.ts +33 -0
  258. package/bin/plugin/core/PluginActionExecution.d.ts.map +1 -0
  259. package/bin/plugin/core/PluginActionExecution.js +168 -0
  260. package/bin/plugin/core/PluginActionExecution.js.map +1 -0
  261. package/bin/plugin/core/PluginActionFactory.d.ts +6 -3
  262. package/bin/plugin/core/PluginActionFactory.d.ts.map +1 -1
  263. package/bin/plugin/core/PluginActionFactory.js +3 -0
  264. package/bin/plugin/core/PluginActionFactory.js.map +1 -1
  265. package/bin/plugin/core/PluginContext.d.ts +14 -4
  266. package/bin/plugin/core/PluginContext.d.ts.map +1 -1
  267. package/bin/plugin/core/PluginContext.js +11 -2
  268. package/bin/plugin/core/PluginContext.js.map +1 -1
  269. package/bin/plugin/core/PluginHttpRoutes.d.ts +1 -1
  270. package/bin/plugin/core/PluginHttpRoutes.d.ts.map +1 -1
  271. package/bin/plugin/core/PluginHttpRoutes.js +1 -1
  272. package/bin/plugin/core/PluginHttpRoutes.js.map +1 -1
  273. package/bin/plugin/core/PluginRegistry.d.ts +41 -26
  274. package/bin/plugin/core/PluginRegistry.d.ts.map +1 -1
  275. package/bin/plugin/core/PluginRegistry.js +125 -107
  276. package/bin/plugin/core/PluginRegistry.js.map +1 -1
  277. package/bin/plugin/tool/PluginToolRuntime.d.ts.map +1 -1
  278. package/bin/plugin/tool/PluginToolRuntime.js +4 -1
  279. package/bin/plugin/tool/PluginToolRuntime.js.map +1 -1
  280. package/bin/plugin/tool/PluginToolSchemas.d.ts +22 -2
  281. package/bin/plugin/tool/PluginToolSchemas.d.ts.map +1 -1
  282. package/bin/plugin/tool/PluginToolSchemas.js +3 -4
  283. package/bin/plugin/tool/PluginToolSchemas.js.map +1 -1
  284. package/bin/plugin/tool/PluginTools.d.ts +5 -8
  285. package/bin/plugin/tool/PluginTools.d.ts.map +1 -1
  286. package/bin/plugin/tool/PluginTools.js +9 -8
  287. package/bin/plugin/tool/PluginTools.js.map +1 -1
  288. package/bin/plugin/types/ActionSchedule.d.ts +6 -0
  289. package/bin/plugin/types/ActionSchedule.d.ts.map +1 -1
  290. package/bin/remote/RemoteAgent.js +2 -2
  291. package/bin/remote/RemoteSession.d.ts +1 -1
  292. package/bin/remote/TransportFactory.d.ts +1 -1
  293. package/bin/remote/TransportFactory.js +2 -2
  294. package/bin/remote/transports/HttpRemoteAgentTransport.d.ts +1 -1
  295. package/bin/remote/transports/HttpRemoteAgentTransport.d.ts.map +1 -1
  296. package/bin/remote/transports/HttpRemoteAgentTransport.js +3 -3
  297. package/bin/remote/transports/HttpRemoteAgentTransport.js.map +1 -1
  298. package/bin/remote/transports/RpcClient.d.ts +1 -0
  299. package/bin/remote/transports/RpcClient.d.ts.map +1 -1
  300. package/bin/remote/transports/RpcClient.js +16 -0
  301. package/bin/remote/transports/RpcClient.js.map +1 -1
  302. package/bin/remote/transports/RpcRemoteAgentTransport.d.ts +1 -1
  303. package/bin/remote/transports/RpcRemoteAgentTransport.d.ts.map +1 -1
  304. package/bin/remote/transports/RpcRemoteAgentTransport.js +2 -1
  305. package/bin/remote/transports/RpcRemoteAgentTransport.js.map +1 -1
  306. package/bin/session/DefaultSessionComposer.js +4 -4
  307. package/bin/session/DefaultSessionComposer.js.map +1 -1
  308. package/bin/session/Session.d.ts +9 -3
  309. package/bin/session/Session.d.ts.map +1 -1
  310. package/bin/session/Session.js +62 -53
  311. package/bin/session/Session.js.map +1 -1
  312. package/bin/session/SessionLoop.d.ts.map +1 -1
  313. package/bin/session/SessionLoop.js +23 -25
  314. package/bin/session/SessionLoop.js.map +1 -1
  315. package/bin/session/SessionMessages.d.ts +9 -11
  316. package/bin/session/SessionMessages.d.ts.map +1 -1
  317. package/bin/session/SessionMessages.js +56 -104
  318. package/bin/session/SessionMessages.js.map +1 -1
  319. package/bin/session/SessionQueue.d.ts +1 -1
  320. package/bin/session/SessionState.d.ts +3 -0
  321. package/bin/session/SessionState.d.ts.map +1 -1
  322. package/bin/session/SessionState.js +42 -12
  323. package/bin/session/SessionState.js.map +1 -1
  324. package/bin/session/SessionTitle.d.ts +6 -6
  325. package/bin/session/SessionTitle.d.ts.map +1 -1
  326. package/bin/session/SessionTitle.js +11 -39
  327. package/bin/session/SessionTitle.js.map +1 -1
  328. package/bin/session/browse/Browse.d.ts +6 -4
  329. package/bin/session/browse/Browse.d.ts.map +1 -1
  330. package/bin/session/browse/Browse.js +25 -43
  331. package/bin/session/browse/Browse.js.map +1 -1
  332. package/bin/session/control/SessionInteractions.d.ts +2 -2
  333. package/bin/session/control/SessionInteractions.d.ts.map +1 -1
  334. package/bin/session/control/SessionInteractions.js +68 -32
  335. package/bin/session/control/SessionInteractions.js.map +1 -1
  336. package/bin/session/execution/SessionAssistantOutputAdapter.d.ts +20 -17
  337. package/bin/session/execution/SessionAssistantOutputAdapter.d.ts.map +1 -1
  338. package/bin/session/execution/SessionAssistantOutputAdapter.js +35 -35
  339. package/bin/session/execution/SessionAssistantOutputAdapter.js.map +1 -1
  340. package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts +2 -2
  341. package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts.map +1 -1
  342. package/bin/session/execution/tools/SessionShellApprovalAdapter.js +20 -8
  343. package/bin/session/execution/tools/SessionShellApprovalAdapter.js.map +1 -1
  344. package/bin/session/messages/SessionAssistantMessageWriter.d.ts +42 -48
  345. package/bin/session/messages/SessionAssistantMessageWriter.d.ts.map +1 -1
  346. package/bin/session/messages/SessionAssistantMessageWriter.js +225 -543
  347. package/bin/session/messages/SessionAssistantMessageWriter.js.map +1 -1
  348. package/bin/session/messages/SessionJsonValue.d.ts +0 -10
  349. package/bin/session/messages/SessionJsonValue.d.ts.map +1 -1
  350. package/bin/session/messages/SessionJsonValue.js +0 -23
  351. package/bin/session/messages/SessionJsonValue.js.map +1 -1
  352. package/bin/session/messages/SessionMessageCompaction.d.ts +7 -3
  353. package/bin/session/messages/SessionMessageCompaction.d.ts.map +1 -1
  354. package/bin/session/messages/SessionMessageCompaction.js +69 -91
  355. package/bin/session/messages/SessionMessageCompaction.js.map +1 -1
  356. package/bin/session/messages/SessionMessageInteractionWriter.d.ts.map +1 -1
  357. package/bin/session/messages/SessionMessageInteractionWriter.js +22 -21
  358. package/bin/session/messages/SessionMessageInteractionWriter.js.map +1 -1
  359. package/bin/session/messages/SessionMessageText.d.ts +25 -0
  360. package/bin/session/messages/SessionMessageText.d.ts.map +1 -0
  361. package/bin/session/messages/SessionMessageText.js +52 -0
  362. package/bin/session/messages/SessionMessageText.js.map +1 -0
  363. package/bin/session/preview/SessionMessagePreview.d.ts +3 -3
  364. package/bin/session/preview/SessionMessagePreview.d.ts.map +1 -1
  365. package/bin/session/preview/SessionMessagePreview.js +10 -30
  366. package/bin/session/preview/SessionMessagePreview.js.map +1 -1
  367. package/bin/session/runtime/SessionTurnContext.d.ts.map +1 -1
  368. package/bin/session/runtime/SessionTurnContext.js +4 -2
  369. package/bin/session/runtime/SessionTurnContext.js.map +1 -1
  370. package/bin/session/storage/Metadata.d.ts +5 -3
  371. package/bin/session/storage/Metadata.d.ts.map +1 -1
  372. package/bin/session/storage/Metadata.js +26 -7
  373. package/bin/session/storage/Metadata.js.map +1 -1
  374. package/bin/tools/ask/AskQuestionsTool.d.ts +2 -16
  375. package/bin/tools/ask/AskQuestionsTool.d.ts.map +1 -1
  376. package/bin/tools/ask/AskQuestionsTool.js +21 -17
  377. package/bin/tools/ask/AskQuestionsTool.js.map +1 -1
  378. package/bin/types/action/ActionResult.d.ts +15 -10
  379. package/bin/types/action/ActionResult.d.ts.map +1 -1
  380. package/bin/types/action/ActionResult.js +2 -2
  381. package/bin/types/action/ActionResult.js.map +1 -1
  382. package/bin/types/agent/AgentOptions.d.ts +7 -14
  383. package/bin/types/agent/AgentOptions.d.ts.map +1 -1
  384. package/bin/types/agent/AgentSessionCollection.d.ts +42 -0
  385. package/bin/types/agent/AgentSessionCollection.d.ts.map +1 -0
  386. package/bin/types/agent/AgentSessionCollection.js +7 -0
  387. package/bin/types/agent/AgentSessionCollection.js.map +1 -0
  388. package/bin/types/agent/AgentStorage.d.ts +18 -0
  389. package/bin/types/agent/AgentStorage.d.ts.map +1 -0
  390. package/bin/types/agent/AgentStorage.js +8 -0
  391. package/bin/types/agent/AgentStorage.js.map +1 -0
  392. package/bin/types/agent/RemoteAgentOptions.d.ts +1 -1
  393. package/bin/types/agent/RemoteAgentPluginAction.d.ts +2 -2
  394. package/bin/types/agent/SessionActor.d.ts +15 -8
  395. package/bin/types/agent/SessionActor.d.ts.map +1 -1
  396. package/bin/types/agent/SessionTypes.d.ts +30 -11
  397. package/bin/types/agent/SessionTypes.d.ts.map +1 -1
  398. package/bin/types/agent/WorkspaceEntryOptions.d.ts +16 -0
  399. package/bin/types/agent/WorkspaceEntryOptions.d.ts.map +1 -0
  400. package/bin/types/agent/WorkspaceEntryOptions.js +8 -0
  401. package/bin/types/agent/WorkspaceEntryOptions.js.map +1 -0
  402. package/bin/types/executor/SessionAssistantOutput.d.ts +19 -17
  403. package/bin/types/executor/SessionAssistantOutput.d.ts.map +1 -1
  404. package/bin/types/executor/SessionAssistantOutput.js +2 -3
  405. package/bin/types/executor/SessionAssistantOutput.js.map +1 -1
  406. package/bin/types/executor/SessionToolExecutionContext.d.ts +8 -5
  407. package/bin/types/executor/SessionToolExecutionContext.d.ts.map +1 -1
  408. package/bin/types/executor/SessionToolExecutionContext.js +1 -1
  409. package/bin/types/executor/SessionTurnContext.d.ts +16 -16
  410. package/bin/types/executor/SessionTurnContext.d.ts.map +1 -1
  411. package/bin/types/group/DispatchStrategy.d.ts +62 -0
  412. package/bin/types/group/DispatchStrategy.d.ts.map +1 -0
  413. package/bin/types/group/DispatchStrategy.js +93 -0
  414. package/bin/types/group/DispatchStrategy.js.map +1 -0
  415. package/bin/types/group/Group.d.ts +61 -0
  416. package/bin/types/group/Group.d.ts.map +1 -0
  417. package/bin/types/group/Group.js +3 -0
  418. package/bin/types/group/Group.js.map +1 -0
  419. package/bin/types/group/GroupSession.d.ts +149 -0
  420. package/bin/types/group/GroupSession.d.ts.map +1 -0
  421. package/bin/types/group/GroupSession.js +3 -0
  422. package/bin/types/group/GroupSession.js.map +1 -0
  423. package/bin/types/group/GroupSessionStore.d.ts +77 -0
  424. package/bin/types/group/GroupSessionStore.d.ts.map +1 -0
  425. package/bin/types/group/GroupSessionStore.js +3 -0
  426. package/bin/types/group/GroupSessionStore.js.map +1 -0
  427. package/bin/types/plugin/AgentPluginContext.d.ts +25 -0
  428. package/bin/types/plugin/AgentPluginContext.d.ts.map +1 -0
  429. package/bin/types/plugin/AgentPluginContext.js +10 -0
  430. package/bin/types/plugin/AgentPluginContext.js.map +1 -0
  431. package/bin/types/plugin/PluginAction.d.ts +10 -8
  432. package/bin/types/plugin/PluginAction.d.ts.map +1 -1
  433. package/bin/types/plugin/PluginActionExecution.d.ts +31 -0
  434. package/bin/types/plugin/PluginActionExecution.d.ts.map +1 -0
  435. package/bin/types/plugin/PluginActionExecution.js +10 -0
  436. package/bin/types/plugin/PluginActionExecution.js.map +1 -0
  437. package/bin/types/plugin/PluginCommand.d.ts +5 -5
  438. package/bin/types/plugin/PluginCommand.d.ts.map +1 -1
  439. package/bin/types/plugin/PluginContext.d.ts +19 -8
  440. package/bin/types/plugin/PluginContext.d.ts.map +1 -1
  441. package/bin/types/plugin/PluginContext.js +1 -1
  442. package/bin/types/plugin/PluginDefinition.d.ts +6 -6
  443. package/bin/types/plugin/PluginExecutionContext.d.ts +4 -10
  444. package/bin/types/plugin/PluginExecutionContext.d.ts.map +1 -1
  445. package/bin/types/plugin/PluginExecutionContext.js +3 -5
  446. package/bin/types/plugin/PluginExecutionContext.js.map +1 -1
  447. package/bin/types/plugin/PluginHttp.d.ts +1 -1
  448. package/bin/types/plugin/PluginRuntime.d.ts +13 -8
  449. package/bin/types/plugin/PluginRuntime.d.ts.map +1 -1
  450. package/bin/types/plugin/PluginServices.d.ts +10 -0
  451. package/bin/types/plugin/PluginServices.d.ts.map +1 -0
  452. package/bin/types/plugin/PluginServices.js +3 -0
  453. package/bin/types/plugin/PluginServices.js.map +1 -0
  454. package/bin/types/plugin/PluginState.d.ts +3 -3
  455. package/bin/types/plugin/PluginState.d.ts.map +1 -1
  456. package/bin/types/plugin/PluginState.js +1 -1
  457. package/bin/types/plugin/PluginTool.d.ts +6 -4
  458. package/bin/types/plugin/PluginTool.d.ts.map +1 -1
  459. package/bin/types/rpc/RpcProtocol.d.ts +30 -8
  460. package/bin/types/rpc/RpcProtocol.d.ts.map +1 -1
  461. package/bin/types/sdk/AgentSessionAction.d.ts +6 -7
  462. package/bin/types/sdk/AgentSessionAction.d.ts.map +1 -1
  463. package/bin/types/sdk/AgentSessionAction.js +2 -3
  464. package/bin/types/sdk/AgentSessionAction.js.map +1 -1
  465. package/bin/types/sdk/AgentSessionPrompt.d.ts +7 -7
  466. package/bin/types/sdk/AgentSessionPrompt.d.ts.map +1 -1
  467. package/bin/types/sdk/AgentSessionPrompt.js +1 -4
  468. package/bin/types/sdk/AgentSessionPrompt.js.map +1 -1
  469. package/bin/types/session/SessionAction.d.ts +39 -0
  470. package/bin/types/session/SessionAction.d.ts.map +1 -0
  471. package/bin/types/session/SessionAction.js +8 -0
  472. package/bin/types/session/SessionAction.js.map +1 -0
  473. package/bin/types/session/SessionComposer.d.ts +10 -11
  474. package/bin/types/session/SessionComposer.d.ts.map +1 -1
  475. package/bin/types/session/SessionContent.d.ts +41 -0
  476. package/bin/types/session/SessionContent.d.ts.map +1 -0
  477. package/bin/types/session/SessionContent.js +8 -0
  478. package/bin/types/session/SessionContent.js.map +1 -0
  479. package/bin/types/session/SessionExecution.d.ts +9 -68
  480. package/bin/types/session/SessionExecution.d.ts.map +1 -1
  481. package/bin/types/session/SessionInteraction.d.ts +92 -58
  482. package/bin/types/session/SessionInteraction.d.ts.map +1 -1
  483. package/bin/types/session/SessionInteraction.js +11 -4
  484. package/bin/types/session/SessionInteraction.js.map +1 -1
  485. package/bin/types/session/SessionInteractions.d.ts +1 -1
  486. package/bin/types/session/SessionLocalState.d.ts +2 -2
  487. package/bin/types/session/SessionLoop.d.ts +5 -5
  488. package/bin/types/session/SessionLoop.d.ts.map +1 -1
  489. package/bin/types/session/SessionMessage.d.ts +27 -87
  490. package/bin/types/session/SessionMessage.d.ts.map +1 -1
  491. package/bin/types/session/SessionMessages.d.ts +14 -14
  492. package/bin/types/session/SessionMessages.d.ts.map +1 -1
  493. package/bin/types/session/SessionMutation.d.ts +2 -2
  494. package/bin/types/session/SessionOptions.d.ts +14 -9
  495. package/bin/types/session/SessionOptions.d.ts.map +1 -1
  496. package/bin/types/session/SessionOrigin.d.ts +19 -0
  497. package/bin/types/session/SessionOrigin.d.ts.map +1 -0
  498. package/bin/types/session/SessionOrigin.js +8 -0
  499. package/bin/types/session/SessionOrigin.js.map +1 -0
  500. package/bin/types/session/SessionPort.d.ts +16 -20
  501. package/bin/types/session/SessionPort.d.ts.map +1 -1
  502. package/bin/types/session/SessionSegment.d.ts +1 -1
  503. package/bin/types/session/SessionState.d.ts +9 -6
  504. package/bin/types/session/SessionState.d.ts.map +1 -1
  505. package/bin/types/session/SessionSystem.d.ts +1 -1
  506. package/bin/types/session/SessionTool.d.ts +12 -1
  507. package/bin/types/session/SessionTool.d.ts.map +1 -1
  508. package/bin/types/store/LocalStore.d.ts +19 -11
  509. package/bin/types/store/LocalStore.d.ts.map +1 -1
  510. package/bin/types/store/LocalStore.js +2 -2
  511. package/bin/types/store/SessionAttachmentStore.d.ts +4 -4
  512. package/bin/types/store/SessionAttachmentStore.js +3 -3
  513. package/bin/types/store/SessionDataStore.d.ts +85 -0
  514. package/bin/types/store/SessionDataStore.d.ts.map +1 -0
  515. package/bin/types/store/SessionDataStore.js +9 -0
  516. package/bin/types/store/SessionDataStore.js.map +1 -0
  517. package/bin/types/store/SessionStore.d.ts +24 -78
  518. package/bin/types/store/SessionStore.d.ts.map +1 -1
  519. package/bin/types/store/SessionStore.js +3 -3
  520. package/bin/types/tools/ToolActionExecutionContext.d.ts +30 -0
  521. package/bin/types/tools/ToolActionExecutionContext.d.ts.map +1 -0
  522. package/bin/types/tools/ToolActionExecutionContext.js +8 -0
  523. package/bin/types/tools/ToolActionExecutionContext.js.map +1 -0
  524. package/bin/types/tools/ask/AskQuestionsTool.d.ts +1 -1
  525. package/bin/utils/logger/Logger.d.ts +21 -9
  526. package/bin/utils/logger/Logger.d.ts.map +1 -1
  527. package/bin/utils/logger/Logger.js +18 -9
  528. package/bin/utils/logger/Logger.js.map +1 -1
  529. package/bin/workspace/WorkspacePaths.d.ts +3 -32
  530. package/bin/workspace/WorkspacePaths.d.ts.map +1 -1
  531. package/bin/workspace/WorkspacePaths.js +7 -46
  532. package/bin/workspace/WorkspacePaths.js.map +1 -1
  533. package/bin/workspace/store/JsonlSessionMessageStore.d.ts +1 -1
  534. package/bin/workspace/store/JsonlSessionMessageStore.d.ts.map +1 -1
  535. package/bin/workspace/store/LocalGroupSessionDataStore.d.ts +46 -0
  536. package/bin/workspace/store/LocalGroupSessionDataStore.d.ts.map +1 -0
  537. package/bin/workspace/store/LocalGroupSessionDataStore.js +197 -0
  538. package/bin/workspace/store/LocalGroupSessionDataStore.js.map +1 -0
  539. package/bin/workspace/store/LocalGroupSessionStore.d.ts +22 -0
  540. package/bin/workspace/store/LocalGroupSessionStore.d.ts.map +1 -0
  541. package/bin/workspace/store/LocalGroupSessionStore.js +75 -0
  542. package/bin/workspace/store/LocalGroupSessionStore.js.map +1 -0
  543. package/bin/workspace/store/LocalSessionAttachmentStore.d.ts +2 -2
  544. package/bin/workspace/store/LocalSessionAttachmentStore.d.ts.map +1 -1
  545. package/bin/workspace/store/LocalSessionAttachmentStore.js +2 -2
  546. package/bin/workspace/store/LocalSessionAttachmentStore.js.map +1 -1
  547. package/bin/workspace/store/LocalSessionDataStore.d.ts +45 -0
  548. package/bin/workspace/store/LocalSessionDataStore.d.ts.map +1 -0
  549. package/bin/workspace/store/LocalSessionDataStore.js +100 -0
  550. package/bin/workspace/store/LocalSessionDataStore.js.map +1 -0
  551. package/bin/workspace/store/LocalSessionStore.d.ts +38 -28
  552. package/bin/workspace/store/LocalSessionStore.d.ts.map +1 -1
  553. package/bin/workspace/store/LocalSessionStore.js +151 -51
  554. package/bin/workspace/store/LocalSessionStore.js.map +1 -1
  555. package/bin/workspace/store/LocalStorePaths.d.ts +31 -83
  556. package/bin/workspace/store/LocalStorePaths.d.ts.map +1 -1
  557. package/bin/workspace/store/LocalStorePaths.js +43 -101
  558. package/bin/workspace/store/LocalStorePaths.js.map +1 -1
  559. package/bin/workspace/store/SessionMessageStoreFactory.d.ts +1 -1
  560. package/bin/workspace/store/SessionMessageStoreFactory.d.ts.map +1 -1
  561. package/bin/workspace/store/SessionMessageStoreFactory.js +1 -1
  562. package/city-test/agent-http.test.mjs +326 -0
  563. package/city-test/city-container.test.mjs +156 -0
  564. package/city-test/city-host-registry.test.mjs +68 -0
  565. package/city-test/city-transport.test.mjs +282 -0
  566. package/city-test/group.test.mjs +739 -0
  567. package/city-test/session-model.test.mjs +169 -0
  568. package/city-test/transport-lifecycle.test.mjs +164 -0
  569. package/package.json +30 -17
  570. package/scripts/ModelClientMock.mjs +165 -0
  571. package/scripts/action-schedule-store.test.mjs +81 -11
  572. package/scripts/agent-compiler.mjs +10 -6
  573. package/scripts/agent-env-shell-sandbox.test.mjs +10 -10
  574. package/scripts/agent-env.test.mjs +6 -8
  575. package/scripts/agent-multi-workspace.test.mjs +213 -0
  576. package/scripts/agent-ready.test.mjs +71 -16
  577. package/scripts/agent-session-maintenance.test.mjs +15 -28
  578. package/scripts/agent-store.test.mjs +121 -22
  579. package/scripts/city-model-tool-loop.test.mjs +66 -195
  580. package/scripts/core-engine-context-compaction.test.mjs +65 -113
  581. package/scripts/core-engine-model-stream.test.mjs +87 -0
  582. package/scripts/executor-failure-result.test.mjs +13 -29
  583. package/scripts/file-tools.test.mjs +6 -6
  584. package/scripts/image-plugin-job.test.mjs +77 -40
  585. package/scripts/logger-isolation.test.mjs +2 -2
  586. package/scripts/multi-agent-plugin-isolation.test.mjs +11 -9
  587. package/scripts/plugin-tools.test.mjs +153 -18
  588. package/scripts/public-api-naming.test.mjs +0 -1
  589. package/scripts/rewrite-build-aliases.mjs +49 -0
  590. package/scripts/rpc-url-routing.test.mjs +29 -0
  591. package/scripts/search-tools.test.mjs +4 -4
  592. package/scripts/session-ask-question.test.mjs +23 -21
  593. package/scripts/session-attachments.test.mjs +11 -9
  594. package/scripts/session-compact-handle.test.mjs +6 -5
  595. package/scripts/session-composer.test.mjs +61 -18
  596. package/scripts/session-config-turn-boundary.test.mjs +123 -92
  597. package/scripts/session-dynamic-interaction.test.mjs +75 -0
  598. package/scripts/session-fork.test.mjs +35 -0
  599. package/scripts/session-list-title.test.mjs +14 -56
  600. package/scripts/session-messages.test.mjs +306 -1681
  601. package/scripts/session-shell-approval.test.mjs +16 -13
  602. package/scripts/session-system-blocks.test.mjs +1 -1
  603. package/scripts/session-title-event.test.mjs +38 -24
  604. package/scripts/session-tool-approval.test.mjs +17 -15
  605. package/scripts/session-turn-context.test.mjs +31 -28
  606. package/scripts/session-turn-failure.test.mjs +112 -110
  607. package/scripts/verify-build-aliases.mjs +32 -0
  608. package/scripts/workspace.test.mjs +146 -32
  609. package/src/agent/Agent.ts +138 -238
  610. package/src/agent/AgentModel.ts +9 -9
  611. package/src/agent/AgentSessions.ts +116 -65
  612. package/src/agent/WorkspaceEntry.ts +309 -0
  613. package/src/agent/index.ts +4 -0
  614. package/src/city/host/CityHostRegistry.ts +260 -0
  615. package/src/city/index.ts +49 -0
  616. package/src/city/runtime/City.ts +425 -0
  617. package/src/city/transport/SerializedTransport.ts +65 -0
  618. package/src/city/transport/http/AgentHTTP.ts +176 -0
  619. package/src/city/transport/http/CityHTTP.ts +196 -0
  620. package/src/city/transport/http/NodeHttpAdapter.ts +75 -0
  621. package/src/city/transport/http/routes/RuntimeRoutes.ts +51 -0
  622. package/src/city/transport/http/routes/SessionRoutes.ts +497 -0
  623. package/src/city/transport/rpc/AgentRPC.ts +111 -0
  624. package/src/city/transport/rpc/CityRPC.ts +138 -0
  625. package/src/city/transport/rpc/RpcServer.ts +158 -0
  626. package/src/city/transport/rpc/server/InternalHandlers.ts +223 -0
  627. package/src/city/transport/rpc/server/RequestDispatcher.ts +67 -0
  628. package/src/city/transport/rpc/server/SdkSessionHandlers.ts +166 -0
  629. package/src/city/transport/rpc/server/ServerTypes.ts +103 -0
  630. package/src/city/transport/session/RemoteSessionConfig.ts +34 -0
  631. package/src/city/transport/types/AgentHttpBinding.ts +25 -0
  632. package/src/city/transport/types/AgentHttpRuntime.ts +13 -0
  633. package/src/city/transport/types/AgentRpcBinding.ts +28 -0
  634. package/src/city/transport/types/AgentRpcRuntime.ts +20 -0
  635. package/src/city/transport/types/AgentSessionModelResolver.ts +13 -0
  636. package/src/city/transport/types/CityHttpRuntime.ts +45 -0
  637. package/src/city/transport/types/CityRpcRuntime.ts +27 -0
  638. package/src/city/transport/types/RpcProtocol.ts +32 -0
  639. package/src/city/types/City.ts +99 -0
  640. package/src/city/types/PluginHostContext.ts +40 -0
  641. package/src/city/types/SerializedTransport.ts +19 -0
  642. package/src/executor/Executor.ts +101 -43
  643. package/src/executor/README.md +11 -8
  644. package/src/executor/composer/system/SessionSystemComposer.ts +2 -2
  645. package/src/executor/composer/system/default/PromptRenderer.ts +2 -2
  646. package/src/executor/composer/system/default/SystemDomain.ts +5 -5
  647. package/src/executor/composer/system/default/assets/core.prompt.ts +1 -1
  648. package/src/executor/composer/system/default/assets/core.prompt.ts.txt +4 -12
  649. package/src/executor/core-engine/CoreEngineContextCompaction.ts +113 -427
  650. package/src/executor/core-engine/CoreEngineError.ts +1 -1
  651. package/src/executor/core-engine/CoreEngineLoopDecision.ts +1 -18
  652. package/src/executor/core-engine/CoreEngineMessageState.ts +32 -101
  653. package/src/executor/core-engine/CoreEngineRunner.ts +179 -281
  654. package/src/executor/core-engine/CoreEngineSignals.ts +98 -346
  655. package/src/executor/messages/SessionAttachmentMapper.ts +15 -273
  656. package/src/executor/messages/SessionMessageLog.ts +12 -25
  657. package/src/executor/messages/SessionModelMessages.ts +223 -0
  658. package/src/executor/model/ModelGenerate.ts +71 -0
  659. package/src/executor/model/ModelStepRunner.ts +381 -0
  660. package/src/executor/services/ExecutorRecoveryPolicy.ts +4 -4
  661. package/src/executor/types/SessionHistoryMeta.ts +8 -2
  662. package/src/executor/types/SessionLoop.ts +0 -26
  663. package/src/executor/types/SessionPrompts.ts +8 -8
  664. package/src/group/Group.ts +45 -0
  665. package/src/group/GroupSession.ts +728 -0
  666. package/src/group/GroupSessions.ts +104 -0
  667. package/src/group/index.ts +29 -0
  668. package/src/index.ts +108 -60
  669. package/src/internal/AgentRuntime.ts +229 -0
  670. package/src/internal/GroupRuntime.ts +89 -0
  671. package/src/internal/index.ts +33 -0
  672. package/src/plugin/core/ActionScheduleExecutor.ts +17 -5
  673. package/src/plugin/core/ActionScheduleRuntime.ts +16 -6
  674. package/src/plugin/core/ActionScheduleStore.ts +43 -12
  675. package/src/plugin/core/HookRegistry.ts +24 -14
  676. package/src/plugin/core/PluginActionExecution.ts +230 -0
  677. package/src/plugin/core/PluginActionFactory.ts +9 -3
  678. package/src/plugin/core/PluginContext.ts +25 -6
  679. package/src/plugin/core/PluginHttpRoutes.ts +2 -2
  680. package/src/plugin/core/PluginRegistry.ts +193 -107
  681. package/src/plugin/tool/PluginToolRuntime.ts +4 -1
  682. package/src/plugin/tool/PluginToolSchemas.ts +3 -4
  683. package/src/plugin/tool/PluginTools.ts +12 -8
  684. package/src/plugin/types/ActionSchedule.ts +6 -0
  685. package/src/remote/transports/HttpRemoteAgentTransport.ts +3 -3
  686. package/src/remote/transports/RpcClient.ts +17 -0
  687. package/src/remote/transports/RpcRemoteAgentTransport.ts +1 -0
  688. package/src/session/DefaultSessionComposer.ts +3 -3
  689. package/src/session/Session.ts +54 -42
  690. package/src/session/SessionLoop.ts +27 -34
  691. package/src/session/SessionMessages.ts +63 -121
  692. package/src/session/SessionState.ts +46 -21
  693. package/src/session/SessionTitle.ts +23 -40
  694. package/src/session/browse/Browse.ts +35 -63
  695. package/src/session/control/SessionInteractions.ts +72 -51
  696. package/src/session/execution/SessionAssistantOutputAdapter.ts +44 -45
  697. package/src/session/execution/tools/SessionShellApprovalAdapter.ts +20 -9
  698. package/src/session/messages/SessionAssistantMessageWriter.ts +259 -637
  699. package/src/session/messages/SessionJsonValue.ts +0 -23
  700. package/src/session/messages/SessionMessageCompaction.ts +78 -103
  701. package/src/session/messages/SessionMessageInteractionWriter.ts +22 -22
  702. package/src/session/messages/SessionMessageText.ts +73 -0
  703. package/src/session/preview/SessionMessagePreview.ts +15 -45
  704. package/src/session/runtime/SessionTurnContext.ts +11 -9
  705. package/src/session/storage/Metadata.ts +38 -9
  706. package/src/tools/ask/AskQuestionsTool.ts +28 -17
  707. package/src/types/action/ActionResult.ts +20 -11
  708. package/src/types/agent/AgentOptions.ts +6 -13
  709. package/src/types/agent/AgentSessionCollection.ts +61 -0
  710. package/src/types/agent/AgentStorage.ts +19 -0
  711. package/src/types/agent/RemoteAgentOptions.ts +1 -1
  712. package/src/types/agent/SessionActor.ts +9 -0
  713. package/src/types/agent/SessionTypes.ts +31 -11
  714. package/src/types/agent/WorkspaceEntryOptions.ts +18 -0
  715. package/src/types/executor/SessionAssistantOutput.ts +22 -17
  716. package/src/types/executor/SessionToolExecutionContext.ts +9 -4
  717. package/src/types/executor/SessionTurnContext.ts +11 -11
  718. package/src/types/group/DispatchStrategy.ts +165 -0
  719. package/src/types/group/Group.ts +64 -0
  720. package/src/types/group/GroupSession.ts +154 -0
  721. package/src/types/group/GroupSessionStore.ts +82 -0
  722. package/src/types/plugin/AgentPluginContext.ts +30 -0
  723. package/src/types/plugin/PluginAction.ts +7 -5
  724. package/src/types/plugin/PluginActionExecution.ts +36 -0
  725. package/src/types/plugin/PluginCommand.ts +5 -5
  726. package/src/types/plugin/PluginContext.ts +23 -7
  727. package/src/types/plugin/PluginExecutionContext.ts +6 -11
  728. package/src/types/plugin/PluginRuntime.ts +5 -0
  729. package/src/types/plugin/PluginServices.ts +11 -0
  730. package/src/types/plugin/PluginState.ts +2 -2
  731. package/src/types/plugin/PluginTool.ts +4 -1
  732. package/src/types/rpc/RpcProtocol.ts +24 -2
  733. package/src/types/sdk/AgentSessionAction.ts +8 -9
  734. package/src/types/sdk/AgentSessionPrompt.ts +8 -11
  735. package/src/types/session/SessionAction.ts +41 -0
  736. package/src/types/session/SessionComposer.ts +8 -13
  737. package/src/types/session/SessionContent.ts +52 -0
  738. package/src/types/session/SessionExecution.ts +9 -88
  739. package/src/types/session/SessionInteraction.ts +106 -73
  740. package/src/types/session/SessionLoop.ts +1 -1
  741. package/src/types/session/SessionMessage.ts +27 -94
  742. package/src/types/session/SessionMessages.ts +12 -9
  743. package/src/types/session/SessionOptions.ts +11 -4
  744. package/src/types/session/SessionOrigin.ts +21 -0
  745. package/src/types/session/SessionPort.ts +12 -20
  746. package/src/types/session/SessionState.ts +7 -4
  747. package/src/types/session/SessionTool.ts +12 -0
  748. package/src/types/store/LocalStore.ts +19 -11
  749. package/src/types/store/SessionAttachmentStore.ts +4 -4
  750. package/src/types/store/SessionDataStore.ts +109 -0
  751. package/src/types/store/SessionStore.ts +37 -94
  752. package/src/types/tools/ToolActionExecutionContext.ts +32 -0
  753. package/src/utils/logger/Logger.ts +33 -12
  754. package/src/workspace/WorkspacePaths.ts +7 -51
  755. package/src/workspace/store/JsonlSessionMessageStore.ts +2 -2
  756. package/src/workspace/store/LocalGroupSessionDataStore.ts +232 -0
  757. package/src/workspace/store/LocalGroupSessionStore.ts +90 -0
  758. package/src/workspace/store/LocalSessionAttachmentStore.ts +3 -3
  759. package/src/workspace/store/LocalSessionDataStore.ts +169 -0
  760. package/src/workspace/store/LocalSessionStore.ts +202 -86
  761. package/src/workspace/store/LocalStorePaths.ts +65 -147
  762. package/src/workspace/store/SessionMessageStoreFactory.ts +1 -1
  763. package/tsconfig.json +2 -1
  764. package/tsconfig.tsbuildinfo +1 -1
  765. package/LICENSE +0 -183
  766. package/bin/agent/AgentState.d.ts +0 -45
  767. package/bin/agent/AgentState.d.ts.map +0 -1
  768. package/bin/agent/AgentState.js +0 -74
  769. package/bin/agent/AgentState.js.map +0 -1
  770. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts +0 -48
  771. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts.map +0 -1
  772. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js +0 -92
  773. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js.map +0 -1
  774. package/bin/executor/messages/SessionMessageCodec.d.ts +0 -29
  775. package/bin/executor/messages/SessionMessageCodec.d.ts.map +0 -1
  776. package/bin/executor/messages/SessionMessageCodec.js +0 -75
  777. package/bin/executor/messages/SessionMessageCodec.js.map +0 -1
  778. package/bin/executor/messages/SessionStepEventMapper.d.ts +0 -19
  779. package/bin/executor/messages/SessionStepEventMapper.d.ts.map +0 -1
  780. package/bin/executor/messages/SessionStepEventMapper.js +0 -177
  781. package/bin/executor/messages/SessionStepEventMapper.js.map +0 -1
  782. package/bin/executor/messages/UIMessageTransformer.d.ts +0 -29
  783. package/bin/executor/messages/UIMessageTransformer.d.ts.map +0 -1
  784. package/bin/executor/messages/UIMessageTransformer.js +0 -114
  785. package/bin/executor/messages/UIMessageTransformer.js.map +0 -1
  786. package/bin/executor/messages/UserVisibleText.d.ts +0 -26
  787. package/bin/executor/messages/UserVisibleText.d.ts.map +0 -1
  788. package/bin/executor/messages/UserVisibleText.js +0 -65
  789. package/bin/executor/messages/UserVisibleText.js.map +0 -1
  790. package/bin/executor/types/SessionRecords.d.ts +0 -162
  791. package/bin/executor/types/SessionRecords.d.ts.map +0 -1
  792. package/bin/executor/types/SessionRecords.js +0 -51
  793. package/bin/executor/types/SessionRecords.js.map +0 -1
  794. package/bin/plugin/core/PluginActionRunner.d.ts +0 -24
  795. package/bin/plugin/core/PluginActionRunner.d.ts.map +0 -1
  796. package/bin/plugin/core/PluginActionRunner.js +0 -19
  797. package/bin/plugin/core/PluginActionRunner.js.map +0 -1
  798. package/bin/session/messages/SessionMessageCodec.d.ts +0 -23
  799. package/bin/session/messages/SessionMessageCodec.d.ts.map +0 -1
  800. package/bin/session/messages/SessionMessageCodec.js +0 -455
  801. package/bin/session/messages/SessionMessageCodec.js.map +0 -1
  802. package/bin/types/agent/AgentState.d.ts +0 -19
  803. package/bin/types/agent/AgentState.d.ts.map +0 -1
  804. package/bin/types/agent/AgentState.js +0 -9
  805. package/bin/types/agent/AgentState.js.map +0 -1
  806. package/bin/types/store/AgentStore.d.ts +0 -31
  807. package/bin/types/store/AgentStore.d.ts.map +0 -1
  808. package/bin/types/store/AgentStore.js +0 -9
  809. package/bin/types/store/AgentStore.js.map +0 -1
  810. package/bin/types/workspace/FileSystem.d.ts +0 -55
  811. package/bin/types/workspace/FileSystem.d.ts.map +0 -1
  812. package/bin/types/workspace/FileSystem.js +0 -9
  813. package/bin/types/workspace/FileSystem.js.map +0 -1
  814. package/bin/types/workspace/FileTool.d.ts +0 -181
  815. package/bin/types/workspace/FileTool.d.ts.map +0 -1
  816. package/bin/types/workspace/FileTool.js +0 -10
  817. package/bin/types/workspace/FileTool.js.map +0 -1
  818. package/bin/types/workspace/SearchTool.d.ts +0 -131
  819. package/bin/types/workspace/SearchTool.d.ts.map +0 -1
  820. package/bin/types/workspace/SearchTool.js +0 -10
  821. package/bin/types/workspace/SearchTool.js.map +0 -1
  822. package/bin/types/workspace/Workspace.d.ts +0 -24
  823. package/bin/types/workspace/Workspace.d.ts.map +0 -1
  824. package/bin/types/workspace/Workspace.js +0 -9
  825. package/bin/types/workspace/Workspace.js.map +0 -1
  826. package/bin/types/workspace/WorkspaceEnv.d.ts +0 -16
  827. package/bin/types/workspace/WorkspaceEnv.d.ts.map +0 -1
  828. package/bin/types/workspace/WorkspaceEnv.js +0 -9
  829. package/bin/types/workspace/WorkspaceEnv.js.map +0 -1
  830. package/bin/types/workspace/WorkspaceTools.d.ts +0 -20
  831. package/bin/types/workspace/WorkspaceTools.d.ts.map +0 -1
  832. package/bin/types/workspace/WorkspaceTools.js +0 -9
  833. package/bin/types/workspace/WorkspaceTools.js.map +0 -1
  834. package/bin/utils/cli/CliOutput.d.ts +0 -14
  835. package/bin/utils/cli/CliOutput.d.ts.map +0 -1
  836. package/bin/utils/cli/CliOutput.js +0 -98
  837. package/bin/utils/cli/CliOutput.js.map +0 -1
  838. package/bin/utils/cli/PrettyStatus.d.ts +0 -25
  839. package/bin/utils/cli/PrettyStatus.d.ts.map +0 -1
  840. package/bin/utils/cli/PrettyStatus.js +0 -77
  841. package/bin/utils/cli/PrettyStatus.js.map +0 -1
  842. package/bin/utils/logger/FormatRequest.d.ts +0 -29
  843. package/bin/utils/logger/FormatRequest.d.ts.map +0 -1
  844. package/bin/utils/logger/FormatRequest.js +0 -309
  845. package/bin/utils/logger/FormatRequest.js.map +0 -1
  846. package/bin/utils/logger/FormatResponse.d.ts +0 -46
  847. package/bin/utils/logger/FormatResponse.d.ts.map +0 -1
  848. package/bin/utils/logger/FormatResponse.js +0 -186
  849. package/bin/utils/logger/FormatResponse.js.map +0 -1
  850. package/bin/utils/logger/FormatShared.d.ts +0 -33
  851. package/bin/utils/logger/FormatShared.d.ts.map +0 -1
  852. package/bin/utils/logger/FormatShared.js +0 -215
  853. package/bin/utils/logger/FormatShared.js.map +0 -1
  854. package/bin/utils/object/DeepMerge.d.ts +0 -18
  855. package/bin/utils/object/DeepMerge.d.ts.map +0 -1
  856. package/bin/utils/object/DeepMerge.js +0 -37
  857. package/bin/utils/object/DeepMerge.js.map +0 -1
  858. package/bin/utils/object/ObjectGuards.d.ts +0 -17
  859. package/bin/utils/object/ObjectGuards.d.ts.map +0 -1
  860. package/bin/utils/object/ObjectGuards.js +0 -19
  861. package/bin/utils/object/ObjectGuards.js.map +0 -1
  862. package/bin/utils/path/AncestorFiles.d.ts +0 -17
  863. package/bin/utils/path/AncestorFiles.d.ts.map +0 -1
  864. package/bin/utils/path/AncestorFiles.js +0 -36
  865. package/bin/utils/path/AncestorFiles.js.map +0 -1
  866. package/bin/utils/storage/index.d.ts +0 -4
  867. package/bin/utils/storage/index.d.ts.map +0 -1
  868. package/bin/utils/storage/index.js +0 -17
  869. package/bin/utils/storage/index.js.map +0 -1
  870. package/bin/utils/string/EscapeRegExp.d.ts +0 -17
  871. package/bin/utils/string/EscapeRegExp.d.ts.map +0 -1
  872. package/bin/utils/string/EscapeRegExp.js +0 -19
  873. package/bin/utils/string/EscapeRegExp.js.map +0 -1
  874. package/bin/workspace/LocalFileSystem.d.ts +0 -44
  875. package/bin/workspace/LocalFileSystem.d.ts.map +0 -1
  876. package/bin/workspace/LocalFileSystem.js +0 -153
  877. package/bin/workspace/LocalFileSystem.js.map +0 -1
  878. package/bin/workspace/Workspace.d.ts +0 -53
  879. package/bin/workspace/Workspace.d.ts.map +0 -1
  880. package/bin/workspace/Workspace.js +0 -151
  881. package/bin/workspace/Workspace.js.map +0 -1
  882. package/bin/workspace/WorkspaceBase.d.ts +0 -41
  883. package/bin/workspace/WorkspaceBase.d.ts.map +0 -1
  884. package/bin/workspace/WorkspaceBase.js +0 -19
  885. package/bin/workspace/WorkspaceBase.js.map +0 -1
  886. package/bin/workspace/WorkspaceEnv.d.ts +0 -19
  887. package/bin/workspace/WorkspaceEnv.d.ts.map +0 -1
  888. package/bin/workspace/WorkspaceEnv.js +0 -50
  889. package/bin/workspace/WorkspaceEnv.js.map +0 -1
  890. package/bin/workspace/file/FileActionRuntime.d.ts +0 -14
  891. package/bin/workspace/file/FileActionRuntime.d.ts.map +0 -1
  892. package/bin/workspace/file/FileActionRuntime.js +0 -386
  893. package/bin/workspace/file/FileActionRuntime.js.map +0 -1
  894. package/bin/workspace/file/FileAtomicWriter.d.ts +0 -20
  895. package/bin/workspace/file/FileAtomicWriter.d.ts.map +0 -1
  896. package/bin/workspace/file/FileAtomicWriter.js +0 -50
  897. package/bin/workspace/file/FileAtomicWriter.js.map +0 -1
  898. package/bin/workspace/file/FileEncoding.d.ts +0 -34
  899. package/bin/workspace/file/FileEncoding.d.ts.map +0 -1
  900. package/bin/workspace/file/FileEncoding.js +0 -152
  901. package/bin/workspace/file/FileEncoding.js.map +0 -1
  902. package/bin/workspace/file/FilePathPolicy.d.ts +0 -26
  903. package/bin/workspace/file/FilePathPolicy.d.ts.map +0 -1
  904. package/bin/workspace/file/FilePathPolicy.js +0 -134
  905. package/bin/workspace/file/FilePathPolicy.js.map +0 -1
  906. package/bin/workspace/file/FileToolError.d.ts +0 -30
  907. package/bin/workspace/file/FileToolError.d.ts.map +0 -1
  908. package/bin/workspace/file/FileToolError.js +0 -78
  909. package/bin/workspace/file/FileToolError.js.map +0 -1
  910. package/bin/workspace/search/SearchActionRuntime.d.ts +0 -14
  911. package/bin/workspace/search/SearchActionRuntime.d.ts.map +0 -1
  912. package/bin/workspace/search/SearchActionRuntime.js +0 -359
  913. package/bin/workspace/search/SearchActionRuntime.js.map +0 -1
  914. package/bin/workspace/search/SearchToolError.d.ts +0 -26
  915. package/bin/workspace/search/SearchToolError.d.ts.map +0 -1
  916. package/bin/workspace/search/SearchToolError.js +0 -76
  917. package/bin/workspace/search/SearchToolError.js.map +0 -1
  918. package/bin/workspace/store/LocalAgentStore.d.ts +0 -43
  919. package/bin/workspace/store/LocalAgentStore.d.ts.map +0 -1
  920. package/bin/workspace/store/LocalAgentStore.js +0 -135
  921. package/bin/workspace/store/LocalAgentStore.js.map +0 -1
  922. package/bin/workspace/tool/FileToolSchemas.d.ts +0 -35
  923. package/bin/workspace/tool/FileToolSchemas.d.ts.map +0 -1
  924. package/bin/workspace/tool/FileToolSchemas.js +0 -73
  925. package/bin/workspace/tool/FileToolSchemas.js.map +0 -1
  926. package/bin/workspace/tool/FileTools.d.ts +0 -11
  927. package/bin/workspace/tool/FileTools.d.ts.map +0 -1
  928. package/bin/workspace/tool/FileTools.js +0 -61
  929. package/bin/workspace/tool/FileTools.js.map +0 -1
  930. package/bin/workspace/tool/SearchToolSchemas.d.ts +0 -24
  931. package/bin/workspace/tool/SearchToolSchemas.d.ts.map +0 -1
  932. package/bin/workspace/tool/SearchToolSchemas.js +0 -60
  933. package/bin/workspace/tool/SearchToolSchemas.js.map +0 -1
  934. package/bin/workspace/tool/SearchTools.d.ts +0 -11
  935. package/bin/workspace/tool/SearchTools.d.ts.map +0 -1
  936. package/bin/workspace/tool/SearchTools.js +0 -38
  937. package/bin/workspace/tool/SearchTools.js.map +0 -1
  938. package/bin/workspace/tool/WorkspaceTools.d.ts +0 -11
  939. package/bin/workspace/tool/WorkspaceTools.d.ts.map +0 -1
  940. package/bin/workspace/tool/WorkspaceTools.js +0 -22
  941. package/bin/workspace/tool/WorkspaceTools.js.map +0 -1
  942. package/scripts/core-engine-ui-stream-collector.test.mjs +0 -38
  943. package/scripts/openai-responses-continuation.test.mjs +0 -78
  944. package/src/agent/AgentState.ts +0 -96
  945. package/src/executor/core-engine/CoreEngineUiStreamCollector.ts +0 -136
  946. package/src/executor/messages/SessionMessageCodec.ts +0 -106
  947. package/src/executor/messages/SessionStepEventMapper.ts +0 -191
  948. package/src/executor/messages/UIMessageTransformer.ts +0 -152
  949. package/src/executor/messages/UserVisibleText.ts +0 -75
  950. package/src/executor/types/SessionRecords.ts +0 -217
  951. package/src/plugin/core/PluginActionRunner.ts +0 -36
  952. package/src/session/messages/SessionMessageCodec.ts +0 -495
  953. package/src/types/agent/AgentState.ts +0 -22
  954. package/src/types/store/AgentStore.ts +0 -52
  955. package/src/types/workspace/FileSystem.ts +0 -76
  956. package/src/types/workspace/FileTool.ts +0 -225
  957. package/src/types/workspace/SearchTool.ts +0 -156
  958. package/src/types/workspace/Workspace.ts +0 -27
  959. package/src/types/workspace/WorkspaceEnv.ts +0 -19
  960. package/src/types/workspace/WorkspaceTools.ts +0 -23
  961. package/src/utils/cli/CliOutput.ts +0 -128
  962. package/src/utils/cli/PrettyStatus.ts +0 -94
  963. package/src/utils/logger/FormatRequest.ts +0 -455
  964. package/src/utils/logger/FormatResponse.ts +0 -265
  965. package/src/utils/logger/FormatShared.ts +0 -258
  966. package/src/utils/object/DeepMerge.ts +0 -40
  967. package/src/utils/object/ObjectGuards.ts +0 -19
  968. package/src/utils/path/AncestorFiles.ts +0 -40
  969. package/src/utils/storage/index.ts +0 -19
  970. package/src/utils/string/EscapeRegExp.ts +0 -19
  971. package/src/workspace/LocalFileSystem.ts +0 -209
  972. package/src/workspace/Workspace.ts +0 -178
  973. package/src/workspace/WorkspaceBase.ts +0 -62
  974. package/src/workspace/WorkspaceEnv.ts +0 -54
  975. package/src/workspace/file/FileActionRuntime.ts +0 -433
  976. package/src/workspace/file/FileAtomicWriter.ts +0 -61
  977. package/src/workspace/file/FileEncoding.ts +0 -175
  978. package/src/workspace/file/FilePathPolicy.ts +0 -162
  979. package/src/workspace/file/FileToolError.ts +0 -99
  980. package/src/workspace/search/SearchActionRuntime.ts +0 -438
  981. package/src/workspace/search/SearchToolError.ts +0 -94
  982. package/src/workspace/store/LocalAgentStore.ts +0 -191
  983. package/src/workspace/tool/FileToolSchemas.ts +0 -77
  984. package/src/workspace/tool/FileTools.ts +0 -91
  985. package/src/workspace/tool/SearchToolSchemas.ts +0 -62
  986. package/src/workspace/tool/SearchTools.ts +0 -61
  987. package/src/workspace/tool/WorkspaceTools.ts +0 -31
package/README.md CHANGED
@@ -1,15 +1,15 @@
1
1
  # @downcity/agent
2
2
 
3
- `@downcity/agent` 是 Downcity 的单 Agent 运行时包。
3
+ `@downcity/agent` 是 Downcity Agent runtime 包。`Agent` 是主体,`City` 是承载多个 Agent、Workspace、Embassy 与 transport 的环境容器。
4
4
 
5
5
  它负责把一个 agent 项目目录装配成可执行运行时,包括:
6
6
 
7
- - 本地 SDK:`Agent`、`Session`、`RemoteAgent`
7
+ - 本地 SDK:`Agent`、`Group`、`Workspace`、`Session`、`RemoteAgent`
8
8
  - 内部执行内核:Session Composer、LLM/Tool Loop、增量输出
9
9
  - Plugin 框架:registry、action、tool runtime 与执行生命周期
10
10
  - 远程访问:`RemoteAgent`、HTTP/RPC transport
11
11
 
12
- `downcity` 负责多 Agent 管理、控制面网关、平台 CLI、共享模型目录接入与 daemon 进程管理;`@downcity/agent` 只负责单 Agent 的执行面。
12
+ CLI 与 Desktop 负责读取产品配置并显式装配 `Agent`,再通过 `city.agents.add(agent)` Agent 加入环境。City 不创建 Agent,也不持有 Plugin 实例;City 只提供底层资源和 Storage,Plugin 通过执行 Context 使用被允许的能力。
13
13
 
14
14
  ## 包定位
15
15
 
@@ -21,17 +21,31 @@
21
21
  ## 与其他包的边界
22
22
 
23
23
  - `@downcity/agent`
24
- - Agent runtime
24
+ - Agent 与 City runtime
25
25
  - session SDK、executor 内核、plugin 框架、sandbox
26
- - 本地 SDK facade
26
+ - City Workspace、Embassy、HTTP/RPC transport
27
27
  - `downcity`
28
- - Agent registry
29
- - control plane / gateway
30
- - 平台 CLI、共享模型目录接入、模型运行时绑定、全局 env、Plugin Resource Store
31
- - agent daemon 进程管理
28
+ - CLI City daemon 与平台控制面
29
+ - `@downcity/local`
30
+ - CLI 与 Desktop 共用的本地数据库 Adapter、配置 Repository 与 Plugin Loader
31
+ - 不创建 Agent、Workspace、Model 或 City
32
32
  - `@downcity/ui`
33
33
  - React UI 组件与展示层
34
34
 
35
+ Session ID 由 `agent.sessions.create()` 内部生成;创建接口不接受调用方指定的
36
+ `session_id`。恢复已有 Session 时使用 `agent.sessions.get(session_id)`,如果该
37
+ Session 创建时绑定了 Workspace,恢复时必须传入同一个 Workspace。
38
+
39
+ Group 是和 Agent 并列的可联系主体。Group 持有自己的模型,默认通过 AI 调度器识别消息意图、选择成员和生成当前最佳响应图;没有模型或模型调用失败时,GroupSession 会记录明确的调度失败,不会静默使用另一套规则。需要自定义行为时可显式提供 `dispatch_strategy`。普通群聊消息是否投递给一个或多个成员完全由 Group.model 决定。AI 调度使用一次强制的内部 `dispatch_group` tool call,不依赖 `generateObject`;tool call 只提交 `steps` 和 `next`,SDK 再编译为内部执行图。
40
+
41
+ `steps` 是二维数组:外层阶段按顺序执行,同一阶段数组内的成员并行执行;同一个成员可以出现在不同阶段,表示它在拓扑中再次参与。例如 `[["architect"], ["developer"], ["architect"], ["reviewer"]]` 表示 architect 的回复先交给 developer,再交回 architect,最后交给 reviewer。空数组配合 `next: "stop"` 表示本次不投递成员。
42
+ 并通过 `group.sessions.create()` 创建独立的群聊上下文。消息和传播属于 GroupSession;
43
+ 成员执行仍通过成员 Agent 的 `AgentSessions` 完成。`prompt()` 立即返回消息回执并异步启动 user dispatch;GroupSession 只运行一个全局 auto dispatch,在当前成员执行完成后统一决定是否扩展响应图。成员运行态可通过
44
+ `subscribe()` 统一订阅共享消息和 Group/成员运行态;Session metadata 会记录 Group 与
45
+ GroupSession 来源。调度检查点也会写入 City Storage;进程中断后只依据已落盘消息继续
46
+ auto dispatch,不会重复提交已经接受的 Agent Turn。`group.sessions.list()` 返回轻量摘要,
47
+ `group.sessions.get(id)` 恢复完整上下文。
48
+
35
49
  ## 根目录结构
36
50
 
37
51
  ```text
@@ -50,6 +64,7 @@ packages/agent
50
64
  src/
51
65
  ├── index.ts # 包公开入口
52
66
  ├── agent/ # Agent facade、状态、模型、环境与执行绑定
67
+ ├── group/ # Group 主体、GroupSession 和消息调度策略
53
68
  ├── executor/ # LLM/Tool Loop、执行恢复与内存上下文折叠
54
69
  ├── plugin/ # Plugin registry、执行视图、工具桥接与生命周期
55
70
  ├── remote/ # RemoteAgent、RemoteSession 与 HTTP/RPC transport
@@ -69,11 +84,10 @@ src/
69
84
 
70
85
  - `src/workspace/`
71
86
  - 统一承载项目根目录、文件系统、模型工具、初始化和结构化存储
72
- - `setup/` 负责项目 `.env`、`.gitignore` `.downcity` 初始化
73
- - `store/` 负责 Agent、Session 和 JSONL Message 的本地持久化
87
+ - `store/` 负责 AgentStorage、Session JSONL Message 的本地持久化
74
88
  - `WorkspaceEnv.ts` 负责 Workspace 环境变量装配
75
89
  - `tool/WorkspaceTools.ts` 组合文件、搜索与可选 Shell 工具
76
- - `WorkspacePaths.ts` 负责 Workspace 内部路径布局
90
+ - `WorkspacePaths.ts` 负责 AgentStorage 私有数据路径布局
77
91
 
78
92
  - `src/session/`
79
93
  - `Session.ts` 是公开 facade 与 Session 对象装配入口
@@ -82,7 +96,7 @@ src/
82
96
  - `SessionMessages.ts` 是 canonical Message 唯一事实源
83
97
  - `DefaultSessionComposer.ts` 负责 system/history/tools 与压缩计划定制
84
98
  - `messages/` 放 Assistant writer、Message codec 与 compaction;JSONL Store 位于 `workspace/store/`
85
- - 完整设计见 [`docs/session-runtime-architecture.md`](../../docs/session-runtime-architecture.md)
99
+ - Session `AgentSessions` 统一持有;Workspace 只作为 `agent.sessions.create/get({ workspace })` 的单次执行输入
86
100
 
87
101
  - `src/executor/`
88
102
  - 内部执行内核
@@ -125,5 +139,7 @@ src/
125
139
  - `SessionMessages` 是 Message 唯一事实源,Executor 不持有 Store
126
140
  - `types / utils` 提供横向公共支撑
127
141
 
128
- 完整架构、执行链、持久化、Plugin、Shell 与跨平台设计见
129
- [`docs/agent-sdk-architecture.md`](../../docs/agent-sdk-architecture.md)。
142
+ 持久化规则:加入 City 后,AgentSession 使用 `agents/<agent_id>/sessions/<session_id>/`,
143
+ GroupSession 使用 `groups/<group_id>/sessions/<group_session_id>/`;未加入 City 时两者均使用
144
+ 当前主体实例的内存 Storage。只有传入 Workspace 的 AgentSession 或 GroupSession 才会在
145
+ `meta.json` 写入 `workspace_id`。
@@ -1,105 +1,56 @@
1
1
  /**
2
- * Agent:本地 Agent 核心入口与 facade。
2
+ * Agent:身份、模型、指令与 Plugin 的主体对象。
3
3
  *
4
4
  * 职责说明(中文)
5
- * - 对外暴露 `Agent` 这一唯一的本地实例类。
6
- * - Agent 直接持有自身状态与长期运行时对象,避免额外 Assembly 复制同一批字段。
7
- * - Session 集合由 `AgentSessions` 管理;长期运行状态由 `AgentState` 管理。
5
+ * - Agent 不绑定 Workspace;调用方通过 `agent.sessions.create({ workspace })` 选择本次执行环境。
6
+ * - PluginRegistry 只属于 Agent,所有 Workspace 共享同一份注册定义。
7
+ * - Session AgentSessions 统一持有;Workspace 只在单个 Session 创建时提供执行资源。
8
8
  */
9
- import type { Tool } from "ai";
10
- import type { AgentModel } from "../agent/AgentModel.js";
11
- import type { AgentOptions } from "../types/agent/AgentOptions.js";
12
- import type { Shell } from "@downcity/shell";
13
- import type { WorkspaceBase } from "../workspace/WorkspaceBase.js";
14
- import { Logger } from "../utils/logger/Logger.js";
15
- import { AgentSessions } from "../agent/AgentSessions.js";
9
+ import type { RuntimeTool as Tool } from "@downcity/type";
10
+ import type { AgentModel } from "./AgentModel.js";
16
11
  import { PluginRegistry } from "../plugin/core/PluginRegistry.js";
17
- import type { Hono } from "hono";
18
- import type { PluginSnapshot } from "../types/plugin/PluginState.js";
19
- import { type SystemProfile } from "../executor/composer/system/default/SystemDomain.js";
20
- import type { SystemModelMessage } from "ai";
21
- /**
22
- * SDK 本地 Agent。
23
- */
12
+ import type { AgentOptions, AgentSessionConstructor } from "../types/agent/AgentOptions.js";
13
+ import type { PluginWebServices } from "../types/plugin/PluginServices.js";
14
+ import type { AgentSessionCollection } from "../types/agent/AgentSessionCollection.js";
15
+ import { Logger } from "../utils/logger/Logger.js";
16
+ /** SDK Agent 主体。 */
24
17
  export declare class Agent {
25
- /** 当前 Agent 的稳定标识,用于区分 Session 存储目录与运行时归属。 */
18
+ /** Agent 的全局稳定标识。 */
26
19
  readonly id: string;
27
- /** 当前 Agent 引用的项目资源与安全边界。 */
28
- readonly workspace: WorkspaceBase;
29
- /** 当前 Agent 向所有 Session 提供的工具集合。 */
30
- readonly tools: Record<string, Tool>;
31
- /** 当前 Agent 已装配的 Plugin 调用与注册入口。 */
32
- readonly plugins: PluginRegistry;
33
- /** 当前 Agent 的本地 Session 创建、恢复、查询与归档入口。 */
34
- readonly sessions: AgentSessions;
35
- /**
36
- * 当前 Agent 持有的默认运行时模型实例。
37
- *
38
- * 关键点(中文)
39
- * - Agent 只持有调用方传入的实例,不负责模型选择、持久化或恢复。
40
- * - Session 未设置自己的模型时,执行会回退使用该实例。
41
- */
20
+ /** Agent 默认模型;Session 可以显式覆盖。 */
42
21
  readonly model?: AgentModel;
43
- /** 当前 Agent 独享的运行日志器。 */
22
+ /** Agent 面向用户的 Session 创建入口。 */
23
+ readonly sessions: AgentSessionCollection;
24
+ /** 当前 Agent 持有的 Web 搜索与文档能力。 */
25
+ readonly web?: PluginWebServices;
26
+ /** Agent 注册的唯一 PluginRegistry。 */
27
+ readonly plugins: PluginRegistry;
28
+ /** Agent 自定义 Tool;进入每个 Workspace 时与项目 Tool 合并。 */
29
+ readonly custom_tools: Record<string, Tool>;
30
+ /** Agent 使用的 Session 类。 */
31
+ readonly session_class?: AgentSessionConstructor;
32
+ /** AgentPlugin 的内部访问名,仍指向 Agent 唯一 Registry。 */
33
+ readonly plugin_registry: PluginRegistry;
34
+ /** Agent 级日志器,不绑定任何 Workspace。 */
44
35
  private readonly logger;
45
- /** 提供给 Plugin、Session 与宿主集成层共享的 Agent 执行上下文。 */
46
- private readonly plugin_context;
47
- /** 调用方提供的自定义 Session 类;省略时使用 SDK 默认实现。 */
48
- private readonly session_class;
49
- /** 当前 Agent 的长期运行状态与生命周期。 */
50
- private readonly state;
51
- /** 当前 Agent configured instruction 的可变有序集合。 */
52
- private instruction;
53
- /** 取消 Workspace env 变化订阅的函数。 */
54
- private readonly unsubscribe_workspace_env;
55
- /** 取消 PluginRegistry 变化订阅的函数。 */
56
- private readonly unsubscribe_plugin_change;
57
- /** 当前由 PluginRegistry 注册到 Agent 的 Tool 名称。 */
58
- private readonly plugin_tool_names;
36
+ /** 当前 Agent configured instruction。 */
37
+ private readonly instruction;
38
+ /** Agent 释放状态。 */
39
+ private dispose_promise?;
40
+ /** Agent Plugin lifecycle 启动流程。 */
41
+ private readonly plugin_ready;
42
+ /** Agent 唯一的 Session 集合。 */
43
+ private readonly session_manager;
59
44
  constructor(options: AgentOptions);
60
- /**
61
- * 等待 Agent 持有的长期运行时启动完成。
62
- *
63
- * 关键点(中文)
64
- * - Agent 构造完成即开始启动 plugin lifecycle 与 ActionSchedule。
65
- * - 调用方在需要确认运行时就绪时使用,例如启动后立刻读取 plugin 状态。
66
- */
67
- ready(): Promise<void>;
68
- /**
69
- * 释放当前 Agent 持有的长期运行时对象。
70
- *
71
- * 关键点(中文)
72
- * - 关闭 plugin lifecycle 与 ActionSchedule 等 Agent 自有资源。
73
- * - Workspace 与 Agent 一对一绑定,因此这里同时关闭 Shell 与 Sandbox。
74
- * - 不负责任何 transport(RPC / HTTP);transport 由 `@downcity/server` 自行管理。
75
- */
76
- dispose(): Promise<void>;
77
- /**
78
- * 更新当前 SDK Agent 的静态基础指令。
79
- */
45
+ /** 更新 Agent 的静态基础指令。 */
80
46
  set_instruction(input: string | string[]): void;
81
- /**
82
- * 返回当前 agent 绑定的统一日志器。
83
- */
84
- get_logger(): Logger;
85
- /**
86
- * 返回当前 agent 挂载的 Shell。
87
- */
88
- get_shell(): Shell | undefined;
89
- /** 返回当前 Agent 已配置的静态指令快照。 */
47
+ /** 返回 Agent 指令快照。 */
90
48
  get_instructions(): readonly string[];
91
- /** 列出当前 Agent 已注册的 Plugin 状态。 */
92
- list_plugin_states(): PluginSnapshot[];
93
- /** 把当前 Agent 已注册 Plugin HTTP 路由装配到宿主应用。 */
94
- register_plugin_http_routes(app: Hono): void;
95
- /** 解析指定 Session 当前可见的完整 system messages。 */
96
- resolve_system_messages(input: {
97
- /** 需要解析 system 的 Session 标识。 */
98
- session_id: string;
99
- /** system 组合档位;省略时使用 chat。 */
100
- profile?: SystemProfile;
101
- }): Promise<SystemModelMessage[]>;
102
- /** 将 PluginRegistry 当前 Tool Set 同步到 Agent 持有的工具集合。 */
103
- private sync_plugin_tools;
49
+ /** 返回 Agent 级日志器。 */
50
+ get_logger(): Logger;
51
+ /** 释放 Agent 进入的全部 Workspace Agent Plugin。 */
52
+ dispose(): Promise<void>;
53
+ /** 等待 Agent Plugin 完成启动,供内部运行时使用。 */
54
+ ensure_ready(): Promise<void>;
104
55
  }
105
56
  //# sourceMappingURL=Agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../src/agent/Agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAoB7C;;GAEG;AACH,qBAAa,KAAK;IAChB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAElC,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAErC,oCAAoC;IACpC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IAEjC;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAE5B,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAE/C,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgC;IAE9D,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IAEnC,+CAA+C;IAC/C,OAAO,CAAC,WAAW,CAAW;IAE9B,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA0B;IAEpE,iCAAiC;IACjC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA4B;IAEtE,8CAA8C;IAC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;gBAE3C,OAAO,EAAE,YAAY;IAkFjC;;;;;;OAMG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;;;;;;OAOG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAe9B;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAK/C;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,SAAS,IAAI,KAAK,GAAG,SAAS;IAI9B,6BAA6B;IAC7B,gBAAgB,IAAI,SAAS,MAAM,EAAE;IAIrC,iCAAiC;IACjC,kBAAkB,IAAI,cAAc,EAAE;IAItC,6CAA6C;IAC7C,2BAA2B,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI;IAU5C,4CAA4C;IACtC,uBAAuB,CAAC,KAAK,EAAE;QACnC,gCAAgC;QAChC,UAAU,EAAE,MAAM,CAAC;QACnB,8BAA8B;QAC9B,OAAO,CAAC,EAAE,aAAa,CAAC;KACzB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAUjC,sDAAsD;IACtD,OAAO,CAAC,iBAAiB;CAW1B"}
1
+ {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../src/agent/Agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,IAAI,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EACV,sBAAsB,EACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAclD,oBAAoB;AACpB,qBAAa,KAAK;IAChB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAE5B,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAE1C,gCAAgC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC;IAEjC,kCAAkC;IAClC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC,kDAAkD;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE5C,2BAA2B;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,uBAAuB,CAAC;IAEjD,gDAAgD;IAChD,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC;IAEzC,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IAEvC,kBAAkB;IAClB,OAAO,CAAC,eAAe,CAAC,CAAgB;IAExC,qCAAqC;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAEhD,4BAA4B;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgB;gBAEpC,OAAO,EAAE,YAAY;IA0EjC,wBAAwB;IACxB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAK/C,qBAAqB;IACrB,gBAAgB,IAAI,SAAS,MAAM,EAAE;IAIrC,qBAAqB;IACrB,UAAU,IAAI,MAAM;IAIpB,+CAA+C;IACzC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B,uCAAuC;IACjC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAIpC"}
@@ -1,236 +1,151 @@
1
1
  /**
2
- * Agent:本地 Agent 核心入口与 facade。
2
+ * Agent:身份、模型、指令与 Plugin 的主体对象。
3
3
  *
4
4
  * 职责说明(中文)
5
- * - 对外暴露 `Agent` 这一唯一的本地实例类。
6
- * - Agent 直接持有自身状态与长期运行时对象,避免额外 Assembly 复制同一批字段。
7
- * - Session 集合由 `AgentSessions` 管理;长期运行状态由 `AgentState` 管理。
5
+ * - Agent 不绑定 Workspace;调用方通过 `agent.sessions.create({ workspace })` 选择本次执行环境。
6
+ * - PluginRegistry 只属于 Agent,所有 Workspace 共享同一份注册定义。
7
+ * - Session AgentSessions 统一持有;Workspace 只在单个 Session 创建时提供执行资源。
8
8
  */
9
- import { create_plugin_context } from "../plugin/core/PluginContext.js";
10
- import { Logger } from "../utils/logger/Logger.js";
11
- import { normalize_instruction_input } from "../agent/AgentInstructions.js";
12
- import { AgentSessions } from "../agent/AgentSessions.js";
13
- import { AgentState } from "../agent/AgentState.js";
14
- import { generate_id } from "../utils/Id.js";
9
+ import { normalize_instruction_input } from "./AgentInstructions.js";
15
10
  import { PluginRegistry } from "../plugin/core/PluginRegistry.js";
16
- import { list_plugin_states } from "../plugin/core/PluginStateController.js";
17
- import { register_plugin_http_routes } from "../plugin/core/PluginHttpRoutes.js";
18
- import { resolve_session_system_messages, } from "../executor/composer/system/default/SystemDomain.js";
19
- const RESERVED_PLUGIN_TOOL_NAMES = new Set(["plugin_read", "plugin_call"]);
20
- /** 将一个来源明确的 Tool Set 注册到 Agent,并拒绝静默覆盖。 */
21
- function register_agent_tools(target, source, source_name) {
22
- for (const [tool_name, tool_definition] of Object.entries(source)) {
23
- if (Object.prototype.hasOwnProperty.call(target, tool_name)) {
24
- throw new Error(`Agent tool name conflict: "${tool_name}" from ${source_name}`);
25
- }
26
- target[tool_name] = tool_definition;
27
- }
28
- }
29
- /**
30
- * SDK 本地 Agent。
31
- */
11
+ import { Logger } from "../utils/logger/Logger.js";
12
+ import { AgentSessions } from "./AgentSessions.js";
13
+ import { agent_embassy, clear_agent_runtime, create_workspace_entry, dispose_agent_runtime, get_agent_storage, initialize_agent_runtime, list_workspace_entries, mark_agent_session_started, release_agent_from_city, } from "../internal/AgentRuntime.js";
14
+ /** SDK Agent 主体。 */
32
15
  export class Agent {
33
- /** 当前 Agent 的稳定标识,用于区分 Session 存储目录与运行时归属。 */
16
+ /** Agent 的全局稳定标识。 */
34
17
  id;
35
- /** 当前 Agent 引用的项目资源与安全边界。 */
36
- workspace;
37
- /** 当前 Agent 向所有 Session 提供的工具集合。 */
38
- tools;
39
- /** 当前 Agent 已装配的 Plugin 调用与注册入口。 */
40
- plugins;
41
- /** 当前 Agent 的本地 Session 创建、恢复、查询与归档入口。 */
42
- sessions;
43
- /**
44
- * 当前 Agent 持有的默认运行时模型实例。
45
- *
46
- * 关键点(中文)
47
- * - Agent 只持有调用方传入的实例,不负责模型选择、持久化或恢复。
48
- * - Session 未设置自己的模型时,执行会回退使用该实例。
49
- */
18
+ /** Agent 默认模型;Session 可以显式覆盖。 */
50
19
  model;
51
- /** 当前 Agent 独享的运行日志器。 */
52
- logger;
53
- /** 提供给 Plugin、Session 与宿主集成层共享的 Agent 执行上下文。 */
54
- plugin_context;
55
- /** 调用方提供的自定义 Session 类;省略时使用 SDK 默认实现。 */
20
+ /** Agent 面向用户的 Session 创建入口。 */
21
+ sessions;
22
+ /** 当前 Agent 持有的 Web 搜索与文档能力。 */
23
+ web;
24
+ /** Agent 注册的唯一 PluginRegistry。 */
25
+ plugins;
26
+ /** Agent 自定义 Tool;进入每个 Workspace 时与项目 Tool 合并。 */
27
+ custom_tools;
28
+ /** Agent 使用的 Session 类。 */
56
29
  session_class;
57
- /** 当前 Agent 的长期运行状态与生命周期。 */
58
- state;
59
- /** 当前 Agent configured instruction 的可变有序集合。 */
30
+ /** AgentPlugin 的内部访问名,仍指向 Agent 唯一 Registry。 */
31
+ plugin_registry;
32
+ /** Agent 级日志器,不绑定任何 Workspace。 */
33
+ logger = new Logger();
34
+ /** 当前 Agent configured instruction。 */
60
35
  instruction;
61
- /** 取消 Workspace env 变化订阅的函数。 */
62
- unsubscribe_workspace_env;
63
- /** 取消 PluginRegistry 变化订阅的函数。 */
64
- unsubscribe_plugin_change;
65
- /** 当前由 PluginRegistry 注册到 Agent Tool 名称。 */
66
- plugin_tool_names = new Set();
36
+ /** Agent 释放状态。 */
37
+ dispose_promise;
38
+ /** Agent Plugin lifecycle 启动流程。 */
39
+ plugin_ready;
40
+ /** Agent 唯一的 Session 集合。 */
41
+ session_manager;
67
42
  constructor(options) {
68
43
  this.id = String(options.id || "").trim();
69
44
  if (!this.id)
70
45
  throw new Error("Agent requires a non-empty id");
71
- if (!options.workspace)
72
- throw new Error("Agent requires a Workspace");
73
- this.workspace = options.workspace;
74
- this.session_class = options.session_class;
46
+ initialize_agent_runtime(this);
75
47
  this.model = options.model;
76
- this.plugins = new PluginRegistry(options.plugins || []);
77
- this.tools = {};
78
- for (const tool_name of Object.keys(this.workspace.tools)) {
79
- if (RESERVED_PLUGIN_TOOL_NAMES.has(tool_name)) {
80
- throw new Error(`Agent tool name conflict: "${tool_name}" is reserved for PluginRegistry`);
81
- }
82
- }
83
- register_agent_tools(this.tools, this.workspace.tools, "WorkspaceTools");
84
- this.sync_plugin_tools();
85
- const custom_tools = options.tools && typeof options.tools === "object"
86
- ? options.tools
87
- : {};
88
- for (const tool_name of Object.keys(custom_tools)) {
89
- if (RESERVED_PLUGIN_TOOL_NAMES.has(tool_name)) {
90
- throw new Error(`Agent tool name conflict: "${tool_name}" is reserved for PluginRegistry`);
91
- }
92
- }
93
- register_agent_tools(this.tools, custom_tools, "AgentOptions.tools");
94
- this.logger = new Logger();
95
- this.logger.bind_workspace(this.workspace.files);
48
+ this.web = options.web;
96
49
  this.instruction = normalize_instruction_input(options.instruction);
97
- const store = this.workspace.bind_agent(this.id);
98
- this.sessions = new AgentSessions({
50
+ const agent = this;
51
+ const agent_plugin_context = Object.freeze({
99
52
  agent_id: this.id,
100
- workspace_path: this.workspace.path,
101
- store,
102
- tools: this.tools,
103
53
  logger: this.logger,
104
- get_instruction: () => this.instruction,
105
- get_workspace_env: () => this.workspace.get_env(),
106
- get_agent_plugins: () => this.plugins.execution_view(),
107
- ensure_agent_ready: async () => {
108
- await this.ready();
54
+ web: this.web,
55
+ get embassy() {
56
+ return agent_embassy(agent);
57
+ },
58
+ get instructions() {
59
+ return agent.get_instructions();
109
60
  },
110
- get_agent_model: () => this.model,
111
- session_class: this.session_class,
112
61
  });
113
- this.plugin_context = create_plugin_context({
114
- ...(this.workspace.shell ? { shell: this.workspace.shell } : {}),
62
+ this.session_class = options.session_class;
63
+ this.plugins = new PluginRegistry(agent_plugin_context, options.plugins || []);
64
+ this.plugin_registry = this.plugins;
65
+ this.plugin_ready = this.plugins.start_all();
66
+ this.custom_tools = options.tools && typeof options.tools === "object"
67
+ ? { ...options.tools }
68
+ : {};
69
+ const no_workspace_plugins = () => ({
70
+ plugins: [],
71
+ read: () => ({ plugins: [] }),
72
+ run_action: async () => ({ success: false, error: "Workspace is required" }),
73
+ system_blocks: async () => [],
74
+ acquire: () => ({
75
+ read: () => ({ plugins: [] }),
76
+ run_action: async () => ({ success: false, error: "Workspace is required" }),
77
+ system_blocks: async () => [],
78
+ release: async () => { },
79
+ }),
80
+ });
81
+ const get_store = () => get_agent_storage(this).sessions;
82
+ const session_store = {
83
+ session: (session_id, workspace_id) => get_store().session(session_id, workspace_id),
84
+ has_session: async (session_id) => await get_store().has_session(session_id),
85
+ remove_session: async (session_id) => await get_store().remove_session(session_id),
86
+ clear_session_messages: async (session_id) => await get_store().clear_session_messages(session_id),
87
+ list_sessions: async (input, executing) => await get_store().list_sessions(input, executing),
88
+ archive_session: async (session_id) => await get_store().archive_session(session_id),
89
+ list_archived_sessions: async (input) => await get_store().list_archived_sessions(input),
90
+ clean_archive: async () => await get_store().clean_archive(),
91
+ dispose: async () => { },
92
+ };
93
+ this.session_manager = new AgentSessions({
115
94
  agent_id: this.id,
116
- workspace_path: this.workspace.path,
117
- files: this.workspace.files,
118
95
  logger: this.logger,
119
- get_workspace_env: () => this.workspace.get_env(),
120
- get_instructions: () => this.instruction,
121
- sessions: this.sessions,
122
- plugins: this.plugins,
123
- });
124
- this.unsubscribe_workspace_env = this.workspace.subscribe_env((env) => {
125
- this.sessions.broadcast_env({ ...env }, generate_id());
126
- });
127
- this.unsubscribe_plugin_change = this.plugins.subscribe_change((change) => {
128
- this.sync_plugin_tools();
129
- const verb = change.type === "register" ? "registered" : "unregistered";
130
- this.sessions.broadcast_plugins({
131
- command_id: generate_id(),
132
- title: `Agent plugin ${change.plugin_name} ${verb}`,
133
- plugins: this.plugins.execution_view(),
134
- });
135
- });
136
- // 关键点(中文):装配完成后创建唯一状态对象,并立即启动长期运行时。
137
- this.state = new AgentState({
138
- context: this.plugin_context,
139
- plugins: this.plugins,
96
+ get_instruction: () => [...this.get_instructions()],
97
+ ensure_agent_ready: async () => { await this.plugin_ready; },
98
+ get_agent_model: () => this.model,
99
+ session_class: this.session_class,
100
+ on_session_routed: () => mark_agent_session_started(agent),
101
+ resolve_session_context: (workspace) => {
102
+ if (!workspace)
103
+ return {
104
+ workspace_path: ".",
105
+ logger: this.logger,
106
+ tools: this.custom_tools,
107
+ get_workspace_env: () => ({}),
108
+ get_agent_plugins: no_workspace_plugins,
109
+ store: session_store,
110
+ };
111
+ return create_workspace_entry(this, workspace).get_session_context();
112
+ },
140
113
  });
114
+ this.sessions = this.session_manager;
141
115
  }
142
- /**
143
- * 等待 Agent 持有的长期运行时启动完成。
144
- *
145
- * 关键点(中文)
146
- * - Agent 构造完成即开始启动 plugin lifecycle 与 ActionSchedule。
147
- * - 调用方在需要确认运行时就绪时使用,例如启动后立刻读取 plugin 状态。
148
- */
149
- async ready() {
150
- await this.state.ready();
151
- }
152
- /**
153
- * 释放当前 Agent 持有的长期运行时对象。
154
- *
155
- * 关键点(中文)
156
- * - 关闭 plugin lifecycle 与 ActionSchedule 等 Agent 自有资源。
157
- * - Workspace 与 Agent 一对一绑定,因此这里同时关闭 Shell 与 Sandbox。
158
- * - 不负责任何 transport(RPC / HTTP);transport 由 `@downcity/server` 自行管理。
159
- */
160
- async dispose() {
161
- this.unsubscribe_workspace_env();
162
- this.unsubscribe_plugin_change();
163
- this.sessions.dispose_title_generation();
164
- try {
165
- await this.state.dispose();
166
- }
167
- finally {
168
- try {
169
- await this.logger.save_all_logs();
170
- }
171
- finally {
172
- await this.workspace.dispose();
173
- }
174
- }
175
- }
176
- /**
177
- * 更新当前 SDK Agent 的静态基础指令。
178
- */
116
+ /** 更新 Agent 的静态基础指令。 */
179
117
  set_instruction(input) {
180
118
  const next_instruction = normalize_instruction_input(input);
181
119
  this.instruction.splice(0, this.instruction.length, ...next_instruction);
182
120
  }
183
- /**
184
- * 返回当前 agent 绑定的统一日志器。
185
- */
186
- get_logger() {
187
- return this.logger;
188
- }
189
- /**
190
- * 返回当前 agent 挂载的 Shell。
191
- */
192
- get_shell() {
193
- return this.workspace.shell;
194
- }
195
- /** 返回当前 Agent 已配置的静态指令快照。 */
121
+ /** 返回 Agent 指令快照。 */
196
122
  get_instructions() {
197
123
  return [...this.instruction];
198
124
  }
199
- /** 列出当前 Agent 已注册的 Plugin 状态。 */
200
- list_plugin_states() {
201
- return list_plugin_states({ context: this.plugin_context });
202
- }
203
- /** 把当前 Agent 已注册 Plugin 的 HTTP 路由装配到宿主应用。 */
204
- register_plugin_http_routes(app) {
205
- register_plugin_http_routes({
206
- app,
207
- get_context: () => this.plugin_context,
208
- plugins: this.plugins.snapshots()
209
- .map((snapshot) => this.plugins.get(snapshot.name))
210
- .filter((plugin) => plugin !== null),
211
- });
125
+ /** 返回 Agent 级日志器。 */
126
+ get_logger() {
127
+ return this.logger;
212
128
  }
213
- /** 解析指定 Session 当前可见的完整 system messages。 */
214
- async resolve_system_messages(input) {
215
- return await resolve_session_system_messages({
216
- project_root: this.workspace.path,
217
- session_id: input.session_id,
218
- profile: input.profile || "chat",
219
- static_system_prompts: [...this.instruction],
220
- context: this.plugin_context,
221
- });
129
+ /** 释放 Agent 进入的全部 Workspace 与 Agent Plugin。 */
130
+ async dispose() {
131
+ this.dispose_promise ??= (async () => {
132
+ await this.plugin_ready.catch(() => undefined);
133
+ const entries = [...list_workspace_entries(this)];
134
+ const results = await Promise.allSettled(entries.map(async (entry) => await entry.leave()));
135
+ await this.plugins.unregister_all();
136
+ this.session_manager.dispose_title_generation();
137
+ await dispose_agent_runtime(this);
138
+ const errors = results.flatMap((result) => result.status === "rejected" ? [result.reason] : []);
139
+ release_agent_from_city(this);
140
+ clear_agent_runtime(this);
141
+ if (errors.length > 0)
142
+ throw new AggregateError(errors, "Agent dispose failed");
143
+ })();
144
+ await this.dispose_promise;
222
145
  }
223
- /** PluginRegistry 当前 Tool Set 同步到 Agent 持有的工具集合。 */
224
- sync_plugin_tools() {
225
- for (const tool_name of this.plugin_tool_names) {
226
- delete this.tools[tool_name];
227
- }
228
- this.plugin_tool_names.clear();
229
- const plugin_tools = this.plugins.tools();
230
- register_agent_tools(this.tools, plugin_tools, "PluginRegistry");
231
- for (const tool_name of Object.keys(plugin_tools)) {
232
- this.plugin_tool_names.add(tool_name);
233
- }
146
+ /** 等待 Agent Plugin 完成启动,供内部运行时使用。 */
147
+ async ensure_ready() {
148
+ await this.plugin_ready;
234
149
  }
235
150
  }
236
151
  //# sourceMappingURL=Agent.js.map