@downcity/agent 1.1.13 → 1.1.15

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 (545) hide show
  1. package/bin/config/Config.js +1 -1
  2. package/bin/config/Config.js.map +1 -1
  3. package/bin/config/Defaults.d.ts +13 -0
  4. package/bin/config/Defaults.d.ts.map +1 -0
  5. package/bin/config/{DowncityDefault.js → Defaults.js} +11 -1
  6. package/bin/config/Defaults.js.map +1 -0
  7. package/bin/{project/ProjectExecutionBinding.d.ts → config/ExecutionBinding.d.ts} +2 -2
  8. package/bin/config/ExecutionBinding.d.ts.map +1 -0
  9. package/bin/{project/ProjectExecutionBinding.js → config/ExecutionBinding.js} +2 -2
  10. package/bin/config/ExecutionBinding.js.map +1 -0
  11. package/bin/{runtime → core}/AgentContextTypes.d.ts +6 -6
  12. package/bin/core/AgentContextTypes.d.ts.map +1 -0
  13. package/bin/{runtime → core}/AgentContextTypes.js +2 -2
  14. package/bin/core/AgentContextTypes.js.map +1 -0
  15. package/bin/core/AgentCore.d.ts +87 -0
  16. package/bin/core/AgentCore.d.ts.map +1 -0
  17. package/bin/core/AgentCore.js +467 -0
  18. package/bin/core/AgentCore.js.map +1 -0
  19. package/bin/{runtime/AgentRuntimeTypes.d.ts → core/AgentCoreTypes.d.ts} +7 -7
  20. package/bin/core/AgentCoreTypes.d.ts.map +1 -0
  21. package/bin/core/AgentCoreTypes.js +10 -0
  22. package/bin/core/AgentCoreTypes.js.map +1 -0
  23. package/bin/host/daemon/ProjectSetup.d.ts.map +1 -1
  24. package/bin/host/daemon/ProjectSetup.js +1 -1
  25. package/bin/host/daemon/ProjectSetup.js.map +1 -1
  26. package/bin/host/runtime/PluginRuntime.d.ts +1 -1
  27. package/bin/host/runtime/PluginRuntime.d.ts.map +1 -1
  28. package/bin/index.d.ts +9 -11
  29. package/bin/index.d.ts.map +1 -1
  30. package/bin/index.js +5 -8
  31. package/bin/index.js.map +1 -1
  32. package/bin/model/CreateModel.js +1 -1
  33. package/bin/model/CreateModel.js.map +1 -1
  34. package/bin/plugin/builtins/asr/InboundAugment.d.ts +1 -1
  35. package/bin/plugin/builtins/asr/InboundAugment.d.ts.map +1 -1
  36. package/bin/plugin/builtins/auth/runtime/AuthorizationConfig.d.ts +1 -1
  37. package/bin/plugin/builtins/auth/runtime/AuthorizationConfig.d.ts.map +1 -1
  38. package/bin/plugin/builtins/auth/runtime/AuthorizationStore.d.ts +1 -1
  39. package/bin/plugin/builtins/auth/runtime/AuthorizationStore.d.ts.map +1 -1
  40. package/bin/plugin/builtins/voice/InboundAugment.d.ts +1 -1
  41. package/bin/plugin/builtins/voice/InboundAugment.d.ts.map +1 -1
  42. package/bin/plugin/builtins/workboard/runtime/Collector.d.ts +1 -1
  43. package/bin/plugin/builtins/workboard/runtime/Collector.d.ts.map +1 -1
  44. package/bin/plugin/builtins/workboard/runtime/Collector.js +1 -1
  45. package/bin/plugin/builtins/workboard/runtime/Collector.js.map +1 -1
  46. package/bin/plugin/builtins/workboard/runtime/Normalizer.d.ts +1 -1
  47. package/bin/plugin/builtins/workboard/runtime/Normalizer.d.ts.map +1 -1
  48. package/bin/plugin/builtins/workboard/runtime/Store.d.ts +1 -1
  49. package/bin/plugin/builtins/workboard/runtime/Store.d.ts.map +1 -1
  50. package/bin/plugin/core/Activation.d.ts +2 -2
  51. package/bin/plugin/core/Activation.d.ts.map +1 -1
  52. package/bin/plugin/core/HookRegistry.d.ts +1 -1
  53. package/bin/plugin/core/HookRegistry.d.ts.map +1 -1
  54. package/bin/plugin/core/HttpRoutes.d.ts +1 -1
  55. package/bin/plugin/core/HttpRoutes.d.ts.map +1 -1
  56. package/bin/plugin/core/LocalExecution.d.ts.map +1 -1
  57. package/bin/plugin/core/LocalExecution.js +18 -20
  58. package/bin/plugin/core/LocalExecution.js.map +1 -1
  59. package/bin/plugin/core/PluginRegistry.d.ts +1 -1
  60. package/bin/plugin/core/PluginRegistry.d.ts.map +1 -1
  61. package/bin/plugin/types/Plugin.d.ts +1 -1
  62. package/bin/plugin/types/Plugin.d.ts.map +1 -1
  63. package/bin/project/AgentInitializer.js +2 -2
  64. package/bin/project/AgentInitializer.js.map +1 -1
  65. package/bin/sandbox/SandboxConfigResolver.d.ts +1 -1
  66. package/bin/sandbox/SandboxConfigResolver.d.ts.map +1 -1
  67. package/bin/sandbox/SandboxRunner.d.ts +1 -1
  68. package/bin/sandbox/SandboxRunner.d.ts.map +1 -1
  69. package/bin/sdk/Agent.d.ts +43 -27
  70. package/bin/sdk/Agent.d.ts.map +1 -1
  71. package/bin/sdk/Agent.js +143 -364
  72. package/bin/sdk/Agent.js.map +1 -1
  73. package/bin/sdk/AgentSdkTypes.d.ts +138 -0
  74. package/bin/sdk/AgentSdkTypes.d.ts.map +1 -1
  75. package/bin/sdk/RemoteAgent.d.ts +1 -1
  76. package/bin/sdk/RemoteAgent.js +1 -1
  77. package/bin/sdk/Session.d.ts +2 -2
  78. package/bin/sdk/Session.d.ts.map +1 -1
  79. package/bin/sdk/Session.js +11 -5
  80. package/bin/sdk/Session.js.map +1 -1
  81. package/bin/sdk/{SessionMetadata.d.ts → session/Metadata.d.ts} +2 -2
  82. package/bin/sdk/session/Metadata.d.ts.map +1 -0
  83. package/bin/sdk/{SessionMetadata.js → session/Metadata.js} +2 -2
  84. package/bin/sdk/session/Metadata.js.map +1 -0
  85. package/bin/sdk/{Paths.d.ts → session/Paths.d.ts} +1 -1
  86. package/bin/sdk/session/Paths.d.ts.map +1 -0
  87. package/bin/sdk/{Paths.js → session/Paths.js} +1 -1
  88. package/bin/sdk/session/Paths.js.map +1 -0
  89. package/bin/sdk/{SessionPersistence.d.ts → session/Persistence.d.ts} +3 -3
  90. package/bin/sdk/session/Persistence.d.ts.map +1 -0
  91. package/bin/sdk/{SessionPersistence.js → session/Persistence.js} +4 -4
  92. package/bin/sdk/session/Persistence.js.map +1 -0
  93. package/bin/sdk/{SessionServicePort.d.ts → session/ServicePort.d.ts} +2 -2
  94. package/bin/sdk/session/ServicePort.d.ts.map +1 -0
  95. package/bin/sdk/{SessionServicePort.js → session/ServicePort.js} +1 -1
  96. package/bin/sdk/session/ServicePort.js.map +1 -0
  97. package/bin/sdk/session/index.d.ts +12 -0
  98. package/bin/sdk/session/index.d.ts.map +1 -0
  99. package/bin/sdk/session/index.js +12 -0
  100. package/bin/sdk/session/index.js.map +1 -0
  101. package/bin/server/http/Server.d.ts +10 -1
  102. package/bin/server/http/Server.d.ts.map +1 -1
  103. package/bin/server/http/Server.js +41 -15
  104. package/bin/server/http/Server.js.map +1 -1
  105. package/bin/server/http/control/AuthControlService.d.ts +1 -1
  106. package/bin/server/http/control/AuthControlService.d.ts.map +1 -1
  107. package/bin/server/http/control/ControlAuthorizationRoutes.d.ts +1 -1
  108. package/bin/server/http/control/ControlAuthorizationRoutes.d.ts.map +1 -1
  109. package/bin/server/http/control/ControlRouter.d.ts +18 -2
  110. package/bin/server/http/control/ControlRouter.d.ts.map +1 -1
  111. package/bin/server/http/control/ControlRouter.js +10 -8
  112. package/bin/server/http/control/ControlRouter.js.map +1 -1
  113. package/bin/server/http/control/ExecuteBySession.d.ts +2 -2
  114. package/bin/server/http/control/ExecuteBySession.d.ts.map +1 -1
  115. package/bin/server/http/control/OverviewRoutes.d.ts.map +1 -1
  116. package/bin/server/http/control/OverviewRoutes.js +6 -2
  117. package/bin/server/http/control/OverviewRoutes.js.map +1 -1
  118. package/bin/server/http/control/SessionSummaryStore.d.ts +1 -1
  119. package/bin/server/http/control/SessionSummaryStore.d.ts.map +1 -1
  120. package/bin/server/http/control/types/ControlRoutes.d.ts +2 -2
  121. package/bin/server/http/control/types/ControlRoutes.d.ts.map +1 -1
  122. package/bin/server/http/execute/execute.d.ts +13 -2
  123. package/bin/server/http/execute/execute.d.ts.map +1 -1
  124. package/bin/server/http/execute/execute.js +73 -71
  125. package/bin/server/http/execute/execute.js.map +1 -1
  126. package/bin/server/http/plugins/plugins.d.ts +13 -2
  127. package/bin/server/http/plugins/plugins.d.ts.map +1 -1
  128. package/bin/server/http/plugins/plugins.js +42 -40
  129. package/bin/server/http/plugins/plugins.js.map +1 -1
  130. package/bin/server/http/services/services.d.ts +12 -8
  131. package/bin/server/http/services/services.d.ts.map +1 -1
  132. package/bin/server/http/services/services.js +57 -64
  133. package/bin/server/http/services/services.js.map +1 -1
  134. package/bin/server/http/static/static.d.ts +13 -2
  135. package/bin/server/http/static/static.d.ts.map +1 -1
  136. package/bin/server/http/static/static.js +81 -79
  137. package/bin/server/http/static/static.js.map +1 -1
  138. package/bin/server/rpc/Server.d.ts +5 -3
  139. package/bin/server/rpc/Server.d.ts.map +1 -1
  140. package/bin/server/rpc/Server.js +22 -12
  141. package/bin/server/rpc/Server.js.map +1 -1
  142. package/bin/service/builtins/BaseService.d.ts +2 -2
  143. package/bin/service/builtins/BaseService.d.ts.map +1 -1
  144. package/bin/service/builtins/chat/Action.d.ts +1 -1
  145. package/bin/service/builtins/chat/Action.d.ts.map +1 -1
  146. package/bin/service/builtins/chat/ChatService.d.ts +2 -2
  147. package/bin/service/builtins/chat/ChatService.d.ts.map +1 -1
  148. package/bin/service/builtins/chat/ChatServiceTypes.d.ts +1 -1
  149. package/bin/service/builtins/chat/ChatServiceTypes.d.ts.map +1 -1
  150. package/bin/service/builtins/chat/channels/BaseChatChannel.d.ts +1 -1
  151. package/bin/service/builtins/chat/channels/BaseChatChannel.d.ts.map +1 -1
  152. package/bin/service/builtins/chat/channels/BaseChatChannelQueue.d.ts +1 -1
  153. package/bin/service/builtins/chat/channels/BaseChatChannelQueue.d.ts.map +1 -1
  154. package/bin/service/builtins/chat/channels/BaseChatChannelSupport.d.ts +1 -1
  155. package/bin/service/builtins/chat/channels/BaseChatChannelSupport.d.ts.map +1 -1
  156. package/bin/service/builtins/chat/channels/feishu/Feishu.d.ts +1 -1
  157. package/bin/service/builtins/chat/channels/feishu/Feishu.d.ts.map +1 -1
  158. package/bin/service/builtins/chat/channels/feishu/FeishuMessageHandler.d.ts +1 -1
  159. package/bin/service/builtins/chat/channels/feishu/FeishuMessageHandler.d.ts.map +1 -1
  160. package/bin/service/builtins/chat/channels/feishu/FeishuPlatformClient.d.ts +1 -1
  161. package/bin/service/builtins/chat/channels/feishu/FeishuPlatformClient.d.ts.map +1 -1
  162. package/bin/service/builtins/chat/channels/qq/QQ.d.ts +1 -1
  163. package/bin/service/builtins/chat/channels/qq/QQ.d.ts.map +1 -1
  164. package/bin/service/builtins/chat/channels/qq/QQMessageHandler.d.ts +1 -1
  165. package/bin/service/builtins/chat/channels/qq/QQMessageHandler.d.ts.map +1 -1
  166. package/bin/service/builtins/chat/channels/qq/QQSupport.d.ts +1 -1
  167. package/bin/service/builtins/chat/channels/qq/QQSupport.d.ts.map +1 -1
  168. package/bin/service/builtins/chat/channels/telegram/Bot.d.ts +1 -1
  169. package/bin/service/builtins/chat/channels/telegram/Bot.d.ts.map +1 -1
  170. package/bin/service/builtins/chat/channels/telegram/TelegramMessageHandler.d.ts +1 -1
  171. package/bin/service/builtins/chat/channels/telegram/TelegramMessageHandler.d.ts.map +1 -1
  172. package/bin/service/builtins/chat/channels/telegram/TelegramPlatformClient.d.ts +1 -1
  173. package/bin/service/builtins/chat/channels/telegram/TelegramPlatformClient.d.ts.map +1 -1
  174. package/bin/service/builtins/chat/runtime/ChannelContextStore.d.ts +1 -1
  175. package/bin/service/builtins/chat/runtime/ChannelContextStore.d.ts.map +1 -1
  176. package/bin/service/builtins/chat/runtime/ChatActionExecution.d.ts +1 -1
  177. package/bin/service/builtins/chat/runtime/ChatActionExecution.d.ts.map +1 -1
  178. package/bin/service/builtins/chat/runtime/ChatActionInput.d.ts +3 -36
  179. package/bin/service/builtins/chat/runtime/ChatActionInput.d.ts.map +1 -1
  180. package/bin/service/builtins/chat/runtime/ChatActionInput.js +3 -118
  181. package/bin/service/builtins/chat/runtime/ChatActionInput.js.map +1 -1
  182. package/bin/service/builtins/chat/runtime/ChatChannelActions.d.ts +1 -1
  183. package/bin/service/builtins/chat/runtime/ChatChannelActions.d.ts.map +1 -1
  184. package/bin/service/builtins/chat/runtime/ChatChannelConfig.d.ts +1 -1
  185. package/bin/service/builtins/chat/runtime/ChatChannelConfig.d.ts.map +1 -1
  186. package/bin/service/builtins/chat/runtime/ChatChannelCore.d.ts +1 -1
  187. package/bin/service/builtins/chat/runtime/ChatChannelCore.d.ts.map +1 -1
  188. package/bin/service/builtins/chat/runtime/ChatChannelLifecycle.d.ts +1 -1
  189. package/bin/service/builtins/chat/runtime/ChatChannelLifecycle.d.ts.map +1 -1
  190. package/bin/service/builtins/chat/runtime/ChatHistoryStore.d.ts +1 -1
  191. package/bin/service/builtins/chat/runtime/ChatHistoryStore.d.ts.map +1 -1
  192. package/bin/service/builtins/chat/runtime/ChatIngressStore.d.ts +1 -1
  193. package/bin/service/builtins/chat/runtime/ChatIngressStore.d.ts.map +1 -1
  194. package/bin/service/builtins/chat/runtime/ChatMetaStore.d.ts +1 -1
  195. package/bin/service/builtins/chat/runtime/ChatMetaStore.d.ts.map +1 -1
  196. package/bin/service/builtins/chat/runtime/ChatQueueReplyDispatch.d.ts +1 -1
  197. package/bin/service/builtins/chat/runtime/ChatQueueReplyDispatch.d.ts.map +1 -1
  198. package/bin/service/builtins/chat/runtime/ChatQueueSessionBridge.d.ts +1 -1
  199. package/bin/service/builtins/chat/runtime/ChatQueueSessionBridge.d.ts.map +1 -1
  200. package/bin/service/builtins/chat/runtime/ChatQueueStore.d.ts +1 -1
  201. package/bin/service/builtins/chat/runtime/ChatQueueStore.d.ts.map +1 -1
  202. package/bin/service/builtins/chat/runtime/ChatQueueWorker.d.ts +1 -1
  203. package/bin/service/builtins/chat/runtime/ChatQueueWorker.d.ts.map +1 -1
  204. package/bin/service/builtins/chat/runtime/ChatServiceActions.d.ts +1 -1
  205. package/bin/service/builtins/chat/runtime/ChatServiceActions.d.ts.map +1 -1
  206. package/bin/service/builtins/chat/runtime/ChatServiceActions.js +2 -109
  207. package/bin/service/builtins/chat/runtime/ChatServiceActions.js.map +1 -1
  208. package/bin/service/builtins/chat/runtime/ChatServiceSystem.d.ts +1 -1
  209. package/bin/service/builtins/chat/runtime/ChatServiceSystem.d.ts.map +1 -1
  210. package/bin/service/builtins/chat/runtime/ChatSessionDelete.d.ts +1 -1
  211. package/bin/service/builtins/chat/runtime/ChatSessionDelete.d.ts.map +1 -1
  212. package/bin/service/builtins/chat/runtime/ChatkeySend.d.ts +1 -1
  213. package/bin/service/builtins/chat/runtime/ChatkeySend.d.ts.map +1 -1
  214. package/bin/service/builtins/chat/runtime/EnqueueDispatch.d.ts +1 -1
  215. package/bin/service/builtins/chat/runtime/EnqueueDispatch.d.ts.map +1 -1
  216. package/bin/service/builtins/chat/runtime/InboundAugment.d.ts +1 -1
  217. package/bin/service/builtins/chat/runtime/InboundAugment.d.ts.map +1 -1
  218. package/bin/service/builtins/chat/runtime/PluginDispatch.d.ts +1 -1
  219. package/bin/service/builtins/chat/runtime/PluginDispatch.d.ts.map +1 -1
  220. package/bin/service/builtins/chat/runtime/ReplyDispatch.d.ts +1 -1
  221. package/bin/service/builtins/chat/runtime/ReplyDispatch.d.ts.map +1 -1
  222. package/bin/service/builtins/chat/runtime/SystemPrompt.d.ts +1 -1
  223. package/bin/service/builtins/chat/runtime/SystemPrompt.d.ts.map +1 -1
  224. package/bin/service/builtins/contact/Action.d.ts +2 -2
  225. package/bin/service/builtins/contact/Action.d.ts.map +1 -1
  226. package/bin/service/builtins/contact/Action.js +2 -58
  227. package/bin/service/builtins/contact/Action.js.map +1 -1
  228. package/bin/service/builtins/contact/ContactService.d.ts +1 -1
  229. package/bin/service/builtins/contact/ContactService.d.ts.map +1 -1
  230. package/bin/service/builtins/contact/runtime/ChatRuntime.d.ts +1 -1
  231. package/bin/service/builtins/contact/runtime/ChatRuntime.d.ts.map +1 -1
  232. package/bin/service/builtins/contact/runtime/ContactPayload.d.ts +0 -7
  233. package/bin/service/builtins/contact/runtime/ContactPayload.d.ts.map +1 -1
  234. package/bin/service/builtins/contact/runtime/ContactPayload.js +0 -9
  235. package/bin/service/builtins/contact/runtime/ContactPayload.js.map +1 -1
  236. package/bin/service/builtins/contact/runtime/RemoteClient.d.ts +1 -1
  237. package/bin/service/builtins/contact/runtime/RemoteClient.d.ts.map +1 -1
  238. package/bin/service/builtins/contact/runtime/RemoteClient.js +37 -19
  239. package/bin/service/builtins/contact/runtime/RemoteClient.js.map +1 -1
  240. package/bin/service/builtins/contact/runtime/ShareBundle.d.ts +1 -1
  241. package/bin/service/builtins/contact/runtime/ShareBundle.d.ts.map +1 -1
  242. package/bin/service/builtins/memory/Action.d.ts +1 -1
  243. package/bin/service/builtins/memory/Action.d.ts.map +1 -1
  244. package/bin/service/builtins/memory/MemoryService.d.ts +1 -1
  245. package/bin/service/builtins/memory/MemoryService.d.ts.map +1 -1
  246. package/bin/service/builtins/memory/MemoryService.js +0 -27
  247. package/bin/service/builtins/memory/MemoryService.js.map +1 -1
  248. package/bin/service/builtins/memory/runtime/Flush.d.ts +1 -1
  249. package/bin/service/builtins/memory/runtime/Flush.d.ts.map +1 -1
  250. package/bin/service/builtins/memory/runtime/Search.d.ts +1 -1
  251. package/bin/service/builtins/memory/runtime/Search.d.ts.map +1 -1
  252. package/bin/service/builtins/memory/runtime/Store.d.ts +1 -1
  253. package/bin/service/builtins/memory/runtime/Store.d.ts.map +1 -1
  254. package/bin/service/builtins/memory/runtime/SystemProvider.d.ts +1 -1
  255. package/bin/service/builtins/memory/runtime/SystemProvider.d.ts.map +1 -1
  256. package/bin/service/builtins/memory/runtime/Writer.d.ts +1 -1
  257. package/bin/service/builtins/memory/runtime/Writer.d.ts.map +1 -1
  258. package/bin/service/builtins/schedule/ScheduleService.d.ts +39 -0
  259. package/bin/service/builtins/schedule/ScheduleService.d.ts.map +1 -0
  260. package/bin/service/builtins/schedule/ScheduleService.js +106 -0
  261. package/bin/service/builtins/schedule/ScheduleService.js.map +1 -0
  262. package/bin/service/builtins/shell/ShellRuntimeTypes.d.ts +1 -1
  263. package/bin/service/builtins/shell/ShellRuntimeTypes.d.ts.map +1 -1
  264. package/bin/service/builtins/shell/ShellService.d.ts +2 -2
  265. package/bin/service/builtins/shell/ShellService.d.ts.map +1 -1
  266. package/bin/service/builtins/shell/runtime/ShellActionResponse.d.ts +1 -1
  267. package/bin/service/builtins/shell/runtime/ShellActionResponse.d.ts.map +1 -1
  268. package/bin/service/builtins/shell/runtime/ShellActionRuntime.d.ts +1 -1
  269. package/bin/service/builtins/shell/runtime/ShellActionRuntime.d.ts.map +1 -1
  270. package/bin/service/builtins/shell/runtime/ShellActionRuntimeSupport.d.ts +1 -1
  271. package/bin/service/builtins/shell/runtime/ShellActionRuntimeSupport.d.ts.map +1 -1
  272. package/bin/service/builtins/shell/runtime/ShellRuntimeEnvironment.d.ts +1 -1
  273. package/bin/service/builtins/shell/runtime/ShellRuntimeEnvironment.d.ts.map +1 -1
  274. package/bin/service/builtins/task/Action.d.ts +1 -1
  275. package/bin/service/builtins/task/Action.d.ts.map +1 -1
  276. package/bin/service/builtins/task/Scheduler.d.ts +1 -1
  277. package/bin/service/builtins/task/Scheduler.d.ts.map +1 -1
  278. package/bin/service/builtins/task/TaskService.d.ts +2 -2
  279. package/bin/service/builtins/task/TaskService.d.ts.map +1 -1
  280. package/bin/service/builtins/task/runtime/CronRuntime.d.ts +1 -1
  281. package/bin/service/builtins/task/runtime/CronRuntime.d.ts.map +1 -1
  282. package/bin/service/builtins/task/runtime/Runner.d.ts +1 -1
  283. package/bin/service/builtins/task/runtime/Runner.d.ts.map +1 -1
  284. package/bin/service/builtins/task/runtime/TaskActionExecution.d.ts +1 -1
  285. package/bin/service/builtins/task/runtime/TaskActionExecution.d.ts.map +1 -1
  286. package/bin/service/builtins/task/runtime/TaskActionInput.d.ts +2 -31
  287. package/bin/service/builtins/task/runtime/TaskActionInput.d.ts.map +1 -1
  288. package/bin/service/builtins/task/runtime/TaskActionInput.js +2 -141
  289. package/bin/service/builtins/task/runtime/TaskActionInput.js.map +1 -1
  290. package/bin/service/builtins/task/runtime/TaskRunChatDispatch.d.ts +1 -1
  291. package/bin/service/builtins/task/runtime/TaskRunChatDispatch.d.ts.map +1 -1
  292. package/bin/service/builtins/task/runtime/TaskRunnerRound.d.ts +1 -1
  293. package/bin/service/builtins/task/runtime/TaskRunnerRound.d.ts.map +1 -1
  294. package/bin/service/builtins/task/runtime/TaskRunnerScript.d.ts +1 -1
  295. package/bin/service/builtins/task/runtime/TaskRunnerScript.d.ts.map +1 -1
  296. package/bin/service/builtins/task/runtime/TaskRunnerSession.d.ts +1 -1
  297. package/bin/service/builtins/task/runtime/TaskRunnerSession.d.ts.map +1 -1
  298. package/bin/service/builtins/task/runtime/TaskServiceActions.d.ts +1 -1
  299. package/bin/service/builtins/task/runtime/TaskServiceActions.d.ts.map +1 -1
  300. package/bin/service/builtins/task/runtime/TaskServiceActions.js +2 -30
  301. package/bin/service/builtins/task/runtime/TaskServiceActions.js.map +1 -1
  302. package/bin/service/core/Manager.d.ts +0 -1
  303. package/bin/service/core/Manager.d.ts.map +1 -1
  304. package/bin/service/core/Manager.js +0 -1
  305. package/bin/service/core/Manager.js.map +1 -1
  306. package/bin/service/core/ServiceActionRunner.d.ts +1 -1
  307. package/bin/service/core/ServiceActionRunner.d.ts.map +1 -1
  308. package/bin/service/core/ServiceActionRunner.js +5 -3
  309. package/bin/service/core/ServiceActionRunner.js.map +1 -1
  310. package/bin/service/core/ServiceClassRegistry.d.ts +1 -1
  311. package/bin/service/core/ServiceClassRegistry.d.ts.map +1 -1
  312. package/bin/service/core/ServiceCommandRequest.d.ts +36 -0
  313. package/bin/service/core/ServiceCommandRequest.d.ts.map +1 -0
  314. package/bin/service/core/ServiceCommandRequest.js +53 -0
  315. package/bin/service/core/ServiceCommandRequest.js.map +1 -0
  316. package/bin/service/core/ServiceStateController.d.ts +20 -7
  317. package/bin/service/core/ServiceStateController.d.ts.map +1 -1
  318. package/bin/service/core/ServiceStateController.js +23 -20
  319. package/bin/service/core/ServiceStateController.js.map +1 -1
  320. package/bin/service/core/ServiceSystemProviders.d.ts +1 -1
  321. package/bin/service/core/ServiceSystemProviders.d.ts.map +1 -1
  322. package/bin/service/core/Services.d.ts +1 -1
  323. package/bin/service/core/Services.d.ts.map +1 -1
  324. package/bin/service/core/Services.js +2 -0
  325. package/bin/service/core/Services.js.map +1 -1
  326. package/bin/service/{schedule → core/schedule}/Executor.d.ts +2 -2
  327. package/bin/service/core/schedule/Executor.d.ts.map +1 -0
  328. package/bin/service/{schedule → core/schedule}/Executor.js +1 -1
  329. package/bin/service/core/schedule/Executor.js.map +1 -0
  330. package/bin/service/{schedule → core/schedule}/Store.d.ts +1 -1
  331. package/bin/service/core/schedule/Store.d.ts.map +1 -0
  332. package/bin/service/{schedule → core/schedule}/Store.js +2 -2
  333. package/bin/service/core/schedule/Store.js.map +1 -0
  334. package/bin/service/core/schedule/Time.d.ts.map +1 -0
  335. package/bin/service/core/schedule/Time.js.map +1 -0
  336. package/bin/service/types/Service.d.ts +2 -24
  337. package/bin/service/types/Service.d.ts.map +1 -1
  338. package/bin/service/types/Service.js +1 -1
  339. package/bin/session/composer/system/default/DefaultSessionSystemComposer.d.ts +1 -1
  340. package/bin/session/composer/system/default/DefaultSessionSystemComposer.d.ts.map +1 -1
  341. package/bin/session/composer/system/default/SystemDomain.d.ts +1 -1
  342. package/bin/session/composer/system/default/SystemDomain.d.ts.map +1 -1
  343. package/bin/session/tools/shell/ShellToolBridge.d.ts +1 -1
  344. package/bin/session/tools/shell/ShellToolBridge.d.ts.map +1 -1
  345. package/package.json +1 -1
  346. package/src/config/Config.ts +1 -1
  347. package/src/config/{DowncityDefault.ts → Defaults.ts} +11 -0
  348. package/src/{project/ProjectExecutionBinding.ts → config/ExecutionBinding.ts} +1 -1
  349. package/src/{runtime → core}/AgentContextTypes.ts +6 -7
  350. package/src/core/AgentCore.ts +527 -0
  351. package/src/{runtime/AgentRuntimeTypes.ts → core/AgentCoreTypes.ts} +6 -6
  352. package/src/host/daemon/ProjectSetup.ts +2 -3
  353. package/src/host/runtime/PluginRuntime.ts +1 -1
  354. package/src/index.ts +27 -24
  355. package/src/model/CreateModel.ts +1 -1
  356. package/src/plugin/builtins/asr/InboundAugment.ts +1 -1
  357. package/src/plugin/builtins/auth/runtime/AuthorizationConfig.ts +1 -1
  358. package/src/plugin/builtins/auth/runtime/AuthorizationStore.ts +1 -1
  359. package/src/plugin/builtins/voice/InboundAugment.ts +1 -1
  360. package/src/plugin/builtins/workboard/runtime/Collector.ts +2 -2
  361. package/src/plugin/builtins/workboard/runtime/Normalizer.ts +1 -1
  362. package/src/plugin/builtins/workboard/runtime/Store.ts +1 -1
  363. package/src/plugin/core/Activation.ts +2 -2
  364. package/src/plugin/core/HookRegistry.ts +1 -1
  365. package/src/plugin/core/HttpRoutes.ts +1 -1
  366. package/src/plugin/core/LocalExecution.ts +21 -20
  367. package/src/plugin/core/PluginRegistry.ts +1 -1
  368. package/src/plugin/types/Plugin.ts +1 -1
  369. package/src/project/AgentInitializer.ts +2 -2
  370. package/src/sandbox/SandboxConfigResolver.ts +1 -1
  371. package/src/sandbox/SandboxRunner.ts +1 -1
  372. package/src/sdk/Agent.ts +163 -391
  373. package/src/sdk/AgentSdkTypes.ts +158 -0
  374. package/src/sdk/RemoteAgent.ts +1 -1
  375. package/src/sdk/Session.ts +16 -6
  376. package/src/sdk/{SessionMetadata.ts → session/Metadata.ts} +1 -1
  377. package/src/sdk/{Paths.ts → session/Paths.ts} +1 -1
  378. package/src/sdk/{SessionPersistence.ts → session/Persistence.ts} +1 -1
  379. package/src/sdk/{SessionServicePort.ts → session/ServicePort.ts} +1 -1
  380. package/src/sdk/session/index.ts +34 -0
  381. package/src/server/http/Server.ts +63 -18
  382. package/src/server/http/control/AuthControlService.ts +1 -1
  383. package/src/server/http/control/ControlAuthorizationRoutes.ts +1 -1
  384. package/src/server/http/control/ControlRouter.ts +27 -11
  385. package/src/server/http/control/ExecuteBySession.ts +2 -2
  386. package/src/server/http/control/OverviewRoutes.ts +6 -2
  387. package/src/server/http/control/SessionSummaryStore.ts +1 -1
  388. package/src/server/http/control/types/ControlRoutes.ts +2 -2
  389. package/src/server/http/execute/execute.ts +107 -91
  390. package/src/server/http/plugins/plugins.ts +60 -44
  391. package/src/server/http/services/services.ts +68 -64
  392. package/src/server/http/static/static.ts +95 -79
  393. package/src/server/rpc/Server.ts +26 -15
  394. package/src/service/builtins/BaseService.ts +2 -2
  395. package/src/service/builtins/chat/Action.ts +1 -1
  396. package/src/service/builtins/chat/ChatService.ts +2 -2
  397. package/src/service/builtins/chat/ChatServiceTypes.ts +1 -1
  398. package/src/service/builtins/chat/channels/BaseChatChannel.ts +1 -1
  399. package/src/service/builtins/chat/channels/BaseChatChannelQueue.ts +1 -1
  400. package/src/service/builtins/chat/channels/BaseChatChannelSupport.ts +1 -1
  401. package/src/service/builtins/chat/channels/feishu/Feishu.ts +1 -1
  402. package/src/service/builtins/chat/channels/feishu/FeishuMessageHandler.ts +1 -1
  403. package/src/service/builtins/chat/channels/feishu/FeishuPlatformClient.ts +1 -1
  404. package/src/service/builtins/chat/channels/qq/QQ.ts +1 -1
  405. package/src/service/builtins/chat/channels/qq/QQMessageHandler.ts +1 -1
  406. package/src/service/builtins/chat/channels/qq/QQSupport.ts +1 -1
  407. package/src/service/builtins/chat/channels/telegram/Bot.ts +1 -1
  408. package/src/service/builtins/chat/channels/telegram/TelegramMessageHandler.ts +1 -1
  409. package/src/service/builtins/chat/channels/telegram/TelegramPlatformClient.ts +1 -1
  410. package/src/service/builtins/chat/runtime/ChannelContextStore.ts +1 -1
  411. package/src/service/builtins/chat/runtime/ChatActionExecution.ts +1 -1
  412. package/src/service/builtins/chat/runtime/ChatActionInput.ts +2 -158
  413. package/src/service/builtins/chat/runtime/ChatChannelActions.ts +1 -1
  414. package/src/service/builtins/chat/runtime/ChatChannelConfig.ts +1 -1
  415. package/src/service/builtins/chat/runtime/ChatChannelCore.ts +1 -1
  416. package/src/service/builtins/chat/runtime/ChatChannelLifecycle.ts +1 -1
  417. package/src/service/builtins/chat/runtime/ChatHistoryStore.ts +1 -1
  418. package/src/service/builtins/chat/runtime/ChatIngressStore.ts +1 -1
  419. package/src/service/builtins/chat/runtime/ChatMetaStore.ts +1 -1
  420. package/src/service/builtins/chat/runtime/ChatQueueReplyDispatch.ts +1 -1
  421. package/src/service/builtins/chat/runtime/ChatQueueSessionBridge.ts +1 -1
  422. package/src/service/builtins/chat/runtime/ChatQueueStore.ts +1 -1
  423. package/src/service/builtins/chat/runtime/ChatQueueWorker.ts +1 -1
  424. package/src/service/builtins/chat/runtime/ChatServiceActions.ts +1 -118
  425. package/src/service/builtins/chat/runtime/ChatServiceSystem.ts +1 -1
  426. package/src/service/builtins/chat/runtime/ChatSessionDelete.ts +1 -1
  427. package/src/service/builtins/chat/runtime/ChatkeySend.ts +1 -1
  428. package/src/service/builtins/chat/runtime/EnqueueDispatch.ts +1 -1
  429. package/src/service/builtins/chat/runtime/InboundAugment.ts +1 -1
  430. package/src/service/builtins/chat/runtime/PluginDispatch.ts +1 -1
  431. package/src/service/builtins/chat/runtime/ReplyDispatch.ts +1 -1
  432. package/src/service/builtins/chat/runtime/SystemPrompt.ts +1 -1
  433. package/src/service/builtins/contact/Action.ts +2 -59
  434. package/src/service/builtins/contact/ContactService.ts +2 -2
  435. package/src/service/builtins/contact/runtime/ChatRuntime.ts +1 -1
  436. package/src/service/builtins/contact/runtime/ContactPayload.ts +0 -12
  437. package/src/service/builtins/contact/runtime/RemoteClient.ts +40 -19
  438. package/src/service/builtins/contact/runtime/ShareBundle.ts +1 -1
  439. package/src/service/builtins/memory/Action.ts +1 -1
  440. package/src/service/builtins/memory/MemoryService.ts +1 -28
  441. package/src/service/builtins/memory/runtime/Flush.ts +1 -1
  442. package/src/service/builtins/memory/runtime/Search.ts +1 -1
  443. package/src/service/builtins/memory/runtime/Store.ts +1 -1
  444. package/src/service/builtins/memory/runtime/SystemProvider.ts +1 -1
  445. package/src/service/builtins/memory/runtime/Writer.ts +1 -1
  446. package/src/service/builtins/schedule/ScheduleService.ts +131 -0
  447. package/src/service/builtins/shell/ShellRuntimeTypes.ts +1 -1
  448. package/src/service/builtins/shell/ShellService.ts +2 -2
  449. package/src/service/builtins/shell/runtime/ShellActionResponse.ts +1 -1
  450. package/src/service/builtins/shell/runtime/ShellActionRuntime.ts +1 -1
  451. package/src/service/builtins/shell/runtime/ShellActionRuntimeSupport.ts +1 -1
  452. package/src/service/builtins/shell/runtime/ShellRuntimeEnvironment.ts +1 -1
  453. package/src/service/builtins/task/Action.ts +1 -1
  454. package/src/service/builtins/task/Scheduler.ts +1 -1
  455. package/src/service/builtins/task/TaskService.ts +2 -2
  456. package/src/service/builtins/task/runtime/CronRuntime.ts +1 -1
  457. package/src/service/builtins/task/runtime/Runner.ts +1 -1
  458. package/src/service/builtins/task/runtime/TaskActionExecution.ts +1 -1
  459. package/src/service/builtins/task/runtime/TaskActionInput.ts +3 -185
  460. package/src/service/builtins/task/runtime/TaskRunChatDispatch.ts +1 -1
  461. package/src/service/builtins/task/runtime/TaskRunnerRound.ts +1 -1
  462. package/src/service/builtins/task/runtime/TaskRunnerScript.ts +1 -1
  463. package/src/service/builtins/task/runtime/TaskRunnerSession.ts +1 -1
  464. package/src/service/builtins/task/runtime/TaskServiceActions.ts +1 -35
  465. package/src/service/core/Manager.ts +0 -1
  466. package/src/service/core/ServiceActionRunner.ts +6 -4
  467. package/src/service/core/ServiceClassRegistry.ts +1 -1
  468. package/src/service/core/ServiceCommandRequest.ts +93 -0
  469. package/src/service/core/ServiceStateController.ts +45 -20
  470. package/src/service/core/ServiceSystemProviders.ts +1 -1
  471. package/src/service/core/Services.ts +3 -1
  472. package/src/service/{schedule → core/schedule}/Executor.ts +2 -2
  473. package/src/service/{schedule → core/schedule}/Store.ts +4 -2
  474. package/src/service/types/Service.ts +2 -25
  475. package/src/session/composer/system/default/DefaultSessionSystemComposer.ts +1 -1
  476. package/src/session/composer/system/default/SystemDomain.ts +1 -1
  477. package/src/session/tools/shell/ShellToolBridge.ts +1 -1
  478. package/tsconfig.tsbuildinfo +1 -1
  479. package/bin/config/DowncityDefault.d.ts +0 -3
  480. package/bin/config/DowncityDefault.d.ts.map +0 -1
  481. package/bin/config/DowncityDefault.js.map +0 -1
  482. package/bin/project/ProjectExecutionBinding.d.ts.map +0 -1
  483. package/bin/project/ProjectExecutionBinding.js.map +0 -1
  484. package/bin/runtime/AgentContext.d.ts +0 -23
  485. package/bin/runtime/AgentContext.d.ts.map +0 -1
  486. package/bin/runtime/AgentContext.js +0 -149
  487. package/bin/runtime/AgentContext.js.map +0 -1
  488. package/bin/runtime/AgentContextTypes.d.ts.map +0 -1
  489. package/bin/runtime/AgentContextTypes.js.map +0 -1
  490. package/bin/runtime/AgentRuntime.d.ts +0 -37
  491. package/bin/runtime/AgentRuntime.d.ts.map +0 -1
  492. package/bin/runtime/AgentRuntime.js +0 -291
  493. package/bin/runtime/AgentRuntime.js.map +0 -1
  494. package/bin/runtime/AgentRuntimeState.d.ts +0 -42
  495. package/bin/runtime/AgentRuntimeState.d.ts.map +0 -1
  496. package/bin/runtime/AgentRuntimeState.js +0 -172
  497. package/bin/runtime/AgentRuntimeState.js.map +0 -1
  498. package/bin/runtime/AgentRuntimeTypes.d.ts.map +0 -1
  499. package/bin/runtime/AgentRuntimeTypes.js +0 -10
  500. package/bin/runtime/AgentRuntimeTypes.js.map +0 -1
  501. package/bin/sdk/HttpServer.d.ts +0 -40
  502. package/bin/sdk/HttpServer.d.ts.map +0 -1
  503. package/bin/sdk/HttpServer.js +0 -189
  504. package/bin/sdk/HttpServer.js.map +0 -1
  505. package/bin/sdk/Paths.d.ts.map +0 -1
  506. package/bin/sdk/Paths.js.map +0 -1
  507. package/bin/sdk/RpcServer.d.ts +0 -31
  508. package/bin/sdk/RpcServer.d.ts.map +0 -1
  509. package/bin/sdk/RpcServer.js +0 -207
  510. package/bin/sdk/RpcServer.js.map +0 -1
  511. package/bin/sdk/SessionMetadata.d.ts.map +0 -1
  512. package/bin/sdk/SessionMetadata.js.map +0 -1
  513. package/bin/sdk/SessionPersistence.d.ts.map +0 -1
  514. package/bin/sdk/SessionPersistence.js.map +0 -1
  515. package/bin/sdk/SessionServicePort.d.ts.map +0 -1
  516. package/bin/sdk/SessionServicePort.js.map +0 -1
  517. package/bin/service/core/ServiceActionApi.d.ts +0 -15
  518. package/bin/service/core/ServiceActionApi.d.ts.map +0 -1
  519. package/bin/service/core/ServiceActionApi.js +0 -234
  520. package/bin/service/core/ServiceActionApi.js.map +0 -1
  521. package/bin/service/core/ServiceManager.d.ts +0 -9
  522. package/bin/service/core/ServiceManager.d.ts.map +0 -1
  523. package/bin/service/core/ServiceManager.js +0 -9
  524. package/bin/service/core/ServiceManager.js.map +0 -1
  525. package/bin/service/schedule/Executor.d.ts.map +0 -1
  526. package/bin/service/schedule/Executor.js.map +0 -1
  527. package/bin/service/schedule/Runtime.d.ts +0 -17
  528. package/bin/service/schedule/Runtime.d.ts.map +0 -1
  529. package/bin/service/schedule/Runtime.js +0 -64
  530. package/bin/service/schedule/Runtime.js.map +0 -1
  531. package/bin/service/schedule/Store.d.ts.map +0 -1
  532. package/bin/service/schedule/Store.js.map +0 -1
  533. package/bin/service/schedule/Time.d.ts.map +0 -1
  534. package/bin/service/schedule/Time.js.map +0 -1
  535. package/src/runtime/AgentContext.ts +0 -182
  536. package/src/runtime/AgentRuntime.ts +0 -366
  537. package/src/runtime/AgentRuntimeState.ts +0 -213
  538. package/src/sdk/HttpServer.ts +0 -231
  539. package/src/sdk/RpcServer.ts +0 -244
  540. package/src/service/core/ServiceActionApi.ts +0 -304
  541. package/src/service/core/ServiceManager.ts +0 -20
  542. package/src/service/schedule/Runtime.ts +0 -78
  543. /package/bin/service/{schedule → core/schedule}/Time.d.ts +0 -0
  544. /package/bin/service/{schedule → core/schedule}/Time.js +0 -0
  545. /package/src/service/{schedule → core/schedule}/Time.ts +0 -0
