@downcity/agent 1.1.338 → 1.1.400

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (987) hide show
  1. package/README.md +31 -15
  2. package/bin/agent/Agent.d.ts +42 -91
  3. package/bin/agent/Agent.d.ts.map +1 -1
  4. package/bin/agent/Agent.js +115 -200
  5. package/bin/agent/Agent.js.map +1 -1
  6. package/bin/agent/AgentModel.d.ts +8 -8
  7. package/bin/agent/AgentModel.d.ts.map +1 -1
  8. package/bin/agent/AgentModel.js +5 -5
  9. package/bin/agent/AgentModel.js.map +1 -1
  10. package/bin/agent/AgentSessions.d.ts +42 -28
  11. package/bin/agent/AgentSessions.d.ts.map +1 -1
  12. package/bin/agent/AgentSessions.js +80 -44
  13. package/bin/agent/AgentSessions.js.map +1 -1
  14. package/bin/agent/WorkspaceEntry.d.ts +82 -0
  15. package/bin/agent/WorkspaceEntry.d.ts.map +1 -0
  16. package/bin/agent/WorkspaceEntry.js +246 -0
  17. package/bin/agent/WorkspaceEntry.js.map +1 -0
  18. package/bin/agent/index.d.ts +5 -0
  19. package/bin/agent/index.d.ts.map +1 -0
  20. package/bin/agent/index.js +5 -0
  21. package/bin/agent/index.js.map +1 -0
  22. package/bin/city/host/CityHostRegistry.d.ts +44 -0
  23. package/bin/city/host/CityHostRegistry.d.ts.map +1 -0
  24. package/bin/city/host/CityHostRegistry.js +225 -0
  25. package/bin/city/host/CityHostRegistry.js.map +1 -0
  26. package/bin/city/index.d.ts +22 -0
  27. package/bin/city/index.d.ts.map +1 -0
  28. package/bin/city/index.js +10 -0
  29. package/bin/city/index.js.map +1 -0
  30. package/bin/city/runtime/City.d.ts +99 -0
  31. package/bin/city/runtime/City.d.ts.map +1 -0
  32. package/bin/city/runtime/City.js +376 -0
  33. package/bin/city/runtime/City.js.map +1 -0
  34. package/bin/city/transport/SerializedTransport.d.ts +30 -0
  35. package/bin/city/transport/SerializedTransport.d.ts.map +1 -0
  36. package/bin/city/transport/SerializedTransport.js +57 -0
  37. package/bin/city/transport/SerializedTransport.js.map +1 -0
  38. package/bin/city/transport/http/AgentHTTP.d.ts +66 -0
  39. package/bin/city/transport/http/AgentHTTP.d.ts.map +1 -0
  40. package/bin/city/transport/http/AgentHTTP.js +142 -0
  41. package/bin/city/transport/http/AgentHTTP.js.map +1 -0
  42. package/bin/city/transport/http/CityHTTP.d.ts +44 -0
  43. package/bin/city/transport/http/CityHTTP.d.ts.map +1 -0
  44. package/bin/city/transport/http/CityHTTP.js +171 -0
  45. package/bin/city/transport/http/CityHTTP.js.map +1 -0
  46. package/bin/city/transport/http/NodeHttpAdapter.d.ts +27 -0
  47. package/bin/city/transport/http/NodeHttpAdapter.d.ts.map +1 -0
  48. package/bin/city/transport/http/NodeHttpAdapter.js +57 -0
  49. package/bin/city/transport/http/NodeHttpAdapter.js.map +1 -0
  50. package/bin/city/transport/http/routes/RuntimeRoutes.d.ts +15 -0
  51. package/bin/city/transport/http/routes/RuntimeRoutes.d.ts.map +1 -0
  52. package/bin/city/transport/http/routes/RuntimeRoutes.js +38 -0
  53. package/bin/city/transport/http/routes/RuntimeRoutes.js.map +1 -0
  54. package/bin/city/transport/http/routes/SessionRoutes.d.ts +17 -0
  55. package/bin/city/transport/http/routes/SessionRoutes.d.ts.map +1 -0
  56. package/bin/city/transport/http/routes/SessionRoutes.js +417 -0
  57. package/bin/city/transport/http/routes/SessionRoutes.js.map +1 -0
  58. package/bin/city/transport/rpc/AgentRPC.d.ts +47 -0
  59. package/bin/city/transport/rpc/AgentRPC.d.ts.map +1 -0
  60. package/bin/city/transport/rpc/AgentRPC.js +89 -0
  61. package/bin/city/transport/rpc/AgentRPC.js.map +1 -0
  62. package/bin/city/transport/rpc/CityRPC.d.ts +26 -0
  63. package/bin/city/transport/rpc/CityRPC.d.ts.map +1 -0
  64. package/bin/city/transport/rpc/CityRPC.js +110 -0
  65. package/bin/city/transport/rpc/CityRPC.js.map +1 -0
  66. package/bin/city/transport/rpc/RpcServer.d.ts +30 -0
  67. package/bin/city/transport/rpc/RpcServer.d.ts.map +1 -0
  68. package/bin/city/transport/rpc/RpcServer.js +125 -0
  69. package/bin/city/transport/rpc/RpcServer.js.map +1 -0
  70. package/bin/city/transport/rpc/server/InternalHandlers.d.ts +22 -0
  71. package/bin/city/transport/rpc/server/InternalHandlers.d.ts.map +1 -0
  72. package/bin/city/transport/rpc/server/InternalHandlers.js +196 -0
  73. package/bin/city/transport/rpc/server/InternalHandlers.js.map +1 -0
  74. package/bin/city/transport/rpc/server/RequestDispatcher.d.ts +27 -0
  75. package/bin/city/transport/rpc/server/RequestDispatcher.d.ts.map +1 -0
  76. package/bin/city/transport/rpc/server/RequestDispatcher.js +38 -0
  77. package/bin/city/transport/rpc/server/RequestDispatcher.js.map +1 -0
  78. package/bin/city/transport/rpc/server/SdkSessionHandlers.d.ts +25 -0
  79. package/bin/city/transport/rpc/server/SdkSessionHandlers.d.ts.map +1 -0
  80. package/bin/city/transport/rpc/server/SdkSessionHandlers.js +146 -0
  81. package/bin/city/transport/rpc/server/SdkSessionHandlers.js.map +1 -0
  82. package/bin/city/transport/rpc/server/ServerTypes.d.ts +94 -0
  83. package/bin/city/transport/rpc/server/ServerTypes.d.ts.map +1 -0
  84. package/bin/city/transport/rpc/server/ServerTypes.js +9 -0
  85. package/bin/city/transport/rpc/server/ServerTypes.js.map +1 -0
  86. package/bin/city/transport/session/RemoteSessionConfig.d.ts +15 -0
  87. package/bin/city/transport/session/RemoteSessionConfig.d.ts.map +1 -0
  88. package/bin/city/transport/session/RemoteSessionConfig.js +23 -0
  89. package/bin/city/transport/session/RemoteSessionConfig.js.map +1 -0
  90. package/bin/city/transport/types/AgentHttpBinding.d.ts +24 -0
  91. package/bin/city/transport/types/AgentHttpBinding.d.ts.map +1 -0
  92. package/bin/city/transport/types/AgentHttpBinding.js +5 -0
  93. package/bin/city/transport/types/AgentHttpBinding.js.map +1 -0
  94. package/bin/city/transport/types/AgentHttpRuntime.d.ts +12 -0
  95. package/bin/city/transport/types/AgentHttpRuntime.d.ts.map +1 -0
  96. package/bin/city/transport/types/AgentHttpRuntime.js +7 -0
  97. package/bin/city/transport/types/AgentHttpRuntime.js.map +1 -0
  98. package/bin/city/transport/types/AgentRpcBinding.d.ts +27 -0
  99. package/bin/city/transport/types/AgentRpcBinding.d.ts.map +1 -0
  100. package/bin/city/transport/types/AgentRpcBinding.js +8 -0
  101. package/bin/city/transport/types/AgentRpcBinding.js.map +1 -0
  102. package/bin/city/transport/types/AgentRpcRuntime.d.ts +18 -0
  103. package/bin/city/transport/types/AgentRpcRuntime.d.ts.map +1 -0
  104. package/bin/city/transport/types/AgentRpcRuntime.js +7 -0
  105. package/bin/city/transport/types/AgentRpcRuntime.js.map +1 -0
  106. package/bin/city/transport/types/AgentSessionModelResolver.d.ts +11 -0
  107. package/bin/city/transport/types/AgentSessionModelResolver.d.ts.map +1 -0
  108. package/bin/city/transport/types/AgentSessionModelResolver.js +7 -0
  109. package/bin/city/transport/types/AgentSessionModelResolver.js.map +1 -0
  110. package/bin/city/transport/types/CityHttpRuntime.d.ts +36 -0
  111. package/bin/city/transport/types/CityHttpRuntime.d.ts.map +1 -0
  112. package/bin/city/transport/types/CityHttpRuntime.js +8 -0
  113. package/bin/city/transport/types/CityHttpRuntime.js.map +1 -0
  114. package/bin/city/transport/types/CityRpcRuntime.d.ts +17 -0
  115. package/bin/city/transport/types/CityRpcRuntime.d.ts.map +1 -0
  116. package/bin/city/transport/types/CityRpcRuntime.js +8 -0
  117. package/bin/city/transport/types/CityRpcRuntime.js.map +1 -0
  118. package/bin/city/transport/types/RpcProtocol.d.ts +24 -0
  119. package/bin/city/transport/types/RpcProtocol.d.ts.map +1 -0
  120. package/bin/city/transport/types/RpcProtocol.js +9 -0
  121. package/bin/city/transport/types/RpcProtocol.js.map +1 -0
  122. package/bin/city/types/City.d.ts +84 -0
  123. package/bin/city/types/City.d.ts.map +1 -0
  124. package/bin/city/types/City.js +7 -0
  125. package/bin/city/types/City.js.map +1 -0
  126. package/bin/city/types/PluginHostContext.d.ts +31 -0
  127. package/bin/city/types/PluginHostContext.d.ts.map +1 -0
  128. package/bin/city/types/PluginHostContext.js +11 -0
  129. package/bin/city/types/PluginHostContext.js.map +1 -0
  130. package/bin/city/types/SerializedTransport.d.ts +16 -0
  131. package/bin/city/types/SerializedTransport.d.ts.map +1 -0
  132. package/bin/city/types/SerializedTransport.js +3 -0
  133. package/bin/city/types/SerializedTransport.js.map +1 -0
  134. package/bin/executor/Executor.d.ts +4 -4
  135. package/bin/executor/Executor.d.ts.map +1 -1
  136. package/bin/executor/Executor.js +90 -34
  137. package/bin/executor/Executor.js.map +1 -1
  138. package/bin/executor/composer/system/SessionSystemComposer.d.ts +2 -2
  139. package/bin/executor/composer/system/SessionSystemComposer.d.ts.map +1 -1
  140. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts +3 -3
  141. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js +1 -1
  142. package/bin/executor/composer/system/default/PromptRenderer.d.ts +3 -3
  143. package/bin/executor/composer/system/default/PromptRenderer.d.ts.map +1 -1
  144. package/bin/executor/composer/system/default/PromptRenderer.js +1 -1
  145. package/bin/executor/composer/system/default/SystemDomain.d.ts +3 -3
  146. package/bin/executor/composer/system/default/SystemDomain.d.ts.map +1 -1
  147. package/bin/executor/composer/system/default/SystemDomain.js +3 -3
  148. package/bin/executor/composer/system/default/SystemDomain.js.map +1 -1
  149. package/bin/executor/composer/system/default/SystemPromptAssets.js +2 -2
  150. package/bin/executor/composer/system/default/assets/core.prompt.d.ts +1 -1
  151. package/bin/executor/composer/system/default/assets/core.prompt.d.ts.map +1 -1
  152. package/bin/executor/composer/system/default/assets/core.prompt.js +1 -1
  153. package/bin/executor/composer/system/default/assets/core.prompt.js.map +1 -1
  154. package/bin/executor/composer/system/default/variables/GeoContext.d.ts +1 -1
  155. package/bin/executor/composer/system/default/variables/VariableReplacer.js +1 -1
  156. package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts +6 -23
  157. package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts.map +1 -1
  158. package/bin/executor/core-engine/CoreEngineContextCompaction.js +112 -344
  159. package/bin/executor/core-engine/CoreEngineContextCompaction.js.map +1 -1
  160. package/bin/executor/core-engine/CoreEngineError.d.ts +1 -1
  161. package/bin/executor/core-engine/CoreEngineError.js +1 -1
  162. package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts +2 -3
  163. package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts.map +1 -1
  164. package/bin/executor/core-engine/CoreEngineLoopDecision.js +1 -15
  165. package/bin/executor/core-engine/CoreEngineLoopDecision.js.map +1 -1
  166. package/bin/executor/core-engine/CoreEngineMessageState.d.ts +16 -39
  167. package/bin/executor/core-engine/CoreEngineMessageState.d.ts.map +1 -1
  168. package/bin/executor/core-engine/CoreEngineMessageState.js +25 -60
  169. package/bin/executor/core-engine/CoreEngineMessageState.js.map +1 -1
  170. package/bin/executor/core-engine/CoreEngineRunner.d.ts +10 -6
  171. package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -1
  172. package/bin/executor/core-engine/CoreEngineRunner.js +146 -234
  173. package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
  174. package/bin/executor/core-engine/CoreEngineSignals.d.ts +20 -58
  175. package/bin/executor/core-engine/CoreEngineSignals.d.ts.map +1 -1
  176. package/bin/executor/core-engine/CoreEngineSignals.js +84 -304
  177. package/bin/executor/core-engine/CoreEngineSignals.js.map +1 -1
  178. package/bin/executor/messages/SessionAttachmentMapper.d.ts +6 -37
  179. package/bin/executor/messages/SessionAttachmentMapper.d.ts.map +1 -1
  180. package/bin/executor/messages/SessionAttachmentMapper.js +12 -243
  181. package/bin/executor/messages/SessionAttachmentMapper.js.map +1 -1
  182. package/bin/executor/messages/SessionMessageLog.d.ts +7 -14
  183. package/bin/executor/messages/SessionMessageLog.d.ts.map +1 -1
  184. package/bin/executor/messages/SessionMessageLog.js +11 -26
  185. package/bin/executor/messages/SessionMessageLog.js.map +1 -1
  186. package/bin/executor/messages/SessionModelMessages.d.ts +14 -0
  187. package/bin/executor/messages/SessionModelMessages.d.ts.map +1 -0
  188. package/bin/executor/messages/SessionModelMessages.js +187 -0
  189. package/bin/executor/messages/SessionModelMessages.js.map +1 -0
  190. package/bin/executor/model/ModelGenerate.d.ts +22 -0
  191. package/bin/executor/model/ModelGenerate.d.ts.map +1 -0
  192. package/bin/executor/model/ModelGenerate.js +54 -0
  193. package/bin/executor/model/ModelGenerate.js.map +1 -0
  194. package/bin/executor/model/ModelStepRunner.d.ts +70 -0
  195. package/bin/executor/model/ModelStepRunner.d.ts.map +1 -0
  196. package/bin/executor/model/ModelStepRunner.js +284 -0
  197. package/bin/executor/model/ModelStepRunner.js.map +1 -0
  198. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +4 -4
  199. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +1 -1
  200. package/bin/executor/types/SessionHistoryMeta.d.ts +7 -2
  201. package/bin/executor/types/SessionHistoryMeta.d.ts.map +1 -1
  202. package/bin/executor/types/SessionHistoryMeta.js +1 -1
  203. package/bin/executor/types/SessionLoop.d.ts +1 -21
  204. package/bin/executor/types/SessionLoop.d.ts.map +1 -1
  205. package/bin/executor/types/SessionPrompts.d.ts +8 -7
  206. package/bin/executor/types/SessionPrompts.d.ts.map +1 -1
  207. package/bin/executor/types/SessionPrompts.js +1 -2
  208. package/bin/executor/types/SessionPrompts.js.map +1 -1
  209. package/bin/group/Group.d.ts +20 -0
  210. package/bin/group/Group.d.ts.map +1 -0
  211. package/bin/group/Group.js +42 -0
  212. package/bin/group/Group.js.map +1 -0
  213. package/bin/group/GroupSession.d.ts +103 -0
  214. package/bin/group/GroupSession.d.ts.map +1 -0
  215. package/bin/group/GroupSession.js +666 -0
  216. package/bin/group/GroupSession.js.map +1 -0
  217. package/bin/group/GroupSessions.d.ts +21 -0
  218. package/bin/group/GroupSessions.d.ts.map +1 -0
  219. package/bin/group/GroupSessions.js +89 -0
  220. package/bin/group/GroupSessions.js.map +1 -0
  221. package/bin/group/index.d.ts +9 -0
  222. package/bin/group/index.d.ts.map +1 -0
  223. package/bin/group/index.js +6 -0
  224. package/bin/group/index.js.map +1 -0
  225. package/bin/index.d.ts +28 -20
  226. package/bin/index.d.ts.map +1 -1
  227. package/bin/index.js +7 -9
  228. package/bin/index.js.map +1 -1
  229. package/bin/internal/AgentRuntime.d.ts +43 -0
  230. package/bin/internal/AgentRuntime.d.ts.map +1 -0
  231. package/bin/internal/AgentRuntime.js +179 -0
  232. package/bin/internal/AgentRuntime.js.map +1 -0
  233. package/bin/internal/GroupRuntime.d.ts +17 -0
  234. package/bin/internal/GroupRuntime.d.ts.map +1 -0
  235. package/bin/internal/GroupRuntime.js +66 -0
  236. package/bin/internal/GroupRuntime.js.map +1 -0
  237. package/bin/internal/index.d.ts +8 -0
  238. package/bin/internal/index.d.ts.map +1 -0
  239. package/bin/internal/index.js +8 -0
  240. package/bin/internal/index.js.map +1 -0
  241. package/bin/plugin/core/ActionScheduleExecutor.d.ts +3 -2
  242. package/bin/plugin/core/ActionScheduleExecutor.d.ts.map +1 -1
  243. package/bin/plugin/core/ActionScheduleExecutor.js +14 -3
  244. package/bin/plugin/core/ActionScheduleExecutor.js.map +1 -1
  245. package/bin/plugin/core/ActionScheduleRuntime.d.ts +3 -1
  246. package/bin/plugin/core/ActionScheduleRuntime.d.ts.map +1 -1
  247. package/bin/plugin/core/ActionScheduleRuntime.js +9 -8
  248. package/bin/plugin/core/ActionScheduleRuntime.js.map +1 -1
  249. package/bin/plugin/core/ActionScheduleStore.d.ts +7 -3
  250. package/bin/plugin/core/ActionScheduleStore.d.ts.map +1 -1
  251. package/bin/plugin/core/ActionScheduleStore.js +32 -9
  252. package/bin/plugin/core/ActionScheduleStore.js.map +1 -1
  253. package/bin/plugin/core/HookRegistry.d.ts +4 -6
  254. package/bin/plugin/core/HookRegistry.d.ts.map +1 -1
  255. package/bin/plugin/core/HookRegistry.js +8 -14
  256. package/bin/plugin/core/HookRegistry.js.map +1 -1
  257. package/bin/plugin/core/PluginActionExecution.d.ts +33 -0
  258. package/bin/plugin/core/PluginActionExecution.d.ts.map +1 -0
  259. package/bin/plugin/core/PluginActionExecution.js +168 -0
  260. package/bin/plugin/core/PluginActionExecution.js.map +1 -0
  261. package/bin/plugin/core/PluginActionFactory.d.ts +6 -3
  262. package/bin/plugin/core/PluginActionFactory.d.ts.map +1 -1
  263. package/bin/plugin/core/PluginActionFactory.js +3 -0
  264. package/bin/plugin/core/PluginActionFactory.js.map +1 -1
  265. package/bin/plugin/core/PluginContext.d.ts +14 -4
  266. package/bin/plugin/core/PluginContext.d.ts.map +1 -1
  267. package/bin/plugin/core/PluginContext.js +11 -2
  268. package/bin/plugin/core/PluginContext.js.map +1 -1
  269. package/bin/plugin/core/PluginHttpRoutes.d.ts +1 -1
  270. package/bin/plugin/core/PluginHttpRoutes.d.ts.map +1 -1
  271. package/bin/plugin/core/PluginHttpRoutes.js +1 -1
  272. package/bin/plugin/core/PluginHttpRoutes.js.map +1 -1
  273. package/bin/plugin/core/PluginRegistry.d.ts +41 -26
  274. package/bin/plugin/core/PluginRegistry.d.ts.map +1 -1
  275. package/bin/plugin/core/PluginRegistry.js +125 -107
  276. package/bin/plugin/core/PluginRegistry.js.map +1 -1
  277. package/bin/plugin/tool/PluginToolRuntime.d.ts.map +1 -1
  278. package/bin/plugin/tool/PluginToolRuntime.js +4 -1
  279. package/bin/plugin/tool/PluginToolRuntime.js.map +1 -1
  280. package/bin/plugin/tool/PluginToolSchemas.d.ts +22 -2
  281. package/bin/plugin/tool/PluginToolSchemas.d.ts.map +1 -1
  282. package/bin/plugin/tool/PluginToolSchemas.js +3 -4
  283. package/bin/plugin/tool/PluginToolSchemas.js.map +1 -1
  284. package/bin/plugin/tool/PluginTools.d.ts +5 -8
  285. package/bin/plugin/tool/PluginTools.d.ts.map +1 -1
  286. package/bin/plugin/tool/PluginTools.js +9 -8
  287. package/bin/plugin/tool/PluginTools.js.map +1 -1
  288. package/bin/plugin/types/ActionSchedule.d.ts +6 -0
  289. package/bin/plugin/types/ActionSchedule.d.ts.map +1 -1
  290. package/bin/remote/RemoteAgent.js +2 -2
  291. package/bin/remote/RemoteSession.d.ts +1 -1
  292. package/bin/remote/TransportFactory.d.ts +1 -1
  293. package/bin/remote/TransportFactory.js +2 -2
  294. package/bin/remote/transports/HttpRemoteAgentTransport.d.ts +1 -1
  295. package/bin/remote/transports/HttpRemoteAgentTransport.d.ts.map +1 -1
  296. package/bin/remote/transports/HttpRemoteAgentTransport.js +3 -3
  297. package/bin/remote/transports/HttpRemoteAgentTransport.js.map +1 -1
  298. package/bin/remote/transports/RpcClient.d.ts +1 -0
  299. package/bin/remote/transports/RpcClient.d.ts.map +1 -1
  300. package/bin/remote/transports/RpcClient.js +16 -0
  301. package/bin/remote/transports/RpcClient.js.map +1 -1
  302. package/bin/remote/transports/RpcRemoteAgentTransport.d.ts +1 -1
  303. package/bin/remote/transports/RpcRemoteAgentTransport.d.ts.map +1 -1
  304. package/bin/remote/transports/RpcRemoteAgentTransport.js +2 -1
  305. package/bin/remote/transports/RpcRemoteAgentTransport.js.map +1 -1
  306. package/bin/session/DefaultSessionComposer.js +4 -4
  307. package/bin/session/DefaultSessionComposer.js.map +1 -1
  308. package/bin/session/Session.d.ts +9 -3
  309. package/bin/session/Session.d.ts.map +1 -1
  310. package/bin/session/Session.js +62 -53
  311. package/bin/session/Session.js.map +1 -1
  312. package/bin/session/SessionLoop.d.ts.map +1 -1
  313. package/bin/session/SessionLoop.js +23 -25
  314. package/bin/session/SessionLoop.js.map +1 -1
  315. package/bin/session/SessionMessages.d.ts +9 -11
  316. package/bin/session/SessionMessages.d.ts.map +1 -1
  317. package/bin/session/SessionMessages.js +56 -104
  318. package/bin/session/SessionMessages.js.map +1 -1
  319. package/bin/session/SessionQueue.d.ts +1 -1
  320. package/bin/session/SessionState.d.ts +3 -0
  321. package/bin/session/SessionState.d.ts.map +1 -1
  322. package/bin/session/SessionState.js +42 -12
  323. package/bin/session/SessionState.js.map +1 -1
  324. package/bin/session/SessionTitle.d.ts +6 -6
  325. package/bin/session/SessionTitle.d.ts.map +1 -1
  326. package/bin/session/SessionTitle.js +11 -39
  327. package/bin/session/SessionTitle.js.map +1 -1
  328. package/bin/session/browse/Browse.d.ts +6 -4
  329. package/bin/session/browse/Browse.d.ts.map +1 -1
  330. package/bin/session/browse/Browse.js +25 -43
  331. package/bin/session/browse/Browse.js.map +1 -1
  332. package/bin/session/control/SessionInteractions.d.ts +2 -2
  333. package/bin/session/control/SessionInteractions.d.ts.map +1 -1
  334. package/bin/session/control/SessionInteractions.js +68 -32
  335. package/bin/session/control/SessionInteractions.js.map +1 -1
  336. package/bin/session/execution/SessionAssistantOutputAdapter.d.ts +20 -17
  337. package/bin/session/execution/SessionAssistantOutputAdapter.d.ts.map +1 -1
  338. package/bin/session/execution/SessionAssistantOutputAdapter.js +35 -35
  339. package/bin/session/execution/SessionAssistantOutputAdapter.js.map +1 -1
  340. package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts +2 -2
  341. package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts.map +1 -1
  342. package/bin/session/execution/tools/SessionShellApprovalAdapter.js +20 -8
  343. package/bin/session/execution/tools/SessionShellApprovalAdapter.js.map +1 -1
  344. package/bin/session/messages/SessionAssistantMessageWriter.d.ts +42 -48
  345. package/bin/session/messages/SessionAssistantMessageWriter.d.ts.map +1 -1
  346. package/bin/session/messages/SessionAssistantMessageWriter.js +225 -543
  347. package/bin/session/messages/SessionAssistantMessageWriter.js.map +1 -1
  348. package/bin/session/messages/SessionJsonValue.d.ts +0 -10
  349. package/bin/session/messages/SessionJsonValue.d.ts.map +1 -1
  350. package/bin/session/messages/SessionJsonValue.js +0 -23
  351. package/bin/session/messages/SessionJsonValue.js.map +1 -1
  352. package/bin/session/messages/SessionMessageCompaction.d.ts +7 -3
  353. package/bin/session/messages/SessionMessageCompaction.d.ts.map +1 -1
  354. package/bin/session/messages/SessionMessageCompaction.js +69 -91
  355. package/bin/session/messages/SessionMessageCompaction.js.map +1 -1
  356. package/bin/session/messages/SessionMessageInteractionWriter.d.ts.map +1 -1
  357. package/bin/session/messages/SessionMessageInteractionWriter.js +22 -21
  358. package/bin/session/messages/SessionMessageInteractionWriter.js.map +1 -1
  359. package/bin/session/messages/SessionMessageText.d.ts +25 -0
  360. package/bin/session/messages/SessionMessageText.d.ts.map +1 -0
  361. package/bin/session/messages/SessionMessageText.js +52 -0
  362. package/bin/session/messages/SessionMessageText.js.map +1 -0
  363. package/bin/session/preview/SessionMessagePreview.d.ts +3 -3
  364. package/bin/session/preview/SessionMessagePreview.d.ts.map +1 -1
  365. package/bin/session/preview/SessionMessagePreview.js +10 -30
  366. package/bin/session/preview/SessionMessagePreview.js.map +1 -1
  367. package/bin/session/runtime/SessionTurnContext.d.ts.map +1 -1
  368. package/bin/session/runtime/SessionTurnContext.js +4 -2
  369. package/bin/session/runtime/SessionTurnContext.js.map +1 -1
  370. package/bin/session/storage/Metadata.d.ts +5 -3
  371. package/bin/session/storage/Metadata.d.ts.map +1 -1
  372. package/bin/session/storage/Metadata.js +26 -7
  373. package/bin/session/storage/Metadata.js.map +1 -1
  374. package/bin/tools/ask/AskQuestionsTool.d.ts +2 -16
  375. package/bin/tools/ask/AskQuestionsTool.d.ts.map +1 -1
  376. package/bin/tools/ask/AskQuestionsTool.js +21 -17
  377. package/bin/tools/ask/AskQuestionsTool.js.map +1 -1
  378. package/bin/types/action/ActionResult.d.ts +15 -10
  379. package/bin/types/action/ActionResult.d.ts.map +1 -1
  380. package/bin/types/action/ActionResult.js +2 -2
  381. package/bin/types/action/ActionResult.js.map +1 -1
  382. package/bin/types/agent/AgentOptions.d.ts +7 -14
  383. package/bin/types/agent/AgentOptions.d.ts.map +1 -1
  384. package/bin/types/agent/AgentSessionCollection.d.ts +42 -0
  385. package/bin/types/agent/AgentSessionCollection.d.ts.map +1 -0
  386. package/bin/types/agent/AgentSessionCollection.js +7 -0
  387. package/bin/types/agent/AgentSessionCollection.js.map +1 -0
  388. package/bin/types/agent/AgentStorage.d.ts +18 -0
  389. package/bin/types/agent/AgentStorage.d.ts.map +1 -0
  390. package/bin/types/agent/AgentStorage.js +8 -0
  391. package/bin/types/agent/AgentStorage.js.map +1 -0
  392. package/bin/types/agent/RemoteAgentOptions.d.ts +1 -1
  393. package/bin/types/agent/RemoteAgentPluginAction.d.ts +2 -2
  394. package/bin/types/agent/SessionActor.d.ts +15 -8
  395. package/bin/types/agent/SessionActor.d.ts.map +1 -1
  396. package/bin/types/agent/SessionTypes.d.ts +30 -11
  397. package/bin/types/agent/SessionTypes.d.ts.map +1 -1
  398. package/bin/types/agent/WorkspaceEntryOptions.d.ts +16 -0
  399. package/bin/types/agent/WorkspaceEntryOptions.d.ts.map +1 -0
  400. package/bin/types/agent/WorkspaceEntryOptions.js +8 -0
  401. package/bin/types/agent/WorkspaceEntryOptions.js.map +1 -0
  402. package/bin/types/executor/SessionAssistantOutput.d.ts +19 -17
  403. package/bin/types/executor/SessionAssistantOutput.d.ts.map +1 -1
  404. package/bin/types/executor/SessionAssistantOutput.js +2 -3
  405. package/bin/types/executor/SessionAssistantOutput.js.map +1 -1
  406. package/bin/types/executor/SessionToolExecutionContext.d.ts +8 -5
  407. package/bin/types/executor/SessionToolExecutionContext.d.ts.map +1 -1
  408. package/bin/types/executor/SessionToolExecutionContext.js +1 -1
  409. package/bin/types/executor/SessionTurnContext.d.ts +16 -16
  410. package/bin/types/executor/SessionTurnContext.d.ts.map +1 -1
  411. package/bin/types/group/DispatchStrategy.d.ts +62 -0
  412. package/bin/types/group/DispatchStrategy.d.ts.map +1 -0
  413. package/bin/types/group/DispatchStrategy.js +93 -0
  414. package/bin/types/group/DispatchStrategy.js.map +1 -0
  415. package/bin/types/group/Group.d.ts +61 -0
  416. package/bin/types/group/Group.d.ts.map +1 -0
  417. package/bin/types/group/Group.js +3 -0
  418. package/bin/types/group/Group.js.map +1 -0
  419. package/bin/types/group/GroupSession.d.ts +149 -0
  420. package/bin/types/group/GroupSession.d.ts.map +1 -0
  421. package/bin/types/group/GroupSession.js +3 -0
  422. package/bin/types/group/GroupSession.js.map +1 -0
  423. package/bin/types/group/GroupSessionStore.d.ts +77 -0
  424. package/bin/types/group/GroupSessionStore.d.ts.map +1 -0
  425. package/bin/types/group/GroupSessionStore.js +3 -0
  426. package/bin/types/group/GroupSessionStore.js.map +1 -0
  427. package/bin/types/plugin/AgentPluginContext.d.ts +25 -0
  428. package/bin/types/plugin/AgentPluginContext.d.ts.map +1 -0
  429. package/bin/types/plugin/AgentPluginContext.js +10 -0
  430. package/bin/types/plugin/AgentPluginContext.js.map +1 -0
  431. package/bin/types/plugin/PluginAction.d.ts +10 -8
  432. package/bin/types/plugin/PluginAction.d.ts.map +1 -1
  433. package/bin/types/plugin/PluginActionExecution.d.ts +31 -0
  434. package/bin/types/plugin/PluginActionExecution.d.ts.map +1 -0
  435. package/bin/types/plugin/PluginActionExecution.js +10 -0
  436. package/bin/types/plugin/PluginActionExecution.js.map +1 -0
  437. package/bin/types/plugin/PluginCommand.d.ts +5 -5
  438. package/bin/types/plugin/PluginCommand.d.ts.map +1 -1
  439. package/bin/types/plugin/PluginContext.d.ts +19 -8
  440. package/bin/types/plugin/PluginContext.d.ts.map +1 -1
  441. package/bin/types/plugin/PluginContext.js +1 -1
  442. package/bin/types/plugin/PluginDefinition.d.ts +6 -6
  443. package/bin/types/plugin/PluginExecutionContext.d.ts +4 -10
  444. package/bin/types/plugin/PluginExecutionContext.d.ts.map +1 -1
  445. package/bin/types/plugin/PluginExecutionContext.js +3 -5
  446. package/bin/types/plugin/PluginExecutionContext.js.map +1 -1
  447. package/bin/types/plugin/PluginHttp.d.ts +1 -1
  448. package/bin/types/plugin/PluginRuntime.d.ts +13 -8
  449. package/bin/types/plugin/PluginRuntime.d.ts.map +1 -1
  450. package/bin/types/plugin/PluginServices.d.ts +10 -0
  451. package/bin/types/plugin/PluginServices.d.ts.map +1 -0
  452. package/bin/types/plugin/PluginServices.js +3 -0
  453. package/bin/types/plugin/PluginServices.js.map +1 -0
  454. package/bin/types/plugin/PluginState.d.ts +3 -3
  455. package/bin/types/plugin/PluginState.d.ts.map +1 -1
  456. package/bin/types/plugin/PluginState.js +1 -1
  457. package/bin/types/plugin/PluginTool.d.ts +6 -4
  458. package/bin/types/plugin/PluginTool.d.ts.map +1 -1
  459. package/bin/types/rpc/RpcProtocol.d.ts +30 -8
  460. package/bin/types/rpc/RpcProtocol.d.ts.map +1 -1
  461. package/bin/types/sdk/AgentSessionAction.d.ts +6 -7
  462. package/bin/types/sdk/AgentSessionAction.d.ts.map +1 -1
  463. package/bin/types/sdk/AgentSessionAction.js +2 -3
  464. package/bin/types/sdk/AgentSessionAction.js.map +1 -1
  465. package/bin/types/sdk/AgentSessionPrompt.d.ts +7 -7
  466. package/bin/types/sdk/AgentSessionPrompt.d.ts.map +1 -1
  467. package/bin/types/sdk/AgentSessionPrompt.js +1 -4
  468. package/bin/types/sdk/AgentSessionPrompt.js.map +1 -1
  469. package/bin/types/session/SessionAction.d.ts +39 -0
  470. package/bin/types/session/SessionAction.d.ts.map +1 -0
  471. package/bin/types/session/SessionAction.js +8 -0
  472. package/bin/types/session/SessionAction.js.map +1 -0
  473. package/bin/types/session/SessionComposer.d.ts +10 -11
  474. package/bin/types/session/SessionComposer.d.ts.map +1 -1
  475. package/bin/types/session/SessionContent.d.ts +41 -0
  476. package/bin/types/session/SessionContent.d.ts.map +1 -0
  477. package/bin/types/session/SessionContent.js +8 -0
  478. package/bin/types/session/SessionContent.js.map +1 -0
  479. package/bin/types/session/SessionExecution.d.ts +9 -68
  480. package/bin/types/session/SessionExecution.d.ts.map +1 -1
  481. package/bin/types/session/SessionInteraction.d.ts +92 -58
  482. package/bin/types/session/SessionInteraction.d.ts.map +1 -1
  483. package/bin/types/session/SessionInteraction.js +11 -4
  484. package/bin/types/session/SessionInteraction.js.map +1 -1
  485. package/bin/types/session/SessionInteractions.d.ts +1 -1
  486. package/bin/types/session/SessionLocalState.d.ts +2 -2
  487. package/bin/types/session/SessionLoop.d.ts +5 -5
  488. package/bin/types/session/SessionLoop.d.ts.map +1 -1
  489. package/bin/types/session/SessionMessage.d.ts +27 -87
  490. package/bin/types/session/SessionMessage.d.ts.map +1 -1
  491. package/bin/types/session/SessionMessages.d.ts +14 -14
  492. package/bin/types/session/SessionMessages.d.ts.map +1 -1
  493. package/bin/types/session/SessionMutation.d.ts +2 -2
  494. package/bin/types/session/SessionOptions.d.ts +14 -9
  495. package/bin/types/session/SessionOptions.d.ts.map +1 -1
  496. package/bin/types/session/SessionOrigin.d.ts +19 -0
  497. package/bin/types/session/SessionOrigin.d.ts.map +1 -0
  498. package/bin/types/session/SessionOrigin.js +8 -0
  499. package/bin/types/session/SessionOrigin.js.map +1 -0
  500. package/bin/types/session/SessionPort.d.ts +16 -20
  501. package/bin/types/session/SessionPort.d.ts.map +1 -1
  502. package/bin/types/session/SessionSegment.d.ts +1 -1
  503. package/bin/types/session/SessionState.d.ts +9 -6
  504. package/bin/types/session/SessionState.d.ts.map +1 -1
  505. package/bin/types/session/SessionSystem.d.ts +1 -1
  506. package/bin/types/session/SessionTool.d.ts +12 -1
  507. package/bin/types/session/SessionTool.d.ts.map +1 -1
  508. package/bin/types/store/LocalStore.d.ts +19 -11
  509. package/bin/types/store/LocalStore.d.ts.map +1 -1
  510. package/bin/types/store/LocalStore.js +2 -2
  511. package/bin/types/store/SessionAttachmentStore.d.ts +4 -4
  512. package/bin/types/store/SessionAttachmentStore.js +3 -3
  513. package/bin/types/store/SessionDataStore.d.ts +85 -0
  514. package/bin/types/store/SessionDataStore.d.ts.map +1 -0
  515. package/bin/types/store/SessionDataStore.js +9 -0
  516. package/bin/types/store/SessionDataStore.js.map +1 -0
  517. package/bin/types/store/SessionStore.d.ts +24 -78
  518. package/bin/types/store/SessionStore.d.ts.map +1 -1
  519. package/bin/types/store/SessionStore.js +3 -3
  520. package/bin/types/tools/ToolActionExecutionContext.d.ts +30 -0
  521. package/bin/types/tools/ToolActionExecutionContext.d.ts.map +1 -0
  522. package/bin/types/tools/ToolActionExecutionContext.js +8 -0
  523. package/bin/types/tools/ToolActionExecutionContext.js.map +1 -0
  524. package/bin/types/tools/ask/AskQuestionsTool.d.ts +1 -1
  525. package/bin/utils/logger/Logger.d.ts +21 -9
  526. package/bin/utils/logger/Logger.d.ts.map +1 -1
  527. package/bin/utils/logger/Logger.js +18 -9
  528. package/bin/utils/logger/Logger.js.map +1 -1
  529. package/bin/workspace/WorkspacePaths.d.ts +3 -32
  530. package/bin/workspace/WorkspacePaths.d.ts.map +1 -1
  531. package/bin/workspace/WorkspacePaths.js +7 -46
  532. package/bin/workspace/WorkspacePaths.js.map +1 -1
  533. package/bin/workspace/store/JsonlSessionMessageStore.d.ts +1 -1
  534. package/bin/workspace/store/JsonlSessionMessageStore.d.ts.map +1 -1
  535. package/bin/workspace/store/LocalGroupSessionDataStore.d.ts +46 -0
  536. package/bin/workspace/store/LocalGroupSessionDataStore.d.ts.map +1 -0
  537. package/bin/workspace/store/LocalGroupSessionDataStore.js +197 -0
  538. package/bin/workspace/store/LocalGroupSessionDataStore.js.map +1 -0
  539. package/bin/workspace/store/LocalGroupSessionStore.d.ts +22 -0
  540. package/bin/workspace/store/LocalGroupSessionStore.d.ts.map +1 -0
  541. package/bin/workspace/store/LocalGroupSessionStore.js +75 -0
  542. package/bin/workspace/store/LocalGroupSessionStore.js.map +1 -0
  543. package/bin/workspace/store/LocalSessionAttachmentStore.d.ts +2 -2
  544. package/bin/workspace/store/LocalSessionAttachmentStore.d.ts.map +1 -1
  545. package/bin/workspace/store/LocalSessionAttachmentStore.js +2 -2
  546. package/bin/workspace/store/LocalSessionAttachmentStore.js.map +1 -1
  547. package/bin/workspace/store/LocalSessionDataStore.d.ts +45 -0
  548. package/bin/workspace/store/LocalSessionDataStore.d.ts.map +1 -0
  549. package/bin/workspace/store/LocalSessionDataStore.js +100 -0
  550. package/bin/workspace/store/LocalSessionDataStore.js.map +1 -0
  551. package/bin/workspace/store/LocalSessionStore.d.ts +38 -28
  552. package/bin/workspace/store/LocalSessionStore.d.ts.map +1 -1
  553. package/bin/workspace/store/LocalSessionStore.js +151 -51
  554. package/bin/workspace/store/LocalSessionStore.js.map +1 -1
  555. package/bin/workspace/store/LocalStorePaths.d.ts +31 -83
  556. package/bin/workspace/store/LocalStorePaths.d.ts.map +1 -1
  557. package/bin/workspace/store/LocalStorePaths.js +43 -101
  558. package/bin/workspace/store/LocalStorePaths.js.map +1 -1
  559. package/bin/workspace/store/SessionMessageStoreFactory.d.ts +1 -1
  560. package/bin/workspace/store/SessionMessageStoreFactory.d.ts.map +1 -1
  561. package/bin/workspace/store/SessionMessageStoreFactory.js +1 -1
  562. package/city-test/agent-http.test.mjs +326 -0
  563. package/city-test/city-container.test.mjs +156 -0
  564. package/city-test/city-host-registry.test.mjs +68 -0
  565. package/city-test/city-transport.test.mjs +282 -0
  566. package/city-test/group.test.mjs +739 -0
  567. package/city-test/session-model.test.mjs +169 -0
  568. package/city-test/transport-lifecycle.test.mjs +164 -0
  569. package/package.json +30 -17
  570. package/scripts/ModelClientMock.mjs +165 -0
  571. package/scripts/action-schedule-store.test.mjs +81 -11
  572. package/scripts/agent-compiler.mjs +10 -6
  573. package/scripts/agent-env-shell-sandbox.test.mjs +10 -10
  574. package/scripts/agent-env.test.mjs +6 -8
  575. package/scripts/agent-multi-workspace.test.mjs +213 -0
  576. package/scripts/agent-ready.test.mjs +71 -16
  577. package/scripts/agent-session-maintenance.test.mjs +15 -28
  578. package/scripts/agent-store.test.mjs +121 -22
  579. package/scripts/city-model-tool-loop.test.mjs +66 -195
  580. package/scripts/core-engine-context-compaction.test.mjs +65 -113
  581. package/scripts/core-engine-model-stream.test.mjs +87 -0
  582. package/scripts/executor-failure-result.test.mjs +13 -29
  583. package/scripts/file-tools.test.mjs +6 -6
  584. package/scripts/image-plugin-job.test.mjs +77 -40
  585. package/scripts/logger-isolation.test.mjs +2 -2
  586. package/scripts/multi-agent-plugin-isolation.test.mjs +11 -9
  587. package/scripts/plugin-tools.test.mjs +153 -18
  588. package/scripts/public-api-naming.test.mjs +0 -1
  589. package/scripts/rewrite-build-aliases.mjs +49 -0
  590. package/scripts/rpc-url-routing.test.mjs +29 -0
  591. package/scripts/search-tools.test.mjs +4 -4
  592. package/scripts/session-ask-question.test.mjs +23 -21
  593. package/scripts/session-attachments.test.mjs +11 -9
  594. package/scripts/session-compact-handle.test.mjs +6 -5
  595. package/scripts/session-composer.test.mjs +61 -18
  596. package/scripts/session-config-turn-boundary.test.mjs +123 -92
  597. package/scripts/session-dynamic-interaction.test.mjs +75 -0
  598. package/scripts/session-fork.test.mjs +35 -0
  599. package/scripts/session-list-title.test.mjs +14 -56
  600. package/scripts/session-messages.test.mjs +306 -1681
  601. package/scripts/session-shell-approval.test.mjs +16 -13
  602. package/scripts/session-system-blocks.test.mjs +1 -1
  603. package/scripts/session-title-event.test.mjs +38 -24
  604. package/scripts/session-tool-approval.test.mjs +17 -15
  605. package/scripts/session-turn-context.test.mjs +31 -28
  606. package/scripts/session-turn-failure.test.mjs +112 -110
  607. package/scripts/verify-build-aliases.mjs +32 -0
  608. package/scripts/workspace.test.mjs +146 -32
  609. package/src/agent/Agent.ts +138 -238
  610. package/src/agent/AgentModel.ts +9 -9
  611. package/src/agent/AgentSessions.ts +116 -65
  612. package/src/agent/WorkspaceEntry.ts +309 -0
  613. package/src/agent/index.ts +4 -0
  614. package/src/city/host/CityHostRegistry.ts +260 -0
  615. package/src/city/index.ts +49 -0
  616. package/src/city/runtime/City.ts +425 -0
  617. package/src/city/transport/SerializedTransport.ts +65 -0
  618. package/src/city/transport/http/AgentHTTP.ts +176 -0
  619. package/src/city/transport/http/CityHTTP.ts +196 -0
  620. package/src/city/transport/http/NodeHttpAdapter.ts +75 -0
  621. package/src/city/transport/http/routes/RuntimeRoutes.ts +51 -0
  622. package/src/city/transport/http/routes/SessionRoutes.ts +497 -0
  623. package/src/city/transport/rpc/AgentRPC.ts +111 -0
  624. package/src/city/transport/rpc/CityRPC.ts +138 -0
  625. package/src/city/transport/rpc/RpcServer.ts +158 -0
  626. package/src/city/transport/rpc/server/InternalHandlers.ts +223 -0
  627. package/src/city/transport/rpc/server/RequestDispatcher.ts +67 -0
  628. package/src/city/transport/rpc/server/SdkSessionHandlers.ts +166 -0
  629. package/src/city/transport/rpc/server/ServerTypes.ts +103 -0
  630. package/src/city/transport/session/RemoteSessionConfig.ts +34 -0
  631. package/src/city/transport/types/AgentHttpBinding.ts +25 -0
  632. package/src/city/transport/types/AgentHttpRuntime.ts +13 -0
  633. package/src/city/transport/types/AgentRpcBinding.ts +28 -0
  634. package/src/city/transport/types/AgentRpcRuntime.ts +20 -0
  635. package/src/city/transport/types/AgentSessionModelResolver.ts +13 -0
  636. package/src/city/transport/types/CityHttpRuntime.ts +45 -0
  637. package/src/city/transport/types/CityRpcRuntime.ts +27 -0
  638. package/src/city/transport/types/RpcProtocol.ts +32 -0
  639. package/src/city/types/City.ts +99 -0
  640. package/src/city/types/PluginHostContext.ts +40 -0
  641. package/src/city/types/SerializedTransport.ts +19 -0
  642. package/src/executor/Executor.ts +101 -43
  643. package/src/executor/README.md +11 -8
  644. package/src/executor/composer/system/SessionSystemComposer.ts +2 -2
  645. package/src/executor/composer/system/default/PromptRenderer.ts +2 -2
  646. package/src/executor/composer/system/default/SystemDomain.ts +5 -5
  647. package/src/executor/composer/system/default/assets/core.prompt.ts +1 -1
  648. package/src/executor/composer/system/default/assets/core.prompt.ts.txt +4 -12
  649. package/src/executor/core-engine/CoreEngineContextCompaction.ts +113 -427
  650. package/src/executor/core-engine/CoreEngineError.ts +1 -1
  651. package/src/executor/core-engine/CoreEngineLoopDecision.ts +1 -18
  652. package/src/executor/core-engine/CoreEngineMessageState.ts +32 -101
  653. package/src/executor/core-engine/CoreEngineRunner.ts +179 -281
  654. package/src/executor/core-engine/CoreEngineSignals.ts +98 -346
  655. package/src/executor/messages/SessionAttachmentMapper.ts +15 -273
  656. package/src/executor/messages/SessionMessageLog.ts +12 -25
  657. package/src/executor/messages/SessionModelMessages.ts +223 -0
  658. package/src/executor/model/ModelGenerate.ts +71 -0
  659. package/src/executor/model/ModelStepRunner.ts +381 -0
  660. package/src/executor/services/ExecutorRecoveryPolicy.ts +4 -4
  661. package/src/executor/types/SessionHistoryMeta.ts +8 -2
  662. package/src/executor/types/SessionLoop.ts +0 -26
  663. package/src/executor/types/SessionPrompts.ts +8 -8
  664. package/src/group/Group.ts +45 -0
  665. package/src/group/GroupSession.ts +728 -0
  666. package/src/group/GroupSessions.ts +104 -0
  667. package/src/group/index.ts +29 -0
  668. package/src/index.ts +108 -60
  669. package/src/internal/AgentRuntime.ts +229 -0
  670. package/src/internal/GroupRuntime.ts +89 -0
  671. package/src/internal/index.ts +33 -0
  672. package/src/plugin/core/ActionScheduleExecutor.ts +17 -5
  673. package/src/plugin/core/ActionScheduleRuntime.ts +16 -6
  674. package/src/plugin/core/ActionScheduleStore.ts +43 -12
  675. package/src/plugin/core/HookRegistry.ts +24 -14
  676. package/src/plugin/core/PluginActionExecution.ts +230 -0
  677. package/src/plugin/core/PluginActionFactory.ts +9 -3
  678. package/src/plugin/core/PluginContext.ts +25 -6
  679. package/src/plugin/core/PluginHttpRoutes.ts +2 -2
  680. package/src/plugin/core/PluginRegistry.ts +193 -107
  681. package/src/plugin/tool/PluginToolRuntime.ts +4 -1
  682. package/src/plugin/tool/PluginToolSchemas.ts +3 -4
  683. package/src/plugin/tool/PluginTools.ts +12 -8
  684. package/src/plugin/types/ActionSchedule.ts +6 -0
  685. package/src/remote/transports/HttpRemoteAgentTransport.ts +3 -3
  686. package/src/remote/transports/RpcClient.ts +17 -0
  687. package/src/remote/transports/RpcRemoteAgentTransport.ts +1 -0
  688. package/src/session/DefaultSessionComposer.ts +3 -3
  689. package/src/session/Session.ts +54 -42
  690. package/src/session/SessionLoop.ts +27 -34
  691. package/src/session/SessionMessages.ts +63 -121
  692. package/src/session/SessionState.ts +46 -21
  693. package/src/session/SessionTitle.ts +23 -40
  694. package/src/session/browse/Browse.ts +35 -63
  695. package/src/session/control/SessionInteractions.ts +72 -51
  696. package/src/session/execution/SessionAssistantOutputAdapter.ts +44 -45
  697. package/src/session/execution/tools/SessionShellApprovalAdapter.ts +20 -9
  698. package/src/session/messages/SessionAssistantMessageWriter.ts +259 -637
  699. package/src/session/messages/SessionJsonValue.ts +0 -23
  700. package/src/session/messages/SessionMessageCompaction.ts +78 -103
  701. package/src/session/messages/SessionMessageInteractionWriter.ts +22 -22
  702. package/src/session/messages/SessionMessageText.ts +73 -0
  703. package/src/session/preview/SessionMessagePreview.ts +15 -45
  704. package/src/session/runtime/SessionTurnContext.ts +11 -9
  705. package/src/session/storage/Metadata.ts +38 -9
  706. package/src/tools/ask/AskQuestionsTool.ts +28 -17
  707. package/src/types/action/ActionResult.ts +20 -11
  708. package/src/types/agent/AgentOptions.ts +6 -13
  709. package/src/types/agent/AgentSessionCollection.ts +61 -0
  710. package/src/types/agent/AgentStorage.ts +19 -0
  711. package/src/types/agent/RemoteAgentOptions.ts +1 -1
  712. package/src/types/agent/SessionActor.ts +9 -0
  713. package/src/types/agent/SessionTypes.ts +31 -11
  714. package/src/types/agent/WorkspaceEntryOptions.ts +18 -0
  715. package/src/types/executor/SessionAssistantOutput.ts +22 -17
  716. package/src/types/executor/SessionToolExecutionContext.ts +9 -4
  717. package/src/types/executor/SessionTurnContext.ts +11 -11
  718. package/src/types/group/DispatchStrategy.ts +165 -0
  719. package/src/types/group/Group.ts +64 -0
  720. package/src/types/group/GroupSession.ts +154 -0
  721. package/src/types/group/GroupSessionStore.ts +82 -0
  722. package/src/types/plugin/AgentPluginContext.ts +30 -0
  723. package/src/types/plugin/PluginAction.ts +7 -5
  724. package/src/types/plugin/PluginActionExecution.ts +36 -0
  725. package/src/types/plugin/PluginCommand.ts +5 -5
  726. package/src/types/plugin/PluginContext.ts +23 -7
  727. package/src/types/plugin/PluginExecutionContext.ts +6 -11
  728. package/src/types/plugin/PluginRuntime.ts +5 -0
  729. package/src/types/plugin/PluginServices.ts +11 -0
  730. package/src/types/plugin/PluginState.ts +2 -2
  731. package/src/types/plugin/PluginTool.ts +4 -1
  732. package/src/types/rpc/RpcProtocol.ts +24 -2
  733. package/src/types/sdk/AgentSessionAction.ts +8 -9
  734. package/src/types/sdk/AgentSessionPrompt.ts +8 -11
  735. package/src/types/session/SessionAction.ts +41 -0
  736. package/src/types/session/SessionComposer.ts +8 -13
  737. package/src/types/session/SessionContent.ts +52 -0
  738. package/src/types/session/SessionExecution.ts +9 -88
  739. package/src/types/session/SessionInteraction.ts +106 -73
  740. package/src/types/session/SessionLoop.ts +1 -1
  741. package/src/types/session/SessionMessage.ts +27 -94
  742. package/src/types/session/SessionMessages.ts +12 -9
  743. package/src/types/session/SessionOptions.ts +11 -4
  744. package/src/types/session/SessionOrigin.ts +21 -0
  745. package/src/types/session/SessionPort.ts +12 -20
  746. package/src/types/session/SessionState.ts +7 -4
  747. package/src/types/session/SessionTool.ts +12 -0
  748. package/src/types/store/LocalStore.ts +19 -11
  749. package/src/types/store/SessionAttachmentStore.ts +4 -4
  750. package/src/types/store/SessionDataStore.ts +109 -0
  751. package/src/types/store/SessionStore.ts +37 -94
  752. package/src/types/tools/ToolActionExecutionContext.ts +32 -0
  753. package/src/utils/logger/Logger.ts +33 -12
  754. package/src/workspace/WorkspacePaths.ts +7 -51
  755. package/src/workspace/store/JsonlSessionMessageStore.ts +2 -2
  756. package/src/workspace/store/LocalGroupSessionDataStore.ts +232 -0
  757. package/src/workspace/store/LocalGroupSessionStore.ts +90 -0
  758. package/src/workspace/store/LocalSessionAttachmentStore.ts +3 -3
  759. package/src/workspace/store/LocalSessionDataStore.ts +169 -0
  760. package/src/workspace/store/LocalSessionStore.ts +202 -86
  761. package/src/workspace/store/LocalStorePaths.ts +65 -147
  762. package/src/workspace/store/SessionMessageStoreFactory.ts +1 -1
  763. package/tsconfig.json +2 -1
  764. package/tsconfig.tsbuildinfo +1 -1
  765. package/LICENSE +0 -183
  766. package/bin/agent/AgentState.d.ts +0 -45
  767. package/bin/agent/AgentState.d.ts.map +0 -1
  768. package/bin/agent/AgentState.js +0 -74
  769. package/bin/agent/AgentState.js.map +0 -1
  770. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts +0 -48
  771. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts.map +0 -1
  772. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js +0 -92
  773. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js.map +0 -1
  774. package/bin/executor/messages/SessionMessageCodec.d.ts +0 -29
  775. package/bin/executor/messages/SessionMessageCodec.d.ts.map +0 -1
  776. package/bin/executor/messages/SessionMessageCodec.js +0 -75
  777. package/bin/executor/messages/SessionMessageCodec.js.map +0 -1
  778. package/bin/executor/messages/SessionStepEventMapper.d.ts +0 -19
  779. package/bin/executor/messages/SessionStepEventMapper.d.ts.map +0 -1
  780. package/bin/executor/messages/SessionStepEventMapper.js +0 -177
  781. package/bin/executor/messages/SessionStepEventMapper.js.map +0 -1
  782. package/bin/executor/messages/UIMessageTransformer.d.ts +0 -29
  783. package/bin/executor/messages/UIMessageTransformer.d.ts.map +0 -1
  784. package/bin/executor/messages/UIMessageTransformer.js +0 -114
  785. package/bin/executor/messages/UIMessageTransformer.js.map +0 -1
  786. package/bin/executor/messages/UserVisibleText.d.ts +0 -26
  787. package/bin/executor/messages/UserVisibleText.d.ts.map +0 -1
  788. package/bin/executor/messages/UserVisibleText.js +0 -65
  789. package/bin/executor/messages/UserVisibleText.js.map +0 -1
  790. package/bin/executor/types/SessionRecords.d.ts +0 -162
  791. package/bin/executor/types/SessionRecords.d.ts.map +0 -1
  792. package/bin/executor/types/SessionRecords.js +0 -51
  793. package/bin/executor/types/SessionRecords.js.map +0 -1
  794. package/bin/plugin/core/PluginActionRunner.d.ts +0 -24
  795. package/bin/plugin/core/PluginActionRunner.d.ts.map +0 -1
  796. package/bin/plugin/core/PluginActionRunner.js +0 -19
  797. package/bin/plugin/core/PluginActionRunner.js.map +0 -1
  798. package/bin/session/messages/SessionMessageCodec.d.ts +0 -23
  799. package/bin/session/messages/SessionMessageCodec.d.ts.map +0 -1
  800. package/bin/session/messages/SessionMessageCodec.js +0 -455
  801. package/bin/session/messages/SessionMessageCodec.js.map +0 -1
  802. package/bin/types/agent/AgentState.d.ts +0 -19
  803. package/bin/types/agent/AgentState.d.ts.map +0 -1
  804. package/bin/types/agent/AgentState.js +0 -9
  805. package/bin/types/agent/AgentState.js.map +0 -1
  806. package/bin/types/store/AgentStore.d.ts +0 -31
  807. package/bin/types/store/AgentStore.d.ts.map +0 -1
  808. package/bin/types/store/AgentStore.js +0 -9
  809. package/bin/types/store/AgentStore.js.map +0 -1
  810. package/bin/types/workspace/FileSystem.d.ts +0 -55
  811. package/bin/types/workspace/FileSystem.d.ts.map +0 -1
  812. package/bin/types/workspace/FileSystem.js +0 -9
  813. package/bin/types/workspace/FileSystem.js.map +0 -1
  814. package/bin/types/workspace/FileTool.d.ts +0 -181
  815. package/bin/types/workspace/FileTool.d.ts.map +0 -1
  816. package/bin/types/workspace/FileTool.js +0 -10
  817. package/bin/types/workspace/FileTool.js.map +0 -1
  818. package/bin/types/workspace/SearchTool.d.ts +0 -131
  819. package/bin/types/workspace/SearchTool.d.ts.map +0 -1
  820. package/bin/types/workspace/SearchTool.js +0 -10
  821. package/bin/types/workspace/SearchTool.js.map +0 -1
  822. package/bin/types/workspace/Workspace.d.ts +0 -24
  823. package/bin/types/workspace/Workspace.d.ts.map +0 -1
  824. package/bin/types/workspace/Workspace.js +0 -9
  825. package/bin/types/workspace/Workspace.js.map +0 -1
  826. package/bin/types/workspace/WorkspaceEnv.d.ts +0 -16
  827. package/bin/types/workspace/WorkspaceEnv.d.ts.map +0 -1
  828. package/bin/types/workspace/WorkspaceEnv.js +0 -9
  829. package/bin/types/workspace/WorkspaceEnv.js.map +0 -1
  830. package/bin/types/workspace/WorkspaceTools.d.ts +0 -20
  831. package/bin/types/workspace/WorkspaceTools.d.ts.map +0 -1
  832. package/bin/types/workspace/WorkspaceTools.js +0 -9
  833. package/bin/types/workspace/WorkspaceTools.js.map +0 -1
  834. package/bin/utils/cli/CliOutput.d.ts +0 -14
  835. package/bin/utils/cli/CliOutput.d.ts.map +0 -1
  836. package/bin/utils/cli/CliOutput.js +0 -98
  837. package/bin/utils/cli/CliOutput.js.map +0 -1
  838. package/bin/utils/cli/PrettyStatus.d.ts +0 -25
  839. package/bin/utils/cli/PrettyStatus.d.ts.map +0 -1
  840. package/bin/utils/cli/PrettyStatus.js +0 -77
  841. package/bin/utils/cli/PrettyStatus.js.map +0 -1
  842. package/bin/utils/logger/FormatRequest.d.ts +0 -29
  843. package/bin/utils/logger/FormatRequest.d.ts.map +0 -1
  844. package/bin/utils/logger/FormatRequest.js +0 -309
  845. package/bin/utils/logger/FormatRequest.js.map +0 -1
  846. package/bin/utils/logger/FormatResponse.d.ts +0 -46
  847. package/bin/utils/logger/FormatResponse.d.ts.map +0 -1
  848. package/bin/utils/logger/FormatResponse.js +0 -186
  849. package/bin/utils/logger/FormatResponse.js.map +0 -1
  850. package/bin/utils/logger/FormatShared.d.ts +0 -33
  851. package/bin/utils/logger/FormatShared.d.ts.map +0 -1
  852. package/bin/utils/logger/FormatShared.js +0 -215
  853. package/bin/utils/logger/FormatShared.js.map +0 -1
  854. package/bin/utils/object/DeepMerge.d.ts +0 -18
  855. package/bin/utils/object/DeepMerge.d.ts.map +0 -1
  856. package/bin/utils/object/DeepMerge.js +0 -37
  857. package/bin/utils/object/DeepMerge.js.map +0 -1
  858. package/bin/utils/object/ObjectGuards.d.ts +0 -17
  859. package/bin/utils/object/ObjectGuards.d.ts.map +0 -1
  860. package/bin/utils/object/ObjectGuards.js +0 -19
  861. package/bin/utils/object/ObjectGuards.js.map +0 -1
  862. package/bin/utils/path/AncestorFiles.d.ts +0 -17
  863. package/bin/utils/path/AncestorFiles.d.ts.map +0 -1
  864. package/bin/utils/path/AncestorFiles.js +0 -36
  865. package/bin/utils/path/AncestorFiles.js.map +0 -1
  866. package/bin/utils/storage/index.d.ts +0 -4
  867. package/bin/utils/storage/index.d.ts.map +0 -1
  868. package/bin/utils/storage/index.js +0 -17
  869. package/bin/utils/storage/index.js.map +0 -1
  870. package/bin/utils/string/EscapeRegExp.d.ts +0 -17
  871. package/bin/utils/string/EscapeRegExp.d.ts.map +0 -1
  872. package/bin/utils/string/EscapeRegExp.js +0 -19
  873. package/bin/utils/string/EscapeRegExp.js.map +0 -1
  874. package/bin/workspace/LocalFileSystem.d.ts +0 -44
  875. package/bin/workspace/LocalFileSystem.d.ts.map +0 -1
  876. package/bin/workspace/LocalFileSystem.js +0 -153
  877. package/bin/workspace/LocalFileSystem.js.map +0 -1
  878. package/bin/workspace/Workspace.d.ts +0 -53
  879. package/bin/workspace/Workspace.d.ts.map +0 -1
  880. package/bin/workspace/Workspace.js +0 -151
  881. package/bin/workspace/Workspace.js.map +0 -1
  882. package/bin/workspace/WorkspaceBase.d.ts +0 -41
  883. package/bin/workspace/WorkspaceBase.d.ts.map +0 -1
  884. package/bin/workspace/WorkspaceBase.js +0 -19
  885. package/bin/workspace/WorkspaceBase.js.map +0 -1
  886. package/bin/workspace/WorkspaceEnv.d.ts +0 -19
  887. package/bin/workspace/WorkspaceEnv.d.ts.map +0 -1
  888. package/bin/workspace/WorkspaceEnv.js +0 -50
  889. package/bin/workspace/WorkspaceEnv.js.map +0 -1
  890. package/bin/workspace/file/FileActionRuntime.d.ts +0 -14
  891. package/bin/workspace/file/FileActionRuntime.d.ts.map +0 -1
  892. package/bin/workspace/file/FileActionRuntime.js +0 -386
  893. package/bin/workspace/file/FileActionRuntime.js.map +0 -1
  894. package/bin/workspace/file/FileAtomicWriter.d.ts +0 -20
  895. package/bin/workspace/file/FileAtomicWriter.d.ts.map +0 -1
  896. package/bin/workspace/file/FileAtomicWriter.js +0 -50
  897. package/bin/workspace/file/FileAtomicWriter.js.map +0 -1
  898. package/bin/workspace/file/FileEncoding.d.ts +0 -34
  899. package/bin/workspace/file/FileEncoding.d.ts.map +0 -1
  900. package/bin/workspace/file/FileEncoding.js +0 -152
  901. package/bin/workspace/file/FileEncoding.js.map +0 -1
  902. package/bin/workspace/file/FilePathPolicy.d.ts +0 -26
  903. package/bin/workspace/file/FilePathPolicy.d.ts.map +0 -1
  904. package/bin/workspace/file/FilePathPolicy.js +0 -134
  905. package/bin/workspace/file/FilePathPolicy.js.map +0 -1
  906. package/bin/workspace/file/FileToolError.d.ts +0 -30
  907. package/bin/workspace/file/FileToolError.d.ts.map +0 -1
  908. package/bin/workspace/file/FileToolError.js +0 -78
  909. package/bin/workspace/file/FileToolError.js.map +0 -1
  910. package/bin/workspace/search/SearchActionRuntime.d.ts +0 -14
  911. package/bin/workspace/search/SearchActionRuntime.d.ts.map +0 -1
  912. package/bin/workspace/search/SearchActionRuntime.js +0 -359
  913. package/bin/workspace/search/SearchActionRuntime.js.map +0 -1
  914. package/bin/workspace/search/SearchToolError.d.ts +0 -26
  915. package/bin/workspace/search/SearchToolError.d.ts.map +0 -1
  916. package/bin/workspace/search/SearchToolError.js +0 -76
  917. package/bin/workspace/search/SearchToolError.js.map +0 -1
  918. package/bin/workspace/store/LocalAgentStore.d.ts +0 -43
  919. package/bin/workspace/store/LocalAgentStore.d.ts.map +0 -1
  920. package/bin/workspace/store/LocalAgentStore.js +0 -135
  921. package/bin/workspace/store/LocalAgentStore.js.map +0 -1
  922. package/bin/workspace/tool/FileToolSchemas.d.ts +0 -35
  923. package/bin/workspace/tool/FileToolSchemas.d.ts.map +0 -1
  924. package/bin/workspace/tool/FileToolSchemas.js +0 -73
  925. package/bin/workspace/tool/FileToolSchemas.js.map +0 -1
  926. package/bin/workspace/tool/FileTools.d.ts +0 -11
  927. package/bin/workspace/tool/FileTools.d.ts.map +0 -1
  928. package/bin/workspace/tool/FileTools.js +0 -61
  929. package/bin/workspace/tool/FileTools.js.map +0 -1
  930. package/bin/workspace/tool/SearchToolSchemas.d.ts +0 -24
  931. package/bin/workspace/tool/SearchToolSchemas.d.ts.map +0 -1
  932. package/bin/workspace/tool/SearchToolSchemas.js +0 -60
  933. package/bin/workspace/tool/SearchToolSchemas.js.map +0 -1
  934. package/bin/workspace/tool/SearchTools.d.ts +0 -11
  935. package/bin/workspace/tool/SearchTools.d.ts.map +0 -1
  936. package/bin/workspace/tool/SearchTools.js +0 -38
  937. package/bin/workspace/tool/SearchTools.js.map +0 -1
  938. package/bin/workspace/tool/WorkspaceTools.d.ts +0 -11
  939. package/bin/workspace/tool/WorkspaceTools.d.ts.map +0 -1
  940. package/bin/workspace/tool/WorkspaceTools.js +0 -22
  941. package/bin/workspace/tool/WorkspaceTools.js.map +0 -1
  942. package/scripts/core-engine-ui-stream-collector.test.mjs +0 -38
  943. package/scripts/openai-responses-continuation.test.mjs +0 -78
  944. package/src/agent/AgentState.ts +0 -96
  945. package/src/executor/core-engine/CoreEngineUiStreamCollector.ts +0 -136
  946. package/src/executor/messages/SessionMessageCodec.ts +0 -106
  947. package/src/executor/messages/SessionStepEventMapper.ts +0 -191
  948. package/src/executor/messages/UIMessageTransformer.ts +0 -152
  949. package/src/executor/messages/UserVisibleText.ts +0 -75
  950. package/src/executor/types/SessionRecords.ts +0 -217
  951. package/src/plugin/core/PluginActionRunner.ts +0 -36
  952. package/src/session/messages/SessionMessageCodec.ts +0 -495
  953. package/src/types/agent/AgentState.ts +0 -22
  954. package/src/types/store/AgentStore.ts +0 -52
  955. package/src/types/workspace/FileSystem.ts +0 -76
  956. package/src/types/workspace/FileTool.ts +0 -225
  957. package/src/types/workspace/SearchTool.ts +0 -156
  958. package/src/types/workspace/Workspace.ts +0 -27
  959. package/src/types/workspace/WorkspaceEnv.ts +0 -19
  960. package/src/types/workspace/WorkspaceTools.ts +0 -23
  961. package/src/utils/cli/CliOutput.ts +0 -128
  962. package/src/utils/cli/PrettyStatus.ts +0 -94
  963. package/src/utils/logger/FormatRequest.ts +0 -455
  964. package/src/utils/logger/FormatResponse.ts +0 -265
  965. package/src/utils/logger/FormatShared.ts +0 -258
  966. package/src/utils/object/DeepMerge.ts +0 -40
  967. package/src/utils/object/ObjectGuards.ts +0 -19
  968. package/src/utils/path/AncestorFiles.ts +0 -40
  969. package/src/utils/storage/index.ts +0 -19
  970. package/src/utils/string/EscapeRegExp.ts +0 -19
  971. package/src/workspace/LocalFileSystem.ts +0 -209
  972. package/src/workspace/Workspace.ts +0 -178
  973. package/src/workspace/WorkspaceBase.ts +0 -62
  974. package/src/workspace/WorkspaceEnv.ts +0 -54
  975. package/src/workspace/file/FileActionRuntime.ts +0 -433
  976. package/src/workspace/file/FileAtomicWriter.ts +0 -61
  977. package/src/workspace/file/FileEncoding.ts +0 -175
  978. package/src/workspace/file/FilePathPolicy.ts +0 -162
  979. package/src/workspace/file/FileToolError.ts +0 -99
  980. package/src/workspace/search/SearchActionRuntime.ts +0 -438
  981. package/src/workspace/search/SearchToolError.ts +0 -94
  982. package/src/workspace/store/LocalAgentStore.ts +0 -191
  983. package/src/workspace/tool/FileToolSchemas.ts +0 -77
  984. package/src/workspace/tool/FileTools.ts +0 -91
  985. package/src/workspace/tool/SearchToolSchemas.ts +0 -62
  986. package/src/workspace/tool/SearchTools.ts +0 -61
  987. package/src/workspace/tool/WorkspaceTools.ts +0 -31
