@downcity/agent 1.1.74 → 1.1.81

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 (514) hide show
  1. package/README.md +15 -18
  2. package/bin/agent/local/Agent.d.ts +82 -0
  3. package/bin/agent/local/Agent.d.ts.map +1 -0
  4. package/bin/agent/local/Agent.js +154 -0
  5. package/bin/agent/local/Agent.js.map +1 -0
  6. package/bin/agent/local/AgentInstructions.d.ts +22 -0
  7. package/bin/agent/local/AgentInstructions.d.ts.map +1 -0
  8. package/bin/agent/local/AgentInstructions.js +57 -0
  9. package/bin/agent/local/AgentInstructions.js.map +1 -0
  10. package/bin/agent/local/AgentPluginFactory.d.ts +29 -0
  11. package/bin/agent/local/AgentPluginFactory.d.ts.map +1 -0
  12. package/bin/agent/local/AgentPluginFactory.js +53 -0
  13. package/bin/agent/local/AgentPluginFactory.js.map +1 -0
  14. package/bin/{runtime/host/AgentHostRuntime.d.ts → agent/local/AgentRuntimeAssembly.d.ts} +2 -2
  15. package/bin/agent/local/AgentRuntimeAssembly.d.ts.map +1 -0
  16. package/bin/{runtime/host/AgentHostRuntime.js → agent/local/AgentRuntimeAssembly.js} +2 -2
  17. package/bin/agent/local/AgentRuntimeAssembly.js.map +1 -0
  18. package/bin/agent/local/AgentRuntimeFactory.d.ts +72 -0
  19. package/bin/agent/local/AgentRuntimeFactory.d.ts.map +1 -0
  20. package/bin/agent/local/AgentRuntimeFactory.js +73 -0
  21. package/bin/agent/local/AgentRuntimeFactory.js.map +1 -0
  22. package/bin/{runtime/host → agent/local}/ProjectSetup.d.ts +1 -1
  23. package/bin/agent/local/ProjectSetup.d.ts.map +1 -0
  24. package/bin/{runtime/host → agent/local}/ProjectSetup.js +1 -1
  25. package/bin/agent/local/ProjectSetup.js.map +1 -0
  26. package/bin/agent/local/services/AgentAssemblyService.d.ts +112 -0
  27. package/bin/agent/local/services/AgentAssemblyService.d.ts.map +1 -0
  28. package/bin/agent/local/services/AgentAssemblyService.js +135 -0
  29. package/bin/agent/local/services/AgentAssemblyService.js.map +1 -0
  30. package/bin/agent/local/services/AgentLifecycleService.d.ts +59 -0
  31. package/bin/agent/local/services/AgentLifecycleService.d.ts.map +1 -0
  32. package/bin/agent/local/services/AgentLifecycleService.js +136 -0
  33. package/bin/agent/local/services/AgentLifecycleService.js.map +1 -0
  34. package/bin/agent/local/services/AgentSessionManager.d.ts +106 -0
  35. package/bin/agent/local/services/AgentSessionManager.d.ts.map +1 -0
  36. package/bin/agent/local/services/AgentSessionManager.js +182 -0
  37. package/bin/agent/local/services/AgentSessionManager.js.map +1 -0
  38. package/bin/agent/{RemoteAgent.d.ts → remote/RemoteAgent.d.ts} +3 -3
  39. package/bin/agent/remote/RemoteAgent.d.ts.map +1 -0
  40. package/bin/agent/remote/RemoteAgent.js +58 -0
  41. package/bin/agent/remote/RemoteAgent.js.map +1 -0
  42. package/bin/agent/remote/RemoteSession.d.ts +62 -0
  43. package/bin/agent/remote/RemoteSession.d.ts.map +1 -0
  44. package/bin/agent/remote/RemoteSession.js +225 -0
  45. package/bin/agent/remote/RemoteSession.js.map +1 -0
  46. package/bin/agent/remote/RemoteTransport.d.ts +52 -0
  47. package/bin/agent/remote/RemoteTransport.d.ts.map +1 -0
  48. package/bin/agent/remote/RemoteTransport.js +9 -0
  49. package/bin/agent/remote/RemoteTransport.js.map +1 -0
  50. package/bin/agent/remote/TransportFactory.d.ts +13 -0
  51. package/bin/agent/remote/TransportFactory.d.ts.map +1 -0
  52. package/bin/agent/remote/TransportFactory.js +22 -0
  53. package/bin/agent/remote/TransportFactory.js.map +1 -0
  54. package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts +35 -0
  55. package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts.map +1 -0
  56. package/bin/agent/remote/transports/HttpRemoteAgentTransport.js +259 -0
  57. package/bin/agent/remote/transports/HttpRemoteAgentTransport.js.map +1 -0
  58. package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts +34 -0
  59. package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts.map +1 -0
  60. package/bin/agent/remote/transports/RpcRemoteAgentTransport.js +66 -0
  61. package/bin/agent/remote/transports/RpcRemoteAgentTransport.js.map +1 -0
  62. package/bin/executor/Executor.d.ts +7 -20
  63. package/bin/executor/Executor.d.ts.map +1 -1
  64. package/bin/executor/Executor.js +77 -348
  65. package/bin/executor/Executor.js.map +1 -1
  66. package/bin/executor/SessionRunScope.d.ts +18 -34
  67. package/bin/executor/SessionRunScope.d.ts.map +1 -1
  68. package/bin/executor/SessionRunScope.js +42 -28
  69. package/bin/executor/SessionRunScope.js.map +1 -1
  70. package/bin/executor/composer/context/LocalSessionContextComposer.d.ts +5 -3
  71. package/bin/executor/composer/context/LocalSessionContextComposer.d.ts.map +1 -1
  72. package/bin/executor/composer/context/LocalSessionContextComposer.js +11 -18
  73. package/bin/executor/composer/context/LocalSessionContextComposer.js.map +1 -1
  74. package/bin/executor/composer/context/SessionContextComposer.d.ts +8 -3
  75. package/bin/executor/composer/context/SessionContextComposer.d.ts.map +1 -1
  76. package/bin/executor/composer/history/SessionHistoryWriter.js +2 -2
  77. package/bin/executor/composer/history/SessionHistoryWriter.js.map +1 -1
  78. package/bin/executor/composer/system/SessionSystemComposer.d.ts +2 -1
  79. package/bin/executor/composer/system/SessionSystemComposer.d.ts.map +1 -1
  80. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts +2 -1
  81. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts.map +1 -1
  82. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js +2 -4
  83. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js.map +1 -1
  84. package/bin/executor/core-engine/CoreEngineRunner.d.ts +62 -0
  85. package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -0
  86. package/bin/executor/core-engine/CoreEngineRunner.js +309 -0
  87. package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -0
  88. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts +5 -0
  89. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts.map +1 -1
  90. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js +2 -4
  91. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js.map +1 -1
  92. package/bin/executor/messages/AssistantResultPersistence.d.ts +3 -3
  93. package/bin/executor/messages/AssistantResultPersistence.d.ts.map +1 -1
  94. package/bin/executor/messages/AssistantResultPersistence.js +2 -6
  95. package/bin/executor/messages/AssistantResultPersistence.js.map +1 -1
  96. package/bin/executor/messages/SessionStepEventMapper.d.ts +7 -8
  97. package/bin/executor/messages/SessionStepEventMapper.d.ts.map +1 -1
  98. package/bin/executor/messages/SessionStepEventMapper.js +55 -86
  99. package/bin/executor/messages/SessionStepEventMapper.js.map +1 -1
  100. package/bin/executor/messages/UserVisibleText.d.ts +2 -10
  101. package/bin/executor/messages/UserVisibleText.d.ts.map +1 -1
  102. package/bin/executor/messages/UserVisibleText.js +3 -16
  103. package/bin/executor/messages/UserVisibleText.js.map +1 -1
  104. package/bin/executor/services/ExecutorInflightService.d.ts +39 -0
  105. package/bin/executor/services/ExecutorInflightService.d.ts.map +1 -0
  106. package/bin/executor/services/ExecutorInflightService.js +75 -0
  107. package/bin/executor/services/ExecutorInflightService.js.map +1 -0
  108. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +103 -0
  109. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +1 -0
  110. package/bin/executor/services/ExecutorRecoveryPolicy.js +87 -0
  111. package/bin/executor/services/ExecutorRecoveryPolicy.js.map +1 -0
  112. package/bin/executor/store/history/SessionHistoryStore.d.ts +12 -0
  113. package/bin/executor/store/history/SessionHistoryStore.d.ts.map +1 -1
  114. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts +12 -0
  115. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts.map +1 -1
  116. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js +145 -8
  117. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js.map +1 -1
  118. package/bin/executor/tools/plugin/PluginToolBridge.d.ts +19 -0
  119. package/bin/executor/tools/plugin/PluginToolBridge.d.ts.map +1 -0
  120. package/bin/executor/tools/plugin/PluginToolBridge.js +143 -0
  121. package/bin/executor/tools/plugin/PluginToolBridge.js.map +1 -0
  122. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts +32 -0
  123. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts.map +1 -0
  124. package/bin/executor/tools/plugin/PluginToolDefinition.js +27 -0
  125. package/bin/executor/tools/plugin/PluginToolDefinition.js.map +1 -0
  126. package/bin/executor/tools/plugin/PluginToolSchemas.d.ts +14 -0
  127. package/bin/executor/tools/plugin/PluginToolSchemas.d.ts.map +1 -0
  128. package/bin/executor/tools/plugin/PluginToolSchemas.js +19 -0
  129. package/bin/executor/tools/plugin/PluginToolSchemas.js.map +1 -0
  130. package/bin/executor/tools/plugin/types/PluginTool.d.ts +39 -0
  131. package/bin/executor/tools/plugin/types/PluginTool.d.ts.map +1 -0
  132. package/bin/executor/tools/plugin/types/PluginTool.js +9 -0
  133. package/bin/executor/tools/plugin/types/PluginTool.js.map +1 -0
  134. package/bin/executor/tools/shell/ShellToolBridge.js +3 -3
  135. package/bin/executor/tools/shell/ShellToolBridge.js.map +1 -1
  136. package/bin/executor/tools/shell/ShellToolFormatting.d.ts +1 -10
  137. package/bin/executor/tools/shell/ShellToolFormatting.d.ts.map +1 -1
  138. package/bin/executor/tools/shell/ShellToolFormatting.js +1 -39
  139. package/bin/executor/tools/shell/ShellToolFormatting.js.map +1 -1
  140. package/bin/executor/types/SessionHistoryPaths.d.ts +4 -0
  141. package/bin/executor/types/SessionHistoryPaths.d.ts.map +1 -1
  142. package/bin/executor/types/SessionRun.d.ts +18 -0
  143. package/bin/executor/types/SessionRun.d.ts.map +1 -1
  144. package/bin/index.d.ts +15 -6
  145. package/bin/index.d.ts.map +1 -1
  146. package/bin/index.js +6 -3
  147. package/bin/index.js.map +1 -1
  148. package/bin/plugin/core/BasePlugin.d.ts +2 -2
  149. package/bin/plugin/core/BasePlugin.d.ts.map +1 -1
  150. package/bin/plugin/core/BasePlugin.js.map +1 -1
  151. package/bin/plugin/core/ImagePlugin.d.ts +56 -0
  152. package/bin/plugin/core/ImagePlugin.d.ts.map +1 -0
  153. package/bin/plugin/core/ImagePlugin.js +109 -0
  154. package/bin/plugin/core/ImagePlugin.js.map +1 -0
  155. package/bin/plugin/core/PluginCommandRequest.d.ts +1 -1
  156. package/bin/plugin/core/PluginCommandRequest.js +1 -1
  157. package/bin/plugin/core/PluginLocalExecution.js +1 -1
  158. package/bin/plugin/core/PluginLocalExecution.js.map +1 -1
  159. package/bin/plugin/core/ProjectConfigStore.d.ts +3 -2
  160. package/bin/plugin/core/ProjectConfigStore.d.ts.map +1 -1
  161. package/bin/plugin/core/ProjectConfigStore.js +3 -4
  162. package/bin/plugin/core/ProjectConfigStore.js.map +1 -1
  163. package/bin/plugin/types/Plugin.d.ts +10 -842
  164. package/bin/plugin/types/Plugin.d.ts.map +1 -1
  165. package/bin/plugin/types/Plugin.js +3 -4
  166. package/bin/plugin/types/Plugin.js.map +1 -1
  167. package/bin/plugin/types/PluginState.d.ts +1 -1
  168. package/bin/plugin/types/PluginState.d.ts.map +1 -1
  169. package/bin/rpc/Client.d.ts +2 -99
  170. package/bin/rpc/Client.d.ts.map +1 -1
  171. package/bin/rpc/Client.js +0 -46
  172. package/bin/rpc/Client.js.map +1 -1
  173. package/bin/rpc/Server.d.ts +5 -21
  174. package/bin/rpc/Server.d.ts.map +1 -1
  175. package/bin/rpc/Server.js +30 -315
  176. package/bin/rpc/Server.js.map +1 -1
  177. package/bin/rpc/server/InternalHandlers.d.ts +21 -0
  178. package/bin/rpc/server/InternalHandlers.d.ts.map +1 -0
  179. package/bin/rpc/server/InternalHandlers.js +190 -0
  180. package/bin/rpc/server/InternalHandlers.js.map +1 -0
  181. package/bin/rpc/server/RequestDispatcher.d.ts +27 -0
  182. package/bin/rpc/server/RequestDispatcher.d.ts.map +1 -0
  183. package/bin/rpc/server/RequestDispatcher.js +38 -0
  184. package/bin/rpc/server/RequestDispatcher.js.map +1 -0
  185. package/bin/rpc/server/SdkSessionHandlers.d.ts +25 -0
  186. package/bin/rpc/server/SdkSessionHandlers.d.ts.map +1 -0
  187. package/bin/rpc/server/SdkSessionHandlers.js +86 -0
  188. package/bin/rpc/server/SdkSessionHandlers.js.map +1 -0
  189. package/bin/rpc/server/ServerTypes.d.ts +59 -0
  190. package/bin/rpc/server/ServerTypes.d.ts.map +1 -0
  191. package/bin/rpc/server/ServerTypes.js +9 -0
  192. package/bin/rpc/server/ServerTypes.js.map +1 -0
  193. package/bin/{runtime/sandbox → sandbox}/MacOsSeatbeltSandbox.d.ts +1 -1
  194. package/bin/sandbox/MacOsSeatbeltSandbox.d.ts.map +1 -0
  195. package/bin/sandbox/MacOsSeatbeltSandbox.js.map +1 -0
  196. package/bin/{runtime/sandbox → sandbox}/SandboxConfigResolver.d.ts +2 -2
  197. package/bin/sandbox/SandboxConfigResolver.d.ts.map +1 -0
  198. package/bin/sandbox/SandboxConfigResolver.js.map +1 -0
  199. package/bin/{runtime/sandbox → sandbox}/SandboxRunner.d.ts +2 -2
  200. package/bin/sandbox/SandboxRunner.d.ts.map +1 -0
  201. package/bin/{runtime/sandbox → sandbox}/SandboxRunner.js +2 -2
  202. package/bin/sandbox/SandboxRunner.js.map +1 -0
  203. package/bin/sandbox/types/Sandbox.d.ts.map +1 -0
  204. package/bin/sandbox/types/Sandbox.js.map +1 -0
  205. package/bin/{runtime/sandbox → sandbox}/types/SandboxRuntime.d.ts +2 -2
  206. package/bin/sandbox/types/SandboxRuntime.d.ts.map +1 -0
  207. package/bin/sandbox/types/SandboxRuntime.js.map +1 -0
  208. package/bin/session/Session.d.ts +14 -83
  209. package/bin/session/Session.d.ts.map +1 -1
  210. package/bin/session/Session.js +140 -362
  211. package/bin/session/Session.js.map +1 -1
  212. package/bin/session/SessionSystemBuilder.d.ts +2 -1
  213. package/bin/session/SessionSystemBuilder.d.ts.map +1 -1
  214. package/bin/session/SessionSystemBuilder.js +2 -3
  215. package/bin/session/SessionSystemBuilder.js.map +1 -1
  216. package/bin/session/browse/Browse.d.ts +1 -1
  217. package/bin/session/browse/Browse.d.ts.map +1 -1
  218. package/bin/session/browse/Browse.js +28 -13
  219. package/bin/session/browse/Browse.js.map +1 -1
  220. package/bin/session/index.d.ts +1 -1
  221. package/bin/session/index.d.ts.map +1 -1
  222. package/bin/session/index.js +1 -1
  223. package/bin/session/index.js.map +1 -1
  224. package/bin/session/services/SessionStateService.d.ts +132 -0
  225. package/bin/session/services/SessionStateService.d.ts.map +1 -0
  226. package/bin/session/services/SessionStateService.js +242 -0
  227. package/bin/session/services/SessionStateService.js.map +1 -0
  228. package/bin/session/services/SessionTurnService.d.ts +66 -0
  229. package/bin/session/services/SessionTurnService.d.ts.map +1 -0
  230. package/bin/session/services/SessionTurnService.js +137 -0
  231. package/bin/session/services/SessionTurnService.js.map +1 -0
  232. package/bin/session/services/SessionViewService.d.ts +105 -0
  233. package/bin/session/services/SessionViewService.d.ts.map +1 -0
  234. package/bin/session/services/SessionViewService.js +184 -0
  235. package/bin/session/services/SessionViewService.js.map +1 -0
  236. package/bin/session/storage/Paths.d.ts +9 -0
  237. package/bin/session/storage/Paths.d.ts.map +1 -1
  238. package/bin/session/storage/Paths.js +11 -0
  239. package/bin/session/storage/Paths.js.map +1 -1
  240. package/bin/types/agent/AgentOptions.d.ts +152 -0
  241. package/bin/types/agent/AgentOptions.d.ts.map +1 -0
  242. package/bin/types/agent/AgentOptions.js +9 -0
  243. package/bin/types/agent/AgentOptions.js.map +1 -0
  244. package/bin/types/{runtime/host/AgentHost.d.ts → agent/AgentRuntimeAssembly.d.ts} +4 -4
  245. package/bin/types/agent/AgentRuntimeAssembly.d.ts.map +1 -0
  246. package/bin/types/{runtime/host/AgentHost.js → agent/AgentRuntimeAssembly.js} +3 -3
  247. package/bin/types/agent/AgentRuntimeAssembly.js.map +1 -0
  248. package/bin/types/agent/AgentTypes.d.ts +10 -613
  249. package/bin/types/agent/AgentTypes.d.ts.map +1 -1
  250. package/bin/types/agent/AgentTypes.js +4 -4
  251. package/bin/types/agent/RemoteAgentOptions.d.ts +28 -0
  252. package/bin/types/agent/RemoteAgentOptions.d.ts.map +1 -0
  253. package/bin/types/agent/RemoteAgentOptions.js +9 -0
  254. package/bin/types/agent/RemoteAgentOptions.js.map +1 -0
  255. package/bin/types/agent/SessionActor.d.ts +60 -0
  256. package/bin/types/agent/SessionActor.d.ts.map +1 -0
  257. package/bin/types/agent/SessionActor.js +9 -0
  258. package/bin/types/agent/SessionActor.js.map +1 -0
  259. package/bin/types/agent/SessionTypes.d.ts +312 -0
  260. package/bin/types/agent/SessionTypes.d.ts.map +1 -0
  261. package/bin/types/agent/SessionTypes.js +9 -0
  262. package/bin/types/agent/SessionTypes.js.map +1 -0
  263. package/bin/types/config/DowncityConfig.d.ts +1 -1
  264. package/bin/types/config/DowncityConfig.d.ts.map +1 -1
  265. package/bin/types/executor/SessionRunContext.d.ts +66 -0
  266. package/bin/types/executor/SessionRunContext.d.ts.map +1 -0
  267. package/bin/types/executor/SessionRunContext.js +10 -0
  268. package/bin/types/executor/SessionRunContext.js.map +1 -0
  269. package/bin/types/{runtime/host → platform}/Store.d.ts +1 -1
  270. package/bin/types/platform/Store.d.ts.map +1 -0
  271. package/bin/types/{runtime/host → platform}/Store.js +1 -1
  272. package/bin/types/platform/Store.js.map +1 -0
  273. package/bin/types/plugin/ImagePlugin.d.ts +94 -0
  274. package/bin/types/plugin/ImagePlugin.d.ts.map +1 -0
  275. package/bin/types/plugin/ImagePlugin.js +10 -0
  276. package/bin/types/plugin/ImagePlugin.js.map +1 -0
  277. package/bin/types/plugin/PluginAction.d.ts +119 -0
  278. package/bin/types/plugin/PluginAction.d.ts.map +1 -0
  279. package/bin/types/plugin/PluginAction.js +9 -0
  280. package/bin/types/plugin/PluginAction.js.map +1 -0
  281. package/bin/types/plugin/PluginCommand.d.ts +80 -0
  282. package/bin/types/plugin/PluginCommand.d.ts.map +1 -0
  283. package/bin/types/plugin/PluginCommand.js +9 -0
  284. package/bin/types/plugin/PluginCommand.js.map +1 -0
  285. package/bin/types/plugin/PluginDefinition.d.ts +57 -0
  286. package/bin/types/plugin/PluginDefinition.d.ts.map +1 -0
  287. package/bin/types/plugin/PluginDefinition.js +9 -0
  288. package/bin/types/plugin/PluginDefinition.js.map +1 -0
  289. package/bin/types/plugin/PluginHttp.d.ts +34 -0
  290. package/bin/types/plugin/PluginHttp.d.ts.map +1 -0
  291. package/bin/types/plugin/PluginHttp.js +9 -0
  292. package/bin/types/plugin/PluginHttp.js.map +1 -0
  293. package/bin/types/plugin/PluginRuntime.d.ts +148 -0
  294. package/bin/types/plugin/PluginRuntime.d.ts.map +1 -0
  295. package/bin/types/plugin/PluginRuntime.js +9 -0
  296. package/bin/types/plugin/PluginRuntime.js.map +1 -0
  297. package/bin/types/plugin/PluginSetup.d.ts +133 -0
  298. package/bin/types/plugin/PluginSetup.d.ts.map +1 -0
  299. package/bin/types/plugin/PluginSetup.js +9 -0
  300. package/bin/types/plugin/PluginSetup.js.map +1 -0
  301. package/bin/types/plugin/PluginState.d.ts +69 -0
  302. package/bin/types/plugin/PluginState.d.ts.map +1 -0
  303. package/bin/types/plugin/PluginState.js +9 -0
  304. package/bin/types/plugin/PluginState.js.map +1 -0
  305. package/bin/types/rpc/RpcProtocol.d.ts +323 -0
  306. package/bin/types/rpc/RpcProtocol.d.ts.map +1 -0
  307. package/bin/types/rpc/RpcProtocol.js +10 -0
  308. package/bin/types/rpc/RpcProtocol.js.map +1 -0
  309. package/bin/types/runtime/agent/AgentContext.d.ts +1 -1
  310. package/bin/types/runtime/agent/AgentContext.d.ts.map +1 -1
  311. package/bin/types/runtime/agent/AgentRuntime.d.ts +1 -1
  312. package/bin/types/runtime/agent/AgentRuntime.d.ts.map +1 -1
  313. package/bin/types/session/SessionComposerOptions.d.ts +90 -0
  314. package/bin/types/session/SessionComposerOptions.d.ts.map +1 -0
  315. package/bin/types/session/SessionComposerOptions.js +10 -0
  316. package/bin/types/session/SessionComposerOptions.js.map +1 -0
  317. package/bin/types/session/SessionLocalState.d.ts +35 -0
  318. package/bin/types/session/SessionLocalState.d.ts.map +1 -0
  319. package/bin/types/session/SessionLocalState.js +10 -0
  320. package/bin/types/session/SessionLocalState.js.map +1 -0
  321. package/bin/types/session/SessionOptions.d.ts +85 -0
  322. package/bin/types/session/SessionOptions.d.ts.map +1 -0
  323. package/bin/types/session/SessionOptions.js +10 -0
  324. package/bin/types/session/SessionOptions.js.map +1 -0
  325. package/package.json +2 -2
  326. package/scripts/session-history-inflight.test.mjs +146 -0
  327. package/src/agent/local/Agent.ts +197 -0
  328. package/src/agent/local/AgentInstructions.ts +68 -0
  329. package/src/agent/local/AgentPluginFactory.ts +83 -0
  330. package/src/{runtime/host/AgentHostRuntime.ts → agent/local/AgentRuntimeAssembly.ts} +2 -2
  331. package/src/agent/local/AgentRuntimeFactory.ts +152 -0
  332. package/src/{runtime/host → agent/local}/ProjectSetup.ts +1 -1
  333. package/src/agent/local/services/AgentAssemblyService.ts +268 -0
  334. package/src/agent/local/services/AgentLifecycleService.ts +187 -0
  335. package/src/agent/local/services/AgentSessionManager.ts +291 -0
  336. package/src/agent/remote/RemoteAgent.ts +76 -0
  337. package/src/agent/remote/RemoteSession.ts +287 -0
  338. package/src/agent/remote/RemoteTransport.ts +71 -0
  339. package/src/agent/remote/TransportFactory.ts +29 -0
  340. package/src/agent/remote/transports/HttpRemoteAgentTransport.ts +347 -0
  341. package/src/agent/remote/transports/RpcRemoteAgentTransport.ts +107 -0
  342. package/src/executor/Executor.ts +107 -426
  343. package/src/executor/README.md +4 -4
  344. package/src/executor/SessionRunScope.ts +47 -71
  345. package/src/executor/composer/context/LocalSessionContextComposer.ts +24 -20
  346. package/src/executor/composer/context/SessionContextComposer.ts +13 -3
  347. package/src/executor/composer/history/SessionHistoryWriter.ts +2 -2
  348. package/src/executor/composer/system/SessionSystemComposer.ts +2 -1
  349. package/src/executor/composer/system/default/DefaultSessionSystemComposer.ts +3 -4
  350. package/src/executor/core-engine/CoreEngineRunner.ts +433 -0
  351. package/src/executor/core-engine/CoreEngineUiStreamCollector.ts +7 -5
  352. package/src/executor/messages/AssistantResultPersistence.ts +4 -12
  353. package/src/executor/messages/SessionStepEventMapper.ts +59 -101
  354. package/src/executor/messages/UserVisibleText.ts +3 -18
  355. package/src/executor/services/ExecutorInflightService.ts +101 -0
  356. package/src/executor/services/ExecutorRecoveryPolicy.ts +213 -0
  357. package/src/executor/store/history/SessionHistoryStore.ts +15 -0
  358. package/src/executor/store/history/jsonl/JsonlSessionHistoryStore.ts +164 -11
  359. package/src/executor/tools/plugin/PluginToolBridge.ts +161 -0
  360. package/src/executor/tools/plugin/PluginToolDefinition.ts +32 -0
  361. package/src/executor/tools/plugin/PluginToolSchemas.ts +20 -0
  362. package/src/executor/tools/plugin/types/PluginTool.ts +41 -0
  363. package/src/executor/tools/shell/ShellToolBridge.ts +3 -3
  364. package/src/executor/tools/shell/ShellToolFormatting.ts +1 -50
  365. package/src/executor/types/SessionHistoryPaths.ts +5 -0
  366. package/src/executor/types/SessionRun.ts +20 -0
  367. package/src/index.ts +38 -5
  368. package/src/plugin/core/BasePlugin.ts +2 -2
  369. package/src/plugin/core/ImagePlugin.ts +128 -0
  370. package/src/plugin/core/PluginCommandRequest.ts +1 -1
  371. package/src/plugin/core/PluginLocalExecution.ts +1 -1
  372. package/src/plugin/core/ProjectConfigStore.ts +4 -4
  373. package/src/plugin/types/Plugin.ts +54 -913
  374. package/src/plugin/types/PluginState.ts +1 -1
  375. package/src/rpc/Client.ts +16 -322
  376. package/src/rpc/Server.ts +39 -565
  377. package/src/rpc/server/InternalHandlers.ts +230 -0
  378. package/src/rpc/server/RequestDispatcher.ts +67 -0
  379. package/src/rpc/server/SdkSessionHandlers.ts +106 -0
  380. package/src/rpc/server/ServerTypes.ts +65 -0
  381. package/src/{runtime/sandbox → sandbox}/MacOsSeatbeltSandbox.ts +1 -1
  382. package/src/{runtime/sandbox → sandbox}/SandboxConfigResolver.ts +1 -1
  383. package/src/{runtime/sandbox → sandbox}/SandboxRunner.ts +3 -3
  384. package/src/{runtime/sandbox → sandbox}/types/SandboxRuntime.ts +2 -2
  385. package/src/session/Session.ts +184 -485
  386. package/src/session/SessionSystemBuilder.ts +3 -3
  387. package/src/session/browse/Browse.ts +29 -10
  388. package/src/session/index.ts +1 -0
  389. package/src/session/services/SessionStateService.ts +341 -0
  390. package/src/session/services/SessionTurnService.ts +202 -0
  391. package/src/session/services/SessionViewService.ts +301 -0
  392. package/src/session/storage/Paths.ts +19 -0
  393. package/src/types/agent/AgentOptions.ts +172 -0
  394. package/src/types/{runtime/host/AgentHost.ts → agent/AgentRuntimeAssembly.ts} +2 -2
  395. package/src/types/agent/AgentTypes.ts +47 -709
  396. package/src/types/agent/RemoteAgentOptions.ts +29 -0
  397. package/src/types/agent/SessionActor.ts +88 -0
  398. package/src/types/agent/SessionTypes.ts +335 -0
  399. package/src/types/config/DowncityConfig.ts +1 -1
  400. package/src/types/executor/SessionRunContext.ts +76 -0
  401. package/src/types/{runtime/host → platform}/Store.ts +1 -1
  402. package/src/types/plugin/ImagePlugin.ts +103 -0
  403. package/src/types/plugin/PluginAction.ts +133 -0
  404. package/src/types/plugin/PluginCommand.ts +89 -0
  405. package/src/types/plugin/PluginDefinition.ts +74 -0
  406. package/src/types/plugin/PluginHttp.ts +36 -0
  407. package/src/types/plugin/PluginRuntime.ts +169 -0
  408. package/src/types/plugin/PluginSetup.ts +138 -0
  409. package/src/types/plugin/PluginState.ts +82 -0
  410. package/src/types/rpc/RpcProtocol.ts +361 -0
  411. package/src/types/runtime/agent/AgentContext.ts +1 -1
  412. package/src/types/runtime/agent/AgentRuntime.ts +1 -1
  413. package/src/types/session/SessionComposerOptions.ts +107 -0
  414. package/src/types/session/SessionLocalState.ts +40 -0
  415. package/src/types/session/SessionOptions.ts +99 -0
  416. package/tsconfig.tsbuildinfo +1 -1
  417. package/bin/agent/Agent.d.ts +0 -223
  418. package/bin/agent/Agent.d.ts.map +0 -1
  419. package/bin/agent/Agent.js +0 -627
  420. package/bin/agent/Agent.js.map +0 -1
  421. package/bin/agent/RemoteAgent.d.ts.map +0 -1
  422. package/bin/agent/RemoteAgent.js +0 -585
  423. package/bin/agent/RemoteAgent.js.map +0 -1
  424. package/bin/runtime/auth/AuthEnv.d.ts +0 -36
  425. package/bin/runtime/auth/AuthEnv.d.ts.map +0 -1
  426. package/bin/runtime/auth/AuthEnv.js +0 -54
  427. package/bin/runtime/auth/AuthEnv.js.map +0 -1
  428. package/bin/runtime/auth/CliAuthStateStore.d.ts +0 -29
  429. package/bin/runtime/auth/CliAuthStateStore.d.ts.map +0 -1
  430. package/bin/runtime/auth/CliAuthStateStore.js +0 -26
  431. package/bin/runtime/auth/CliAuthStateStore.js.map +0 -1
  432. package/bin/runtime/control/AuthControlService.d.ts +0 -34
  433. package/bin/runtime/control/AuthControlService.d.ts.map +0 -1
  434. package/bin/runtime/control/AuthControlService.js +0 -129
  435. package/bin/runtime/control/AuthControlService.js.map +0 -1
  436. package/bin/runtime/control/CommonHelpers.d.ts +0 -36
  437. package/bin/runtime/control/CommonHelpers.d.ts.map +0 -1
  438. package/bin/runtime/control/CommonHelpers.js +0 -63
  439. package/bin/runtime/control/CommonHelpers.js.map +0 -1
  440. package/bin/runtime/control/ExecuteBySession.d.ts +0 -30
  441. package/bin/runtime/control/ExecuteBySession.d.ts.map +0 -1
  442. package/bin/runtime/control/ExecuteBySession.js +0 -41
  443. package/bin/runtime/control/ExecuteBySession.js.map +0 -1
  444. package/bin/runtime/control/ExecuteInput.d.ts +0 -18
  445. package/bin/runtime/control/ExecuteInput.d.ts.map +0 -1
  446. package/bin/runtime/control/ExecuteInput.js +0 -201
  447. package/bin/runtime/control/ExecuteInput.js.map +0 -1
  448. package/bin/runtime/control/Helpers.d.ts +0 -13
  449. package/bin/runtime/control/Helpers.d.ts.map +0 -1
  450. package/bin/runtime/control/Helpers.js +0 -13
  451. package/bin/runtime/control/Helpers.js.map +0 -1
  452. package/bin/runtime/control/MessageTimeline.d.ts +0 -22
  453. package/bin/runtime/control/MessageTimeline.d.ts.map +0 -1
  454. package/bin/runtime/control/MessageTimeline.js +0 -226
  455. package/bin/runtime/control/MessageTimeline.js.map +0 -1
  456. package/bin/runtime/control/SessionSummaryStore.d.ts +0 -20
  457. package/bin/runtime/control/SessionSummaryStore.d.ts.map +0 -1
  458. package/bin/runtime/control/SessionSummaryStore.js +0 -50
  459. package/bin/runtime/control/SessionSummaryStore.js.map +0 -1
  460. package/bin/runtime/control/TaskStore.d.ts +0 -33
  461. package/bin/runtime/control/TaskStore.d.ts.map +0 -1
  462. package/bin/runtime/control/TaskStore.js +0 -175
  463. package/bin/runtime/control/TaskStore.js.map +0 -1
  464. package/bin/runtime/control/types/AuthControl.d.ts +0 -30
  465. package/bin/runtime/control/types/AuthControl.d.ts.map +0 -1
  466. package/bin/runtime/control/types/AuthControl.js +0 -9
  467. package/bin/runtime/control/types/AuthControl.js.map +0 -1
  468. package/bin/runtime/control/types/ControlSessionExecute.d.ts +0 -85
  469. package/bin/runtime/control/types/ControlSessionExecute.d.ts.map +0 -1
  470. package/bin/runtime/control/types/ControlSessionExecute.js +0 -9
  471. package/bin/runtime/control/types/ControlSessionExecute.js.map +0 -1
  472. package/bin/runtime/control/types/ControlViewData.d.ts +0 -320
  473. package/bin/runtime/control/types/ControlViewData.d.ts.map +0 -1
  474. package/bin/runtime/control/types/ControlViewData.js +0 -9
  475. package/bin/runtime/control/types/ControlViewData.js.map +0 -1
  476. package/bin/runtime/host/AgentHostRuntime.d.ts.map +0 -1
  477. package/bin/runtime/host/AgentHostRuntime.js.map +0 -1
  478. package/bin/runtime/host/ProjectSetup.d.ts.map +0 -1
  479. package/bin/runtime/host/ProjectSetup.js.map +0 -1
  480. package/bin/runtime/sandbox/MacOsSeatbeltSandbox.d.ts.map +0 -1
  481. package/bin/runtime/sandbox/MacOsSeatbeltSandbox.js.map +0 -1
  482. package/bin/runtime/sandbox/SandboxConfigResolver.d.ts.map +0 -1
  483. package/bin/runtime/sandbox/SandboxConfigResolver.js.map +0 -1
  484. package/bin/runtime/sandbox/SandboxRunner.d.ts.map +0 -1
  485. package/bin/runtime/sandbox/SandboxRunner.js.map +0 -1
  486. package/bin/runtime/sandbox/types/Sandbox.d.ts.map +0 -1
  487. package/bin/runtime/sandbox/types/Sandbox.js.map +0 -1
  488. package/bin/runtime/sandbox/types/SandboxRuntime.d.ts.map +0 -1
  489. package/bin/runtime/sandbox/types/SandboxRuntime.js.map +0 -1
  490. package/bin/types/runtime/host/AgentHost.d.ts.map +0 -1
  491. package/bin/types/runtime/host/AgentHost.js.map +0 -1
  492. package/bin/types/runtime/host/Store.d.ts.map +0 -1
  493. package/bin/types/runtime/host/Store.js.map +0 -1
  494. package/src/agent/Agent.ts +0 -734
  495. package/src/agent/RemoteAgent.ts +0 -834
  496. package/src/runtime/auth/AuthEnv.ts +0 -62
  497. package/src/runtime/auth/CliAuthStateStore.ts +0 -46
  498. package/src/runtime/control/AuthControlService.ts +0 -169
  499. package/src/runtime/control/CommonHelpers.ts +0 -69
  500. package/src/runtime/control/ExecuteBySession.ts +0 -52
  501. package/src/runtime/control/ExecuteInput.ts +0 -236
  502. package/src/runtime/control/Helpers.ts +0 -22
  503. package/src/runtime/control/MessageTimeline.ts +0 -269
  504. package/src/runtime/control/SessionSummaryStore.ts +0 -72
  505. package/src/runtime/control/TaskStore.ts +0 -242
  506. package/src/runtime/control/types/AuthControl.ts +0 -34
  507. package/src/runtime/control/types/ControlSessionExecute.ts +0 -99
  508. package/src/runtime/control/types/ControlViewData.ts +0 -392
  509. /package/bin/{runtime/sandbox → sandbox}/MacOsSeatbeltSandbox.js +0 -0
  510. /package/bin/{runtime/sandbox → sandbox}/SandboxConfigResolver.js +0 -0
  511. /package/bin/{runtime/sandbox → sandbox}/types/Sandbox.d.ts +0 -0
  512. /package/bin/{runtime/sandbox → sandbox}/types/Sandbox.js +0 -0
  513. /package/bin/{runtime/sandbox → sandbox}/types/SandboxRuntime.js +0 -0
  514. /package/src/{runtime/sandbox → sandbox}/types/Sandbox.ts +0 -0