package/src/sdk/Agent.ts CHANGED
@@ -2,470 +2,242 @@
2
2
  * Agent SDK 本地入口。
3
3
  *
4
4
  * 关键点(中文)
5
- * - `new Agent({ id, path, instruction, tools, services, plugins })` 只做同步装配,不在构造阶段启动任何 I/O。
5
+ * - `Agent` 现在是实例外观层,长期运行状态下沉到 `AgentCore`。
6
6
  * - session、HTTP、RPC、service lifecycle 都按需异步初始化。
7
- * - SDK Agent 通过最小 `AgentContext` 适配层复用现有 service/plugin/chat 运行协议,而不是重复实现一套执行链。
7
+ * - `start/stop` 是唯一公开的长期运行生命周期入口。
8
8
  */
9
9
 
10
- import fs from "fs-extra";
11
- import { nanoid } from "nanoid";
12
10
  import type { Tool } from "ai";
13
- import { Logger } from "@/utils/logger/Logger.js";
14
11
  import type { BaseService } from "@/service/builtins/BaseService.js";
15
- import type { AgentContext } from "@/runtime/AgentContextTypes.js";
16
- import type { AgentRuntime } from "@/runtime/AgentRuntimeTypes.js";
17
- import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
18
- import type { JsonValue } from "@/types/common/Json.js";
19
- import type { AgentPlatformRuntime } from "@/types/host/AgentHost.js";
12
+ import type { AgentContext } from "@/core/AgentContextTypes.js";
13
+ import type { AgentRuntime } from "@/core/AgentCoreTypes.js";
20
14
  import type {
21
- Plugin,
22
- PluginAvailability,
23
15
  PluginPort,
24
- PluginView,
25
16
  } from "@/plugin/types/Plugin.js";