@@ -2,12 +2,13 @@
2
2
  * SDK Session 元数据辅助。
3
3
  *
4
4
  * 关键点(中文)
5
- * - 统一负责 `.downcity/agents/<agent_id>/sessions/<session_id>/messages/meta.json` 的规范化读取。
5
+ * - 统一负责 Workspace `sessions/<session_id>/meta.json` 的规范化读取。
6
6
  * - 仅处理轻量配置摘要与索引信息,不负责消息 JSONL 的读写。
7
7
  */
8
8
 
9
9
  import type { SessionHistoryMetaV1 } from "@/executor/types/SessionHistoryMeta.js";
10
- import type { FileSystem } from "@/types/workspace/FileSystem.js";
10
+ import type { SessionOrigin } from "@/types/session/SessionOrigin.js";
11
+ import type { FileSystem } from "@downcity/workspace";
11
12
 
12
13
  function normalizeModelLabel(input: unknown): string | undefined {
13
14
  const label = typeof input === "string" ? input.trim() : "";
@@ -61,6 +62,17 @@ function normalize_history_bytes(input: unknown): number | undefined {
61
62
  : undefined;
62
63
  }
63
64
 
65
+ /** 归一化 Session 来源元数据。 */
66
+ function normalize_session_origin(input: unknown): SessionOrigin | undefined {
67
+ if (!input || typeof input !== "object") return undefined;
68
+ const raw = input as { type?: unknown; group_id?: unknown; group_session_id?: unknown };
69
+ if (raw.type === "user") return { type: "user" };
70
+ if (raw.type !== "group") return undefined;
71
+ const group_id = typeof raw.group_id === "string" ? raw.group_id.trim() : "";
72
+ const group_session_id = typeof raw.group_session_id === "string" ? raw.group_session_id.trim() : "";
73
+ return group_id && group_session_id ? { type: "group", group_id, group_session_id } : undefined;
74
+ }
75
+
64
76
  /**
65
77
  * 从指定路径读取 session meta.json。
66
78
  *
@@ -75,17 +87,29 @@ export async function read_session_metadata_from_path(input: {
75
87
  session_id: string;
76
88
  /** 当前 agent_id。 */
77
89
  agent_id: string;
90
+ /** 当前查询上下文的 workspace_id;存在时必须与 metadata 严格匹配。 */
91
+ workspace_id?: string;
78
92
  /** 当前 Workspace 的统一文件能力。 */
79
93
  files: FileSystem;
80
94
  }): Promise<SessionHistoryMetaV1> {
81
- try {
82
- const raw = JSON.parse(
83
- (await input.files.read_file(input.filePath)).toString("utf8"),
84
- ) as Partial<SessionHistoryMetaV1>;
85
- return normalize_session_metadata(raw, input.session_id, input.agent_id);
86
- } catch {
87
- return normalize_session_metadata({}, input.session_id, input.agent_id);
95
+ const raw = JSON.parse(
96
+ (await input.files.read_file(input.filePath)).toString("utf8"),
97
+ ) as Partial<SessionHistoryMetaV1>;
98
+ if (
99
+ raw.session_id !== input.session_id ||
100
+ raw.agent_id !== input.agent_id
101
+ ) {
102
+ throw new Error(`Invalid Session ownership metadata: ${input.session_id}`);
88
103
  }
104
+ if (input.workspace_id && raw.workspace_id !== input.workspace_id) {
105
+ throw new Error(`Invalid Session Workspace metadata: ${input.session_id}`);
106
+ }
107
+ return normalize_session_metadata(
108
+ raw,
109
+ input.session_id,
110
+ input.agent_id,
111
+ raw.workspace_id,
112
+ );
89
113
  }
90
114
 
91
115
  /** 将未知 Metadata 内容规范化为当前 Session 的稳定结构。 */
@@ -93,11 +117,16 @@ export function normalize_session_metadata(
93
117
  raw: Partial<SessionHistoryMetaV1>,
94
118
  session_id: string,
95
119
  agent_id: string,
120
+ workspace_id?: string,
96
121
  ): SessionHistoryMetaV1 {
97
122
  return {
98
123
  v: 1,
99
124
  session_id: session_id,
100
125
  agent_id: agent_id,
126
+ ...(workspace_id ? { workspace_id: workspace_id } : {}),
127
+ ...(normalize_session_origin(raw.origin)
128
+ ? { origin: normalize_session_origin(raw.origin) }
129
+ : {}),
101
130
  created_at:
102
131
  typeof raw.created_at === "number" && Number.isFinite(raw.created_at)
103
132
  ? raw.created_at
@@ -6,7 +6,10 @@
6
6
  * 再把用户答案作为 Tool Result 交回同一 Turn 的后续模型 Step。
7
7
  */
8
8
 
9
- import { tool, type ToolExecutionOptions } from "ai";
9
+ import {
10
+ define_runtime_tool,
11
+ type RuntimeToolExecutionOptions as ToolExecutionOptions,
12
+ } from "@downcity/type";
10
13
  import { ask_questions_input_schema } from "./AskQuestionsToolSchemas.js";
11
14
  import type {
12
15
  AskQuestionsToolInput,
@@ -15,6 +18,8 @@ import type {
15
18
  import type { SessionToolExecutionContext } from "@/types/executor/SessionToolExecutionContext.js";
16
19
  import { generate_id } from "@/utils/Id.js";
17
20
  import type { ActionResult } from "@/types/action/ActionResult.js";
21
+ import type { JsonValue } from "@/types/common/Json.js";
22
+ import type { SessionInteractionAnswer } from "@/types/session/SessionInteraction.js";
18
23
 
19
24
  /**
20
25
  * 由调用方显式注册、按当前 Session Turn 上下文执行的提问 Tool。
@@ -28,21 +33,21 @@ import type { ActionResult } from "@/types/action/ActionResult.js";
28
33
  * });
29
34
  * ```
30
35
  */
31
- export const AskQuestionsTool = tool({
36
+ export const AskQuestionsTool = define_runtime_tool<AskQuestionsToolInput, ActionResult<AskQuestionsToolOutput>>({
32
37
  description:
33
38
  "Ask the user one or more questions when missing information would materially change the outcome. The call waits for every answer, then returns them so you can continue the same task. Do not use it for information that can be inferred safely. For single_select and multi_select questions, every option MUST contain both a machine-readable value and a user-visible label; never omit value or use label as value. Example: { value: 'cn', label: '中国' }.",
34
- inputSchema: ask_questions_input_schema,
39
+ input_schema: ask_questions_input_schema,
35
40
  execute: async (
36
41
  input: AskQuestionsToolInput,
37
42
  execution_options: ToolExecutionOptions,
38
43
  ): Promise<ActionResult<AskQuestionsToolOutput>> => {
39
- const execution_context = execution_options.experimental_context as
44
+ const execution_context = execution_options.context as
40
45
  | Partial<SessionToolExecutionContext>
41
46
  | undefined;
42
- const turn_context = execution_context?.session_turn_context;
43
- const interaction_port = turn_context?.interactions;
44
- const turn_id = String(turn_context?.session.turn_id || "").trim();
45
- const tool_call_id = String(execution_options.toolCallId || "").trim();
47
+ const action_execution = execution_context?.action_execution_context;
48
+ const interaction_port = action_execution?.session.interactions;
49
+ const turn_id = String(action_execution?.session.turn_id || "").trim();
50
+ const tool_call_id = String(action_execution?.call_id || "").trim();
46
51
  if (!interaction_port || !turn_id || !tool_call_id) {
47
52
  throw new Error(
48
53
  "ask_question requires an active Session tool execution context",
@@ -52,19 +57,21 @@ export const AskQuestionsTool = tool({
52
57
  const handle = await interaction_port.request({
53
58
  interaction_id: `interaction:${generate_id()}`,
54
59
  turn_id,
55
- kind: "question",
60
+ type: "question",
56
61
  source: {
57
62
  type: "tool",
58
63
  tool_call_id,
59
64
  tool_name: "ask_question",
60
65
  },
61
66
  title: input.title,
62
- questions: input.questions.map((question) => ({
63
- question_id: `question:${generate_id()}`,
64
- prompt: question.question,
65
- response_type: question.type,
66
- ...(question.options ? { options: question.options } : {}),
67
- })),
67
+ payload: {
68
+ questions: input.questions.map((question) => ({
69
+ question_id: `question:${generate_id()}`,
70
+ prompt: question.question,
71
+ response_type: question.type,
72
+ ...(question.options ? { options: question.options } : {}),
73
+ })),
74
+ } as unknown as JsonValue,
68
75
  created_at: Date.now(),
69
76
  });
70
77
  const result = await handle.result;
@@ -74,7 +81,11 @@ export const AskQuestionsTool = tool({
74
81
  if (result.status === "expired") {
75
82
  throw new Error("ask_question expired before the user responded");
76
83
  }
77
- if (result.response.kind !== "question") {
84
+ if (
85
+ result.status !== "resolved" ||
86
+ result.response.type !== "question" ||
87
+ result.response.outcome !== "resolved"
88
+ ) {
78
89
  throw new Error(
79
90
  "ask_question received an incompatible Interaction response",
80
91
  );
@@ -82,7 +93,7 @@ export const AskQuestionsTool = tool({
82
93
  return {
83
94
  output: {
84
95
  status: "resolved",
85
- answers: result.response.answers,
96
+ answers: (result.response.payload as unknown as { answers: SessionInteractionAnswer[] }).answers,
86
97
  },
87
98
  messages: [],
88
99
  };
@@ -2,25 +2,34 @@
2
2
  * Action 与 Session Tool 共用的执行结果协议。
3
3
  *
4
4
  * 关键点(中文)
5
- * - `output` 是标准 Tool Result,原样交给 AI SDK 和 canonical Tool Part。
5
+ * - `output` 是标准 Tool Result,原样交给模型执行器和 canonical Tool Part。
6
6
  * - `messages` 是执行后写入 Session 的真实 User / Assistant Message 内容。
7
- * - Message Parts 直接复用 AI SDK UIMessage 协议,不再建立文件、图片或 Plugin 专用桥接。
7
+ * - Message Parts 复用 Downcity Session UI 协议,不再建立文件、图片或 Plugin 专用桥接。
8
8
  */
9
9
 
10
- import type { UIMessage } from "ai";
10
+ import type {
11
+ SessionAssistantResultPart,
12
+ SessionPromptPart,
13
+ } from "@/types/session/SessionContent.js";
11
14
 
12
15
  /** Action 执行后产生的一条 Session 消息。 */
13
- export interface ActionResultMessage {
14
- /** 消息归属;User 消息在下一 Step 生效,Assistant Parts 写入当前回复。 */
15
- role: "user" | "assistant";
16
-
17
- /** 应写入对应 Session Message 的标准 UI Parts。 */
18
- parts: UIMessage["parts"];
19
- }
16
+ export type ActionResultMessage =
17
+ | {
18
+ /** User 内容在下一 Step 生效。 */
19
+ role: "user";
20
+ /** 等待进入 canonical User Message 的内容。 */
21
+ parts: SessionPromptPart[];
22
+ }
23
+ | {
24
+ /** Assistant 内容写入当前回复。 */
25
+ role: "assistant";
26
+ /** 等待进入 canonical Assistant Message 的内容。 */
27
+ parts: SessionAssistantResultPart[];
28
+ };
20
29
 
21
30
  /** Action 或 Tool 内部实现返回的统一结果。 */
22
31
  export interface ActionResult<TOutput = unknown> {
23
- /** 返回给调用方、AI SDK 与 canonical Tool Part 的标准执行输出。 */
32
+ /** 返回给调用方、模型执行器与 canonical Tool Part 的标准执行输出。 */
24
33
  output: TOutput;
25
34
 
26
35
  /** 执行产生的真实 Session 消息;没有附加消息时传入空数组。 */
@@ -6,10 +6,10 @@
6
6
  * - RemoteAgent 与 Session 数据结构拆到独立类型文件。
7
7
  */
8
8
 
9
- import type { Tool } from "ai";
9
+ import type { RuntimeTool as Tool } from "@downcity/type";
10
10
  import type { AgentModel } from "@/agent/AgentModel.js";
11
- import type { WorkspaceBase } from "@/workspace/WorkspaceBase.js";
12
11
  import type { Plugin } from "@/types/plugin/PluginDefinition.js";
12
+ import type { PluginWebServices } from "@/types/plugin/PluginServices.js";
13
13
  import type {
14
14
  AgentManagedSession,
15
15
  SessionOptions,
@@ -34,21 +34,11 @@ export interface AgentOptions {
34
34
  * 当前 agent 的稳定标识。
35
35
  *
36
36
  * 关键点(中文)
37
- * - 用于 `.downcity/agents/<agent_id>/...` 目录分区。
37
+ * - 用于用户级数据根下的 `agents/<agent_id>/...` 目录分区。
38
38
  * - 应保持稳定、可 URL 编码、尽量不要依赖展示名称。
39
39
  */
40
40
  id: string;
41
41
 
42
- /**
43
- * 当前 Agent 可以访问的项目资源与安全边界。
44
- *
45
- * 关键点(中文)
46
- * - Workspace 统一持有项目根目录、文件/搜索能力与可选 Shell。
47
- * - 每个 Workspace 实例只能绑定一个 Agent,并由 Agent dispose 统一释放。
48
- * - 多个 Agent 可以指向同一物理目录,但必须分别创建 Workspace 实例。
49
- */
50
- workspace: WorkspaceBase;
51
-
52
42
  /**
53
43
  * 当前 agent 默认可用的工具集合。
54
44
  *
@@ -77,6 +67,9 @@ export interface AgentOptions {
77
67
  */
78
68
  model?: AgentModel;
79
69
 
70
+ /** 当前 Agent 持有的 Web 搜索与文档能力。 */
71
+ web?: PluginWebServices;
72
+
80
73
  /**
81
74
  * 当前 agent 显式持有的插件实例集合。
82
75
  *
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Agent 面向 SDK 用户的 Session 集合类型。
3
+ *
4
+ * Session 归 Agent 所有;Workspace 只在创建时声明本次执行使用的资源环境。
5
+ */
6
+
7
+ import type { WorkspaceBase } from "@downcity/workspace";
8
+ import type { SessionOrigin } from "@/types/session/SessionOrigin.js";
9
+ import type { AgentSession } from "@/types/agent/SessionActor.js";
10
+ import type { AgentCreateSessionInput } from "@/types/agent/SessionTypes.js";
11
+ import type { SessionPort } from "@/types/session/SessionPort.js";
12
+ import type {
13
+ AgentArchiveSessionInput,
14
+ AgentArchiveSessionResult,
15
+ AgentArchiveSessionsInput,
16
+ AgentArchiveSessionsResult,
17
+ AgentCleanArchiveResult,
18
+ AgentListSessionsInput,
19
+ AgentSessionSummaryPage,
20
+ } from "@/types/agent/SessionTypes.js";
21
+
22
+ /** 创建 Agent Session 的公开参数。 */
23
+ export interface AgentCreateSessionOptions extends AgentCreateSessionInput {
24
+ /** 本次 Session 可选使用的 Workspace 资源;未传入时使用内存执行上下文。 */
25
+ workspace?: WorkspaceBase;
26
+ /** 当前 Session 的创建来源;未填写时视为用户直接创建。 */
27
+ origin?: SessionOrigin;
28
+ }
29
+
30
+ /** Agent 公开的 Session 创建入口。 */
31
+ export interface AgentSessionCollection {
32
+ /** 在指定 Workspace 中创建一个属于当前 Agent 的 Session。 */
33
+ create(options?: AgentCreateSessionOptions): Promise<AgentSession>;
34
+
35
+ /** 在指定 Workspace 中恢复一个已经属于当前 Agent 的 Session。 */
36
+ get(session_id: string, options?: AgentCreateSessionOptions): Promise<AgentSession>;
37
+
38
+ /** 列出当前 Agent 的活动 Session。 */
39
+ list(input?: AgentListSessionsInput): Promise<AgentSessionSummaryPage>;
40
+
41
+ /** 归档一个 Session。 */
42
+ archive(input: AgentArchiveSessionInput): Promise<AgentArchiveSessionResult>;
43
+
44
+ /** 列出已归档 Session。 */
45
+ archived(input?: AgentArchiveSessionsInput): Promise<AgentArchiveSessionsResult>;
46
+
47
+ /** 清空已归档 Session。 */
48
+ clean_archive(): Promise<AgentCleanArchiveResult>;
49
+
50
+ /** 获取 Session runtime port。 */
51
+ runtime(session_id: string): SessionPort;
52
+
53
+ /** 返回当前 Agent 正在执行的 Session 标识。 */
54
+ list_executing_session_ids(): string[];
55
+
56
+ /** 永久删除 Session。 */
57
+ remove(session_id: string): Promise<boolean>;
58
+
59
+ /** 清空 Session 消息。 */
60
+ clear_messages(session_id: string): Promise<boolean>;
61
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Agent 级持久化存储。
3
+ *
4
+ * Agent 在 City 中使用持久化文件系统;未加入 City 时使用进程内文件系统。
5
+ * Workspace 只提供执行上下文,不拥有这份存储。
6
+ */
7
+
8
+ import type { SessionStore } from "@/types/store/SessionStore.js";
9
+ import type { FileSystem } from "@downcity/workspace";
10
+
11
+ /** Agent 持有的 Session、日志与调度共享存储。 */
12
+ export interface AgentStorage {
13
+ /** Agent 内部数据的稳定根路径。 */
14
+ root_path: string;
15
+ /** 受当前 Agent 根路径约束的文件能力。 */
16
+ files: FileSystem;
17
+ /** 当前 Agent 的 Session 集合存储。 */
18
+ sessions: SessionStore;
19
+ }
@@ -14,7 +14,7 @@ export interface RemoteAgentOptions {
14
14
  * 远程 agent 访问地址。
15
15
  *
16
16
  * 例如:`https://city.example.com/agents/lucas`、`http://127.0.0.1:5314/agents/lucas`
17
- * 或 `rpc://127.0.0.1:15314`
17
+ * 或 `rpc://127.0.0.1:15314/lucas`
18
18
  */
19
19
  url: string;
20
20
 
@@ -41,6 +41,7 @@ import type { AgentSessionPromptInput } from "@/types/sdk/AgentSessionPrompt.js"
41
41
  import type { AgentSessionStopResult } from "@/types/sdk/AgentSessionStop.js";
42
42
  import type { AgentSessionCompactHandle } from "@/types/sdk/AgentSessionCompact.js";
43
43
  import type { AgentSessionTurnHandle } from "@/types/sdk/AgentSessionTurn.js";
44
+ import type { SessionOrigin } from "@/types/session/SessionOrigin.js";
44
45
 
45
46
  /**
46
47
  * SDK Session 集合入口。
@@ -72,6 +73,11 @@ export interface AgentSessionActor {
72
73
  /** 当前 session 稳定标识。 */
73
74
  readonly id: string;
74
75
 
76
+ /** 当前 Session 创建时绑定的 Workspace ID;无 Workspace 时为空。 */
77
+ readonly workspace_id?: string;
78
+ /** 当前 Session 的创建来源。 */
79
+ readonly origin?: SessionOrigin;
80
+
75
81
  /** 读取当前 session 详情。 */
76
82
  get_info(): Promise<AgentSessionInfo>;
77
83
 
@@ -124,6 +130,9 @@ export interface AgentSession extends AgentSessionActor {
124
130
  /** 写入当前 session 默认配置。 */
125
131
  set(input: AgentSessionSetInput, options?: AgentSessionSetOptions): Promise<void>;
126
132
 
133
+ /** 修改当前 Session 的用户可见标题并发布 canonical mutation。 */
134
+ rename(title: string): Promise<string>;
135
+
127
136
  /** 把当前 Session 首次生成后固定的完整 system 显式固化到 instruction.md。 */
128
137
  snapshot(): Promise<void>;
129
138
 
@@ -8,27 +8,31 @@
8
8
 
9
9
  import type { AgentModel } from "@/agent/AgentModel.js";
10
10
  import type { SessionApprovalMode } from "@/types/session/SessionInteraction.js";
11
+ import type { SessionOrigin } from "@/types/session/SessionOrigin.js";
11
12
 
12
13
  /**
13
- * 新建 session 的输入参数。
14
+ * 新建 Session 的输入参数。
15
+ *
16
+ * Session ID 由 AgentSessions 在创建时生成,调用方只能在恢复时通过
17
+ * `sessions.get(session_id)` 指定已有 ID。
14
18
  */
15
19
  export interface AgentCreateSessionInput {
16
- /**
17
- * 可选显式 session_id。
18
- *
19
- * 关键点(中文)
20
- * - 传入时表达“创建意图”。
21
- * - 若该 session 已存在,SDK 应直接报错,而不是静默复用。
22
- * - 省略时由 SDK 自动生成稳定且不可推导的 session_id。
23
- */
24
- session_id?: string;
25
-
20
+ /** 保持创建输入为无配置字段的协议对象。 */
21
+ readonly __create_session_input?: never;
26
22
  }
27
23
 
28
24
  /**
29
25
  * Session 列表查询输入。
30
26
  */
31
27
  export interface AgentListSessionsInput {
28
+ /**
29
+ * 只返回绑定到指定 Workspace 的 Session。
30
+ *
31
+ * 省略时查询当前 Agent 的全部 Session;传入时没有 Workspace metadata 的
32
+ * 历史 Session 不会匹配任何 Workspace。
33
+ */
34
+ workspace_id?: string;
35
+
32
36
  /**
33
37
  * 当前页返回上限。
34
38
  *
@@ -321,6 +325,8 @@ export interface AgentSessionSummary {
321
325
  message_count: number;
322
326
  /** 当前 session 绑定模型的可读标签。 */
323
327
  model_label?: string;
328
+ /** 当前 Session 的创建来源。 */
329
+ origin?: SessionOrigin;
324
330
  /** 当前 session 是否处于执行中。 */
325
331
  executing?: boolean;
326
332
  }
@@ -365,6 +371,12 @@ export interface AgentSessionForkInput {
365
371
  * - 传入时复制到该消息为止(包含该消息)。
366
372
  */
367
373
  message_id?: string;
374
+ /**
375
+ * 是否将 `message_id` 指向的锚点消息复制到新 Session。
376
+ *
377
+ * 省略时默认为 `true`;编辑并重新发送历史消息时传入 `false`,避免新旧消息同时出现。
378
+ */
379
+ include_message?: boolean;
368
380
  }
369
381
 
370
382
  /**
@@ -385,6 +397,14 @@ export interface AgentArchiveSessionInput {
385
397
  * 列出已归档 session 的输入参数。
386
398
  */
387
399
  export interface AgentArchiveSessionsInput {
400
+ /**
401
+ * 只返回绑定到指定 Workspace 的归档 Session。
402
+ *
403
+ * 省略时查询当前 Agent 的全部归档 Session;传入时没有 Workspace metadata
404
+ * 的历史 Session 不会匹配任何 Workspace。
405
+ */
406
+ workspace_id?: string;
407
+
388
408
  /**
389
409
  * 当前页返回上限。
390
410
  *
@@ -0,0 +1,18 @@
1
+ /**
2
+ * WorkspaceEntry 装配参数。
3
+ *
4
+ * WorkspaceEntry 只表达 Agent 已进入某个 Workspace,不拥有 Agent 身份或 Plugin
5
+ * 定义。Workspace 资源的生命周期在离开时由该作用域统一关闭。
6
+ */
7
+
8
+ import type { Agent } from "@/agent/Agent.js";
9
+ import type { WorkspaceBase } from "@downcity/workspace";
10
+
11
+ /** Agent 进入 Workspace 时使用的内部装配参数。 */
12
+ export interface WorkspaceEntryOptions {
13
+ /** 拥有当前作用域的 Agent。 */
14
+ agent: Agent;
15
+
16
+ /** 当前进入的项目资源容器。 */
17
+ workspace: WorkspaceBase;
18
+ }
@@ -1,30 +1,35 @@
1
1
  /**
2
- * Executor 到 Session canonical Message 的 Assistant 输出端口。
2
+ * Executor 到 canonical Session Assistant Message 的输出端口。
3
3
  *
4
- * 该端口集中隔离 AI SDK 流协议。SessionLoop 只装配端口,不解析 Chunk,具体转换
5
- * 由 execution Adapter 完成,SessionMessages 仍是唯一 Assistant Message 事实源。
4
+ * 该端口直接消费 Downcity Model Protocol 事件,不定义或转发 UI-shaped chunk。
6
5
  */
7
6
 
8
- import type { UIMessage, UIMessageChunk } from "ai";
9
- import type { SessionMessageRecordV1 } from "@/executor/types/SessionRecords.js";
10
- import type { SessionToolInputReady } from "@/types/session/SessionTool.js";
7
+ import type { ModelStreamEvent } from "@downcity/type";
8
+ import type { SessionAssistantResultPart } from "@/types/session/SessionContent.js";
9
+ import type { SessionAssistantMessagePart } from "@/types/session/SessionMessage.js";
10
+ import type {
11
+ SessionToolExecutionResult,
12
+ SessionToolInputReady,
13
+ } from "@/types/session/SessionTool.js";
11
14
 
12
- /** 单次 Turn Assistant 输出写入端口。 */
15
+ /** Executor 写入当前 Turn Assistant Message 的稳定能力。 */
13
16
  export interface SessionAssistantOutput {
14
- /** 开始一个 Provider Step 的独立 Part 作用域。 */
17
+ /** 开始一个模型 Step 的独立 Part 作用域。 */
15
18
  begin_step(): Promise<void>;
16
- /** 写入一个 AI SDK 流式 Chunk。 */
17
- write_chunk(chunk: UIMessageChunk): Promise<void>;
18
- /** 使用 Provider 最终快照校验并补齐当前 Step metadata。 */
19
- finish_step(message: SessionMessageRecordV1): Promise<void>;
19
+ /** 直接写入单个标准模型流事件。 */
20
+ write_model_event(event: ModelStreamEvent): Promise<void>;
21
+ /** Tool 审批或执行前提交完整输入。 */
22
+ prepare_tool_input(input: SessionToolInputReady): Promise<void>;
23
+ /** 写入 Tool 执行终态。 */
24
+ write_tool_result(result: SessionToolExecutionResult): Promise<void>;
25
+ /** 使用模型流聚合出的 canonical Parts 校验当前 Step。 */
26
+ finish_step(parts: SessionAssistantMessagePart[]): Promise<void>;
20
27
  /** 放弃当前未完成 Step 的临时作用域。 */
21
28
  abort_step(): Promise<void>;
22
- /** Tool 实现执行前提交完整输入。 */
23
- prepare_tool_input(input: SessionToolInputReady): Promise<void>;
24
- /** User steer 已插入会话后,关闭它之前的当前 Assistant Message。 */
29
+ /** User steer 插入前关闭当前连续 Assistant Message。 */
25
30
  close_current_message(): Promise<void>;
26
- /** 把 Action 产生的完整 Parts 追加到当前 canonical Assistant Message。 */
27
- append_parts(parts: UIMessage["parts"]): Promise<void>;
31
+ /** 把 Action 产生的封闭内容追加到当前 Assistant Message。 */
32
+ append_result_parts(parts: readonly SessionAssistantResultPart[]): Promise<void>;
28
33
  /** 按 Turn 最终结果收口 Assistant 输出。 */
29
34
  finish(input: {
30
35
  /** Assistant 最终状态。 */
@@ -3,19 +3,24 @@
3
3
  *
4
4
  * 关键点(中文)
5
5
  * - 该对象由 Executor 在每个 Session step 绑定到 tool.execute。
6
- * - Agent 工具读取 session_turn_context,Shell 工具只读取 shell_run_context
6
+ * - Agent 工具读取 session_turn_context,Shell 工具只读取 shell_execution_context
7
7
  * - 上下文归属当前 Turn,不通过进程级或异步全局容器共享。
8
8
  */
9
9
 
10
- import type { ShellToolRunContext } from "@downcity/shell/types/ShellRuntime.js";
10
+ import type {
11
+ ShellExecutionContext,
12
+ } from "@downcity/workspace/shell/types/ShellRuntime.js";
11
13
  import type { SessionTurnContext } from "@/types/executor/SessionTurnContext.js";
14
+ import type { ToolActionExecutionContext } from "@/types/tools/ToolActionExecutionContext.js";
12
15
 
13
16
  /**
14
17
  * Agent 与 Shell 工具共用的单次执行上下文。
15
18
  */
16
19
  export interface SessionToolExecutionContext {
17
- /** 当前 Shell tool 调用的显式上下文。 */
18
- shell_run_context: ShellToolRunContext;
20
+ /** 业务 Tool 读取的最小执行上下文。 */
21
+ action_execution_context: ToolActionExecutionContext;
22
+ /** 当前 Shell Tool 的 canonical 执行上下文。 */
23
+ shell_execution_context: ShellExecutionContext;
19
24
  /** 当前工具调用所属的完整 Session Turn 上下文。 */
20
25
  session_turn_context: SessionTurnContext;
21
26
  }
@@ -7,9 +7,9 @@
7
7
  * - 可变状态只能通过行为方法更新,消费者不能直接操作内部数组、lease 或 callback。
8
8
  */
9
9
 
10
- import type { UIMessage } from "ai";
11
- import type { ShellApprovalGateway } from "@downcity/shell";
12
- import type { SessionUserMessageV1 } from "@/executor/types/SessionRecords.js";
10
+ import type { ShellApprovalGateway } from "@downcity/workspace";
11
+ import type { SessionUserMessage } from "@/types/session/SessionMessage.js";
12
+ import type { SessionAssistantResultPart } from "@/types/session/SessionContent.js";
13
13
  import type { SessionAssistantOutput } from "@/types/executor/SessionAssistantOutput.js";
14
14
  import type { AgentPluginExecutionLease } from "@/types/plugin/PluginRuntime.js";
15
15
  import type { PluginExecutionContext } from "@/types/plugin/PluginExecutionContext.js";
@@ -39,7 +39,7 @@ export interface SessionTurnContextInit {
39
39
  abort_signal?: AbortSignal;
40
40
 
41
41
  /** 在 Step 检查点消费 Session 队列,并返回应并入模型上下文的 User 消息。 */
42
- merge_step_input?: () => Promise<SessionUserMessageV1[]>;
42
+ merge_step_input?: () => Promise<SessionUserMessage[]>;
43
43
 
44
44
  /** 判断是否仍有等待下一个 Step 消费的 User prompt。 */
45
45
  has_pending_step_input?: () => boolean;
@@ -115,25 +115,25 @@ export interface SessionTurnContext {
115
115
  release(): Promise<void>;
116
116
 
117
117
  /** 为 Plugin 生成只包含稳定、只读运行快照的新对象。 */
118
- plugin_execution_context(): PluginExecutionContext;
118
+ plugin_execution_context(call_id?: string): PluginExecutionContext;
119
119
  };
120
120
 
121
121
  /** 当前运行的动态 User 输入及延迟持久化输入。 */
122
122
  readonly input: {
123
123
  /** 在 Step 边界消费运行期注入消息与 Session 队列消息。 */
124
- checkpoint(): Promise<SessionUserMessageV1[]>;
124
+ checkpoint(): Promise<SessionUserMessage[]>;
125
125
 
126
126
  /** 判断是否有等待下一个 Step 消费的 Session prompt。 */
127
127
  has_pending(): boolean;
128
128
 
129
129
  /** 注入一条只影响当前运行、在下一 Step 生效的 User 消息。 */
130
- inject_user_message(message: SessionUserMessageV1): void;
130
+ inject_user_message(message: SessionUserMessage): void;
131
131
 
132
132
  /** 延迟到 Assistant 结果落盘后再持久化一条 User 消息。 */
133
- defer_user_message(message: SessionUserMessageV1): void;
133
+ defer_user_message(message: SessionUserMessage): void;
134
134
 
135
135
  /** 返回延迟持久化 User 消息的不可变快照。 */
136
- deferred_user_messages(): readonly SessionUserMessageV1[];
136
+ deferred_user_messages(): readonly SessionUserMessage[];
137
137
 
138
138
  /** 消费一次 canonical history 重载请求。 */
139
139
  consume_history_reload(): boolean;
@@ -145,10 +145,10 @@ export interface SessionTurnContext {
145
145
  readonly assistant?: SessionAssistantOutput;
146
146
 
147
147
  /** 把 Action 产生的 Assistant Parts 加入当前 Step 收口队列。 */
148
- enqueue_assistant_parts(parts: readonly UIMessage["parts"][number][]): void;
148
+ enqueue_assistant_parts(parts: readonly SessionAssistantResultPart[]): void;
149
149
 
150
150
  /** 消费当前 Step 中等待写入 canonical Assistant Message 的 Parts。 */
151
- take_assistant_parts(): UIMessage["parts"];
151
+ take_assistant_parts(): SessionAssistantResultPart[];
152
152
 
153
153
  /** 发布一条不进入 LLM 输入的 Session Action。 */
154
154
  publish_action(event: AgentSessionActionEvent): Promise<void>;