@downcity/agent 1.1.73 → 1.1.79

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 (390) hide show
  1. package/README.md +26 -28
  2. package/bin/agent/{Agent.d.ts → local/Agent.d.ts} +8 -36
  3. package/bin/agent/local/Agent.d.ts.map +1 -0
  4. package/bin/agent/{Agent.js → local/Agent.js} +45 -200
  5. package/bin/agent/local/Agent.js.map +1 -0
  6. package/bin/agent/local/AgentInstructions.d.ts +22 -0
  7. package/bin/agent/local/AgentInstructions.d.ts.map +1 -0
  8. package/bin/agent/local/AgentInstructions.js +57 -0
  9. package/bin/agent/local/AgentInstructions.js.map +1 -0
  10. package/bin/agent/local/AgentPluginFactory.d.ts +29 -0
  11. package/bin/agent/local/AgentPluginFactory.d.ts.map +1 -0
  12. package/bin/agent/local/AgentPluginFactory.js +53 -0
  13. package/bin/agent/local/AgentPluginFactory.js.map +1 -0
  14. package/bin/{runtime/host/AgentHostRuntime.d.ts → agent/local/AgentRuntimeAssembly.d.ts} +2 -2
  15. package/bin/agent/local/AgentRuntimeAssembly.d.ts.map +1 -0
  16. package/bin/{runtime/host/AgentHostRuntime.js → agent/local/AgentRuntimeAssembly.js} +2 -2
  17. package/bin/agent/local/AgentRuntimeAssembly.js.map +1 -0
  18. package/bin/agent/local/AgentRuntimeFactory.d.ts +72 -0
  19. package/bin/agent/local/AgentRuntimeFactory.d.ts.map +1 -0
  20. package/bin/agent/local/AgentRuntimeFactory.js +94 -0
  21. package/bin/agent/local/AgentRuntimeFactory.js.map +1 -0
  22. package/bin/{runtime/host → agent/local}/ProjectSetup.d.ts +1 -1
  23. package/bin/agent/local/ProjectSetup.d.ts.map +1 -0
  24. package/bin/{runtime/host → agent/local}/ProjectSetup.js +1 -1
  25. package/bin/agent/local/ProjectSetup.js.map +1 -0
  26. package/bin/agent/{RemoteAgent.d.ts → remote/RemoteAgent.d.ts} +3 -3
  27. package/bin/agent/remote/RemoteAgent.d.ts.map +1 -0
  28. package/bin/agent/remote/RemoteAgent.js +58 -0
  29. package/bin/agent/remote/RemoteAgent.js.map +1 -0
  30. package/bin/agent/remote/RemoteSession.d.ts +62 -0
  31. package/bin/agent/remote/RemoteSession.d.ts.map +1 -0
  32. package/bin/agent/remote/RemoteSession.js +225 -0
  33. package/bin/agent/remote/RemoteSession.js.map +1 -0
  34. package/bin/agent/remote/RemoteTransport.d.ts +52 -0
  35. package/bin/agent/remote/RemoteTransport.d.ts.map +1 -0
  36. package/bin/agent/remote/RemoteTransport.js +9 -0
  37. package/bin/agent/remote/RemoteTransport.js.map +1 -0
  38. package/bin/agent/remote/TransportFactory.d.ts +13 -0
  39. package/bin/agent/remote/TransportFactory.d.ts.map +1 -0
  40. package/bin/agent/remote/TransportFactory.js +22 -0
  41. package/bin/agent/remote/TransportFactory.js.map +1 -0
  42. package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts +35 -0
  43. package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts.map +1 -0
  44. package/bin/agent/remote/transports/HttpRemoteAgentTransport.js +259 -0
  45. package/bin/agent/remote/transports/HttpRemoteAgentTransport.js.map +1 -0
  46. package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts +34 -0
  47. package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts.map +1 -0
  48. package/bin/agent/remote/transports/RpcRemoteAgentTransport.js +66 -0
  49. package/bin/agent/remote/transports/RpcRemoteAgentTransport.js.map +1 -0
  50. package/bin/config/AgentInitializer.d.ts +1 -1
  51. package/bin/config/AgentInitializer.js +1 -1
  52. package/bin/executor/Executor.d.ts +4 -0
  53. package/bin/executor/Executor.d.ts.map +1 -1
  54. package/bin/executor/Executor.js +52 -35
  55. package/bin/executor/Executor.js.map +1 -1
  56. package/bin/executor/composer/history/SessionHistoryWriter.js +2 -2
  57. package/bin/executor/composer/history/SessionHistoryWriter.js.map +1 -1
  58. package/bin/executor/composer/system/default/assets/core.prompt.d.ts +1 -1
  59. package/bin/executor/composer/system/default/assets/core.prompt.d.ts.map +1 -1
  60. package/bin/executor/composer/system/default/assets/core.prompt.js +1 -1
  61. package/bin/executor/composer/system/default/assets/core.prompt.js.map +1 -1
  62. package/bin/executor/messages/AssistantResultPersistence.d.ts +3 -3
  63. package/bin/executor/messages/AssistantResultPersistence.d.ts.map +1 -1
  64. package/bin/executor/messages/AssistantResultPersistence.js +2 -6
  65. package/bin/executor/messages/AssistantResultPersistence.js.map +1 -1
  66. package/bin/executor/messages/SessionStepEventMapper.d.ts +7 -8
  67. package/bin/executor/messages/SessionStepEventMapper.d.ts.map +1 -1
  68. package/bin/executor/messages/SessionStepEventMapper.js +55 -86
  69. package/bin/executor/messages/SessionStepEventMapper.js.map +1 -1
  70. package/bin/executor/messages/UserVisibleText.d.ts +2 -10
  71. package/bin/executor/messages/UserVisibleText.d.ts.map +1 -1
  72. package/bin/executor/messages/UserVisibleText.js +3 -16
  73. package/bin/executor/messages/UserVisibleText.js.map +1 -1
  74. package/bin/executor/store/history/SessionHistoryStore.d.ts +12 -0
  75. package/bin/executor/store/history/SessionHistoryStore.d.ts.map +1 -1
  76. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts +12 -0
  77. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts.map +1 -1
  78. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js +145 -8
  79. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js.map +1 -1
  80. package/bin/executor/tools/shell/ShellToolFormatting.d.ts +1 -10
  81. package/bin/executor/tools/shell/ShellToolFormatting.d.ts.map +1 -1
  82. package/bin/executor/tools/shell/ShellToolFormatting.js +1 -39
  83. package/bin/executor/tools/shell/ShellToolFormatting.js.map +1 -1
  84. package/bin/executor/types/SessionHistoryPaths.d.ts +4 -0
  85. package/bin/executor/types/SessionHistoryPaths.d.ts.map +1 -1
  86. package/bin/index.d.ts +5 -5
  87. package/bin/index.d.ts.map +1 -1
  88. package/bin/index.js +3 -3
  89. package/bin/index.js.map +1 -1
  90. package/bin/plugin/core/PluginCommandRequest.d.ts +1 -1
  91. package/bin/plugin/core/PluginCommandRequest.js +1 -1
  92. package/bin/plugin/core/PluginLocalExecution.js +1 -1
  93. package/bin/plugin/core/PluginLocalExecution.js.map +1 -1
  94. package/bin/plugin/core/ProjectConfigStore.d.ts +3 -2
  95. package/bin/plugin/core/ProjectConfigStore.d.ts.map +1 -1
  96. package/bin/plugin/core/ProjectConfigStore.js +3 -4
  97. package/bin/plugin/core/ProjectConfigStore.js.map +1 -1
  98. package/bin/plugin/types/Plugin.d.ts +10 -842
  99. package/bin/plugin/types/Plugin.d.ts.map +1 -1
  100. package/bin/plugin/types/Plugin.js +3 -4
  101. package/bin/plugin/types/Plugin.js.map +1 -1
  102. package/bin/plugin/types/PluginApi.d.ts +1 -1
  103. package/bin/plugin/types/PluginApi.js +1 -1
  104. package/bin/plugin/types/PluginState.d.ts +1 -1
  105. package/bin/plugin/types/PluginState.d.ts.map +1 -1
  106. package/bin/rpc/Client.d.ts +2 -99
  107. package/bin/rpc/Client.d.ts.map +1 -1
  108. package/bin/rpc/Client.js +0 -46
  109. package/bin/rpc/Client.js.map +1 -1
  110. package/bin/rpc/Server.d.ts +5 -21
  111. package/bin/rpc/Server.d.ts.map +1 -1
  112. package/bin/rpc/Server.js +30 -315
  113. package/bin/rpc/Server.js.map +1 -1
  114. package/bin/rpc/server/InternalHandlers.d.ts +21 -0
  115. package/bin/rpc/server/InternalHandlers.d.ts.map +1 -0
  116. package/bin/rpc/server/InternalHandlers.js +190 -0
  117. package/bin/rpc/server/InternalHandlers.js.map +1 -0
  118. package/bin/rpc/server/RequestDispatcher.d.ts +27 -0
  119. package/bin/rpc/server/RequestDispatcher.d.ts.map +1 -0
  120. package/bin/rpc/server/RequestDispatcher.js +38 -0
  121. package/bin/rpc/server/RequestDispatcher.js.map +1 -0
  122. package/bin/rpc/server/SdkSessionHandlers.d.ts +25 -0
  123. package/bin/rpc/server/SdkSessionHandlers.d.ts.map +1 -0
  124. package/bin/rpc/server/SdkSessionHandlers.js +86 -0
  125. package/bin/rpc/server/SdkSessionHandlers.js.map +1 -0
  126. package/bin/rpc/server/ServerTypes.d.ts +59 -0
  127. package/bin/rpc/server/ServerTypes.d.ts.map +1 -0
  128. package/bin/rpc/server/ServerTypes.js +9 -0
  129. package/bin/rpc/server/ServerTypes.js.map +1 -0
  130. package/bin/{runtime/sandbox → sandbox}/MacOsSeatbeltSandbox.d.ts +1 -1
  131. package/bin/sandbox/MacOsSeatbeltSandbox.d.ts.map +1 -0
  132. package/bin/sandbox/MacOsSeatbeltSandbox.js.map +1 -0
  133. package/bin/{runtime/sandbox → sandbox}/SandboxConfigResolver.d.ts +2 -2
  134. package/bin/sandbox/SandboxConfigResolver.d.ts.map +1 -0
  135. package/bin/sandbox/SandboxConfigResolver.js.map +1 -0
  136. package/bin/{runtime/sandbox → sandbox}/SandboxRunner.d.ts +2 -2
  137. package/bin/sandbox/SandboxRunner.d.ts.map +1 -0
  138. package/bin/{runtime/sandbox → sandbox}/SandboxRunner.js +2 -2
  139. package/bin/sandbox/SandboxRunner.js.map +1 -0
  140. package/bin/sandbox/types/Sandbox.d.ts.map +1 -0
  141. package/bin/sandbox/types/Sandbox.js.map +1 -0
  142. package/bin/{runtime/sandbox → sandbox}/types/SandboxRuntime.d.ts +2 -2
  143. package/bin/sandbox/types/SandboxRuntime.d.ts.map +1 -0
  144. package/bin/sandbox/types/SandboxRuntime.js.map +1 -0
  145. package/bin/session/Session.d.ts.map +1 -1
  146. package/bin/session/Session.js +2 -1
  147. package/bin/session/Session.js.map +1 -1
  148. package/bin/session/browse/Browse.d.ts +1 -1
  149. package/bin/session/browse/Browse.d.ts.map +1 -1
  150. package/bin/session/browse/Browse.js +28 -13
  151. package/bin/session/browse/Browse.js.map +1 -1
  152. package/bin/session/index.d.ts +1 -1
  153. package/bin/session/index.d.ts.map +1 -1
  154. package/bin/session/index.js +1 -1
  155. package/bin/session/index.js.map +1 -1
  156. package/bin/session/storage/Paths.d.ts +9 -0
  157. package/bin/session/storage/Paths.d.ts.map +1 -1
  158. package/bin/session/storage/Paths.js +11 -0
  159. package/bin/session/storage/Paths.js.map +1 -1
  160. package/bin/types/agent/AgentOptions.d.ts +134 -0
  161. package/bin/types/agent/AgentOptions.d.ts.map +1 -0
  162. package/bin/types/agent/AgentOptions.js +9 -0
  163. package/bin/types/agent/AgentOptions.js.map +1 -0
  164. package/bin/types/{runtime/host/AgentHost.d.ts → agent/AgentRuntimeAssembly.d.ts} +4 -4
  165. package/bin/types/agent/AgentRuntimeAssembly.d.ts.map +1 -0
  166. package/bin/types/{runtime/host/AgentHost.js → agent/AgentRuntimeAssembly.js} +3 -3
  167. package/bin/types/agent/AgentRuntimeAssembly.js.map +1 -0
  168. package/bin/types/agent/AgentTypes.d.ts +8 -613
  169. package/bin/types/agent/AgentTypes.d.ts.map +1 -1
  170. package/bin/types/agent/AgentTypes.js +4 -4
  171. package/bin/types/agent/RemoteAgentOptions.d.ts +28 -0
  172. package/bin/types/agent/RemoteAgentOptions.d.ts.map +1 -0
  173. package/bin/types/agent/RemoteAgentOptions.js +9 -0
  174. package/bin/types/agent/RemoteAgentOptions.js.map +1 -0
  175. package/bin/types/agent/SessionActor.d.ts +60 -0
  176. package/bin/types/agent/SessionActor.d.ts.map +1 -0
  177. package/bin/types/agent/SessionActor.js +9 -0
  178. package/bin/types/agent/SessionActor.js.map +1 -0
  179. package/bin/types/agent/SessionTypes.d.ts +312 -0
  180. package/bin/types/agent/SessionTypes.d.ts.map +1 -0
  181. package/bin/types/agent/SessionTypes.js +9 -0
  182. package/bin/types/agent/SessionTypes.js.map +1 -0
  183. package/bin/types/config/DowncityConfig.d.ts +1 -1
  184. package/bin/types/config/DowncityConfig.d.ts.map +1 -1
  185. package/bin/types/{runtime/host → platform}/Store.d.ts +1 -1
  186. package/bin/types/platform/Store.d.ts.map +1 -0
  187. package/bin/types/{runtime/host → platform}/Store.js +1 -1
  188. package/bin/types/platform/Store.js.map +1 -0
  189. package/bin/types/plugin/PluginAction.d.ts +119 -0
  190. package/bin/types/plugin/PluginAction.d.ts.map +1 -0
  191. package/bin/types/plugin/PluginAction.js +9 -0
  192. package/bin/types/plugin/PluginAction.js.map +1 -0
  193. package/bin/types/plugin/PluginCommand.d.ts +80 -0
  194. package/bin/types/plugin/PluginCommand.d.ts.map +1 -0
  195. package/bin/types/plugin/PluginCommand.js +9 -0
  196. package/bin/types/plugin/PluginCommand.js.map +1 -0
  197. package/bin/types/plugin/PluginDefinition.d.ts +57 -0
  198. package/bin/types/plugin/PluginDefinition.d.ts.map +1 -0
  199. package/bin/types/plugin/PluginDefinition.js +9 -0
  200. package/bin/types/plugin/PluginDefinition.js.map +1 -0
  201. package/bin/types/plugin/PluginHttp.d.ts +34 -0
  202. package/bin/types/plugin/PluginHttp.d.ts.map +1 -0
  203. package/bin/types/plugin/PluginHttp.js +9 -0
  204. package/bin/types/plugin/PluginHttp.js.map +1 -0
  205. package/bin/types/plugin/PluginRuntime.d.ts +148 -0
  206. package/bin/types/plugin/PluginRuntime.d.ts.map +1 -0
  207. package/bin/types/plugin/PluginRuntime.js +9 -0
  208. package/bin/types/plugin/PluginRuntime.js.map +1 -0
  209. package/bin/types/plugin/PluginSetup.d.ts +133 -0
  210. package/bin/types/plugin/PluginSetup.d.ts.map +1 -0
  211. package/bin/types/plugin/PluginSetup.js +9 -0
  212. package/bin/types/plugin/PluginSetup.js.map +1 -0
  213. package/bin/types/plugin/PluginState.d.ts +69 -0
  214. package/bin/types/plugin/PluginState.d.ts.map +1 -0
  215. package/bin/types/plugin/PluginState.js +9 -0
  216. package/bin/types/plugin/PluginState.js.map +1 -0
  217. package/bin/types/rpc/RpcProtocol.d.ts +323 -0
  218. package/bin/types/rpc/RpcProtocol.d.ts.map +1 -0
  219. package/bin/types/rpc/RpcProtocol.js +10 -0
  220. package/bin/types/rpc/RpcProtocol.js.map +1 -0
  221. package/bin/types/runtime/agent/AgentContext.d.ts +1 -1
  222. package/bin/types/runtime/agent/AgentContext.d.ts.map +1 -1
  223. package/bin/types/runtime/agent/AgentRuntime.d.ts +1 -1
  224. package/bin/types/runtime/agent/AgentRuntime.d.ts.map +1 -1
  225. package/bin/types/runtime/platform/Platform.d.ts +7 -7
  226. package/bin/types/runtime/platform/PlatformGateway.d.ts +1 -1
  227. package/bin/types/runtime/platform/PlatformGateway.js +1 -1
  228. package/package.json +2 -2
  229. package/scripts/session-history-inflight.test.mjs +146 -0
  230. package/src/agent/{Agent.ts → local/Agent.ts} +50 -228
  231. package/src/agent/local/AgentInstructions.ts +68 -0
  232. package/src/agent/local/AgentPluginFactory.ts +83 -0
  233. package/src/{runtime/host/AgentHostRuntime.ts → agent/local/AgentRuntimeAssembly.ts} +2 -2
  234. package/src/agent/local/AgentRuntimeFactory.ts +173 -0
  235. package/src/{runtime/host → agent/local}/ProjectSetup.ts +1 -1
  236. package/src/agent/remote/RemoteAgent.ts +76 -0
  237. package/src/agent/remote/RemoteSession.ts +287 -0
  238. package/src/agent/remote/RemoteTransport.ts +71 -0
  239. package/src/agent/remote/TransportFactory.ts +29 -0
  240. package/src/agent/remote/transports/HttpRemoteAgentTransport.ts +347 -0
  241. package/src/agent/remote/transports/RpcRemoteAgentTransport.ts +107 -0
  242. package/src/config/AgentInitializer.ts +1 -1
  243. package/src/executor/Executor.ts +56 -37
  244. package/src/executor/composer/history/SessionHistoryWriter.ts +2 -2
  245. package/src/executor/composer/system/default/assets/core.prompt.ts +1 -1
  246. package/src/executor/composer/system/default/assets/core.prompt.ts.txt +1 -1
  247. package/src/executor/messages/AssistantResultPersistence.ts +4 -12
  248. package/src/executor/messages/SessionStepEventMapper.ts +59 -101
  249. package/src/executor/messages/UserVisibleText.ts +3 -18
  250. package/src/executor/store/history/SessionHistoryStore.ts +15 -0
  251. package/src/executor/store/history/jsonl/JsonlSessionHistoryStore.ts +164 -11
  252. package/src/executor/tools/shell/ShellToolFormatting.ts +1 -50
  253. package/src/executor/types/SessionHistoryPaths.ts +5 -0
  254. package/src/index.ts +5 -5
  255. package/src/plugin/core/PluginCommandRequest.ts +1 -1
  256. package/src/plugin/core/PluginLocalExecution.ts +1 -1
  257. package/src/plugin/core/ProjectConfigStore.ts +4 -4
  258. package/src/plugin/types/Plugin.ts +54 -913
  259. package/src/plugin/types/PluginApi.ts +1 -1
  260. package/src/plugin/types/PluginState.ts +1 -1
  261. package/src/rpc/Client.ts +16 -322
  262. package/src/rpc/Server.ts +39 -565
  263. package/src/rpc/server/InternalHandlers.ts +230 -0
  264. package/src/rpc/server/RequestDispatcher.ts +67 -0
  265. package/src/rpc/server/SdkSessionHandlers.ts +106 -0
  266. package/src/rpc/server/ServerTypes.ts +65 -0
  267. package/src/{runtime/sandbox → sandbox}/MacOsSeatbeltSandbox.ts +1 -1
  268. package/src/{runtime/sandbox → sandbox}/SandboxConfigResolver.ts +1 -1
  269. package/src/{runtime/sandbox → sandbox}/SandboxRunner.ts +3 -3
  270. package/src/{runtime/sandbox → sandbox}/types/SandboxRuntime.ts +2 -2
  271. package/src/session/Session.ts +6 -0
  272. package/src/session/browse/Browse.ts +29 -10
  273. package/src/session/index.ts +1 -0
  274. package/src/session/storage/Paths.ts +19 -0
  275. package/src/types/agent/AgentOptions.ts +147 -0
  276. package/src/types/{runtime/host/AgentHost.ts → agent/AgentRuntimeAssembly.ts} +2 -2
  277. package/src/types/agent/AgentTypes.ts +37 -709
  278. package/src/types/agent/RemoteAgentOptions.ts +29 -0
  279. package/src/types/agent/SessionActor.ts +88 -0
  280. package/src/types/agent/SessionTypes.ts +334 -0
  281. package/src/types/config/DowncityConfig.ts +1 -1
  282. package/src/types/{runtime/host → platform}/Store.ts +1 -1
  283. package/src/types/plugin/PluginAction.ts +133 -0
  284. package/src/types/plugin/PluginCommand.ts +89 -0
  285. package/src/types/plugin/PluginDefinition.ts +74 -0
  286. package/src/types/plugin/PluginHttp.ts +36 -0
  287. package/src/types/plugin/PluginRuntime.ts +169 -0
  288. package/src/types/plugin/PluginSetup.ts +138 -0
  289. package/src/types/plugin/PluginState.ts +82 -0
  290. package/src/types/rpc/RpcProtocol.ts +361 -0
  291. package/src/types/runtime/agent/AgentContext.ts +1 -1
  292. package/src/types/runtime/agent/AgentRuntime.ts +1 -1
  293. package/src/types/runtime/platform/Platform.ts +7 -7
  294. package/src/types/runtime/platform/PlatformGateway.ts +1 -1
  295. package/tsconfig.tsbuildinfo +1 -1
  296. package/bin/agent/Agent.d.ts.map +0 -1
  297. package/bin/agent/Agent.js.map +0 -1
  298. package/bin/agent/RemoteAgent.d.ts.map +0 -1
  299. package/bin/agent/RemoteAgent.js +0 -585
  300. package/bin/agent/RemoteAgent.js.map +0 -1
  301. package/bin/runtime/auth/AuthEnv.d.ts +0 -36
  302. package/bin/runtime/auth/AuthEnv.d.ts.map +0 -1
  303. package/bin/runtime/auth/AuthEnv.js +0 -54
  304. package/bin/runtime/auth/AuthEnv.js.map +0 -1
  305. package/bin/runtime/auth/CliAuthStateStore.d.ts +0 -29
  306. package/bin/runtime/auth/CliAuthStateStore.d.ts.map +0 -1
  307. package/bin/runtime/auth/CliAuthStateStore.js +0 -26
  308. package/bin/runtime/auth/CliAuthStateStore.js.map +0 -1
  309. package/bin/runtime/control/AuthControlService.d.ts +0 -34
  310. package/bin/runtime/control/AuthControlService.d.ts.map +0 -1
  311. package/bin/runtime/control/AuthControlService.js +0 -129
  312. package/bin/runtime/control/AuthControlService.js.map +0 -1
  313. package/bin/runtime/control/CommonHelpers.d.ts +0 -36
  314. package/bin/runtime/control/CommonHelpers.d.ts.map +0 -1
  315. package/bin/runtime/control/CommonHelpers.js +0 -63
  316. package/bin/runtime/control/CommonHelpers.js.map +0 -1
  317. package/bin/runtime/control/ExecuteBySession.d.ts +0 -30
  318. package/bin/runtime/control/ExecuteBySession.d.ts.map +0 -1
  319. package/bin/runtime/control/ExecuteBySession.js +0 -41
  320. package/bin/runtime/control/ExecuteBySession.js.map +0 -1
  321. package/bin/runtime/control/ExecuteInput.d.ts +0 -18
  322. package/bin/runtime/control/ExecuteInput.d.ts.map +0 -1
  323. package/bin/runtime/control/ExecuteInput.js +0 -201
  324. package/bin/runtime/control/ExecuteInput.js.map +0 -1
  325. package/bin/runtime/control/Helpers.d.ts +0 -13
  326. package/bin/runtime/control/Helpers.d.ts.map +0 -1
  327. package/bin/runtime/control/Helpers.js +0 -13
  328. package/bin/runtime/control/Helpers.js.map +0 -1
  329. package/bin/runtime/control/MessageTimeline.d.ts +0 -22
  330. package/bin/runtime/control/MessageTimeline.d.ts.map +0 -1
  331. package/bin/runtime/control/MessageTimeline.js +0 -226
  332. package/bin/runtime/control/MessageTimeline.js.map +0 -1
  333. package/bin/runtime/control/SessionSummaryStore.d.ts +0 -20
  334. package/bin/runtime/control/SessionSummaryStore.d.ts.map +0 -1
  335. package/bin/runtime/control/SessionSummaryStore.js +0 -50
  336. package/bin/runtime/control/SessionSummaryStore.js.map +0 -1
  337. package/bin/runtime/control/TaskStore.d.ts +0 -33
  338. package/bin/runtime/control/TaskStore.d.ts.map +0 -1
  339. package/bin/runtime/control/TaskStore.js +0 -175
  340. package/bin/runtime/control/TaskStore.js.map +0 -1
  341. package/bin/runtime/control/types/AuthControl.d.ts +0 -30
  342. package/bin/runtime/control/types/AuthControl.d.ts.map +0 -1
  343. package/bin/runtime/control/types/AuthControl.js +0 -9
  344. package/bin/runtime/control/types/AuthControl.js.map +0 -1
  345. package/bin/runtime/control/types/ControlSessionExecute.d.ts +0 -85
  346. package/bin/runtime/control/types/ControlSessionExecute.d.ts.map +0 -1
  347. package/bin/runtime/control/types/ControlSessionExecute.js +0 -9
  348. package/bin/runtime/control/types/ControlSessionExecute.js.map +0 -1
  349. package/bin/runtime/control/types/ControlViewData.d.ts +0 -320
  350. package/bin/runtime/control/types/ControlViewData.d.ts.map +0 -1
  351. package/bin/runtime/control/types/ControlViewData.js +0 -9
  352. package/bin/runtime/control/types/ControlViewData.js.map +0 -1
  353. package/bin/runtime/host/AgentHostRuntime.d.ts.map +0 -1
  354. package/bin/runtime/host/AgentHostRuntime.js.map +0 -1
  355. package/bin/runtime/host/ProjectSetup.d.ts.map +0 -1
  356. package/bin/runtime/host/ProjectSetup.js.map +0 -1
  357. package/bin/runtime/sandbox/MacOsSeatbeltSandbox.d.ts.map +0 -1
  358. package/bin/runtime/sandbox/MacOsSeatbeltSandbox.js.map +0 -1
  359. package/bin/runtime/sandbox/SandboxConfigResolver.d.ts.map +0 -1
  360. package/bin/runtime/sandbox/SandboxConfigResolver.js.map +0 -1
  361. package/bin/runtime/sandbox/SandboxRunner.d.ts.map +0 -1
  362. package/bin/runtime/sandbox/SandboxRunner.js.map +0 -1
  363. package/bin/runtime/sandbox/types/Sandbox.d.ts.map +0 -1
  364. package/bin/runtime/sandbox/types/Sandbox.js.map +0 -1
  365. package/bin/runtime/sandbox/types/SandboxRuntime.d.ts.map +0 -1
  366. package/bin/runtime/sandbox/types/SandboxRuntime.js.map +0 -1
  367. package/bin/types/runtime/host/AgentHost.d.ts.map +0 -1
  368. package/bin/types/runtime/host/AgentHost.js.map +0 -1
  369. package/bin/types/runtime/host/Store.d.ts.map +0 -1
  370. package/bin/types/runtime/host/Store.js.map +0 -1
  371. package/src/agent/RemoteAgent.ts +0 -834
  372. package/src/runtime/auth/AuthEnv.ts +0 -62
  373. package/src/runtime/auth/CliAuthStateStore.ts +0 -46
  374. package/src/runtime/control/AuthControlService.ts +0 -169
  375. package/src/runtime/control/CommonHelpers.ts +0 -69
  376. package/src/runtime/control/ExecuteBySession.ts +0 -52
  377. package/src/runtime/control/ExecuteInput.ts +0 -236
  378. package/src/runtime/control/Helpers.ts +0 -22
  379. package/src/runtime/control/MessageTimeline.ts +0 -269
  380. package/src/runtime/control/SessionSummaryStore.ts +0 -72
  381. package/src/runtime/control/TaskStore.ts +0 -242
  382. package/src/runtime/control/types/AuthControl.ts +0 -34
  383. package/src/runtime/control/types/ControlSessionExecute.ts +0 -99
  384. package/src/runtime/control/types/ControlViewData.ts +0 -392
  385. /package/bin/{runtime/sandbox → sandbox}/MacOsSeatbeltSandbox.js +0 -0
  386. /package/bin/{runtime/sandbox → sandbox}/SandboxConfigResolver.js +0 -0
  387. /package/bin/{runtime/sandbox → sandbox}/types/Sandbox.d.ts +0 -0
  388. /package/bin/{runtime/sandbox → sandbox}/types/Sandbox.js +0 -0
  389. /package/bin/{runtime/sandbox → sandbox}/types/SandboxRuntime.js +0 -0
  390. /package/src/{runtime/sandbox → sandbox}/types/Sandbox.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Agent 本地入口与实例装配中心。