26
17
  import type {
27
18
  AgentOptions,
19
+ AgentStartOptions,
20
+ AgentStartResult,
21
+ AgentStopResult,
22
+ AgentHttpBinding,
23
+ AgentHttpStartOptions,
24
+ AgentRpcBinding,
28
25
  AgentSessionMetadata,
29
- AgentSessionSystemBlock,
30
26
  } from "@/sdk/AgentSdkTypes.js";
31
27
  import { Session } from "@/sdk/Session.js";
32
- import { DEFAULT_SHIP_PROMPTS } from "@session/composer/system/default/SystemDomain.js";
33
- import { getSdkAgentSessionsRootDirPath } from "@/sdk/Paths.js";
34
- import { SdkAgentHttpServer } from "@/sdk/HttpServer.js";
35
- import { SdkAgentRpcServer } from "@/sdk/RpcServer.js";
36
- import {
37
- createAgentPathRuntime,
38
- createAgentPluginConfigRuntime,
39
- } from "@/host/runtime/AgentHostRuntime.js";
40
- import { loadDowncityConfig } from "@/config/Config.js";
41
- import { appendExecSessionMessage } from "@/service/builtins/chat/runtime/ChatIngressStore.js";
42
- import { readChatMetaBySessionId } from "@/service/builtins/chat/runtime/ChatMetaStore.js";
43
- import { resolveChatQueueStore } from "@/service/builtins/chat/runtime/ChatQueueStore.js";
44
- import { HookRegistry } from "@/plugin/core/HookRegistry.js";
45
- import { PluginRegistry } from "@/plugin/core/PluginRegistry.js";
46
- import { isPluginEnabled } from "@/plugin/core/Activation.js";
47
-
48
- const EMPTY_SDK_PLATFORM: AgentPlatformRuntime = {
49
- getGlobalEnv: () => ({}),
50
- getAgentEnv: () => ({}),
51
- listModels: () => [],
52
- listProviders: async () => [],
53
- getModel: () => null,
54
- getChannelAccount: () => null,
55
- readChatAuthorizationConfig: () => ({
56
- roles: {},
57
- channels: {},
58
- }),
59
- writeChatAuthorizationConfig: async (_projectRoot, nextConfig) => nextConfig,
60
- setChatAuthorizationUserRole: async () => ({
61
- roles: {},
62
- channels: {},
63
- }),
64
- isPluginEnabled: (pluginName) => pluginName === "auth",
65
- };
66
-
67
- function createFallbackSdkConfig(agentId: string): DowncityConfig {
68
- return {
69
- name: agentId,
70
- version: "0.0.0",
71
- } as DowncityConfig;
72
- }
73
-
74
- function normalizeInstructionInput(input: string | string[] | undefined): string[] {
75
- const items = Array.isArray(input) ? input : typeof input === "string" ? [input] : [];
76
- return items
77
- .map((item) => String(item || "").trim())
78
- .filter((item) => item.length > 0);
79
- }
80
-
81
- function createCoreInstructionContent(projectRoot: string): string {
82
- const currentYear = String(new Date().getFullYear());
83
- return DEFAULT_SHIP_PROMPTS
84
- .replaceAll("{{project_path}}", projectRoot)
85
- .replaceAll("{{project_root}}", projectRoot)
86
- .replaceAll("{{current_year}}", currentYear);
87
- }
88
-
89
- function createInstructionSystemBlocks(
90
- instruction: string[],
91
- projectRoot: string,
92
- ): AgentSessionSystemBlock[] {
93
- if (instruction.length === 0) {
94
- return [
95
- {
96
- source: "core",
97
- name: "default",
98
- content: createCoreInstructionContent(projectRoot),
99
- },
100
- ];
101
- }
102
- return instruction.map((content, index) => ({
103
- source: "instruction" as const,
104
- name: instruction.length === 1 ? "agent" : `agent:${index + 1}`,
105
- content,
106
- }));
107
- }
28
+ import { AgentCore } from "@/core/AgentCore.js";
29
+ import { startAllServices, stopAllServices } from "@/service/core/Manager.js";
30
+ import { startServer } from "@/server/http/Server.js";
31
+ import { startLocalRpcServer } from "@/server/rpc/Server.js";
108
32
 
