@downcity/agent 1.1.13 → 1.1.14

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 (463) hide show
  1. package/bin/{runtime → core}/AgentContextTypes.d.ts +6 -6
  2. package/bin/core/AgentContextTypes.d.ts.map +1 -0
  3. package/bin/{runtime → core}/AgentContextTypes.js +2 -2
  4. package/bin/core/AgentContextTypes.js.map +1 -0
  5. package/bin/core/AgentCore.d.ts +87 -0
  6. package/bin/core/AgentCore.d.ts.map +1 -0
  7. package/bin/core/AgentCore.js +467 -0
  8. package/bin/core/AgentCore.js.map +1 -0
  9. package/bin/{runtime/AgentRuntimeTypes.d.ts → core/AgentCoreTypes.d.ts} +7 -7
  10. package/bin/core/AgentCoreTypes.d.ts.map +1 -0
  11. package/bin/core/AgentCoreTypes.js +10 -0
  12. package/bin/core/AgentCoreTypes.js.map +1 -0
  13. package/bin/host/runtime/PluginRuntime.d.ts +1 -1
  14. package/bin/host/runtime/PluginRuntime.d.ts.map +1 -1
  15. package/bin/index.d.ts +6 -8
  16. package/bin/index.d.ts.map +1 -1
  17. package/bin/index.js +2 -5
  18. package/bin/index.js.map +1 -1
  19. package/bin/plugin/builtins/asr/InboundAugment.d.ts +1 -1
  20. package/bin/plugin/builtins/asr/InboundAugment.d.ts.map +1 -1
  21. package/bin/plugin/builtins/auth/runtime/AuthorizationConfig.d.ts +1 -1
  22. package/bin/plugin/builtins/auth/runtime/AuthorizationConfig.d.ts.map +1 -1
  23. package/bin/plugin/builtins/auth/runtime/AuthorizationStore.d.ts +1 -1
  24. package/bin/plugin/builtins/auth/runtime/AuthorizationStore.d.ts.map +1 -1
  25. package/bin/plugin/builtins/voice/InboundAugment.d.ts +1 -1
  26. package/bin/plugin/builtins/voice/InboundAugment.d.ts.map +1 -1
  27. package/bin/plugin/builtins/workboard/runtime/Collector.d.ts +1 -1
  28. package/bin/plugin/builtins/workboard/runtime/Collector.d.ts.map +1 -1
  29. package/bin/plugin/builtins/workboard/runtime/Collector.js +1 -1
  30. package/bin/plugin/builtins/workboard/runtime/Collector.js.map +1 -1
  31. package/bin/plugin/builtins/workboard/runtime/Normalizer.d.ts +1 -1
  32. package/bin/plugin/builtins/workboard/runtime/Normalizer.d.ts.map +1 -1
  33. package/bin/plugin/builtins/workboard/runtime/Store.d.ts +1 -1
  34. package/bin/plugin/builtins/workboard/runtime/Store.d.ts.map +1 -1
  35. package/bin/plugin/core/Activation.d.ts +2 -2
  36. package/bin/plugin/core/Activation.d.ts.map +1 -1
  37. package/bin/plugin/core/HookRegistry.d.ts +1 -1
  38. package/bin/plugin/core/HookRegistry.d.ts.map +1 -1
  39. package/bin/plugin/core/HttpRoutes.d.ts +1 -1
  40. package/bin/plugin/core/HttpRoutes.d.ts.map +1 -1
  41. package/bin/plugin/core/LocalExecution.d.ts.map +1 -1
  42. package/bin/plugin/core/LocalExecution.js +18 -20
  43. package/bin/plugin/core/LocalExecution.js.map +1 -1
  44. package/bin/plugin/core/PluginRegistry.d.ts +1 -1
  45. package/bin/plugin/core/PluginRegistry.d.ts.map +1 -1
  46. package/bin/plugin/types/Plugin.d.ts +1 -1
  47. package/bin/plugin/types/Plugin.d.ts.map +1 -1
  48. package/bin/sandbox/SandboxConfigResolver.d.ts +1 -1
  49. package/bin/sandbox/SandboxConfigResolver.d.ts.map +1 -1
  50. package/bin/sandbox/SandboxRunner.d.ts +1 -1
  51. package/bin/sandbox/SandboxRunner.d.ts.map +1 -1
  52. package/bin/sdk/Agent.d.ts +25 -23
  53. package/bin/sdk/Agent.d.ts.map +1 -1
  54. package/bin/sdk/Agent.js +86 -365
  55. package/bin/sdk/Agent.js.map +1 -1
  56. package/bin/sdk/AgentSdkTypes.d.ts +138 -0
  57. package/bin/sdk/AgentSdkTypes.d.ts.map +1 -1
  58. package/bin/sdk/HttpServer.d.ts +9 -19
  59. package/bin/sdk/HttpServer.d.ts.map +1 -1
  60. package/bin/sdk/HttpServer.js +26 -156
  61. package/bin/sdk/HttpServer.js.map +1 -1
  62. package/bin/sdk/RpcServer.d.ts +9 -10
  63. package/bin/sdk/RpcServer.d.ts.map +1 -1
  64. package/bin/sdk/RpcServer.js +22 -178
  65. package/bin/sdk/RpcServer.js.map +1 -1
  66. package/bin/sdk/Session.d.ts +2 -2
  67. package/bin/sdk/Session.d.ts.map +1 -1
  68. package/bin/sdk/Session.js +7 -1
  69. package/bin/sdk/Session.js.map +1 -1
  70. package/bin/sdk/SessionServicePort.d.ts +1 -1
  71. package/bin/sdk/SessionServicePort.d.ts.map +1 -1
  72. package/bin/server/http/Server.d.ts +10 -1
  73. package/bin/server/http/Server.d.ts.map +1 -1
  74. package/bin/server/http/Server.js +41 -15
  75. package/bin/server/http/Server.js.map +1 -1
  76. package/bin/server/http/control/AuthControlService.d.ts +1 -1
  77. package/bin/server/http/control/AuthControlService.d.ts.map +1 -1
  78. package/bin/server/http/control/ControlAuthorizationRoutes.d.ts +1 -1
  79. package/bin/server/http/control/ControlAuthorizationRoutes.d.ts.map +1 -1
  80. package/bin/server/http/control/ControlRouter.d.ts +18 -2
  81. package/bin/server/http/control/ControlRouter.d.ts.map +1 -1
  82. package/bin/server/http/control/ControlRouter.js +10 -8
  83. package/bin/server/http/control/ControlRouter.js.map +1 -1
  84. package/bin/server/http/control/ExecuteBySession.d.ts +2 -2
  85. package/bin/server/http/control/ExecuteBySession.d.ts.map +1 -1
  86. package/bin/server/http/control/OverviewRoutes.d.ts.map +1 -1
  87. package/bin/server/http/control/OverviewRoutes.js +6 -2
  88. package/bin/server/http/control/OverviewRoutes.js.map +1 -1
  89. package/bin/server/http/control/SessionSummaryStore.d.ts +1 -1
  90. package/bin/server/http/control/SessionSummaryStore.d.ts.map +1 -1
  91. package/bin/server/http/control/types/ControlRoutes.d.ts +2 -2
  92. package/bin/server/http/control/types/ControlRoutes.d.ts.map +1 -1
  93. package/bin/server/http/execute/execute.d.ts +13 -2
  94. package/bin/server/http/execute/execute.d.ts.map +1 -1
  95. package/bin/server/http/execute/execute.js +73 -71
  96. package/bin/server/http/execute/execute.js.map +1 -1
  97. package/bin/server/http/plugins/plugins.d.ts +13 -2
  98. package/bin/server/http/plugins/plugins.d.ts.map +1 -1
  99. package/bin/server/http/plugins/plugins.js +42 -40
  100. package/bin/server/http/plugins/plugins.js.map +1 -1
  101. package/bin/server/http/services/services.d.ts +12 -8
  102. package/bin/server/http/services/services.d.ts.map +1 -1
  103. package/bin/server/http/services/services.js +57 -64
  104. package/bin/server/http/services/services.js.map +1 -1
  105. package/bin/server/http/static/static.d.ts +13 -2
  106. package/bin/server/http/static/static.d.ts.map +1 -1
  107. package/bin/server/http/static/static.js +81 -79
  108. package/bin/server/http/static/static.js.map +1 -1
  109. package/bin/server/rpc/Server.d.ts +5 -3
  110. package/bin/server/rpc/Server.d.ts.map +1 -1
  111. package/bin/server/rpc/Server.js +22 -12
  112. package/bin/server/rpc/Server.js.map +1 -1
  113. package/bin/service/builtins/BaseService.d.ts +2 -2
  114. package/bin/service/builtins/BaseService.d.ts.map +1 -1
  115. package/bin/service/builtins/chat/Action.d.ts +1 -1
  116. package/bin/service/builtins/chat/Action.d.ts.map +1 -1
  117. package/bin/service/builtins/chat/ChatService.d.ts +2 -2
  118. package/bin/service/builtins/chat/ChatService.d.ts.map +1 -1
  119. package/bin/service/builtins/chat/ChatServiceTypes.d.ts +1 -1
  120. package/bin/service/builtins/chat/ChatServiceTypes.d.ts.map +1 -1
  121. package/bin/service/builtins/chat/channels/BaseChatChannel.d.ts +1 -1
  122. package/bin/service/builtins/chat/channels/BaseChatChannel.d.ts.map +1 -1
  123. package/bin/service/builtins/chat/channels/BaseChatChannelQueue.d.ts +1 -1
  124. package/bin/service/builtins/chat/channels/BaseChatChannelQueue.d.ts.map +1 -1
  125. package/bin/service/builtins/chat/channels/BaseChatChannelSupport.d.ts +1 -1
  126. package/bin/service/builtins/chat/channels/BaseChatChannelSupport.d.ts.map +1 -1
  127. package/bin/service/builtins/chat/channels/feishu/Feishu.d.ts +1 -1
  128. package/bin/service/builtins/chat/channels/feishu/Feishu.d.ts.map +1 -1
  129. package/bin/service/builtins/chat/channels/feishu/FeishuMessageHandler.d.ts +1 -1
  130. package/bin/service/builtins/chat/channels/feishu/FeishuMessageHandler.d.ts.map +1 -1
  131. package/bin/service/builtins/chat/channels/feishu/FeishuPlatformClient.d.ts +1 -1
  132. package/bin/service/builtins/chat/channels/feishu/FeishuPlatformClient.d.ts.map +1 -1
  133. package/bin/service/builtins/chat/channels/qq/QQ.d.ts +1 -1
  134. package/bin/service/builtins/chat/channels/qq/QQ.d.ts.map +1 -1
  135. package/bin/service/builtins/chat/channels/qq/QQMessageHandler.d.ts +1 -1
  136. package/bin/service/builtins/chat/channels/qq/QQMessageHandler.d.ts.map +1 -1
  137. package/bin/service/builtins/chat/channels/qq/QQSupport.d.ts +1 -1
  138. package/bin/service/builtins/chat/channels/qq/QQSupport.d.ts.map +1 -1
  139. package/bin/service/builtins/chat/channels/telegram/Bot.d.ts +1 -1
  140. package/bin/service/builtins/chat/channels/telegram/Bot.d.ts.map +1 -1
  141. package/bin/service/builtins/chat/channels/telegram/TelegramMessageHandler.d.ts +1 -1
  142. package/bin/service/builtins/chat/channels/telegram/TelegramMessageHandler.d.ts.map +1 -1
  143. package/bin/service/builtins/chat/channels/telegram/TelegramPlatformClient.d.ts +1 -1
  144. package/bin/service/builtins/chat/channels/telegram/TelegramPlatformClient.d.ts.map +1 -1
  145. package/bin/service/builtins/chat/runtime/ChannelContextStore.d.ts +1 -1
  146. package/bin/service/builtins/chat/runtime/ChannelContextStore.d.ts.map +1 -1
  147. package/bin/service/builtins/chat/runtime/ChatActionExecution.d.ts +1 -1
  148. package/bin/service/builtins/chat/runtime/ChatActionExecution.d.ts.map +1 -1
  149. package/bin/service/builtins/chat/runtime/ChatActionInput.d.ts +3 -36
  150. package/bin/service/builtins/chat/runtime/ChatActionInput.d.ts.map +1 -1
  151. package/bin/service/builtins/chat/runtime/ChatActionInput.js +3 -118
  152. package/bin/service/builtins/chat/runtime/ChatActionInput.js.map +1 -1
  153. package/bin/service/builtins/chat/runtime/ChatChannelActions.d.ts +1 -1
  154. package/bin/service/builtins/chat/runtime/ChatChannelActions.d.ts.map +1 -1
  155. package/bin/service/builtins/chat/runtime/ChatChannelConfig.d.ts +1 -1
  156. package/bin/service/builtins/chat/runtime/ChatChannelConfig.d.ts.map +1 -1
  157. package/bin/service/builtins/chat/runtime/ChatChannelCore.d.ts +1 -1
  158. package/bin/service/builtins/chat/runtime/ChatChannelCore.d.ts.map +1 -1
  159. package/bin/service/builtins/chat/runtime/ChatChannelLifecycle.d.ts +1 -1
  160. package/bin/service/builtins/chat/runtime/ChatChannelLifecycle.d.ts.map +1 -1
  161. package/bin/service/builtins/chat/runtime/ChatHistoryStore.d.ts +1 -1
  162. package/bin/service/builtins/chat/runtime/ChatHistoryStore.d.ts.map +1 -1
  163. package/bin/service/builtins/chat/runtime/ChatIngressStore.d.ts +1 -1
  164. package/bin/service/builtins/chat/runtime/ChatIngressStore.d.ts.map +1 -1
  165. package/bin/service/builtins/chat/runtime/ChatMetaStore.d.ts +1 -1
  166. package/bin/service/builtins/chat/runtime/ChatMetaStore.d.ts.map +1 -1
  167. package/bin/service/builtins/chat/runtime/ChatQueueReplyDispatch.d.ts +1 -1
  168. package/bin/service/builtins/chat/runtime/ChatQueueReplyDispatch.d.ts.map +1 -1
  169. package/bin/service/builtins/chat/runtime/ChatQueueSessionBridge.d.ts +1 -1
  170. package/bin/service/builtins/chat/runtime/ChatQueueSessionBridge.d.ts.map +1 -1
  171. package/bin/service/builtins/chat/runtime/ChatQueueStore.d.ts +1 -1
  172. package/bin/service/builtins/chat/runtime/ChatQueueStore.d.ts.map +1 -1
  173. package/bin/service/builtins/chat/runtime/ChatQueueWorker.d.ts +1 -1
  174. package/bin/service/builtins/chat/runtime/ChatQueueWorker.d.ts.map +1 -1
  175. package/bin/service/builtins/chat/runtime/ChatServiceActions.d.ts +1 -1
  176. package/bin/service/builtins/chat/runtime/ChatServiceActions.d.ts.map +1 -1
  177. package/bin/service/builtins/chat/runtime/ChatServiceActions.js +2 -109
  178. package/bin/service/builtins/chat/runtime/ChatServiceActions.js.map +1 -1
  179. package/bin/service/builtins/chat/runtime/ChatServiceSystem.d.ts +1 -1
  180. package/bin/service/builtins/chat/runtime/ChatServiceSystem.d.ts.map +1 -1
  181. package/bin/service/builtins/chat/runtime/ChatSessionDelete.d.ts +1 -1
  182. package/bin/service/builtins/chat/runtime/ChatSessionDelete.d.ts.map +1 -1
  183. package/bin/service/builtins/chat/runtime/ChatkeySend.d.ts +1 -1
  184. package/bin/service/builtins/chat/runtime/ChatkeySend.d.ts.map +1 -1
  185. package/bin/service/builtins/chat/runtime/EnqueueDispatch.d.ts +1 -1
  186. package/bin/service/builtins/chat/runtime/EnqueueDispatch.d.ts.map +1 -1
  187. package/bin/service/builtins/chat/runtime/InboundAugment.d.ts +1 -1
  188. package/bin/service/builtins/chat/runtime/InboundAugment.d.ts.map +1 -1
  189. package/bin/service/builtins/chat/runtime/PluginDispatch.d.ts +1 -1
  190. package/bin/service/builtins/chat/runtime/PluginDispatch.d.ts.map +1 -1
  191. package/bin/service/builtins/chat/runtime/ReplyDispatch.d.ts +1 -1
  192. package/bin/service/builtins/chat/runtime/ReplyDispatch.d.ts.map +1 -1
  193. package/bin/service/builtins/chat/runtime/SystemPrompt.d.ts +1 -1
  194. package/bin/service/builtins/chat/runtime/SystemPrompt.d.ts.map +1 -1
  195. package/bin/service/builtins/contact/Action.d.ts +2 -2
  196. package/bin/service/builtins/contact/Action.d.ts.map +1 -1
  197. package/bin/service/builtins/contact/Action.js +2 -58
  198. package/bin/service/builtins/contact/Action.js.map +1 -1
  199. package/bin/service/builtins/contact/ContactService.d.ts +1 -1
  200. package/bin/service/builtins/contact/ContactService.d.ts.map +1 -1
  201. package/bin/service/builtins/contact/runtime/ChatRuntime.d.ts +1 -1
  202. package/bin/service/builtins/contact/runtime/ChatRuntime.d.ts.map +1 -1
  203. package/bin/service/builtins/contact/runtime/ContactPayload.d.ts +0 -7
  204. package/bin/service/builtins/contact/runtime/ContactPayload.d.ts.map +1 -1
  205. package/bin/service/builtins/contact/runtime/ContactPayload.js +0 -9
  206. package/bin/service/builtins/contact/runtime/ContactPayload.js.map +1 -1
  207. package/bin/service/builtins/contact/runtime/RemoteClient.d.ts +1 -1
  208. package/bin/service/builtins/contact/runtime/RemoteClient.d.ts.map +1 -1
  209. package/bin/service/builtins/contact/runtime/RemoteClient.js +37 -19
  210. package/bin/service/builtins/contact/runtime/RemoteClient.js.map +1 -1
  211. package/bin/service/builtins/contact/runtime/ShareBundle.d.ts +1 -1
  212. package/bin/service/builtins/contact/runtime/ShareBundle.d.ts.map +1 -1
  213. package/bin/service/builtins/memory/Action.d.ts +1 -1
  214. package/bin/service/builtins/memory/Action.d.ts.map +1 -1
  215. package/bin/service/builtins/memory/MemoryService.d.ts +1 -1
  216. package/bin/service/builtins/memory/MemoryService.d.ts.map +1 -1
  217. package/bin/service/builtins/memory/MemoryService.js +0 -27
  218. package/bin/service/builtins/memory/MemoryService.js.map +1 -1
  219. package/bin/service/builtins/memory/runtime/Flush.d.ts +1 -1
  220. package/bin/service/builtins/memory/runtime/Flush.d.ts.map +1 -1
  221. package/bin/service/builtins/memory/runtime/Search.d.ts +1 -1
  222. package/bin/service/builtins/memory/runtime/Search.d.ts.map +1 -1
  223. package/bin/service/builtins/memory/runtime/Store.d.ts +1 -1
  224. package/bin/service/builtins/memory/runtime/Store.d.ts.map +1 -1
  225. package/bin/service/builtins/memory/runtime/SystemProvider.d.ts +1 -1
  226. package/bin/service/builtins/memory/runtime/SystemProvider.d.ts.map +1 -1
  227. package/bin/service/builtins/memory/runtime/Writer.d.ts +1 -1
  228. package/bin/service/builtins/memory/runtime/Writer.d.ts.map +1 -1
  229. package/bin/service/builtins/schedule/ScheduleService.d.ts +39 -0
  230. package/bin/service/builtins/schedule/ScheduleService.d.ts.map +1 -0
  231. package/bin/service/builtins/schedule/ScheduleService.js +106 -0
  232. package/bin/service/builtins/schedule/ScheduleService.js.map +1 -0
  233. package/bin/service/builtins/shell/ShellRuntimeTypes.d.ts +1 -1
  234. package/bin/service/builtins/shell/ShellRuntimeTypes.d.ts.map +1 -1
  235. package/bin/service/builtins/shell/ShellService.d.ts +2 -2
  236. package/bin/service/builtins/shell/ShellService.d.ts.map +1 -1
  237. package/bin/service/builtins/shell/runtime/ShellActionResponse.d.ts +1 -1
  238. package/bin/service/builtins/shell/runtime/ShellActionResponse.d.ts.map +1 -1
  239. package/bin/service/builtins/shell/runtime/ShellActionRuntime.d.ts +1 -1
  240. package/bin/service/builtins/shell/runtime/ShellActionRuntime.d.ts.map +1 -1
  241. package/bin/service/builtins/shell/runtime/ShellActionRuntimeSupport.d.ts +1 -1
  242. package/bin/service/builtins/shell/runtime/ShellActionRuntimeSupport.d.ts.map +1 -1
  243. package/bin/service/builtins/shell/runtime/ShellRuntimeEnvironment.d.ts +1 -1
  244. package/bin/service/builtins/shell/runtime/ShellRuntimeEnvironment.d.ts.map +1 -1
  245. package/bin/service/builtins/task/Action.d.ts +1 -1
  246. package/bin/service/builtins/task/Action.d.ts.map +1 -1
  247. package/bin/service/builtins/task/Scheduler.d.ts +1 -1
  248. package/bin/service/builtins/task/Scheduler.d.ts.map +1 -1
  249. package/bin/service/builtins/task/TaskService.d.ts +2 -2
  250. package/bin/service/builtins/task/TaskService.d.ts.map +1 -1
  251. package/bin/service/builtins/task/runtime/CronRuntime.d.ts +1 -1
  252. package/bin/service/builtins/task/runtime/CronRuntime.d.ts.map +1 -1
  253. package/bin/service/builtins/task/runtime/Runner.d.ts +1 -1
  254. package/bin/service/builtins/task/runtime/Runner.d.ts.map +1 -1
  255. package/bin/service/builtins/task/runtime/TaskActionExecution.d.ts +1 -1
  256. package/bin/service/builtins/task/runtime/TaskActionExecution.d.ts.map +1 -1
  257. package/bin/service/builtins/task/runtime/TaskActionInput.d.ts +2 -31
  258. package/bin/service/builtins/task/runtime/TaskActionInput.d.ts.map +1 -1
  259. package/bin/service/builtins/task/runtime/TaskActionInput.js +2 -141
  260. package/bin/service/builtins/task/runtime/TaskActionInput.js.map +1 -1
  261. package/bin/service/builtins/task/runtime/TaskRunChatDispatch.d.ts +1 -1
  262. package/bin/service/builtins/task/runtime/TaskRunChatDispatch.d.ts.map +1 -1
  263. package/bin/service/builtins/task/runtime/TaskRunnerRound.d.ts +1 -1
  264. package/bin/service/builtins/task/runtime/TaskRunnerRound.d.ts.map +1 -1
  265. package/bin/service/builtins/task/runtime/TaskRunnerScript.d.ts +1 -1
  266. package/bin/service/builtins/task/runtime/TaskRunnerScript.d.ts.map +1 -1
  267. package/bin/service/builtins/task/runtime/TaskRunnerSession.d.ts +1 -1
  268. package/bin/service/builtins/task/runtime/TaskRunnerSession.d.ts.map +1 -1
  269. package/bin/service/builtins/task/runtime/TaskServiceActions.d.ts +1 -1
  270. package/bin/service/builtins/task/runtime/TaskServiceActions.d.ts.map +1 -1
  271. package/bin/service/builtins/task/runtime/TaskServiceActions.js +2 -30
  272. package/bin/service/builtins/task/runtime/TaskServiceActions.js.map +1 -1
  273. package/bin/service/core/Manager.d.ts +0 -1
  274. package/bin/service/core/Manager.d.ts.map +1 -1
  275. package/bin/service/core/Manager.js +0 -1
  276. package/bin/service/core/Manager.js.map +1 -1
  277. package/bin/service/core/ServiceActionRunner.d.ts +1 -1
  278. package/bin/service/core/ServiceActionRunner.d.ts.map +1 -1
  279. package/bin/service/core/ServiceActionRunner.js +3 -1
  280. package/bin/service/core/ServiceActionRunner.js.map +1 -1
  281. package/bin/service/core/ServiceClassRegistry.d.ts +1 -1
  282. package/bin/service/core/ServiceClassRegistry.d.ts.map +1 -1
  283. package/bin/service/core/ServiceCommandRequest.d.ts +36 -0
  284. package/bin/service/core/ServiceCommandRequest.d.ts.map +1 -0
  285. package/bin/service/core/ServiceCommandRequest.js +53 -0
  286. package/bin/service/core/ServiceCommandRequest.js.map +1 -0
  287. package/bin/service/core/ServiceManager.d.ts +1 -1
  288. package/bin/service/core/ServiceManager.d.ts.map +1 -1
  289. package/bin/service/core/ServiceStateController.d.ts +20 -7
  290. package/bin/service/core/ServiceStateController.d.ts.map +1 -1
  291. package/bin/service/core/ServiceStateController.js +23 -20
  292. package/bin/service/core/ServiceStateController.js.map +1 -1
  293. package/bin/service/core/ServiceSystemProviders.d.ts +1 -1
  294. package/bin/service/core/ServiceSystemProviders.d.ts.map +1 -1
  295. package/bin/service/core/Services.d.ts +1 -1
  296. package/bin/service/core/Services.d.ts.map +1 -1
  297. package/bin/service/core/Services.js +2 -0
  298. package/bin/service/core/Services.js.map +1 -1
  299. package/bin/service/schedule/Executor.d.ts +1 -1
  300. package/bin/service/schedule/Executor.d.ts.map +1 -1
  301. package/bin/service/types/Service.d.ts +1 -23
  302. package/bin/service/types/Service.d.ts.map +1 -1
  303. package/bin/session/composer/system/default/DefaultSessionSystemComposer.d.ts +1 -1
  304. package/bin/session/composer/system/default/DefaultSessionSystemComposer.d.ts.map +1 -1
  305. package/bin/session/composer/system/default/SystemDomain.d.ts +1 -1
  306. package/bin/session/composer/system/default/SystemDomain.d.ts.map +1 -1
  307. package/bin/session/tools/shell/ShellToolBridge.d.ts +1 -1
  308. package/bin/session/tools/shell/ShellToolBridge.d.ts.map +1 -1
  309. package/package.json +1 -1
  310. package/src/{runtime → core}/AgentContextTypes.ts +6 -7
  311. package/src/core/AgentCore.ts +527 -0
  312. package/src/{runtime/AgentRuntimeTypes.ts → core/AgentCoreTypes.ts} +6 -6
  313. package/src/host/runtime/PluginRuntime.ts +1 -1
  314. package/src/index.ts +24 -21
  315. package/src/plugin/builtins/asr/InboundAugment.ts +1 -1
  316. package/src/plugin/builtins/auth/runtime/AuthorizationConfig.ts +1 -1
  317. package/src/plugin/builtins/auth/runtime/AuthorizationStore.ts +1 -1
  318. package/src/plugin/builtins/voice/InboundAugment.ts +1 -1
  319. package/src/plugin/builtins/workboard/runtime/Collector.ts +2 -2
  320. package/src/plugin/builtins/workboard/runtime/Normalizer.ts +1 -1
  321. package/src/plugin/builtins/workboard/runtime/Store.ts +1 -1
  322. package/src/plugin/core/Activation.ts +2 -2
  323. package/src/plugin/core/HookRegistry.ts +1 -1
  324. package/src/plugin/core/HttpRoutes.ts +1 -1
  325. package/src/plugin/core/LocalExecution.ts +21 -20
  326. package/src/plugin/core/PluginRegistry.ts +1 -1
  327. package/src/plugin/types/Plugin.ts +1 -1
  328. package/src/sandbox/SandboxConfigResolver.ts +1 -1
  329. package/src/sandbox/SandboxRunner.ts +1 -1
  330. package/src/sdk/Agent.ts +99 -393
  331. package/src/sdk/AgentSdkTypes.ts +158 -0
  332. package/src/sdk/HttpServer.ts +27 -192
  333. package/src/sdk/RpcServer.ts +24 -211
  334. package/src/sdk/Session.ts +12 -2
  335. package/src/sdk/SessionServicePort.ts +1 -1
  336. package/src/server/http/Server.ts +63 -18
  337. package/src/server/http/control/AuthControlService.ts +1 -1
  338. package/src/server/http/control/ControlAuthorizationRoutes.ts +1 -1
  339. package/src/server/http/control/ControlRouter.ts +27 -11
  340. package/src/server/http/control/ExecuteBySession.ts +2 -2
  341. package/src/server/http/control/OverviewRoutes.ts +6 -2
  342. package/src/server/http/control/SessionSummaryStore.ts +1 -1
  343. package/src/server/http/control/types/ControlRoutes.ts +2 -2
  344. package/src/server/http/execute/execute.ts +107 -91
  345. package/src/server/http/plugins/plugins.ts +60 -44
  346. package/src/server/http/services/services.ts +68 -64
  347. package/src/server/http/static/static.ts +95 -79
  348. package/src/server/rpc/Server.ts +26 -15
  349. package/src/service/builtins/BaseService.ts +2 -2
  350. package/src/service/builtins/chat/Action.ts +1 -1
  351. package/src/service/builtins/chat/ChatService.ts +2 -2
  352. package/src/service/builtins/chat/ChatServiceTypes.ts +1 -1
  353. package/src/service/builtins/chat/channels/BaseChatChannel.ts +1 -1
  354. package/src/service/builtins/chat/channels/BaseChatChannelQueue.ts +1 -1
  355. package/src/service/builtins/chat/channels/BaseChatChannelSupport.ts +1 -1
  356. package/src/service/builtins/chat/channels/feishu/Feishu.ts +1 -1
  357. package/src/service/builtins/chat/channels/feishu/FeishuMessageHandler.ts +1 -1
  358. package/src/service/builtins/chat/channels/feishu/FeishuPlatformClient.ts +1 -1
  359. package/src/service/builtins/chat/channels/qq/QQ.ts +1 -1
  360. package/src/service/builtins/chat/channels/qq/QQMessageHandler.ts +1 -1
  361. package/src/service/builtins/chat/channels/qq/QQSupport.ts +1 -1
  362. package/src/service/builtins/chat/channels/telegram/Bot.ts +1 -1
  363. package/src/service/builtins/chat/channels/telegram/TelegramMessageHandler.ts +1 -1
  364. package/src/service/builtins/chat/channels/telegram/TelegramPlatformClient.ts +1 -1
  365. package/src/service/builtins/chat/runtime/ChannelContextStore.ts +1 -1
  366. package/src/service/builtins/chat/runtime/ChatActionExecution.ts +1 -1
  367. package/src/service/builtins/chat/runtime/ChatActionInput.ts +2 -158
  368. package/src/service/builtins/chat/runtime/ChatChannelActions.ts +1 -1
  369. package/src/service/builtins/chat/runtime/ChatChannelConfig.ts +1 -1
  370. package/src/service/builtins/chat/runtime/ChatChannelCore.ts +1 -1
  371. package/src/service/builtins/chat/runtime/ChatChannelLifecycle.ts +1 -1
  372. package/src/service/builtins/chat/runtime/ChatHistoryStore.ts +1 -1
  373. package/src/service/builtins/chat/runtime/ChatIngressStore.ts +1 -1
  374. package/src/service/builtins/chat/runtime/ChatMetaStore.ts +1 -1
  375. package/src/service/builtins/chat/runtime/ChatQueueReplyDispatch.ts +1 -1
  376. package/src/service/builtins/chat/runtime/ChatQueueSessionBridge.ts +1 -1
  377. package/src/service/builtins/chat/runtime/ChatQueueStore.ts +1 -1
  378. package/src/service/builtins/chat/runtime/ChatQueueWorker.ts +1 -1
  379. package/src/service/builtins/chat/runtime/ChatServiceActions.ts +1 -118
  380. package/src/service/builtins/chat/runtime/ChatServiceSystem.ts +1 -1
  381. package/src/service/builtins/chat/runtime/ChatSessionDelete.ts +1 -1
  382. package/src/service/builtins/chat/runtime/ChatkeySend.ts +1 -1
  383. package/src/service/builtins/chat/runtime/EnqueueDispatch.ts +1 -1
  384. package/src/service/builtins/chat/runtime/InboundAugment.ts +1 -1
  385. package/src/service/builtins/chat/runtime/PluginDispatch.ts +1 -1
  386. package/src/service/builtins/chat/runtime/ReplyDispatch.ts +1 -1
  387. package/src/service/builtins/chat/runtime/SystemPrompt.ts +1 -1
  388. package/src/service/builtins/contact/Action.ts +2 -59
  389. package/src/service/builtins/contact/ContactService.ts +2 -2
  390. package/src/service/builtins/contact/runtime/ChatRuntime.ts +1 -1
  391. package/src/service/builtins/contact/runtime/ContactPayload.ts +0 -12
  392. package/src/service/builtins/contact/runtime/RemoteClient.ts +40 -19
  393. package/src/service/builtins/contact/runtime/ShareBundle.ts +1 -1
  394. package/src/service/builtins/memory/Action.ts +1 -1
  395. package/src/service/builtins/memory/MemoryService.ts +1 -28
  396. package/src/service/builtins/memory/runtime/Flush.ts +1 -1
  397. package/src/service/builtins/memory/runtime/Search.ts +1 -1
  398. package/src/service/builtins/memory/runtime/Store.ts +1 -1
  399. package/src/service/builtins/memory/runtime/SystemProvider.ts +1 -1
  400. package/src/service/builtins/memory/runtime/Writer.ts +1 -1
  401. package/src/service/builtins/schedule/ScheduleService.ts +131 -0
  402. package/src/service/builtins/shell/ShellRuntimeTypes.ts +1 -1
  403. package/src/service/builtins/shell/ShellService.ts +2 -2
  404. package/src/service/builtins/shell/runtime/ShellActionResponse.ts +1 -1
  405. package/src/service/builtins/shell/runtime/ShellActionRuntime.ts +1 -1
  406. package/src/service/builtins/shell/runtime/ShellActionRuntimeSupport.ts +1 -1
  407. package/src/service/builtins/shell/runtime/ShellRuntimeEnvironment.ts +1 -1
  408. package/src/service/builtins/task/Action.ts +1 -1
  409. package/src/service/builtins/task/Scheduler.ts +1 -1
  410. package/src/service/builtins/task/TaskService.ts +2 -2
  411. package/src/service/builtins/task/runtime/CronRuntime.ts +1 -1
  412. package/src/service/builtins/task/runtime/Runner.ts +1 -1
  413. package/src/service/builtins/task/runtime/TaskActionExecution.ts +1 -1
  414. package/src/service/builtins/task/runtime/TaskActionInput.ts +3 -185
  415. package/src/service/builtins/task/runtime/TaskRunChatDispatch.ts +1 -1
  416. package/src/service/builtins/task/runtime/TaskRunnerRound.ts +1 -1
  417. package/src/service/builtins/task/runtime/TaskRunnerScript.ts +1 -1
  418. package/src/service/builtins/task/runtime/TaskRunnerSession.ts +1 -1
  419. package/src/service/builtins/task/runtime/TaskServiceActions.ts +1 -35
  420. package/src/service/core/Manager.ts +0 -1
  421. package/src/service/core/ServiceActionRunner.ts +4 -2
  422. package/src/service/core/ServiceClassRegistry.ts +1 -1
  423. package/src/service/core/ServiceCommandRequest.ts +93 -0
  424. package/src/service/core/ServiceManager.ts +0 -1
  425. package/src/service/core/ServiceStateController.ts +45 -20
  426. package/src/service/core/ServiceSystemProviders.ts +1 -1
  427. package/src/service/core/Services.ts +3 -1
  428. package/src/service/schedule/Executor.ts +1 -1
  429. package/src/service/types/Service.ts +1 -24
  430. package/src/session/composer/system/default/DefaultSessionSystemComposer.ts +1 -1
  431. package/src/session/composer/system/default/SystemDomain.ts +1 -1
  432. package/src/session/tools/shell/ShellToolBridge.ts +1 -1
  433. package/tsconfig.tsbuildinfo +1 -1
  434. package/bin/runtime/AgentContext.d.ts +0 -23
  435. package/bin/runtime/AgentContext.d.ts.map +0 -1
  436. package/bin/runtime/AgentContext.js +0 -149
  437. package/bin/runtime/AgentContext.js.map +0 -1
  438. package/bin/runtime/AgentContextTypes.d.ts.map +0 -1
  439. package/bin/runtime/AgentContextTypes.js.map +0 -1
  440. package/bin/runtime/AgentRuntime.d.ts +0 -37
  441. package/bin/runtime/AgentRuntime.d.ts.map +0 -1
  442. package/bin/runtime/AgentRuntime.js +0 -291
  443. package/bin/runtime/AgentRuntime.js.map +0 -1
  444. package/bin/runtime/AgentRuntimeState.d.ts +0 -42
  445. package/bin/runtime/AgentRuntimeState.d.ts.map +0 -1
  446. package/bin/runtime/AgentRuntimeState.js +0 -172
  447. package/bin/runtime/AgentRuntimeState.js.map +0 -1
  448. package/bin/runtime/AgentRuntimeTypes.d.ts.map +0 -1
  449. package/bin/runtime/AgentRuntimeTypes.js +0 -10
  450. package/bin/runtime/AgentRuntimeTypes.js.map +0 -1
  451. package/bin/service/core/ServiceActionApi.d.ts +0 -15
  452. package/bin/service/core/ServiceActionApi.d.ts.map +0 -1
  453. package/bin/service/core/ServiceActionApi.js +0 -234
  454. package/bin/service/core/ServiceActionApi.js.map +0 -1
  455. package/bin/service/schedule/Runtime.d.ts +0 -17
  456. package/bin/service/schedule/Runtime.d.ts.map +0 -1
  457. package/bin/service/schedule/Runtime.js +0 -64
  458. package/bin/service/schedule/Runtime.js.map +0 -1
  459. package/src/runtime/AgentContext.ts +0 -182
  460. package/src/runtime/AgentRuntime.ts +0 -366
  461. package/src/runtime/AgentRuntimeState.ts +0 -213
  462. package/src/service/core/ServiceActionApi.ts +0 -304
  463. package/src/service/schedule/Runtime.ts +0 -78