@@ -1,62 +0,0 @@
1
- /**
2
- * AuthEnv:统一认证环境变量与 token 解析辅助模块。
3
- *
4
- * 关键点(中文)
5
- * - 收敛 `DC_AUTH_TOKEN` 的变量名与 Bearer 归一化逻辑。
6
- * - 通用子进程默认不继承任何 Bearer Token,避免隐式走本地 HTTP。
7
- */
8
-
9
- /**
10
- * 用户显式覆盖 Bearer Token 的环境变量名。
11
- */
12
- export const CLI_AUTH_TOKEN_ENV_KEY = "DC_AUTH_TOKEN";
13
-
14
- /**
15
- * 归一化 Bearer Token。
16
- *
17
- * 关键点(中文)
18
- * - 允许传入纯 token 或 `Bearer xxx`。
19
- * - 空字符串与无效值统一归一化为 `null`。
20
- */
21
- export function normalizeBearerToken(value: unknown): string | null {
22
- const raw = String(value || "").trim();
23
- if (!raw) return null;
24
- const bearerMatch = /^Bearer\s+(.+)$/i.exec(raw);
25
- const token = bearerMatch?.[1]?.trim() || raw;
26
- return token || null;
27
- }
28
-
29
- /**
30
- * 解析本次调用应使用的 token。
31
- */
32
- export function resolveInvocationToken(params: {
33
- explicitToken?: string;
34
- env?: NodeJS.ProcessEnv;
35
- storedToken?: string;
36
- } = {}): string | undefined {
37
- const explicitToken = normalizeBearerToken(params.explicitToken);
38
- if (explicitToken) return explicitToken;
39
-
40
- const env = params.env || process.env;
41
-
42
- const envAuthToken = normalizeBearerToken(env[CLI_AUTH_TOKEN_ENV_KEY]);
43
- if (envAuthToken) return envAuthToken;
44
-
45
- return normalizeBearerToken(params.storedToken) || undefined;
46
- }
47
-
48
- /**
49
- * 从通用子进程环境中剥离 Bearer Token。
50
- */
51
- export function stripInvocationAuthEnv(targetEnv: NodeJS.ProcessEnv): void {
52
- delete targetEnv[CLI_AUTH_TOKEN_ENV_KEY];
53
- delete targetEnv.DC_AGENT_TOKEN;
54
- }
55
-
56
- /**
57
- * 生成标准 Authorization 头值。
58
- */
59
- export function formatBearerHeaderValue(tokenInput: string | undefined): string | undefined {
60
- const token = normalizeBearerToken(tokenInput);
61
- return token ? `Bearer ${token}` : undefined;
62
- }
@@ -1,46 +0,0 @@
1
- /**
2
- * CLI Bearer Token 解析模块。
3
- *
4
- * 关键点(中文)
5
- * - 只解析显式 token 与环境变量 token,不再读取任何本机持久化默认值。
6
- * - 这样远程 HTTP 鉴权始终是显式行为,不会出现本地“兜底复用”。
7
- */
8
-
9
- import {
10
- CLI_AUTH_TOKEN_ENV_KEY,
11
- formatBearerHeaderValue,
12
- resolveInvocationToken,
13
- } from "./AuthEnv.js";
14
-
15
- /**
16
- * Bearer Token 解析参数。
17
- */
18
- export interface CliAuthStateStoreOptions {
19
- /**
20
- * 保留参数形状,当前不再使用本地存储。
21
- */
22
- dbPath?: string;
23
- }
24
-
25
- /**
26
- * 解析当前 CLI 应使用的 Bearer Token。
27
- */
28
- export function resolveCliAuthToken(params: {
29
- explicitToken?: string;
30
- env?: NodeJS.ProcessEnv;
31
- dbPath?: string;
32
- } = {}): string | undefined {
33
- return resolveInvocationToken({
34
- explicitToken: params.explicitToken,
35
- env: {
36
- [CLI_AUTH_TOKEN_ENV_KEY]: params.env?.[CLI_AUTH_TOKEN_ENV_KEY],
37
- },
38
- });
39
- }
40
-
41
- /**
42
- * 生成标准 Authorization 头值。
43
- */
44
- export function formatCliBearerHeaderValue(tokenInput: string | undefined): string | undefined {
45
- return formatBearerHeaderValue(tokenInput);
46
- }
@@ -1,169 +0,0 @@
1
- /**
2
- * Control Authorization Service。
3
- *
4
- * 关键点(中文)
5
- * - 这是 control 侧的 auth 管理面 facade。
6
- * - 它通过 auth plugin action 读取与写入授权数据,但自身不属于 plugin 内核。
7
- * - 这样调用方不需要知道 plugin action 名称,也不需要依赖具体 auth plugin 源码目录。
8
- */
9
-
10
- import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
11
- import type { JsonObject } from "@/types/common/Json.js";
12
- import type { AuthControlPayload } from "@/runtime/control/types/AuthControl.js";
13
-
14
- const AUTH_PLUGIN_NAME = "auth";
15
- const AUTH_ACTIONS = {
16
- snapshot: "snapshot",
17
- readConfig: "read-config",
18
- writeConfig: "write-config",
19
- setUserRole: "set-user-role",
20
- } as const;
21
- const CHAT_AUTHORIZATION_CATALOG: JsonObject = {
22
- channels: ["telegram", "feishu", "qq"],
23
- };
24
-
25
- function toRecord(value: unknown): Record<string, unknown> {
26
- if (!value || typeof value !== "object" || Array.isArray(value)) return {};
27
- return value as Record<string, unknown>;
28
- }
29
-
30
- function readSnapshot(value: unknown): {
31
- config: JsonObject;
32
- users: JsonObject[];
33
- chats: JsonObject[];
34
- } {
35
- const record = toRecord(value);
36
- return {
37
- config: toRecord(record.config) as JsonObject,
38
- users: (Array.isArray(record.users) ? record.users : []) as JsonObject[],
39
- chats: (Array.isArray(record.chats) ? record.chats : []) as JsonObject[],
40
- };
41
- }
42
-
43
- /**
44
- * 读取 auth plugin 快照。
45
- */
46
- async function readAuthorizationSnapshotViaPlugin(
47
- context: AgentContext,
48
- ): Promise<ReturnType<typeof readSnapshot>> {
49
- const result = await context.plugins.runAction({
50
- plugin: AUTH_PLUGIN_NAME,
51
- action: AUTH_ACTIONS.snapshot,
52
- });
53
- if (!result.success) {
54
- throw new Error(result.error || result.message || "auth snapshot failed");
55
- }
56
- return readSnapshot(result.data);
57
- }
58
-
59
- /**
60
- * 读取 auth plugin 配置。
61
- */
62
- async function readAuthorizationConfigViaPlugin(
63
- context: AgentContext,
64
- ): Promise<JsonObject> {
65
- const result = await context.plugins.runAction({
66
- plugin: AUTH_PLUGIN_NAME,
67
- action: AUTH_ACTIONS.readConfig,
68
- });
69
- if (!result.success) {
70
- throw new Error(result.error || result.message || "auth read-config failed");
71
- }
72
- return toRecord(result.data) as JsonObject;
73
- }
74
-
75
- /**
76
- * 通过 auth plugin 覆盖写入授权配置。
77
- */
78
- async function writeAuthorizationConfigViaPlugin(params: {
79
- context: AgentContext;
80
- config: JsonObject;
81
- }): Promise<JsonObject> {
82
- const result = await params.context.plugins.runAction({
83
- plugin: AUTH_PLUGIN_NAME,
84
- action: AUTH_ACTIONS.writeConfig,
85
- payload: {
86
- config: params.config,
87
- },
88
- });
89
- if (!result.success) {
90
- throw new Error(result.error || result.message || "auth write-config failed");
91
- }
92
- return toRecord(result.data) as JsonObject;
93
- }
94
-
95
- /**
96
- * 通过 auth plugin 设置用户角色。
97
- */
98
- async function setAuthorizationUserRoleViaPlugin(params: {
99
- context: AgentContext;
100
- channel: string;
101
- userId: string;
102
- roleId: string;
103
- }): Promise<JsonObject> {
104
- const result = await params.context.plugins.runAction({
105
- plugin: AUTH_PLUGIN_NAME,
106
- action: AUTH_ACTIONS.setUserRole,
107
- payload: {
108
- channel: params.channel,
109
- userId: params.userId,
110
- roleId: params.roleId,
111
- },
112
- });
113
- if (!result.success) {
114
- throw new Error(result.error || result.message || "auth set-user-role failed");
115
- }
116
- return toRecord(result.data) as JsonObject;
117
- }
118
-
119
- /**
120
- * 读取 authorization 页面所需的完整数据。
121
- */
122
- export async function readAuthControlPayload(
123
- context: AgentContext,
124
- ): Promise<AuthControlPayload> {
125
- const [config, snapshot] = await Promise.all([
126
- readAuthorizationConfigViaPlugin(context),
127
- readAuthorizationSnapshotViaPlugin(context),
128
- ]);
129
- return {
130
- catalog: CHAT_AUTHORIZATION_CATALOG,
131
- config,
132
- users: snapshot.users,
133
- chats: snapshot.chats,
134
- };
135
- }
136
-
137
- /**
138
- * 覆盖写入授权配置,并返回最新 control payload。
139
- */
140
- export async function writeAuthControlConfig(params: {
141
- context: AgentContext;
142
- config: JsonObject;
143
- }): Promise<AuthControlPayload> {
144
- await writeAuthorizationConfigViaPlugin({
145
- context: params.context,
146
- config: params.config,
147
- });
148
- return readAuthControlPayload(params.context);
149
- }
150
-
151
- /**
152
- * 设置用户角色,并返回最新 control payload。
153
- */
154
- export async function setAuthControlUserRole(params: {
155
- context: AgentContext;
156
- input: {
157
- channel: string;
158
- userId: string;
159
- roleId: string;
160
- };
161
- }): Promise<AuthControlPayload> {
162
- await setAuthorizationUserRoleViaPlugin({
163
- context: params.context,
164
- channel: params.input.channel,
165
- userId: params.input.userId,
166
- roleId: params.input.roleId,
167
- });
168
- return readAuthControlPayload(params.context);
169
- }
@@ -1,69 +0,0 @@
1
- /**
2
- * 单 agent control API 通用 helper。
3
- *
4
- * 关键点(中文)
5
- * - 聚合 control 路由、query/path/文本裁剪等基础工具。
6
- * - 单 agent 控制面统一收敛到 `/api/control/*`。
7
- * - 不依赖任何业务状态。
8
- */
9
-
10
- const DEFAULT_LIMIT = 50;
11
- const MAX_LIMIT = 500;
12
-
13
- /**
14
- * 单 agent control API 的公开路由前缀。
15
- *
16
- * 说明(中文)
17
- * - 单 agent 控制面只暴露 `/api/control/*`。
18
- */
19
- export const CONTROL_API_ROUTE_PREFIXES = ["/api/control"] as const;
20
-
21
- /**
22
- * 为同一个 control 端点生成公开路径别名。
23
- */
24
- export function buildControlRouteAliases(suffix: string): string[] {
25
- const normalizedSuffix = String(suffix || "").startsWith("/")
26
- ? String(suffix || "")
27
- : `/${String(suffix || "")}`;
28
- return CONTROL_API_ROUTE_PREFIXES.map((prefix) => `${prefix}${normalizedSuffix}`);
29
- }
30
-
31
- /**
32
- * 解析 limit 参数并做边界裁剪。
33
- */
34
- export function toLimit(
35
- raw: string | undefined,
36
- fallback = DEFAULT_LIMIT,
37
- ): number {
38
- const n = Number.parseInt(String(raw || "").trim(), 10);
39
- if (!Number.isFinite(n) || Number.isNaN(n)) return fallback;
40
- return Math.max(1, Math.min(MAX_LIMIT, n));
41
- }
42
-
43
- /**
44
- * 转成可选字符串。
45
- */
46
- export function toOptionalString(input: unknown): string | undefined {
47
- const value = typeof input === "string" ? input.trim() : "";
48
- return value ? value : undefined;
49
- }
50
-
51
- /**
52
- * 安全 decodeURIComponent。
53
- */
54
- export function decodeMaybe(value: string): string {
55
- try {
56
- return decodeURIComponent(String(value || ""));
57
- } catch {
58
- return String(value || "");
59
- }
60
- }
61
-
62
- /**
63
- * 文本截断。
64
- */
65
- export function truncateText(text: string, maxChars: number): string {
66
- const normalized = String(text || "");
67
- if (normalized.length <= maxChars) return normalized;
68
- return normalized.slice(0, Math.max(0, maxChars - 3)) + "...";
69
- }
@@ -1,52 +0,0 @@
1
- /**
2
- * Control execute by session helper。
3
- *
4
- * 关键点(中文)
5
- * - control 层只负责把请求转成 session prompt。
6
- * - chat / queue 等渠道语义由宿主显式注入的 plugin 自行实现。
7
- */
8
-
9
- import type { AgentRuntime } from "@/types/runtime/agent/AgentRuntime.js";
10
- import type { AgentContext } from "@/types/runtime/agent/AgentContext.js";
11
- import type { ControlSessionExecuteAttachmentInput } from "@/runtime/control/types/ControlSessionExecute.js";
12
- import { buildExecuteInputText } from "./Helpers.js";
13
-
14
- /**
15
- * 在指定 session 中执行一轮请求。
16
- *
17
- * 说明(中文)
18
- * - 按普通 session 同步执行。
19
- */
20
- export async function executeBySessionId(params: {
21
- agentState: AgentRuntime;
22
- executionContext: AgentContext;
23
- sessionId: string;
24
- instructions: string;
25
- attachments?: ControlSessionExecuteAttachmentInput[];
26
- }) {
27
- const sessionId = String(params.sessionId || "").trim();
28
- const instructions = String(params.instructions || "").trim();
29
- if (!sessionId) throw new Error("Missing sessionId");
30
- if (!instructions) throw new Error("Missing instructions");
31
-
32
- const executeInput = await buildExecuteInputText({
33
- projectRoot: params.agentState.rootPath,
34
- sessionId,
35
- instructions,
36
- attachments: params.attachments,
37
- });
38
-
39
- const session = params.agentState.getSession(sessionId);
40
- const turn = await session.prompt({
41
- query: executeInput,
42
- });
43
- const result = await turn.finished;
44
-
45
- return {
46
- success: result.success,
47
- ...(result.error ? { error: result.error } : {}),
48
- assistantMessage: result.assistantMessage,
49
- userVisible: result.text.trim(),
50
- queued: false,
51
- };
52
- }
@@ -1,236 +0,0 @@
1
- /**
2
- * Control execute 输入拼装 helper。
3
- *
4
- * 关键点(中文)
5
- * - 负责把 API 传入的附件规范化并落盘。
6
- * - 最终统一转成 `<file>` 标签注入到 user message。
7
- */
8
-
9
- import fs from "fs-extra";
10
- import path from "node:path";
11
- import { getCacheDirPath } from "@/config/Paths.js";
12
- import { renderChatMessageFileTag } from "@/executor/messages/ChatMessageMarkup.js";
13
- import type {
14
- ControlSessionExecuteAttachmentInput,
15
- ControlSessionExecuteAttachmentType,
16
- } from "@/runtime/control/types/ControlSessionExecute.js";
17
-
18
- const EXECUTE_ATTACHMENT_MAX_COUNT = 8;
19
- const EXECUTE_ATTACHMENT_MAX_BYTES = 2 * 1024 * 1024;
20
- const EXECUTE_ATTACHMENT_CONTENT_MAX_CHARS = 1_500_000;
21
- const EXECUTE_ATTACHMENT_FALLBACK_TEXT = "请查看以上附件并按用户要求处理。";
22
-
23
- function normalizeExecuteAttachmentType(
24
- value: unknown,
25
- ): ControlSessionExecuteAttachmentType {
26
- const raw = String(value || "")
27
- .trim()
28
- .toLowerCase();
29
- if (
30
- raw === "photo" ||
31
- raw === "voice" ||
32
- raw === "audio" ||
33
- raw === "video"
34
- ) {
35
- return raw;
36
- }
37
- return "document";
38
- }
39
-
40
- function normalizeAttachmentCaption(value: unknown): string | undefined {
41
- const text = String(value || "")
42
- .replace(/\r?\n+/g, " ")
43
- .replace(/\s+/g, " ")
44
- .replace(/\|/g, "/")
45
- .trim();
46
- if (!text) return undefined;
47
- return text.slice(0, 180);
48
- }
49
-
50
- function toProjectRelativePath(projectRoot: string, absPath: string): string | null {
51
- const relative = path.relative(projectRoot, absPath);
52
- if (!relative) return null;
53
- if (relative.startsWith("..")) return null;
54
- if (path.isAbsolute(relative)) return null;
55
- return relative.split(path.sep).join("/");
56
- }
57
-
58
- function normalizeAttachmentFileName(params: {
59
- fileName?: string;
60
- fallbackExt: string;
61
- }): string {
62
- const raw = String(params.fileName || "").trim();
63
- const base = (raw || "attachment")
64
- .replace(/[\\/:*?"<>|]/g, "-")
65
- .replace(/\s+/g, "-")
66
- .replace(/-+/g, "-")
67
- .replace(/^\.+/, "")
68
- .replace(/^-+|-+$/g, "")
69
- .slice(0, 72);
70
- const safeBase = base || "attachment";
71
- const fallbackExt = params.fallbackExt.startsWith(".")
72
- ? params.fallbackExt
73
- : `.${params.fallbackExt}`;
74
- const hasExt = /\.[A-Za-z0-9]+$/.test(safeBase);
75
- return hasExt ? safeBase : `${safeBase}${fallbackExt}`;
76
- }
77
-
78
- function inferAttachmentExt(params: {
79
- type: ControlSessionExecuteAttachmentType;
80
- fileName?: string;
81
- contentType?: string;
82
- }): string {
83
- const fromFileName = path.extname(String(params.fileName || "").trim())
84
- .toLowerCase()
85
- .trim();
86
- if (fromFileName) return fromFileName;
87
- const contentType = String(params.contentType || "").toLowerCase();
88
- if (contentType.includes("markdown")) return ".md";
89
- if (contentType.includes("json")) return ".json";
90
- if (contentType.includes("html")) return ".html";
91
- if (contentType.includes("plain")) return ".txt";
92
- if (params.type === "photo") return ".jpg";
93
- if (params.type === "voice" || params.type === "audio") return ".mp3";
94
- if (params.type === "video") return ".mp4";
95
- return ".md";
96
- }
97
-
98
- async function resolveAttachmentPathFromInput(params: {
99
- projectRoot: string;
100
- attachment: ControlSessionExecuteAttachmentInput;
101
- }): Promise<string | null> {
102
- const rawPath = String(params.attachment.path || "").trim();
103
- if (!rawPath) return null;
104
- const abs = path.isAbsolute(rawPath)
105
- ? path.normalize(rawPath)
106
- : path.resolve(params.projectRoot, rawPath);
107
- const relative = toProjectRelativePath(params.projectRoot, abs);
108
- if (!relative) return null;
109
- const stat = await fs
110
- .stat(abs)
111
- .then((value) => value)
112
- .catch(() => null);
113
- if (!stat?.isFile()) return null;
114
- return relative;
115
- }
116
-
117
- function resolveAttachmentBytes(
118
- attachment: ControlSessionExecuteAttachmentInput,
119
- ): Buffer | null {
120
- const textContent =
121
- typeof attachment.content === "string" ? attachment.content : "";
122
- if (textContent) {
123
- const clipped = textContent.slice(0, EXECUTE_ATTACHMENT_CONTENT_MAX_CHARS);
124
- return Buffer.from(clipped, "utf8");
125
- }
126
-
127
- const base64 = String(attachment.contentBase64 || "").trim();
128
- if (!base64) return null;
129
- try {
130
- return Buffer.from(base64, "base64");
131
- } catch {
132
- return null;
133
- }
134
- }
135
-
136
- async function materializeAttachmentContent(params: {
137
- projectRoot: string;
138
- sessionId: string;
139
- attachment: ControlSessionExecuteAttachmentInput;
140
- index: number;
141
- }): Promise<string | null> {
142
- const bytes = resolveAttachmentBytes(params.attachment);
143
- if (!bytes || bytes.length <= 0) return null;
144
- if (bytes.length > EXECUTE_ATTACHMENT_MAX_BYTES) {
145
- throw new Error(
146
- `Attachment too large (>${EXECUTE_ATTACHMENT_MAX_BYTES} bytes)`,
147
- );
148
- }
149
-
150
- const type = normalizeExecuteAttachmentType(params.attachment.type);
151
- const ext = inferAttachmentExt({
152
- type,
153
- fileName: params.attachment.fileName,
154
- contentType: params.attachment.contentType,
155
- });
156
- const safeName = normalizeAttachmentFileName({
157
- fileName: params.attachment.fileName,
158
- fallbackExt: ext,
159
- });
160
- const safeContext = String(params.sessionId || "session")
161
- .replace(/[^A-Za-z0-9_-]+/g, "-")
162
- .replace(/-+/g, "-")
163
- .replace(/^-+|-+$/g, "")
164
- .slice(0, 32);
165
- const prefix = safeContext || "context";
166
- const fileName = `${Date.now()}-${prefix}-${String(params.index + 1).padStart(2, "0")}-${safeName}`;
167
- const cacheDir = path.join(getCacheDirPath(params.projectRoot), "chrome-extension");
168
- await fs.ensureDir(cacheDir);
169
- const absPath = path.join(cacheDir, fileName);
170
- await fs.writeFile(absPath, bytes);
171
- return toProjectRelativePath(params.projectRoot, absPath);
172
- }
173
-
174
- function toAttachmentLine(params: {
175
- type: ControlSessionExecuteAttachmentType;
176
- relativePath: string;
177
- caption?: string;
178
- }): string {
179
- return renderChatMessageFileTag({
180
- type: params.type,
181
- path: params.relativePath,
182
- ...(params.caption ? { caption: params.caption } : {}),
183
- });
184
- }
185
-
186
- /**
187
- * 构造 execute 入站文本。
188
- */
189
- export async function buildExecuteInputText(params: {
190
- projectRoot: string;
191
- sessionId: string;
192
- instructions: string;
193
- attachments?: ControlSessionExecuteAttachmentInput[];
194
- }): Promise<string> {
195
- const instructions = String(params.instructions || "").trim();
196
- const inputAttachments = Array.isArray(params.attachments)
197
- ? params.attachments.slice(0, EXECUTE_ATTACHMENT_MAX_COUNT)
198
- : [];
199
- if (inputAttachments.length === 0) return instructions;
200
-
201
- const lines: string[] = [];
202
- for (let index = 0; index < inputAttachments.length; index += 1) {
203
- const attachment = inputAttachments[index];
204
- if (!attachment || typeof attachment !== "object") continue;
205
- const type = normalizeExecuteAttachmentType(attachment.type);
206
- const caption = normalizeAttachmentCaption(attachment.caption);
207
-
208
- const reusePath = await resolveAttachmentPathFromInput({
209
- projectRoot: params.projectRoot,
210
- attachment,
211
- });
212
- const relativePath =
213
- reusePath ||
214
- (await materializeAttachmentContent({
215
- projectRoot: params.projectRoot,
216
- sessionId: params.sessionId,
217
- attachment,
218
- index,
219
- }));
220
- if (!relativePath) continue;
221
-
222
- lines.push(
223
- toAttachmentLine({
224
- type,
225
- relativePath,
226
- ...(caption ? { caption } : {}),
227
- }),
228
- );
229
- }
230
-
231
- if (lines.length === 0) return instructions;
232
- return [lines.join("\n"), instructions || EXECUTE_ATTACHMENT_FALLBACK_TEXT]
233
- .filter(Boolean)
234
- .join("\n\n")
235
- .trim();
236
- }
@@ -1,22 +0,0 @@
1
- /**
2
- * Control helper 聚合出口。
3
- *
4
- * 关键点(中文)
5
- * - 兼容控制面路由层的统一 import 路径。
6
- * - 具体实现已拆分到独立子模块,避免单文件继续膨胀。
7
- */
8
-
9
- export { toLimit, toOptionalString, decodeMaybe } from "./CommonHelpers.js";
10
- export { buildExecuteInputText } from "./ExecuteInput.js";
11
- export {
12
- loadSessionMessagesFromFile,
13
- resolveUiMessagePreview,
14
- toUiMessageTimeline,
15
- } from "./MessageTimeline.js";
16
- export { listControlSessionSummaries } from "./SessionSummaryStore.js";
17
- export {
18
- TASK_RUN_DIR_REGEX,
19
- listTaskRuns,
20
- readRecentLogs,
21
- readTaskRunDetail,
22
- } from "./TaskStore.js";