109
33
  /**
110
34
  * SDK 本地 Agent。
111
35
  */
112
36
  export class Agent {
37
+ readonly core: AgentCore;
113
38
  readonly id: string;
114
39
  readonly path: string;
115
40
  readonly tools: Record<string, Tool>;
116
- readonly http: SdkAgentHttpServer;
117
- readonly rpc: SdkAgentRpcServer;
118
41
  readonly services: Map<string, BaseService>;
119
42
  readonly plugins: PluginPort;
120
-
121
- private readonly logger: Logger;
122
- private readonly sessionsById = new Map<string, Session>();
123
- private readonly runtime: AgentRuntime;
124
- private readonly serviceContext: AgentContext;
125
- private readonly pluginRegistry: PluginRegistry;
126
- private readonly pluginSystemProviders: Plugin[];
127
- private readonly config: DowncityConfig;
128
- private readonly platform: AgentPlatformRuntime;
129
- private instruction: string[];
130
- private servicesStartPromise: Promise<void> | null = null;
43
+ private servicesStarted = false;
44
+ private startPromise: Promise<AgentStartResult> | null = null;
45
+ private httpBinding: AgentHttpBinding | null = null;
46
+ private rpcBinding: AgentRpcBinding | null = null;
131
47
 
132
48
  constructor(options: AgentOptions) {
133
- this.id = String(options.id || "").trim();
134
- this.path = String(options.path || "").trim();
135
- this.tools = options.tools && typeof options.tools === "object"
136
- ? { ...options.tools }
137
- : {};
138
- if (!this.id) {
139
- throw new Error("Agent requires a non-empty id");
140
- }
141
- if (!this.path) {
142
- throw new Error("Agent requires a non-empty path");
143
- }
144
-
145
- this.logger = new Logger();
146
- this.logger.bindProjectRoot(this.path);
147
- this.platform = options.platform || EMPTY_SDK_PLATFORM;
148
- this.instruction = normalizeInstructionInput(options.instruction);
149
- this.config = this.loadConfig();
150
- this.services = this.createServiceMap(options.services || []);
151
- this.runtime = this.createRuntime();
152
- for (const service of this.services.values()) {
153
- service.bindAgent(this.runtime);
154
- }
155
- this.pluginSystemProviders = Array.isArray(options.plugins)
156
- ? [...options.plugins]
157
- : [];
158
- this.pluginRegistry = this.createPluginRegistry(this.pluginSystemProviders);
159
- this.plugins = this.createPluginPort();
160
- this.serviceContext = this.createServiceContext();
161
- this.http = new SdkAgentHttpServer(this);
162
- this.rpc = new SdkAgentRpcServer(this);
49
+ this.core = new AgentCore(options);
50
+ this.id = this.core.id;
51
+ this.path = this.core.path;
52
+ this.tools = this.core.tools;
53
+ this.services = this.core.services;
54
+ this.plugins = this.core.plugins;
163
55
  }
164
56
 
165
57
  /**
166
58
  * 获取或创建一个 session。
167
59
  */
168
60
  async session(sessionId?: string): Promise<Session> {
169
- const session = this.getOrCreateSession(sessionId);
170
- await session.initialize();
171
- return session;
61
+ return await this.core.session(sessionId);
172
62
  }
173
63
 
174
64
  /**
175
65
  * 列出当前 agent 的全部 session 元数据。
176
66
  */
177
67
  async sessions(): Promise<AgentSessionMetadata[]> {
178
- const rootDir = getSdkAgentSessionsRootDirPath(this.path, this.id);
179
- if (!(await fs.pathExists(rootDir))) return [];
180
- const entries = await fs.readdir(rootDir, { withFileTypes: true });
181
- const items: AgentSessionMetadata[] = [];
182
- for (const entry of entries) {
183
- if (!entry.isDirectory()) continue;
184
- let sessionId = "";
185
- try {
186
- sessionId = decodeURIComponent(entry.name);
187
- } catch {
188
- sessionId = entry.name;
189
- }
190
- if (!sessionId) continue;
191
- const session = await this.session(sessionId);
192
- items.push(await session.toMetadata());
193
- }
194
- items.sort((a, b) => (b.updatedAt || 0) - (a.updatedAt || 0));
195
- return items;
68
+ return await this.core.sessions();
196
69
  }
197
70
 
198
71
  /**
199
72
  * 确保显式注入的 services 已启动。
200
73
  */
201
74
  async ensureServicesStarted(): Promise<void> {
202
- if (this.servicesStartPromise) {
203
- await this.servicesStartPromise;
204
- return;
205
- }
206
- this.servicesStartPromise = (async () => {
207
- for (const service of this.services.values()) {
208
- await service.lifecycle?.start?.(this.serviceContext);
75
+ if (this.servicesStarted) return;
76
+ const lifecycle = await startAllServices(this.getContext());
77
+ this.servicesStarted = true;
78
+ for (const item of lifecycle.results) {
79
+ if (!item.success) {
80
+ this.getRuntime().logger.error(
81
+ `Service start failed: ${item.service?.name || "unknown"} - ${item.error || "unknown error"}`,
82
+ );
209
83
  }
210
- })();
211
- await this.servicesStartPromise;
84
+ }
212
85
  }
213
86
 
214
87
  /**
215
- * 更新当前 SDK Agent 的静态基础指令。
216
- *
217
- * 关键点(中文)
218
- * - instruction 不做动态变量替换。
219
- * - 已创建的 session 后续 run 会读取最新 instruction blocks。
88
+ * 启动当前 agent 实例的长期运行能力。
220
89
  */
221
- setInstruction(input: string | string[]): void {
222
- this.instruction = normalizeInstructionInput(input);
223
- }
90
+ async start(options?: AgentStartOptions): Promise<AgentStartResult> {
91
+ if (this.startPromise) {
92
+ return await this.startPromise;
93
+ }
94
+ this.startPromise = (async () => {
95
+ const shouldStartServices = options?.services !== false;
224
96
 
225
- private loadConfig(): DowncityConfig {
97
+ if (shouldStartServices) {
98
+ await this.ensureServicesStarted();
99
+ }
100
+
101
+ const httpBinding =
102
+ options?.http === false || options?.http === undefined
103
+ ? undefined
104
+ : await this.startHttp(options.http);
105
+ const rpcBinding =
106
+ options?.rpc === true
107
+ ? await this.startRpc()
108
+ : undefined;
109
+
110
+ return {
111
+ ...(httpBinding ? { http: httpBinding } : {}),
112
+ ...(rpcBinding ? { rpc: rpcBinding } : {}),
113
+ servicesStarted: this.servicesStarted,
114
+ };
115
+ })();
226
116
  try {
227
- return loadDowncityConfig(this.path, {
228
- projectEnv: {},
229
- agentEnv: {},
230
- globalEnv: {},
231
- });
232
- } catch {
233
- return createFallbackSdkConfig(this.id);
117
+ return await this.startPromise;
118
+ } catch (error) {
119
+ this.startPromise = null;
120
+ throw error;
234
121
  }
235
122
  }
236
123
 
237
- private createServiceMap(input: BaseService[]): Map<string, BaseService> {
238
- const services = new Map<string, BaseService>();
239
- for (const service of input) {
240
- const name = String(service?.name || "").trim();
241
- if (!name) {
242
- throw new Error("Agent received a service without a valid name");
243
- }
244
- if (services.has(name)) {
245
- throw new Error(`Duplicate service registration: ${name}`);
246
- }
247
- services.set(name, service);
124
+ /**
125
+ * 停止当前 agent 实例的长期运行能力。
126
+ */
127
+ async stop(): Promise<AgentStopResult> {
128
+ const servicesStarted = this.servicesStarted;
129
+ const rpcStarted = this.rpcBinding !== null;
130
+ const httpStarted = this.httpBinding !== null;
131
+
132
+ if (servicesStarted) {
133
+ await stopAllServices(this.getContext());
134
+ this.servicesStarted = false;
248
135
  }
249
- return services;
250
- }
251
136
 
252
- private createPluginRegistry(input: Plugin[]): PluginRegistry {
253
- let pluginRegistryRef: PluginRegistry | null = null;
254
- const hookRegistry = new HookRegistry({
255
- contextResolver: () => this.serviceContext,
256
- pluginEnabledChecker: (pluginName) => {
257
- const plugin = pluginRegistryRef?.get(pluginName);
258
- return plugin ? isPluginEnabled({ plugin, context: this.serviceContext }) : false;
259
- },
260
- });
261
- const registry = new PluginRegistry({
262
- contextResolver: () => this.serviceContext,
263
- hookRegistry,
264
- });
265
- pluginRegistryRef = registry;
137
+ if (rpcStarted) {
138
+ await this.stopRpc();
139
+ }
266
140
 
267
- for (const plugin of input) {
268
- registry.register(plugin);
141
+ if (httpStarted) {
142
+ await this.stopHttp();
269
143
  }
270
- return registry;
271
- }
272
144
 
273
- private createPluginPort(): PluginPort {
145
+ this.startPromise = null;
146
+
274
147
  return {
275
- list: (): PluginView[] => this.pluginRegistry.list(),
276
- availability: async (pluginName: string): Promise<PluginAvailability> =>
277
- await this.pluginRegistry.availability(pluginName),
278
- runAction: async (params) => await this.pluginRegistry.runAction(params),
279
- pipeline: async <T>(pointName: string, value: T): Promise<T> =>
280
- await this.pluginRegistry.pipeline(pointName, value),
281
- guard: async <T>(pointName: string, value: T): Promise<void> => {
282
- await this.pluginRegistry.guard(pointName, value);
283
- },
284
- effect: async <T>(pointName: string, value: T): Promise<void> => {
285
- await this.pluginRegistry.effect(pointName, value);
286
- },
287
- resolve: async <TInput, TOutput>(
288
- pointName: string,
289
- value: TInput,
290
- ): Promise<TOutput> =>
291
- await this.pluginRegistry.resolve<TInput, TOutput>(pointName, value),
148
+ httpStopped: httpStarted,
149
+ rpcStopped: rpcStarted,
150
+ servicesStopped: servicesStarted,
292
151
  };
293
152
  }
294
153
 
295
- private loadInstructionSystemBlocks(): AgentSessionSystemBlock[] {
296
- return createInstructionSystemBlocks(this.instruction, this.path);
154
+ /**
155
+ * 更新当前 SDK Agent 的静态基础指令。
156
+ *
157
+ * 关键点(中文)
158
+ * - instruction 不做动态变量替换。
159
+ * - 已创建的 session 后续 run 会读取最新 instruction blocks。
160
+ */
161
+ setInstruction(input: string | string[]): void {
162
+ this.core.setInstruction(input);
297
163
  }
298
164
 
299
- private async loadPluginSystemBlocks(): Promise<AgentSessionSystemBlock[]> {
300
- const out: AgentSessionSystemBlock[] = [];
301
- for (const plugin of this.pluginSystemProviders) {
302
- if (typeof plugin.system !== "function") continue;
303
- try {
304
- if (!isPluginEnabled({ plugin, context: this.serviceContext })) continue;
305
- if (typeof plugin.availability === "function") {
306
- const availability = await plugin.availability(this.serviceContext);
307
- if (!availability.available) continue;
308
- }
309
- const text = String(await plugin.system(this.serviceContext)).trim();
310
- if (!text) continue;
311
- out.push({
312
- source: "plugin",
313
- name: plugin.name,
314
- content: text,
315
- });
316
- } catch {
317
- // 单个 plugin system 失败不应阻断 SDK session 主链路。
318
- }
319
- }
320
- return out;
165
+ /**
166
+ * 返回实例级 runtime 视图。
167
+ */
168
+ getRuntime(): AgentRuntime {
169
+ return this.core.getRuntime();
321
170
  }
322
171
 
323
- private async loadServiceSystemBlocks(): Promise<AgentSessionSystemBlock[]> {
324
- const out: AgentSessionSystemBlock[] = [];
325
- for (const service of this.services.values()) {
326
- if (typeof service.system !== "function") continue;
327
- try {
328
- const text = String(await service.system(this.serviceContext)).trim();
329
- if (!text) continue;
330
- out.push({
331
- source: "service",
332
- name: service.name,
333
- content: text,
334
- });
335
- } catch {
336
- // 单个 service system 失败不应阻断 SDK session 主链路。
337
- }
338
- }
339
- return out;
172
+ /**
173
+ * 返回实例级执行上下文。
174
+ */
175
+ getContext(): AgentContext {
176
+ return this.core.getContext();
340
177
  }
341
178
 
342
- private createRuntime(): AgentRuntime {
343
- const runtime = {
344
- cwd: this.path,
345
- rootPath: this.path,
346
- logger: this.logger,
347
- config: this.config,
348
- env: {},
349
- globalEnv: {},
350
- systems: this.instruction,
351
- paths: createAgentPathRuntime(this.path),
352
- pluginConfig: createAgentPluginConfigRuntime(this.path),
353
- platform: this.platform,
354
- model: undefined,
355
- getSession: (sessionId: string) => {
356
- return this.getOrCreateSession(sessionId).getServicePort() as never;
357
- },
358
- listExecutingSessionIds: () =>
359
- [...this.sessionsById.values()]
360
- .filter((session) => session.isExecuting())
361
- .map((session) => session.id),
362
- getExecutingSessionCount: () =>
363
- [...this.sessionsById.values()].filter((session) => session.isExecuting()).length,
364
- services: this.services,
365
- } satisfies Omit<AgentRuntime, "getSession"> & {
366
- getSession(sessionId: string): never;
179
+ /**
180
+ * 启动当前 agent 的 HTTP server。
181
+ */
182
+ private async startHttp(
183
+ options?: AgentHttpStartOptions,
184
+ ): Promise<AgentHttpBinding> {
185
+ if (this.httpBinding) {
186
+ return this.httpBinding;
187
+ }
188
+ const host = String(options?.host || "127.0.0.1").trim() || "127.0.0.1";
189
+ const port =
190
+ typeof options?.port === "number" && Number.isInteger(options.port)
191
+ ? options.port
192
+ : 15314;
193
+ const server = await startServer({
194
+ host,
195
+ port,
196
+ core: this.core,
197
+ });
198
+ this.httpBinding = {
199
+ baseUrl: `http://${host}:${port}`,
200
+ host,
201
+ port,
202
+ server,
367
203
  };
368
- return runtime as unknown as AgentRuntime;
204
+ return this.httpBinding;
369
205
  }
370
206
 
371
- private createServiceContext(): AgentContext {
372
- let context!: AgentContext;
373
- context = {
374
- agent: this.runtime,
375
- cwd: this.path,
376
- rootPath: this.path,
377
- logger: this.logger,
378
- config: this.config,
379
- env: {},
380
- globalEnv: {},
381
- systems: this.instruction,
382
- paths: this.runtime.paths,
383
- pluginConfig: this.runtime.pluginConfig,
384
- platform: this.platform,
385
- session: {
386
- get: (sessionId) => this.getOrCreateSession(sessionId).getServicePort(),
387
- listExecutingSessionIds: () => this.runtime.listExecutingSessionIds(),
388
- getExecutingSessionCount: () => this.runtime.getExecutingSessionCount(),
389
- },
390
- invoke: {
391
- invoke: async (params: {
392
- service: string;
393
- action: string;
394
- payload?: JsonValue;
395
- }) => {
396
- const serviceName = String(params.service || "").trim();
397
- const actionName = String(params.action || "").trim();
398
- const service = this.services.get(serviceName);
399
- if (!service) {
400
- return {
401
- success: false,
402
- error: `Unknown service: ${serviceName}`,
403
- };
404
- }
405
- const action = service.actions[actionName];
406
- if (!action) {
407
- return {
408
- success: false,
409
- error: `Unknown action: ${serviceName}.${actionName}`,
410
- };
411
- }
412
- const result = await action.execute({
413
- context,
414
- payload: params.payload ?? null,
415
- serviceName,
416
- actionName,
417
- });
418
- if (!result.success) {
419
- return {
420
- success: false,
421
- ...(result.error ? { error: result.error } : {}),
422
- };
423
- }
424
- return {
425
- success: true,
426
- ...(result.data !== undefined ? { data: result.data } : {}),
427
- };
428
- },
429
- },
430
- chat: {
431
- readMetaBySessionId: async (sessionId: string) => {
432
- return await readChatMetaBySessionId({
433
- context,
434
- sessionId,
435
- });
436
- },
437
- appendExecSessionMessage: async (params) => {
438
- await appendExecSessionMessage({
439
- context,
440
- sessionId: params.sessionId,
441
- text: params.text,
442
- extra: params.extra,
443
- });
444
- },
445
- enqueue: (params) => resolveChatQueueStore(context).enqueue(params),
446
- },
447
- plugins: this.plugins,
448
- };
449
- return context;
207
+ /**
208
+ * 停止当前 agent 的 HTTP server。
209
+ */
210
+ private async stopHttp(): Promise<void> {
211
+ if (!this.httpBinding) return;
212
+ const current = this.httpBinding;
213
+ this.httpBinding = null;
214
+ await current.server.stop();
450
215
  }
451
216
 
452
- private getOrCreateSession(sessionId?: string): Session {
453
- const resolvedSessionId =
454
- String(sessionId || "").trim() || `session-${Date.now()}-${nanoid(8)}`;
455
- const cached = this.sessionsById.get(resolvedSessionId);
456
- if (cached) return cached;
457
-
458
- const created = new Session({
459
- agentId: this.id,
460
- projectRoot: this.path,
461
- sessionId: resolvedSessionId,
462
- tools: this.tools,
463
- logger: this.logger,
464
- getInstructionSystemBlocks: () => this.loadInstructionSystemBlocks(),
465
- getServiceSystemBlocks: () => this.loadServiceSystemBlocks(),
466
- getPluginSystemBlocks: () => this.loadPluginSystemBlocks(),
217
+ /**
218
+ * 启动当前 agent 的本地 RPC server。
219
+ */
220
+ private async startRpc(): Promise<AgentRpcBinding> {
221
+ if (this.rpcBinding) {
222
+ return this.rpcBinding;
223
+ }
224
+ const server = await startLocalRpcServer({
225
+ core: this.core,
467
226
  });
468
- this.sessionsById.set(resolvedSessionId, created);
469
- return created;
227
+ this.rpcBinding = {
228
+ endpoint: server.endpoint,
229
+ server,
230
+ };
231
+ return this.rpcBinding;
232
+ }
233
+
234
+ /**
235
+ * 停止当前 agent 的本地 RPC server。
236
+ */
237
+ private async stopRpc(): Promise<void> {
238
+ if (!this.rpcBinding) return;
239
+ const current = this.rpcBinding;
240
+ this.rpcBinding = null;
241
+ await current.server.stop();
470
242
  }
471
243
  }