@@ -1,213 +0,0 @@
1
- /**
2
- * AgentRuntime 进程级状态读写模块。
3
- *
4
- * 关键点(中文)
5
- * - 这里统一维护当前进程中的 base / ready 两阶段状态。
6
- * - `AgentRuntimeBase` 只表示启动早期已经可用的基础配置;`AgentRuntime` 才表示完整运行态。
7
- * - 该模块只负责状态持有与读写,不负责装配具体依赖对象。
8
- */
9
-
10
- import type { LanguageModel } from "ai";
11
- import type {
12
- AgentRuntime,
13
- AgentRuntimeBase,
14
- } from "@/runtime/AgentRuntimeTypes.js";
15
- import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
16
- import type {
17
- AgentPathRuntime,
18
- AgentPlatformRuntime,
19
- AgentPluginConfigRuntime,
20
- } from "@/types/host/AgentHost.js";
21
- import type { ChatChannelName } from "@/service/builtins/chat/types/ChannelStatus.js";
22
- export type { AgentRuntime, AgentRuntimeBase } from "@/runtime/AgentRuntimeTypes.js";
23
-
24
- let baseState: AgentRuntimeBase | null = null;
25
- let readyState: AgentRuntime | null = null;
26
-
27
- const EMPTY_PATHS: AgentPathRuntime = {
28
- projectRoot: ".",
29
- getDowncityDirPath: () => ".downcity",
30
- getCacheDirPath: () => ".downcity/.cache",
31
- getDowncityChannelDirPath: () => ".downcity/channel",
32
- getDowncityChannelMetaPath: () => ".downcity/channel/meta.json",
33
- getDowncityChatHistoryPath: (sessionId) => `.downcity/chat/${sessionId}/history.jsonl`,
34
- getDowncityMemoryLongTermPath: () => ".downcity/memory/MEMORY.md",
35
- getDowncityMemoryDailyDirPath: () => ".downcity/memory/daily",
36
- getDowncityMemoryDailyPath: (date) => `.downcity/memory/daily/${date}.md`,
37
- getDowncitySessionRootDirPath: () => ".downcity/session",
38
- getDowncitySessionDirPath: (sessionId) => `.downcity/session/${sessionId}`,
39
- };
40
-
41
- const EMPTY_PLUGIN_CONFIG: AgentPluginConfigRuntime = {
42
- async persistProjectPlugins() {
43
- return "";
44
- },
45
- };
46
-
47
- const EMPTY_PLATFORM: AgentPlatformRuntime = {
48
- getGlobalEnv: () => ({}),
49
- getAgentEnv: () => ({}),
50
- listModels: () => [],
51
- listProviders: async () => [],
52
- getModel: () => null,
53
- getChannelAccount: () => null,
54
- listChannelAccounts: async () => [],
55
- probeChannelAccount: async () => {
56
- throw new Error("Channel account probing is not available in this runtime");
57
- },
58
- createChannelAccount: async () => {
59
- throw new Error("Channel account creation is not available in this runtime");
60
- },
61
- updateChannelAccount: async () => {
62
- throw new Error("Channel account update is not available in this runtime");
63
- },
64
- removeChannelAccount: async () => {
65
- throw new Error("Channel account removal is not available in this runtime");
66
- },
67
- resolveChannelAccount: (_params: {
68
- projectRoot: string;
69
- channel: ChatChannelName;
70
- channelAccountId?: string;
71
- }) => null,
72
- readChatAuthorizationConfig: () => ({
73
- roles: {},
74
- channels: {},
75
- }),
76
- writeChatAuthorizationConfig: async (_projectRoot, nextConfig) => nextConfig,
77
- setChatAuthorizationUserRole: async () => ({
78
- roles: {},
79
- channels: {},
80
- }),
81
- isPluginEnabled: (pluginName) => pluginName === "auth",
82
- setPluginEnabled: () => {
83
- throw new Error("Plugin lifecycle management is not available in this runtime");
84
- },
85
- listPlatformModelChoices: async () => [],
86
- initializeAgentProject: async () => {
87
- throw new Error("Agent project initialization is not available in this runtime");
88
- },
89
- ensureRuntimeExecutionBindingReady: () => {
90
- throw new Error("Execution binding validation is not available in this runtime");
91
- },
92
- };
93
-
94
- function normalizeReadyState(input: AgentRuntime): AgentRuntime {
95
- if (typeof input.getSession !== "function") {
96
- throw new Error("AgentRuntime requires getSession");
97
- }
98
-
99
- return {
100
- cwd: input.cwd,
101
- rootPath: input.rootPath,
102
- logger: input.logger,
103
- config: input.config,
104
- env: input.env,
105
- globalEnv: input.globalEnv,
106
- systems: input.systems,
107
- paths: input.paths || EMPTY_PATHS,
108
- pluginConfig: input.pluginConfig || EMPTY_PLUGIN_CONFIG,
109
- platform: input.platform || EMPTY_PLATFORM,
110
- model: input.model,
111
- getSession: input.getSession,
112
- listExecutingSessionIds:
113
- input.listExecutingSessionIds || (() => []),
114
- getExecutingSessionCount:
115
- input.getExecutingSessionCount || (() => 0),
116
- services: input.services || new Map(),
117
- };
118
- }
119
-
120
- function normalizeBaseState(input: AgentRuntimeBase): AgentRuntimeBase {
121
- return {
122
- cwd: input.cwd,
123
- rootPath: input.rootPath,
124
- logger: input.logger,
125
- config: input.config,
126
- env: input.env,
127
- globalEnv: input.globalEnv,
128
- systems: input.systems,
129
- paths: input.paths || EMPTY_PATHS,
130
- pluginConfig: input.pluginConfig || EMPTY_PLUGIN_CONFIG,
131
- platform: input.platform || EMPTY_PLATFORM,
132
- };
133
- }
134
-
135
- /**
136
- * 设置 agent 基础状态。
137
- */
138
- export function setAgentRuntimeBase(next: AgentRuntimeBase): void {
139
- baseState = normalizeBaseState(next);
140
- readyState = null;
141
- }
142
-
143
- /**
144
- * 设置完整 agent 状态。
145
- */
146
- export function setAgentRuntime(next: AgentRuntime): void {
147
- const normalized = normalizeReadyState(next);
148
- baseState = normalized;
149
- readyState = normalized;
150
- }
151
-
152
- /**
153
- * 仅更新当前 agent 的项目配置快照。
154
- *
155
- * 关键点(中文)
156
- * - 运行中 agent 可能在不重启进程的情况下收到 downcity.json 变更。
157
- * - 这里仅替换 `config`,不重建 model / service / session 等长期对象。
158
- * - 目标是让 plugin 启用态、system 注入等直接依赖配置快照的能力及时生效。
159
- */
160
- export function updateAgentRuntimeConfig(nextConfig: DowncityConfig): void {
161
- if (!baseState) {
162
- throw new Error(
163
- "Agent state is not initialized. Call initAgentRuntime() during startup.",
164
- );
165
- }
166
-
167
- baseState = {
168
- ...baseState,
169
- config: nextConfig,
170
- };
171
-
172
- if (readyState) {
173
- readyState = {
174
- ...readyState,
175
- config: nextConfig,
176
- };
177
- }
178
- }
179
-
180
- /**
181
- * 获取 agent 基础状态。
182
- */
183
- export function getAgentRuntimeBase(): AgentRuntimeBase {
184
- if (baseState) return baseState;
185
- throw new Error(
186
- "Agent state (base) is not initialized. Call initAgentRuntime() during startup.",
187
- );
188
- }
189
-
190
- /**
191
- * 获取完整 agent 状态。
192
- */
193
- export function getAgentRuntime(): AgentRuntime {
194
- if (readyState) return readyState;
195
- if (!baseState) {
196
- throw new Error(
197
- "Agent state is not initialized. Call initAgentRuntime() during startup.",
198
- );
199
- }
200
- throw new Error(
201
- "Agent state is not ready yet. Ensure session is initialized before access.",
202
- );
203
- }
204
-
205
- /**
206
- * 读取当前 agent 模型实例(必填)。
207
- */
208
- export function requireAgentModel(): LanguageModel {
209
- if (readyState?.model) return readyState.model;
210
- throw new Error(
211
- "Agent model is not initialized. Ensure initAgentRuntime() completed successfully.",
212
- );
213
- }
@@ -1,304 +0,0 @@
1
- /**
2
- * ServiceActionApi:service action 的 HTTP route 注册模块。
3
- *
4
- * 关键点(中文)
5
- * - 专门负责 `/service/<service>/<action>` 路由注册。
6
- * - 调度字段抽取、payload 清洗、mapInput 桥接都收敛在这里。
7
- * - 真正执行仍然走 `runServiceCommand` / `invokeServiceAction`。
8
- */
9
-
10
- import type { Context as HonoContext, Hono } from "hono";
11
- import type { JsonObject, JsonValue } from "@/types/common/Json.js";
12
- import type { AgentContext } from "@/runtime/AgentContextTypes.js";
13
- import type { ServiceCommandScheduleInput } from "@/service/types/ServiceSchedule.js";
14
- import type { BaseService } from "@/service/builtins/BaseService.js";
15
- import { parseScheduledRunAtMsOrThrow } from "../schedule/Time.js";
16
- import { normalizeRunAtMsOrThrow } from "../schedule/Time.js";
17
- import type { ServiceAction } from "@/service/types/Service.js";
18
- import {
19
- ensureServiceStateRecord,
20
- isServiceRunning,
21
- listServiceInstances,
22
- } from "./ServiceStateController.js";
23
- import {
24
- invokeServiceAction,
25
- runServiceCommand,
26
- } from "./ServiceActionRunner.js";
27
-
28
- function wrapServiceRouteHandler(
29
- serviceName: string,
30
- handler: (ctx: HonoContext) => Promise<Response> | Response,
31
- ): (ctx: HonoContext) => Promise<Response> | Response {
32
- return async (c) => {
33
- if (!isServiceRunning(serviceName)) {
34
- return c.json(
35
- {
36
- success: false,
37
- error: `Service "${serviceName}" is stopped`,
38
- serviceName,
39
- },
40
- 503,
41
- );
42
- }
43
- return await handler(c);
44
- };
45
- }
46
-
47
- function resolveServiceActionApiPath(params: {
48
- serviceName: string;
49
- actionName: string;
50
- action: ServiceAction<JsonValue, JsonValue>;
51
- }): string {
52
- const customPath = String(params.action.api?.path || "").trim();
53
- if (customPath) {
54
- return customPath.startsWith("/") ? customPath : `/${customPath}`;
55
- }
56
- return `/service/${params.serviceName}/${params.actionName}`;
57
- }
58
-
59
- function resolveServiceActionApiMethod(
60
- action: ServiceAction<JsonValue, JsonValue>,
61
- ): "GET" | "POST" | "PUT" | "DELETE" {
62
- return action.api?.method || "POST";
63
- }
64
-
65
- function toQueryPayload(c: HonoContext): JsonObject {
66
- const query = c.req.query();
67
- const payload: JsonObject = {};
68
- for (const [key, value] of Object.entries(query)) {
69
- if (typeof value !== "string") continue;
70
- payload[key] = value;
71
- }
72
- return payload;
73
- }
74
-
75
- /**
76
- * 识别 API 层的通用调度参数。
77
- *
78
- * 关键点(中文)
79
- * - 专用 action API 与统一 `/api/services/command` 共用同一套 delay/time 语义。
80
- * - 一旦识别为调度参数,就会在传给 action.mapInput 前剥离,避免二次调度。
81
- */
82
- function extractApiScheduleInputFromRawPayload(
83
- rawPayload: JsonValue,
84
- ): ServiceCommandScheduleInput | undefined {
85
- if (!rawPayload || typeof rawPayload !== "object" || Array.isArray(rawPayload)) {
86
- return undefined;
87
- }
88
- const record = rawPayload as Record<string, unknown>;
89
- const nestedSchedule =
90
- record.schedule && typeof record.schedule === "object" && !Array.isArray(record.schedule)
91
- ? (record.schedule as Record<string, unknown>)
92
- : undefined;
93
- const nestedRunAtMs = nestedSchedule?.runAtMs;
94
- const topLevelDelay = record.delayMs ?? record.delay;
95
- const topLevelTime = record.sendAtMs ?? record.sendAt ?? record.time;
96
-
97
- if (nestedRunAtMs !== undefined && (topLevelDelay !== undefined || topLevelTime !== undefined)) {
98
- throw new Error("`schedule.runAtMs` cannot be used together with `delay/time`.");
99
- }
100
-
101
- if (nestedRunAtMs !== undefined) {
102
- return {
103
- runAtMs: normalizeRunAtMsOrThrow(
104
- nestedRunAtMs as string | number | undefined,
105
- "schedule.runAtMs",
106
- ),
107
- };
108
- }
109
-
110
- const runAtMs = parseScheduledRunAtMsOrThrow({
111
- delay: topLevelDelay as string | number | undefined,
112
- time: topLevelTime as string | number | undefined,
113
- });
114
- if (typeof runAtMs !== "number") return undefined;
115
- return { runAtMs };
116
- }
117
-
118
- /**
119
- * 从原始 payload 中移除 API 层保留的通用调度字段。
120
- */
121
- function stripApiScheduleFields(rawPayload: JsonValue): JsonValue {
122
- if (!rawPayload || typeof rawPayload !== "object" || Array.isArray(rawPayload)) {
123
- return rawPayload;
124
- }
125
- const record = rawPayload as Record<string, unknown>;
126
- const next: Record<string, unknown> = {};
127
- for (const [key, value] of Object.entries(record)) {
128
- if (
129
- key === "schedule" ||
130
- key === "delay" ||
131
- key === "delayMs" ||
132
- key === "time" ||
133
- key === "sendAt" ||
134
- key === "sendAtMs"
135
- ) {
136
- continue;
137
- }
138
- next[key] = value;
139
- }
140
- return next as JsonValue;
141
- }
142
-
143
- /**
144
- * 用预读取后的原始 payload 构造 mapInput 专用上下文。
145
- *
146
- * 关键点(中文)
147
- * - 让 route 层可以先统一处理调度参数,再把“净化后的请求体/查询”交给 action 自己解析。
148
- */
149
- function createApiMapInputContext(params: {
150
- context: HonoContext;
151
- rawPayload: JsonValue;
152
- }): HonoContext {
153
- const sanitizedPayload = stripApiScheduleFields(params.rawPayload);
154
- const originalReq = params.context.req;
155
- const sanitizedQuery =
156
- sanitizedPayload && typeof sanitizedPayload === "object" && !Array.isArray(sanitizedPayload)
157
- ? (sanitizedPayload as Record<string, string>)
158
- : {};
159
- const requestShim = {
160
- ...originalReq,
161
- async json() {
162
- return sanitizedPayload;
163
- },
164
- query(key?: string) {
165
- if (typeof key === "string") {
166
- return sanitizedQuery[key];
167
- }
168
- return sanitizedQuery;
169
- },
170
- };
171
- return {
172
- ...params.context,
173
- req: requestShim as typeof params.context.req,
174
- } as HonoContext;
175
- }
176
-
177
- async function mapServiceActionApiPayload(params: {
178
- action: ServiceAction<JsonValue, JsonValue>;
179
- method: "GET" | "POST" | "PUT" | "DELETE";
180
- context: HonoContext;
181
- }): Promise<{
182
- payload: JsonValue;
183
- schedule?: ServiceCommandScheduleInput;
184
- }> {
185
- let rawPayload: JsonValue;
186
- if (params.method === "GET") {
187
- rawPayload = toQueryPayload(params.context);
188
- } else {
189
- try {
190
- rawPayload = (await params.context.req.json()) as JsonValue;
191
- } catch {
192
- throw new Error("Invalid JSON body");
193
- }
194
- }
195
-
196
- const schedule = extractApiScheduleInputFromRawPayload(rawPayload);
197
- const mapInputContext = createApiMapInputContext({
198
- context: params.context,
199
- rawPayload,
200
- });
201
-
202
- if (params.action.api?.mapInput) {
203
- return {
204
- payload: await params.action.api.mapInput(mapInputContext),
205
- ...(schedule ? { schedule } : {}),
206
- };
207
- }
208
-
209
- return {
210
- payload: stripApiScheduleFields(rawPayload),
211
- ...(schedule ? { schedule } : {}),
212
- };
213
- }
214
-
215
- function registerServiceActionApiRoute(params: {
216
- app: Hono;
217
- service: BaseService;
218
- actionName: string;
219
- action: ServiceAction<JsonValue, JsonValue>;
220
- context: AgentContext;
221
- }): void {
222
- const api = params.action.api;
223
- if (!api) return;
224
-
225
- const method = resolveServiceActionApiMethod(params.action);
226
- const routePath = resolveServiceActionApiPath({
227
- serviceName: params.service.name,
228
- actionName: params.actionName,
229
- action: params.action,
230
- });
231
-
232
- const handler = wrapServiceRouteHandler(params.service.name, async (c) => {
233
- let payload: JsonValue;
234
- let schedule: ServiceCommandScheduleInput | undefined;
235
- try {
236
- const mapped = await mapServiceActionApiPayload({
237
- action: params.action,
238
- method,
239
- context: c,
240
- });
241
- payload = mapped.payload;
242
- schedule = mapped.schedule;
243
- } catch (error) {
244
- return c.json(
245
- {
246
- success: false,
247
- error: String(error),
248
- },
249
- 400,
250
- );
251
- }
252
-
253
- const result = schedule
254
- ? await runServiceCommand({
255
- serviceName: params.service.name,
256
- command: params.actionName,
257
- payload,
258
- schedule,
259
- context: params.context,
260
- })
261
- : await invokeServiceAction({
262
- service: params.service,
263
- actionName: params.actionName,
264
- payload,
265
- context: params.context,
266
- });
267
- return c.json(result, result.success ? 200 : 400);
268
- });
269
-
270
- if (method === "GET") {
271
- params.app.get(routePath, handler);
272
- return;
273
- }
274
- if (method === "POST") {
275
- params.app.post(routePath, handler);
276
- return;
277
- }
278
- if (method === "PUT") {
279
- params.app.put(routePath, handler);
280
- return;
281
- }
282
- params.app.delete(routePath, handler);
283
- }
284
-
285
- /**
286
- * 为服务端注册全部 service action API。
287
- */
288
- export function registerAllServicesForServer(
289
- app: Hono,
290
- context: AgentContext,
291
- ): void {
292
- for (const service of listServiceInstances()) {
293
- ensureServiceStateRecord(service);
294
- for (const [actionName, action] of Object.entries(service.actions)) {
295
- registerServiceActionApiRoute({
296
- app,
297
- service,
298
- actionName,
299
- action,
300
- context,
301
- });
302
- }
303
- }
304
- }
@@ -1,78 +0,0 @@
1
- /**
2
- * Service Schedule runtime。
3
- *
4
- * 关键点(中文)
5
- * - 使用轻量轮询驱动到点执行,避免为 MVP 引入复杂定时器注册与恢复逻辑。
6
- * - runtime 重启时会把遗留 `running` 任务回退成 `pending`,然后继续补执行。
7
- */
8
-
9
- import type { AgentContext } from "@/runtime/AgentContextTypes.js";
10
- import { ServiceScheduleStore } from "./Store.js";
11
- import { runDueScheduledJobs } from "./Executor.js";
12
-
13
- const SCHEDULE_POLL_INTERVAL_MS = 200;
14
-
15
- type ServiceScheduleRuntimeState = {
16
- timer: NodeJS.Timeout | null;
17
- ticking: boolean;
18
- store: ServiceScheduleStore;
19
- context: AgentContext;
20
- };
21
-
22
- let runtimeState: ServiceScheduleRuntimeState | null = null;
23
-
24
- /**
25
- * 启动持久化调度 runtime。
26
- */
27
- export async function startServiceScheduleRuntime(
28
- context: AgentContext,
29
- ): Promise<void> {
30
- if (runtimeState) return;
31
-
32
- const store = new ServiceScheduleStore(context.rootPath);
33
- const recovered = store.resetRunningJobsToPending();
34
- if (recovered > 0) {
35
- context.logger.warn("[schedule] recovered interrupted running jobs", {
36
- recovered,
37
- });
38
- }
39
-
40
- runtimeState = {
41
- timer: null,
42
- ticking: false,
43
- store,
44
- context,
45
- };
46
-
47
- const tick = async () => {
48
- if (!runtimeState || runtimeState.ticking) return;
49
- runtimeState.ticking = true;
50
- try {
51
- await runDueScheduledJobs({
52
- context: runtimeState.context,
53
- store: runtimeState.store,
54
- });
55
- } finally {
56
- if (runtimeState) {
57
- runtimeState.ticking = false;
58
- }
59
- }
60
- };
61
-
62
- await tick();
63
- runtimeState.timer = setInterval(() => {
64
- void tick();
65
- }, SCHEDULE_POLL_INTERVAL_MS);
66
- }
67
-
68
- /**
69
- * 停止持久化调度 runtime。
70
- */
71
- export async function stopServiceScheduleRuntime(): Promise<void> {
72
- if (!runtimeState) return;
73
- if (runtimeState.timer) {
74
- clearInterval(runtimeState.timer);
75
- }
76
- runtimeState.store.close();
77
- runtimeState = null;
78
- }