2
+ * Agent local:本地入口与实例装配中心。
3
3
  *
4
4
  * 职责说明(中文)
5
5
  * - 对外暴露 `Agent` 这一唯一的本地实例类。
@@ -15,18 +15,10 @@ import fs from "fs-extra";
15
15
  import { nanoid } from "nanoid";
16
16
  import type { Tool } from "ai";
17
17
  import type { BasePlugin } from "@/plugin/core/BasePlugin.js";
18
- import type {
19
- AgentContext,
20
- SessionPort,
21
- } from "@/types/runtime/agent/AgentContext.js";
18
+ import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
22
19
  import type { AgentRuntime } from "@/types/runtime/agent/AgentRuntime.js";
23
20
  import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
24
- import type { JsonValue } from "@/types/common/Json.js";
25
- import type {
26
- PluginAvailability,
27
- PluginPort,
28
- PluginView,
29
- } from "@/plugin/types/Plugin.js";
21
+ import type { PluginPort } from "@/plugin/types/Plugin.js";
30
22
  import type {
31
23
  AgentSession,
32
24
  AgentCreateSessionInput,
@@ -44,17 +36,11 @@ import type {
44
36
  import type { AgentModel } from "@/model/CityModelAdapter.js";
45
37
  import { Logger } from "@/utils/logger/Logger.js";
46
38
  import { Session } from "@/session/Session.js";
47
- import { DEFAULT_SHIP_PROMPTS } from "@executor/composer/system/default/SystemDomain.js";
48
39
  import {
49
40
  getSdkAgentSessionDirPath,
50
41
  listAgentSessionSummaryPage,
51
42
  } from "@/session/index.js";
52
- import {
53
- createAgentPathRuntime,
54
- createAgentPluginConfigRuntime,
55
- } from "@/runtime/host/AgentHostRuntime.js";
56
43
  import { loadDowncityConfig, resolveAgentEnv } from "@/config/Config.js";
57
- import { HookRegistry } from "@/plugin/core/HookRegistry.js";
58
44
  import { PluginRegistry } from "@/plugin/core/PluginRegistry.js";
59
45
  import { isPluginEnabled } from "@/plugin/core/Activation.js";
60
46
  import { setShellToolRuntime } from "@executor/tools/shell/ShellToolDefinition.js";
@@ -62,52 +48,19 @@ import { startAllPlugins, stopAllPlugins } from "@/plugin/core/Manager.js";
62
48
  import type { ActionScheduleRuntimeHandle } from "@/plugin/core/ActionScheduleRuntime.js";
63
49
  import { startActionScheduleRuntime } from "@/plugin/core/ActionScheduleRuntime.js";
64
50
  import { startRpcServer } from "@/rpc/Server.js";
65
-
66
- function createFallbackSdkConfig(agentId: string): DowncityConfig {
67
- return {
68
- id: agentId,
69
- version: "0.0.0",
70
- } as DowncityConfig;
71
- }
72
-
73
- function normalizeInstructionInput(input: string | string[] | undefined): string[] {
74
- const items = Array.isArray(input)
75
- ? input
76
- : typeof input === "string"
77
- ? [input]
78
- : [];
79
- return items
80
- .map((item) => String(item || "").trim())
81
- .filter((item) => item.length > 0);
82
- }
83
-
84
- function createCoreInstructionContent(projectRoot: string): string {
85
- const currentYear = String(new Date().getFullYear());
86
- return DEFAULT_SHIP_PROMPTS
87
- .replaceAll("{{project_path}}", projectRoot)
88
- .replaceAll("{{project_root}}", projectRoot)
89
- .replaceAll("{{current_year}}", currentYear);
90
- }
91
-
92
- function createInstructionSystemBlocks(
93
- instruction: string[],
94
- projectRoot: string,
95
- ): AgentSessionSystemBlock[] {
96
- if (instruction.length === 0) {
97
- return [
98
- {
99
- source: "core",
100
- name: "default",
101
- content: createCoreInstructionContent(projectRoot),
102
- },
103
- ];
104
- }
105
- return instruction.map((content, index) => ({
106
- source: "instruction" as const,
107
- name: instruction.length === 1 ? "agent" : `agent:${index + 1}`,
108
- content,
109
- }));
110
- }
51
+ import {
52
+ createFallbackSdkConfig,
53
+ createInstructionSystemBlocks,
54
+ normalizeInstructionInput,
55
+ } from "@/agent/local/AgentInstructions.js";
56
+ import {
57
+ createAgentPluginPort,
58
+ createAgentPluginRegistry,
59
+ } from "@/agent/local/AgentPluginFactory.js";
60
+ import {
61
+ createAgentContext,
62
+ createAgentRuntime,
63
+ } from "@/agent/local/AgentRuntimeFactory.js";
111
64
 
112
65
  /**
113
66
  * SDK 本地 Agent。
@@ -156,13 +109,40 @@ export class Agent {
156
109
  this.defaultModel = options.model;
157
110
  this.config = this.loadConfig();
158
111
  this.pluginInstances = new Map<string, BasePlugin>();
159
- this.runtime = this.createRuntime();
112
+ this.runtime = createAgentRuntime({
113
+ agent_id: this.id,
114
+ project_root: this.path,
115
+ logger: this.logger,
116
+ config: this.config,
117
+ env: this.env,
118
+ systems: this.instruction,
119
+ plugin_instances: this.pluginInstances,
120
+ get_session_port: (session_id) =>
121
+ this.getOrCreateSession(session_id).getRuntimePort(),
122
+ list_cached_sessions: () => [...this.sessionsById.values()],
123
+ });
160
124
  this.registerPlugins(options.plugins || []);
161
- this.pluginRegistry = this.createPluginRegistry([
162
- ...this.pluginInstances.values(),
163
- ]);
164
- this.plugins = this.createPluginPort();
165
- this.agentContext = this.createAgentContext();
125
+ this.pluginRegistry = createAgentPluginRegistry({
126
+ plugins: [...this.pluginInstances.values()],
127
+ get_context: () => this.agentContext,
128
+ });
129
+ this.plugins = createAgentPluginPort(this.pluginRegistry);
130
+ this.agentContext = createAgentContext({
131
+ runtime: this.runtime,
132
+ project_root: this.path,
133
+ logger: this.logger,
134
+ config: this.config,
135
+ env: this.env,
136
+ systems: this.instruction,
137
+ plugin_instances: this.pluginInstances,
138
+ plugins: this.plugins,
139
+ get_session_port: (session_id) =>
140
+ this.getOrCreateSession(session_id).getRuntimePort(),
141
+ resolve_session_model: async (session_id) => {
142
+ const session = await this.getSession(session_id);
143
+ return session.config.model;
144
+ },
145
+ });
166
146
  setShellToolRuntime(this.agentContext.invoke);
167
147
 
168
148
  this.sessionCollection = {
@@ -333,7 +313,7 @@ export class Agent {
333
313
  * 返回当前 agent runtime。
334
314
  *
335
315
  * 关键点(中文)
336
- * - 供宿主在 agent 外部装配 transport(例如 city HTTP gateway)时复用。
316
+ * - 供宿主在 agent 外部装配 transport(例如 Town HTTP gateway)时复用。
337
317
  * - 不暴露启动语义,只暴露运行时访问口。
338
318
  */
339
319
  getRuntime(): AgentRuntime {
@@ -489,61 +469,6 @@ export class Agent {
489
469
  }
490
470
  }
491
471
 
492
- /**
493
- * 创建 plugin 注册表。
494
- *
495
- * 关键点(中文)
496
- * - registry 本身不直接持有静态上下文,而是通过 resolver 延迟读取当前 `agentContext`。
497
- * - 这样 hook 调度与 availability 判断都能复用同一份上下文视图。
498
- */
499
- private createPluginRegistry(input: BasePlugin[]): PluginRegistry {
500
- let pluginRegistryRef: PluginRegistry | null = null;
501
- const hookRegistry = new HookRegistry({
502
- contextResolver: () => this.agentContext,
503
- pluginEnabledChecker: (pluginName) => {
504
- const plugin = pluginRegistryRef?.get(pluginName);
505
- return plugin
506
- ? isPluginEnabled({ plugin, context: this.agentContext })
507
- : false;
508
- },
509
- });
510
- const registry = new PluginRegistry({
511
- contextResolver: () => this.agentContext,
512
- hookRegistry,
513
- });
514
- pluginRegistryRef = registry;
515
-
516
- for (const plugin of input) {
517
- registry.register(plugin);
518
- }
519
- return registry;
520
- }
521
-
522
- /**
523
- * 创建对外暴露的 plugin 调用门面。
524
- */
525
- private createPluginPort(): PluginPort {
526
- return {
527
- list: (): PluginView[] => this.pluginRegistry.list(),
528
- availability: async (pluginName: string): Promise<PluginAvailability> =>
529
- await this.pluginRegistry.availability(pluginName),
530
- runAction: async (params) => await this.pluginRegistry.runAction(params),
531
- pipeline: async <T>(pointName: string, value: T): Promise<T> =>
532
- await this.pluginRegistry.pipeline(pointName, value),
533
- guard: async <T>(pointName: string, value: T): Promise<void> => {
534
- await this.pluginRegistry.guard(pointName, value);
535
- },
536
- effect: async <T>(pointName: string, value: T): Promise<void> => {
537
- await this.pluginRegistry.effect(pointName, value);
538
- },
539
- resolve: async <TInput, TOutput>(
540
- pointName: string,
541
- value: TInput,
542
- ): Promise<TOutput> =>
543
- await this.pluginRegistry.resolve<TInput, TOutput>(pointName, value),
544
- };
545
- }
546
-
547
472
  /**
548
473
  * 读取当前 agent 静态 instruction blocks。
549
474
  */
@@ -582,109 +507,6 @@ export class Agent {
582
507
  return out;
583
508
  }
584
509
 
585
- /**
586
- * 创建实例级 runtime 视图。
587
- *
588
- * 关键点(中文)
589
- * - runtime 描述的是当前 agent 实例持有的长期状态。
590
- * - 其他 server / plugin / transport 都通过这个视图读取统一状态。
591
- */
592
- private createRuntime(): AgentRuntime {
593
- const runtime = {
594
- cwd: this.path,
595
- rootPath: this.path,
596
- logger: this.logger,
597
- config: this.config,
598
- env: this.env,
599
- systems: this.instruction,
600
- paths: createAgentPathRuntime(this.path, this.id),
601
- pluginConfig: createAgentPluginConfigRuntime(this.path),
602
- getSession: (sessionId: string): SessionPort =>
603
- this.getOrCreateSession(sessionId).getRuntimePort(),
604
- listExecutingSessionIds: () =>
605
- [...this.sessionsById.values()]
606
- .filter((session) => session.isExecuting())
607
- .map((session) => session.id),
608
- getExecutingSessionCount: () =>
609
- [...this.sessionsById.values()].filter((session) => session.isExecuting()).length,
610
- pluginInstances: this.pluginInstances,
611
- } satisfies AgentRuntime;
612
- return runtime;
613
- }
614
-
615
- /**
616
- * 创建统一执行上下文。
617
- *
618
- * 关键点(中文)
619
- * - `AgentContext` 是执行期能力视图,不是状态实体本身。
620
- * - plugin runtime、chat runtime、shell tool 都通过这里消费能力。
621
- */
622
- private createAgentContext(): AgentContext {
623
- let context!: AgentContext;
624
- context = {
625
- agent: this.runtime,
626
- cwd: this.path,
627
- rootPath: this.path,
628
- logger: this.logger,
629
- config: this.config,
630
- env: this.env,
631
- systems: this.instruction,
632
- paths: this.runtime.paths,
633
- pluginConfig: this.runtime.pluginConfig,
634
- session: {
635
- get: (sessionId) => this.getOrCreateSession(sessionId).getRuntimePort(),
636
- listExecutingSessionIds: () => this.runtime.listExecutingSessionIds(),
637
- getExecutingSessionCount: () => this.runtime.getExecutingSessionCount(),
638
- resolveModel: async (sessionId) => {
639
- const session = await this.getSession(sessionId);
640
- return session.config.model;
641
- },
642
- },
643
- invoke: {
644
- invoke: async (params: {
645
- plugin: string;
646
- action: string;
647
- payload?: JsonValue;
648
- }) => {
649
- const pluginName = String(params.plugin || "").trim();
650
- const actionName = String(params.action || "").trim();
651
- const plugin = this.pluginInstances.get(pluginName);
652
- if (!plugin) {
653
- return {
654
- success: false,
655
- error: `Unknown plugin: ${pluginName}`,
656
- };
657
- }
658
- const action = plugin.actions[actionName];
659
- if (!action) {
660
- return {
661
- success: false,
662
- error: `Unknown action: ${pluginName}.${actionName}`,
663
- };
664
- }
665
- const result = await action.execute({
666
- context,
667
- payload: params.payload ?? null,
668
- pluginName,
669
- actionName,
670
- });
671
- if (!result.success) {
672
- return {
673
- success: false,
674
- ...(result.error ? { error: result.error } : {}),
675
- };
676
- }
677
- return {
678
- success: true,
679
- ...(result.data !== undefined ? { data: result.data } : {}),
680
- };
681
- },
682
- },
683
- plugins: this.plugins,
684
- };
685
- return context;
686
- }
687
-
688
510
  /**
689
511
  * 获取或创建一个本地 Session 实例。
690
512
  *
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Agent instruction 组装工具。
3
+ *
4
+ * 关键点(中文)
5
+ * - 这里只处理静态 instruction 与默认 core prompt。
6
+ * - 不读取 session、plugin 或 runtime 状态,保持为纯函数。
7
+ */
8
+
9
+ import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
10
+ import type { AgentSessionSystemBlock } from "@/types/agent/AgentTypes.js";
11
+ import { DEFAULT_SHIP_PROMPTS } from "@executor/composer/system/default/SystemDomain.js";
12
+
13
+ /**
14
+ * 创建 SDK 场景的最小 fallback 配置。
15
+ */
16
+ export function createFallbackSdkConfig(agent_id: string): DowncityConfig {
17
+ return {
18
+ id: agent_id,
19
+ version: "0.0.0",
20
+ } as DowncityConfig;
21
+ }
22
+
23
+ /**
24
+ * 归一化调用方传入的静态 instruction。
25
+ */
26
+ export function normalizeInstructionInput(
27
+ input: string | string[] | undefined,
28
+ ): string[] {
29
+ const items = Array.isArray(input)
30
+ ? input
31
+ : typeof input === "string"
32
+ ? [input]
33
+ : [];
34
+ return items
35
+ .map((item) => String(item || "").trim())
36
+ .filter((item) => item.length > 0);
37
+ }
38
+
39
+ function createCoreInstructionContent(project_root: string): string {
40
+ const current_year = String(new Date().getFullYear());
41
+ return DEFAULT_SHIP_PROMPTS
42
+ .replaceAll("{{project_path}}", project_root)
43
+ .replaceAll("{{project_root}}", project_root)
44
+ .replaceAll("{{current_year}}", current_year);
45
+ }
46
+
47
+ /**
48
+ * 构造进入 session system prompt 的 instruction block。
49
+ */
50
+ export function createInstructionSystemBlocks(
51
+ instruction: string[],
52
+ project_root: string,
53
+ ): AgentSessionSystemBlock[] {
54
+ if (instruction.length === 0) {
55
+ return [
56
+ {
57
+ source: "core",
58
+ name: "default",
59
+ content: createCoreInstructionContent(project_root),
60
+ },
61
+ ];
62
+ }
63
+ return instruction.map((content, index) => ({
64
+ source: "instruction" as const,
65
+ name: instruction.length === 1 ? "agent" : `agent:${index + 1}`,
66
+ content,
67
+ }));
68
+ }
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Agent plugin 装配工厂。
3
+ *
4
+ * 关键点(中文)
5
+ * - 这里只负责把 plugin 实例装配成 registry 与对外 port。
6
+ * - Agent 仍然持有长期状态;这里不创建新的运行时层级。
7
+ */
8
+
9
+ import type { BasePlugin } from "@/plugin/core/BasePlugin.js";
10
+ import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
11
+ import type {
12
+ PluginAvailability,
13
+ PluginPort,
14
+ PluginView,
15
+ } from "@/plugin/types/Plugin.js";
16
+ import { HookRegistry } from "@/plugin/core/HookRegistry.js";
17
+ import { PluginRegistry } from "@/plugin/core/PluginRegistry.js";
18
+ import { isPluginEnabled } from "@/plugin/core/Activation.js";
19
+
20
+ /**
21
+ * 创建 plugin registry 的参数。
22
+ */
23
+ export interface CreateAgentPluginRegistryOptions {
24
+ /** 当前 agent 显式注册的 plugin 实例。 */
25
+ plugins: BasePlugin[];
26
+ /** 延迟读取当前 AgentContext。 */
27
+ get_context: () => AgentContext;
28
+ }
29
+
30
+ /**
31
+ * 创建 plugin 注册表。
32
+ */
33
+ export function createAgentPluginRegistry(
34
+ options: CreateAgentPluginRegistryOptions,
35
+ ): PluginRegistry {
36
+ let plugin_registry_ref: PluginRegistry | null = null;
37
+ const hook_registry = new HookRegistry({
38
+ contextResolver: options.get_context,
39
+ pluginEnabledChecker: (plugin_name) => {
40
+ const plugin = plugin_registry_ref?.get(plugin_name);
41
+ return plugin
42
+ ? isPluginEnabled({ plugin, context: options.get_context() })
43
+ : false;
44
+ },
45
+ });
46
+ const registry = new PluginRegistry({
47
+ contextResolver: options.get_context,
48
+ hookRegistry: hook_registry,
49
+ });
50
+ plugin_registry_ref = registry;
51
+
52
+ for (const plugin of options.plugins) {
53
+ registry.register(plugin);
54
+ }
55
+ return registry;
56
+ }
57
+
58
+ /**
59
+ * 创建对外暴露的 plugin 调用门面。
60
+ */
61
+ export function createAgentPluginPort(
62
+ plugin_registry: PluginRegistry,
63
+ ): PluginPort {
64
+ return {
65
+ list: (): PluginView[] => plugin_registry.list(),
66
+ availability: async (plugin_name: string): Promise<PluginAvailability> =>
67
+ await plugin_registry.availability(plugin_name),
68
+ runAction: async (params) => await plugin_registry.runAction(params),
69
+ pipeline: async <T>(point_name: string, value: T): Promise<T> =>
70
+ await plugin_registry.pipeline(point_name, value),
71
+ guard: async <T>(point_name: string, value: T): Promise<void> => {
72
+ await plugin_registry.guard(point_name, value);
73
+ },
74
+ effect: async <T>(point_name: string, value: T): Promise<void> => {
75
+ await plugin_registry.effect(point_name, value);
76
+ },
77
+ resolve: async <TInput, TOutput>(
78
+ point_name: string,
79
+ value: TInput,
80
+ ): Promise<TOutput> =>
81
+ await plugin_registry.resolve<TInput, TOutput>(point_name, value),
82
+ };
83
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * AgentHostRuntime:装配 AgentRuntime 宿主能力。
2
+ * AgentRuntimeAssembly:装配本地 AgentRuntime 能力。
3
3
  *
4
4
  * 关键点(中文)
5
5
  * - agent runtime 负责创建这些宿主能力对象,再注入到 AgentRuntime。
@@ -22,7 +22,7 @@ import { persistProjectPluginConfig } from "@/plugin/core/ProjectConfigStore.js"
22
22
  import type {
23
23
  AgentPathRuntime,
24
24
  AgentPluginConfigRuntime,
25
- } from "@/types/runtime/host/AgentHost.js";
25
+ } from "@/types/agent/AgentRuntimeAssembly.js";
26
26
  import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
27
27
 
28
28
  /**
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Agent runtime / context 装配工厂。
3
+ *
4
+ * 关键点(中文)
5
+ * - 这里只创建长期 runtime 视图与执行期 context 视图。
6
+ * - Agent 仍然持有 session/plugin 状态;这里通过函数参数读取状态。
7
+ */
8
+
9
+ import type { BasePlugin } from "@/plugin/core/BasePlugin.js";
10
+ import type { Logger } from "@/utils/logger/Logger.js";
11
+ import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
12
+ import type { LanguageModel } from "ai";
13
+ import type { JsonValue } from "@/types/common/Json.js";
14
+ import type {
15
+ AgentContext,
16
+ SessionPort,
17
+ } from "@/types/runtime/agent/AgentContext.js";
18
+ import type { AgentRuntime } from "@/types/runtime/agent/AgentRuntime.js";
19
+ import type { PluginPort } from "@/plugin/types/Plugin.js";
20
+ import type { Session } from "@/session/Session.js";
21
+ import {
22
+ createAgentPathRuntime,
23
+ createAgentPluginConfigRuntime,
24
+ } from "@/agent/local/AgentRuntimeAssembly.js";
25
+
26
+ /**
27
+ * 创建 AgentRuntime 的参数。
28
+ */
29
+ export interface CreateAgentRuntimeOptions {
30
+ /** 当前 agent id。 */
31
+ agent_id: string;
32
+ /** 当前项目根目录。 */
33
+ project_root: string;
34
+ /** 统一日志器。 */
35
+ logger: Logger;
36
+ /** 当前解析后的配置。 */
37
+ config: DowncityConfig;
38
+ /** 当前环境变量快照。 */
39
+ env: Record<string, string>;
40
+ /** 当前静态 system 文本集合。 */
41
+ systems: string[];
42
+ /** 当前 plugin 实例集合。 */
43
+ plugin_instances: Map<string, BasePlugin>;
44
+ /** 获取或创建 session runtime port。 */
45
+ get_session_port: (session_id: string) => SessionPort;
46
+ /** 读取当前已缓存的 session 实例。 */
47
+ list_cached_sessions: () => Session[];
48
+ }
49
+
50
+ /**
51
+ * 创建 AgentContext 的参数。
52
+ */
53
+ export interface CreateAgentContextOptions {
54
+ /** 当前 AgentRuntime。 */
55
+ runtime: AgentRuntime;
56
+ /** 当前项目根目录。 */
57
+ project_root: string;
58
+ /** 统一日志器。 */
59
+ logger: Logger;
60
+ /** 当前解析后的配置。 */
61
+ config: DowncityConfig;
62
+ /** 当前环境变量快照。 */
63
+ env: Record<string, string>;
64
+ /** 当前静态 system 文本集合。 */
65
+ systems: string[];
66
+ /** 当前 plugin 实例集合。 */
67
+ plugin_instances: Map<string, BasePlugin>;
68
+ /** 对外 plugin 调用端口。 */
69
+ plugins: PluginPort;
70
+ /** 获取或创建 session runtime port。 */
71
+ get_session_port: (session_id: string) => SessionPort;
72
+ /** 解析 session 当前绑定的模型实例。 */
73
+ resolve_session_model: (session_id: string) => Promise<LanguageModel | undefined>;
74
+ }
75
+
76
+ /**
77
+ * 创建实例级 runtime 视图。
78
+ */
79
+ export function createAgentRuntime(
80
+ options: CreateAgentRuntimeOptions,
81
+ ): AgentRuntime {
82
+ return {
83
+ cwd: options.project_root,
84
+ rootPath: options.project_root,
85
+ logger: options.logger,
86
+ config: options.config,
87
+ env: options.env,
88
+ systems: options.systems,
89
+ paths: createAgentPathRuntime(options.project_root, options.agent_id),
90
+ pluginConfig: createAgentPluginConfigRuntime(options.project_root),
91
+ getSession: (session_id: string): SessionPort =>
92
+ options.get_session_port(session_id),
93
+ listExecutingSessionIds: () =>
94
+ options
95
+ .list_cached_sessions()
96
+ .filter((session) => session.isExecuting())
97
+ .map((session) => session.id),
98
+ getExecutingSessionCount: () =>
99
+ options
100
+ .list_cached_sessions()
101
+ .filter((session) => session.isExecuting()).length,
102
+ pluginInstances: options.plugin_instances,
103
+ };
104
+ }
105
+
106
+ /**
107
+ * 创建统一执行上下文。
108
+ */
109
+ export function createAgentContext(
110
+ options: CreateAgentContextOptions,
111
+ ): AgentContext {
112
+ let context!: AgentContext;
113
+ context = {
114
+ agent: options.runtime,
115
+ cwd: options.project_root,
116
+ rootPath: options.project_root,
117
+ logger: options.logger,
118
+ config: options.config,
119
+ env: options.env,
120
+ systems: options.systems,
121
+ paths: options.runtime.paths,
122
+ pluginConfig: options.runtime.pluginConfig,
123
+ session: {
124
+ get: (session_id) => options.get_session_port(session_id),
125
+ listExecutingSessionIds: () => options.runtime.listExecutingSessionIds(),
126
+ getExecutingSessionCount: () => options.runtime.getExecutingSessionCount(),
127
+ resolveModel: async (session_id) =>
128
+ await options.resolve_session_model(session_id),
129
+ },
130
+ invoke: {
131
+ invoke: async (params: {
132
+ plugin: string;
133
+ action: string;
134
+ payload?: JsonValue;
135
+ }) => {
136
+ const plugin_name = String(params.plugin || "").trim();
137
+ const action_name = String(params.action || "").trim();
138
+ const plugin = options.plugin_instances.get(plugin_name);
139
+ if (!plugin) {
140
+ return {
141
+ success: false,
142
+ error: `Unknown plugin: ${plugin_name}`,
143
+ };
144
+ }
145
+ const action = plugin.actions[action_name];
146
+ if (!action) {
147
+ return {
148
+ success: false,
149
+ error: `Unknown action: ${plugin_name}.${action_name}`,
150
+ };
151
+ }
152
+ const result = await action.execute({
153
+ context,
154
+ payload: params.payload ?? null,
155
+ pluginName: plugin_name,
156
+ actionName: action_name,
157
+ });
158
+ if (!result.success) {
159
+ return {
160
+ success: false,
161
+ ...(result.error ? { error: result.error } : {}),
162
+ };
163
+ }
164
+ return {
165
+ success: true,
166
+ ...(result.data !== undefined ? { data: result.data } : {}),
167
+ };
168
+ },
169
+ },
170
+ plugins: options.plugins,
171
+ };
172
+ return context;
173
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * ProjectSetup:runtime 启动前项目结构准备模块。
2
+ * ProjectSetup:本地 Agent 启动前项目结构准备模块。
3
3
  *
4
4
  * 关键点(中文)
5
5
  * - 统一校验初始化必要文件(PROFILE.md / downcity.json)。