@downcity/agent 1.1.287 → 1.1.310

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 (1045) hide show
  1. package/README.md +23 -16
  2. package/bin/agent/Agent.d.ts +35 -45
  3. package/bin/agent/Agent.d.ts.map +1 -1
  4. package/bin/agent/Agent.js +131 -107
  5. package/bin/agent/Agent.js.map +1 -1
  6. package/bin/agent/AgentInstructions.d.ts +2 -2
  7. package/bin/agent/AgentInstructions.d.ts.map +1 -1
  8. package/bin/agent/AgentInstructions.js +2 -2
  9. package/bin/agent/AgentInstructions.js.map +1 -1
  10. package/bin/agent/AgentModel.d.ts +2 -2
  11. package/bin/agent/AgentModel.d.ts.map +1 -1
  12. package/bin/agent/AgentModel.js +2 -2
  13. package/bin/agent/AgentModel.js.map +1 -1
  14. package/bin/agent/AgentSessions.d.ts +11 -7
  15. package/bin/agent/AgentSessions.d.ts.map +1 -1
  16. package/bin/agent/AgentSessions.js +39 -97
  17. package/bin/agent/AgentSessions.js.map +1 -1
  18. package/bin/agent/AgentState.d.ts +2 -21
  19. package/bin/agent/AgentState.d.ts.map +1 -1
  20. package/bin/agent/AgentState.js +6 -50
  21. package/bin/agent/AgentState.js.map +1 -1
  22. package/bin/executor/Executor.d.ts +25 -55
  23. package/bin/executor/Executor.d.ts.map +1 -1
  24. package/bin/executor/Executor.js +93 -178
  25. package/bin/executor/Executor.js.map +1 -1
  26. package/bin/executor/composer/system/SessionSystemComposer.d.ts +2 -2
  27. package/bin/executor/composer/system/SessionSystemComposer.d.ts.map +1 -1
  28. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts +9 -9
  29. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts.map +1 -1
  30. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js +19 -19
  31. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js.map +1 -1
  32. package/bin/executor/composer/system/default/PromptRenderer.d.ts +2 -2
  33. package/bin/executor/composer/system/default/PromptRenderer.d.ts.map +1 -1
  34. package/bin/executor/composer/system/default/PromptRenderer.js +3 -3
  35. package/bin/executor/composer/system/default/PromptRenderer.js.map +1 -1
  36. package/bin/executor/composer/system/default/SystemDomain.d.ts +27 -27
  37. package/bin/executor/composer/system/default/SystemDomain.d.ts.map +1 -1
  38. package/bin/executor/composer/system/default/SystemDomain.js +44 -44
  39. package/bin/executor/composer/system/default/SystemDomain.js.map +1 -1
  40. package/bin/executor/composer/system/default/assets/core.prompt.d.ts +1 -1
  41. package/bin/executor/composer/system/default/assets/core.prompt.d.ts.map +1 -1
  42. package/bin/executor/composer/system/default/assets/core.prompt.js +1 -1
  43. package/bin/executor/composer/system/default/assets/core.prompt.js.map +1 -1
  44. package/bin/executor/composer/system/default/variables/GeoContext.d.ts +1 -1
  45. package/bin/executor/composer/system/default/variables/GeoContext.d.ts.map +1 -1
  46. package/bin/executor/composer/system/default/variables/GeoContext.js +3 -3
  47. package/bin/executor/composer/system/default/variables/GeoContext.js.map +1 -1
  48. package/bin/executor/composer/system/default/variables/PromptTypes.d.ts +2 -2
  49. package/bin/executor/composer/system/default/variables/PromptTypes.d.ts.map +1 -1
  50. package/bin/executor/composer/system/default/variables/VariableReplacer.d.ts +4 -4
  51. package/bin/executor/composer/system/default/variables/VariableReplacer.d.ts.map +1 -1
  52. package/bin/executor/composer/system/default/variables/VariableReplacer.js +24 -24
  53. package/bin/executor/composer/system/default/variables/VariableReplacer.js.map +1 -1
  54. package/bin/executor/core-engine/CoreEngineError.d.ts +2 -2
  55. package/bin/executor/core-engine/CoreEngineError.d.ts.map +1 -1
  56. package/bin/executor/core-engine/CoreEngineError.js +2 -2
  57. package/bin/executor/core-engine/CoreEngineError.js.map +1 -1
  58. package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts +2 -2
  59. package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts.map +1 -1
  60. package/bin/executor/core-engine/CoreEngineLoopDecision.js +2 -2
  61. package/bin/executor/core-engine/CoreEngineLoopDecision.js.map +1 -1
  62. package/bin/executor/core-engine/CoreEngineMessageState.d.ts +2 -2
  63. package/bin/executor/core-engine/CoreEngineMessageState.d.ts.map +1 -1
  64. package/bin/executor/core-engine/CoreEngineMessageState.js +9 -9
  65. package/bin/executor/core-engine/CoreEngineMessageState.js.map +1 -1
  66. package/bin/executor/core-engine/CoreEngineRunner.d.ts +8 -8
  67. package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -1
  68. package/bin/executor/core-engine/CoreEngineRunner.js +94 -108
  69. package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
  70. package/bin/executor/core-engine/CoreEngineSignals.d.ts +10 -10
  71. package/bin/executor/core-engine/CoreEngineSignals.d.ts.map +1 -1
  72. package/bin/executor/core-engine/CoreEngineSignals.js +19 -19
  73. package/bin/executor/core-engine/CoreEngineSignals.js.map +1 -1
  74. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts +6 -6
  75. package/bin/executor/core-engine/CoreEngineUiStreamCollector.d.ts.map +1 -1
  76. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js +12 -12
  77. package/bin/executor/core-engine/CoreEngineUiStreamCollector.js.map +1 -1
  78. package/bin/executor/ids/resolveSessionId.d.ts +4 -4
  79. package/bin/executor/ids/resolveSessionId.d.ts.map +1 -1
  80. package/bin/executor/ids/resolveSessionId.js +4 -4
  81. package/bin/executor/ids/resolveSessionId.js.map +1 -1
  82. package/bin/executor/messages/ChatMessageMarkup.d.ts +10 -10
  83. package/bin/executor/messages/ChatMessageMarkup.d.ts.map +1 -1
  84. package/bin/executor/messages/ChatMessageMarkup.js +22 -22
  85. package/bin/executor/messages/ChatMessageMarkup.js.map +1 -1
  86. package/bin/executor/messages/ChatMessageMarkupTypes.d.ts +10 -10
  87. package/bin/executor/messages/ChatMessageMarkupTypes.d.ts.map +1 -1
  88. package/bin/executor/messages/SessionAttachmentMapper.d.ts +4 -4
  89. package/bin/executor/messages/SessionAttachmentMapper.d.ts.map +1 -1
  90. package/bin/executor/messages/SessionAttachmentMapper.js +12 -12
  91. package/bin/executor/messages/SessionAttachmentMapper.js.map +1 -1
  92. package/bin/executor/messages/SessionMessageCodec.d.ts +5 -5
  93. package/bin/executor/messages/SessionMessageCodec.d.ts.map +1 -1
  94. package/bin/executor/messages/SessionMessageCodec.js +12 -22
  95. package/bin/executor/messages/SessionMessageCodec.js.map +1 -1
  96. package/bin/executor/messages/SessionMessageLog.d.ts +2 -2
  97. package/bin/executor/messages/SessionMessageLog.d.ts.map +1 -1
  98. package/bin/executor/messages/SessionMessageLog.js +3 -3
  99. package/bin/executor/messages/SessionMessageLog.js.map +1 -1
  100. package/bin/executor/messages/SessionStepEventMapper.d.ts +4 -4
  101. package/bin/executor/messages/SessionStepEventMapper.d.ts.map +1 -1
  102. package/bin/executor/messages/SessionStepEventMapper.js +7 -7
  103. package/bin/executor/messages/SessionStepEventMapper.js.map +1 -1
  104. package/bin/executor/messages/UIMessageTransformer.d.ts +3 -3
  105. package/bin/executor/messages/UIMessageTransformer.d.ts.map +1 -1
  106. package/bin/executor/messages/UIMessageTransformer.js +6 -6
  107. package/bin/executor/messages/UIMessageTransformer.js.map +1 -1
  108. package/bin/executor/messages/UserVisibleText.d.ts +2 -2
  109. package/bin/executor/messages/UserVisibleText.d.ts.map +1 -1
  110. package/bin/executor/messages/UserVisibleText.js +5 -5
  111. package/bin/executor/messages/UserVisibleText.js.map +1 -1
  112. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +15 -15
  113. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +1 -1
  114. package/bin/executor/services/ExecutorRecoveryPolicy.js +13 -12
  115. package/bin/executor/services/ExecutorRecoveryPolicy.js.map +1 -1
  116. package/bin/executor/types/SessionHistoryMeta.d.ts +10 -10
  117. package/bin/executor/types/SessionHistoryMeta.d.ts.map +1 -1
  118. package/bin/executor/types/SessionHistoryMeta.js +1 -1
  119. package/bin/executor/types/SessionRecords.d.ts +9 -9
  120. package/bin/executor/types/SessionRecords.d.ts.map +1 -1
  121. package/bin/executor/types/SessionRecords.js +4 -4
  122. package/bin/executor/types/SessionRecords.js.map +1 -1
  123. package/bin/index.d.ts +41 -55
  124. package/bin/index.d.ts.map +1 -1
  125. package/bin/index.js +24 -31
  126. package/bin/index.js.map +1 -1
  127. package/bin/plugin/core/ActionScheduleExecutor.d.ts +4 -4
  128. package/bin/plugin/core/ActionScheduleExecutor.d.ts.map +1 -1
  129. package/bin/plugin/core/ActionScheduleExecutor.js +18 -20
  130. package/bin/plugin/core/ActionScheduleExecutor.js.map +1 -1
  131. package/bin/plugin/core/ActionScheduleRuntime.d.ts +2 -2
  132. package/bin/plugin/core/ActionScheduleRuntime.d.ts.map +1 -1
  133. package/bin/plugin/core/ActionScheduleRuntime.js +6 -6
  134. package/bin/plugin/core/ActionScheduleRuntime.js.map +1 -1
  135. package/bin/plugin/core/ActionScheduleStore.d.ts +23 -22
  136. package/bin/plugin/core/ActionScheduleStore.d.ts.map +1 -1
  137. package/bin/plugin/core/ActionScheduleStore.js +120 -117
  138. package/bin/plugin/core/ActionScheduleStore.js.map +1 -1
  139. package/bin/plugin/core/ActionScheduleTime.d.ts +5 -5
  140. package/bin/plugin/core/ActionScheduleTime.d.ts.map +1 -1
  141. package/bin/plugin/core/ActionScheduleTime.js +6 -6
  142. package/bin/plugin/core/ActionScheduleTime.js.map +1 -1
  143. package/bin/plugin/core/BasePlugin.d.ts +6 -20
  144. package/bin/plugin/core/BasePlugin.d.ts.map +1 -1
  145. package/bin/plugin/core/BasePlugin.js +0 -12
  146. package/bin/plugin/core/BasePlugin.js.map +1 -1
  147. package/bin/plugin/core/HookRegistry.d.ts +11 -11
  148. package/bin/plugin/core/HookRegistry.d.ts.map +1 -1
  149. package/bin/plugin/core/HookRegistry.js +45 -45
  150. package/bin/plugin/core/HookRegistry.js.map +1 -1
  151. package/bin/plugin/core/PluginActionFactory.d.ts +18 -26
  152. package/bin/plugin/core/PluginActionFactory.d.ts.map +1 -1
  153. package/bin/plugin/core/PluginActionFactory.js +5 -8
  154. package/bin/plugin/core/PluginActionFactory.js.map +1 -1
  155. package/bin/plugin/core/PluginActionRunner.d.ts +15 -33
  156. package/bin/plugin/core/PluginActionRunner.d.ts.map +1 -1
  157. package/bin/plugin/core/PluginActionRunner.js +11 -147
  158. package/bin/plugin/core/PluginActionRunner.js.map +1 -1
  159. package/bin/plugin/core/PluginCatalog.d.ts +12 -12
  160. package/bin/plugin/core/PluginCatalog.d.ts.map +1 -1
  161. package/bin/plugin/core/PluginCatalog.js +18 -18
  162. package/bin/plugin/core/PluginCatalog.js.map +1 -1
  163. package/bin/plugin/core/PluginContext.d.ts +32 -0
  164. package/bin/plugin/core/PluginContext.d.ts.map +1 -0
  165. package/bin/plugin/core/PluginContext.js +26 -0
  166. package/bin/plugin/core/PluginContext.js.map +1 -0
  167. package/bin/plugin/core/PluginHttpRoutes.d.ts +5 -5
  168. package/bin/plugin/core/PluginHttpRoutes.d.ts.map +1 -1
  169. package/bin/plugin/core/PluginHttpRoutes.js +5 -5
  170. package/bin/plugin/core/PluginHttpRoutes.js.map +1 -1
  171. package/bin/plugin/core/PluginRegistry.d.ts +35 -24
  172. package/bin/plugin/core/PluginRegistry.d.ts.map +1 -1
  173. package/bin/plugin/core/PluginRegistry.js +99 -71
  174. package/bin/plugin/core/PluginRegistry.js.map +1 -1
  175. package/bin/plugin/core/PluginStateController.d.ts +5 -13
  176. package/bin/plugin/core/PluginStateController.d.ts.map +1 -1
  177. package/bin/plugin/core/PluginStateController.js +2 -32
  178. package/bin/plugin/core/PluginStateController.js.map +1 -1
  179. package/bin/plugin/tool/PluginToolRuntime.d.ts +15 -0
  180. package/bin/plugin/tool/PluginToolRuntime.d.ts.map +1 -0
  181. package/bin/plugin/tool/PluginToolRuntime.js +105 -0
  182. package/bin/plugin/tool/PluginToolRuntime.js.map +1 -0
  183. package/bin/{executor/tools/plugin → plugin/tool}/PluginToolSchemas.d.ts +1 -1
  184. package/bin/plugin/tool/PluginToolSchemas.d.ts.map +1 -0
  185. package/bin/{executor/tools/plugin → plugin/tool}/PluginToolSchemas.js +1 -1
  186. package/bin/plugin/tool/PluginToolSchemas.js.map +1 -0
  187. package/bin/plugin/tool/PluginTools.d.ts +25 -0
  188. package/bin/plugin/tool/PluginTools.d.ts.map +1 -0
  189. package/bin/{executor/tools/plugin/PluginToolDefinition.js → plugin/tool/PluginTools.js} +19 -19
  190. package/bin/plugin/tool/PluginTools.js.map +1 -0
  191. package/bin/plugin/types/ActionSchedule.d.ts +10 -10
  192. package/bin/plugin/types/ActionSchedule.d.ts.map +1 -1
  193. package/bin/plugin/types/ActionSchedule.js +1 -1
  194. package/bin/plugin/types/PluginApi.d.ts +3 -3
  195. package/bin/plugin/types/PluginApi.d.ts.map +1 -1
  196. package/bin/remote/RemoteAgent.d.ts +1 -1
  197. package/bin/remote/RemoteAgent.d.ts.map +1 -1
  198. package/bin/remote/RemoteAgent.js +3 -3
  199. package/bin/remote/RemoteAgent.js.map +1 -1
  200. package/bin/remote/RemoteSession.d.ts +18 -12
  201. package/bin/remote/RemoteSession.d.ts.map +1 -1
  202. package/bin/remote/RemoteSession.js +87 -21
  203. package/bin/remote/RemoteSession.js.map +1 -1
  204. package/bin/remote/RemoteTransport.d.ts +13 -11
  205. package/bin/remote/RemoteTransport.d.ts.map +1 -1
  206. package/bin/remote/transports/HttpRemoteAgentTransport.d.ts +9 -7
  207. package/bin/remote/transports/HttpRemoteAgentTransport.d.ts.map +1 -1
  208. package/bin/remote/transports/HttpRemoteAgentTransport.js +36 -39
  209. package/bin/remote/transports/HttpRemoteAgentTransport.js.map +1 -1
  210. package/bin/remote/transports/RpcClient.d.ts +14 -31
  211. package/bin/remote/transports/RpcClient.d.ts.map +1 -1
  212. package/bin/remote/transports/RpcClient.js +40 -66
  213. package/bin/remote/transports/RpcClient.js.map +1 -1
  214. package/bin/remote/transports/RpcRemoteAgentTransport.d.ts +9 -7
  215. package/bin/remote/transports/RpcRemoteAgentTransport.d.ts.map +1 -1
  216. package/bin/remote/transports/RpcRemoteAgentTransport.js +10 -10
  217. package/bin/remote/transports/RpcRemoteAgentTransport.js.map +1 -1
  218. package/bin/session/DefaultSessionComposer.d.ts.map +1 -1
  219. package/bin/session/DefaultSessionComposer.js +2 -4
  220. package/bin/session/DefaultSessionComposer.js.map +1 -1
  221. package/bin/session/Session.d.ts +49 -31
  222. package/bin/session/Session.d.ts.map +1 -1
  223. package/bin/session/Session.js +303 -243
  224. package/bin/session/Session.js.map +1 -1
  225. package/bin/session/SessionCommand.d.ts +24 -0
  226. package/bin/session/SessionCommand.d.ts.map +1 -0
  227. package/bin/session/SessionCommand.js +35 -0
  228. package/bin/session/SessionCommand.js.map +1 -0
  229. package/bin/session/SessionLoop.d.ts +96 -0
  230. package/bin/session/SessionLoop.d.ts.map +1 -0
  231. package/bin/session/SessionLoop.js +554 -0
  232. package/bin/session/SessionLoop.js.map +1 -0
  233. package/bin/session/SessionMessages.d.ts +20 -16
  234. package/bin/session/SessionMessages.d.ts.map +1 -1
  235. package/bin/session/SessionMessages.js +102 -81
  236. package/bin/session/SessionMessages.js.map +1 -1
  237. package/bin/session/SessionQueue.d.ts +15 -25
  238. package/bin/session/SessionQueue.d.ts.map +1 -1
  239. package/bin/session/SessionQueue.js +31 -45
  240. package/bin/session/SessionQueue.js.map +1 -1
  241. package/bin/session/SessionState.d.ts +6 -6
  242. package/bin/session/SessionState.d.ts.map +1 -1
  243. package/bin/session/SessionState.js +45 -93
  244. package/bin/session/SessionState.js.map +1 -1
  245. package/bin/session/SessionSystem.js +7 -7
  246. package/bin/session/SessionSystem.js.map +1 -1
  247. package/bin/session/SessionTitle.d.ts +7 -12
  248. package/bin/session/SessionTitle.d.ts.map +1 -1
  249. package/bin/session/SessionTitle.js +15 -20
  250. package/bin/session/SessionTitle.js.map +1 -1
  251. package/bin/session/browse/Browse.d.ts +17 -26
  252. package/bin/session/browse/Browse.d.ts.map +1 -1
  253. package/bin/session/browse/Browse.js +106 -303
  254. package/bin/session/browse/Browse.js.map +1 -1
  255. package/bin/session/browse/SessionMessageTimeline.d.ts +13 -0
  256. package/bin/session/browse/SessionMessageTimeline.d.ts.map +1 -0
  257. package/bin/session/browse/SessionMessageTimeline.js +110 -0
  258. package/bin/session/browse/SessionMessageTimeline.js.map +1 -0
  259. package/bin/session/control/SessionInteractions.d.ts +39 -0
  260. package/bin/session/control/SessionInteractions.d.ts.map +1 -0
  261. package/bin/session/control/SessionInteractions.js +219 -0
  262. package/bin/session/control/SessionInteractions.js.map +1 -0
  263. package/bin/session/execution/SessionAssistantOutputAdapter.d.ts +49 -0
  264. package/bin/session/execution/SessionAssistantOutputAdapter.d.ts.map +1 -0
  265. package/bin/session/execution/SessionAssistantOutputAdapter.js +117 -0
  266. package/bin/session/execution/SessionAssistantOutputAdapter.js.map +1 -0
  267. package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts +28 -0
  268. package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts.map +1 -0
  269. package/bin/session/execution/tools/SessionShellApprovalAdapter.js +75 -0
  270. package/bin/session/execution/tools/SessionShellApprovalAdapter.js.map +1 -0
  271. package/bin/session/messages/SessionAssistantMessageWriter.d.ts +6 -4
  272. package/bin/session/messages/SessionAssistantMessageWriter.d.ts.map +1 -1
  273. package/bin/session/messages/SessionAssistantMessageWriter.js +34 -18
  274. package/bin/session/messages/SessionAssistantMessageWriter.js.map +1 -1
  275. package/bin/session/messages/SessionJsonValue.d.ts +2 -2
  276. package/bin/session/messages/SessionJsonValue.d.ts.map +1 -1
  277. package/bin/session/messages/SessionJsonValue.js.map +1 -1
  278. package/bin/session/messages/SessionMessageCodec.d.ts.map +1 -1
  279. package/bin/session/messages/SessionMessageCodec.js +30 -84
  280. package/bin/session/messages/SessionMessageCodec.js.map +1 -1
  281. package/bin/session/messages/SessionMessageCompaction.js +2 -2
  282. package/bin/session/messages/SessionMessageCompaction.js.map +1 -1
  283. package/bin/session/messages/SessionMessageInteractionWriter.d.ts +51 -0
  284. package/bin/session/messages/SessionMessageInteractionWriter.d.ts.map +1 -0
  285. package/bin/session/messages/SessionMessageInteractionWriter.js +177 -0
  286. package/bin/session/messages/SessionMessageInteractionWriter.js.map +1 -0
  287. package/bin/session/preview/SessionMessagePreview.js +2 -2
  288. package/bin/session/preview/SessionMessagePreview.js.map +1 -1
  289. package/bin/session/runtime/SessionCompactOperation.d.ts +29 -0
  290. package/bin/session/runtime/SessionCompactOperation.d.ts.map +1 -0
  291. package/bin/session/runtime/SessionCompactOperation.js +66 -0
  292. package/bin/session/runtime/SessionCompactOperation.js.map +1 -0
  293. package/bin/session/runtime/SessionHistoryCompaction.d.ts +22 -0
  294. package/bin/session/runtime/SessionHistoryCompaction.d.ts.map +1 -0
  295. package/bin/session/runtime/SessionHistoryCompaction.js +31 -0
  296. package/bin/session/runtime/SessionHistoryCompaction.js.map +1 -0
  297. package/bin/session/runtime/SessionTurnContext.d.ts +26 -0
  298. package/bin/session/runtime/SessionTurnContext.d.ts.map +1 -0
  299. package/bin/session/runtime/SessionTurnContext.js +181 -0
  300. package/bin/session/runtime/SessionTurnContext.js.map +1 -0
  301. package/bin/session/storage/Metadata.d.ts +13 -70
  302. package/bin/session/storage/Metadata.d.ts.map +1 -1
  303. package/bin/session/storage/Metadata.js +31 -116
  304. package/bin/session/storage/Metadata.js.map +1 -1
  305. package/bin/session/storage/RuntimeSessionPort.d.ts +7 -7
  306. package/bin/session/storage/RuntimeSessionPort.d.ts.map +1 -1
  307. package/bin/session/storage/RuntimeSessionPort.js +7 -7
  308. package/bin/session/storage/RuntimeSessionPort.js.map +1 -1
  309. package/bin/tools/ask/AskQuestionsTool.d.ts +39 -0
  310. package/bin/tools/ask/AskQuestionsTool.d.ts.map +1 -0
  311. package/bin/tools/ask/AskQuestionsTool.js +67 -0
  312. package/bin/tools/ask/AskQuestionsTool.js.map +1 -0
  313. package/bin/tools/ask/AskQuestionsToolSchemas.d.ts +29 -0
  314. package/bin/tools/ask/AskQuestionsToolSchemas.d.ts.map +1 -0
  315. package/bin/tools/ask/AskQuestionsToolSchemas.js +51 -0
  316. package/bin/tools/ask/AskQuestionsToolSchemas.js.map +1 -0
  317. package/bin/tools/index.d.ts +9 -0
  318. package/bin/tools/index.d.ts.map +1 -0
  319. package/bin/tools/index.js +8 -0
  320. package/bin/tools/index.js.map +1 -0
  321. package/bin/types/action/ActionResult.d.ts +26 -0
  322. package/bin/types/action/ActionResult.d.ts.map +1 -0
  323. package/bin/types/action/ActionResult.js +17 -0
  324. package/bin/types/action/ActionResult.js.map +1 -0
  325. package/bin/types/agent/AgentOptions.d.ts +13 -23
  326. package/bin/types/agent/AgentOptions.d.ts.map +1 -1
  327. package/bin/types/agent/AgentState.d.ts +4 -13
  328. package/bin/types/agent/AgentState.d.ts.map +1 -1
  329. package/bin/types/agent/AgentState.js +2 -2
  330. package/bin/types/agent/RemoteAgentPluginAction.d.ts +2 -2
  331. package/bin/types/agent/RemoteAgentPluginAction.d.ts.map +1 -1
  332. package/bin/types/agent/SessionActor.d.ts +16 -15
  333. package/bin/types/agent/SessionActor.d.ts.map +1 -1
  334. package/bin/types/agent/SessionTypes.d.ts +69 -91
  335. package/bin/types/agent/SessionTypes.d.ts.map +1 -1
  336. package/bin/types/executor/SessionAssistantOutput.d.ts +34 -0
  337. package/bin/types/executor/SessionAssistantOutput.d.ts.map +1 -0
  338. package/bin/types/executor/SessionAssistantOutput.js +8 -0
  339. package/bin/types/executor/SessionAssistantOutput.js.map +1 -0
  340. package/bin/types/executor/SessionToolExecutionContext.d.ts +5 -5
  341. package/bin/types/executor/SessionToolExecutionContext.d.ts.map +1 -1
  342. package/bin/types/executor/SessionToolExecutionContext.js +2 -2
  343. package/bin/types/executor/SessionTurnContext.d.ts +125 -0
  344. package/bin/types/executor/SessionTurnContext.d.ts.map +1 -0
  345. package/bin/types/executor/SessionTurnContext.js +10 -0
  346. package/bin/types/executor/SessionTurnContext.js.map +1 -0
  347. package/bin/types/plugin/PluginAction.d.ts +13 -10
  348. package/bin/types/plugin/PluginAction.d.ts.map +1 -1
  349. package/bin/types/plugin/PluginCommand.d.ts +8 -65
  350. package/bin/types/plugin/PluginCommand.d.ts.map +1 -1
  351. package/bin/types/plugin/PluginCommand.js +2 -4
  352. package/bin/types/plugin/PluginCommand.js.map +1 -1
  353. package/bin/types/plugin/PluginContext.d.ts +34 -0
  354. package/bin/types/plugin/PluginContext.d.ts.map +1 -0
  355. package/bin/types/plugin/PluginContext.js +9 -0
  356. package/bin/types/plugin/PluginContext.js.map +1 -0
  357. package/bin/types/plugin/PluginDefinition.d.ts +8 -28
  358. package/bin/types/plugin/PluginDefinition.d.ts.map +1 -1
  359. package/bin/types/plugin/PluginDefinition.js +1 -1
  360. package/bin/types/plugin/PluginExecutionContext.d.ts +29 -0
  361. package/bin/types/plugin/PluginExecutionContext.d.ts.map +1 -0
  362. package/bin/types/plugin/{PluginRunContext.js → PluginExecutionContext.js} +2 -2
  363. package/bin/types/plugin/PluginExecutionContext.js.map +1 -0
  364. package/bin/types/plugin/PluginHttp.d.ts +5 -5
  365. package/bin/types/plugin/PluginHttp.d.ts.map +1 -1
  366. package/bin/types/plugin/PluginRegistry.d.ts +21 -0
  367. package/bin/types/plugin/PluginRegistry.d.ts.map +1 -0
  368. package/bin/types/plugin/PluginRegistry.js +9 -0
  369. package/bin/types/plugin/PluginRegistry.js.map +1 -0
  370. package/bin/types/plugin/PluginRuntime.d.ts +28 -40
  371. package/bin/types/plugin/PluginRuntime.d.ts.map +1 -1
  372. package/bin/types/plugin/PluginState.d.ts +0 -15
  373. package/bin/types/plugin/PluginState.d.ts.map +1 -1
  374. package/bin/types/plugin/PluginTool.d.ts +90 -0
  375. package/bin/types/plugin/PluginTool.d.ts.map +1 -0
  376. package/bin/types/plugin/PluginTool.js.map +1 -0
  377. package/bin/types/rpc/RpcProtocol.d.ts +50 -72
  378. package/bin/types/rpc/RpcProtocol.d.ts.map +1 -1
  379. package/bin/types/sdk/AgentSessionCompact.d.ts +31 -0
  380. package/bin/types/sdk/AgentSessionCompact.d.ts.map +1 -0
  381. package/bin/types/sdk/AgentSessionCompact.js +8 -0
  382. package/bin/types/sdk/AgentSessionCompact.js.map +1 -0
  383. package/bin/types/sdk/AgentSessionPrompt.d.ts +1 -1
  384. package/bin/types/sdk/AgentSessionPrompt.d.ts.map +1 -1
  385. package/bin/types/sdk/AgentSessionPrompt.js +1 -1
  386. package/bin/types/sdk/AgentSessionPrompt.js.map +1 -1
  387. package/bin/types/sdk/AgentSessionStop.d.ts +2 -2
  388. package/bin/types/sdk/AgentSessionStop.d.ts.map +1 -1
  389. package/bin/types/sdk/AgentSessionTurn.d.ts +3 -13
  390. package/bin/types/sdk/AgentSessionTurn.d.ts.map +1 -1
  391. package/bin/types/session/SessionCommand.d.ts +26 -0
  392. package/bin/types/session/SessionCommand.d.ts.map +1 -0
  393. package/bin/types/session/SessionCommand.js +7 -0
  394. package/bin/types/session/SessionCommand.js.map +1 -0
  395. package/bin/types/session/SessionComposer.d.ts +8 -4
  396. package/bin/types/session/SessionComposer.d.ts.map +1 -1
  397. package/bin/{executor/types/SessionRun.d.ts → types/session/SessionExecution.d.ts} +37 -33
  398. package/bin/types/session/SessionExecution.d.ts.map +1 -0
  399. package/bin/types/session/SessionExecution.js +10 -0
  400. package/bin/types/session/SessionExecution.js.map +1 -0
  401. package/bin/types/session/SessionInteraction.d.ts +165 -0
  402. package/bin/types/session/SessionInteraction.d.ts.map +1 -0
  403. package/bin/types/session/SessionInteraction.js +8 -0
  404. package/bin/types/session/SessionInteraction.js.map +1 -0
  405. package/bin/types/session/SessionInteractions.d.ts +17 -0
  406. package/bin/types/session/SessionInteractions.d.ts.map +1 -0
  407. package/bin/types/session/SessionInteractions.js +8 -0
  408. package/bin/types/session/SessionInteractions.js.map +1 -0
  409. package/bin/types/session/SessionLocalState.d.ts +1 -1
  410. package/bin/types/session/SessionLoop.d.ts +63 -0
  411. package/bin/types/session/SessionLoop.d.ts.map +1 -0
  412. package/bin/types/session/{SessionTurn.js → SessionLoop.js} +2 -2
  413. package/bin/types/session/SessionLoop.js.map +1 -0
  414. package/bin/types/session/SessionMessage.d.ts +37 -28
  415. package/bin/types/session/SessionMessage.d.ts.map +1 -1
  416. package/bin/types/session/SessionMessages.d.ts +2 -4
  417. package/bin/types/session/SessionMessages.d.ts.map +1 -1
  418. package/bin/types/session/SessionMutation.d.ts +19 -1
  419. package/bin/types/session/SessionMutation.d.ts.map +1 -1
  420. package/bin/types/session/SessionMutation.js +1 -0
  421. package/bin/types/session/SessionMutation.js.map +1 -1
  422. package/bin/types/session/SessionOptions.d.ts +34 -20
  423. package/bin/types/session/SessionOptions.d.ts.map +1 -1
  424. package/bin/types/session/SessionPort.d.ts +6 -19
  425. package/bin/types/session/SessionPort.d.ts.map +1 -1
  426. package/bin/types/session/SessionState.d.ts +3 -13
  427. package/bin/types/session/SessionState.d.ts.map +1 -1
  428. package/bin/types/store/AgentStore.d.ts +31 -0
  429. package/bin/types/store/AgentStore.d.ts.map +1 -0
  430. package/bin/types/store/AgentStore.js +9 -0
  431. package/bin/types/store/AgentStore.js.map +1 -0
  432. package/bin/types/store/LocalStore.d.ts +36 -0
  433. package/bin/types/store/LocalStore.d.ts.map +1 -0
  434. package/bin/types/store/LocalStore.js +9 -0
  435. package/bin/types/store/LocalStore.js.map +1 -0
  436. package/bin/types/store/SessionStore.d.ts +82 -0
  437. package/bin/types/store/SessionStore.d.ts.map +1 -0
  438. package/bin/types/store/SessionStore.js +9 -0
  439. package/bin/types/store/SessionStore.js.map +1 -0
  440. package/bin/types/tools/ask/AskQuestionsTool.d.ts +22 -0
  441. package/bin/types/tools/ask/AskQuestionsTool.d.ts.map +1 -0
  442. package/bin/types/tools/ask/AskQuestionsTool.js +8 -0
  443. package/bin/types/tools/ask/AskQuestionsTool.js.map +1 -0
  444. package/bin/types/workspace/FileSystem.d.ts +55 -0
  445. package/bin/types/workspace/FileSystem.d.ts.map +1 -0
  446. package/bin/types/workspace/FileSystem.js +9 -0
  447. package/bin/types/workspace/FileSystem.js.map +1 -0
  448. package/bin/types/workspace/FileTool.d.ts +181 -0
  449. package/bin/types/workspace/FileTool.d.ts.map +1 -0
  450. package/bin/types/workspace/FileTool.js +10 -0
  451. package/bin/types/workspace/FileTool.js.map +1 -0
  452. package/bin/types/workspace/SearchTool.d.ts +131 -0
  453. package/bin/types/workspace/SearchTool.d.ts.map +1 -0
  454. package/bin/types/workspace/SearchTool.js +10 -0
  455. package/bin/types/workspace/SearchTool.js.map +1 -0
  456. package/bin/types/workspace/Workspace.d.ts +24 -0
  457. package/bin/types/workspace/Workspace.d.ts.map +1 -0
  458. package/bin/types/workspace/Workspace.js +9 -0
  459. package/bin/types/workspace/Workspace.js.map +1 -0
  460. package/bin/types/workspace/WorkspaceEnv.d.ts +16 -0
  461. package/bin/types/workspace/WorkspaceEnv.d.ts.map +1 -0
  462. package/bin/types/workspace/WorkspaceEnv.js +9 -0
  463. package/bin/types/workspace/WorkspaceEnv.js.map +1 -0
  464. package/bin/types/workspace/WorkspaceTools.d.ts +20 -0
  465. package/bin/types/workspace/WorkspaceTools.d.ts.map +1 -0
  466. package/bin/types/workspace/WorkspaceTools.js +9 -0
  467. package/bin/types/workspace/WorkspaceTools.js.map +1 -0
  468. package/bin/utils/Id.d.ts +1 -1
  469. package/bin/utils/Id.d.ts.map +1 -1
  470. package/bin/utils/Id.js +1 -1
  471. package/bin/utils/Id.js.map +1 -1
  472. package/bin/utils/Template.d.ts +1 -1
  473. package/bin/utils/Template.d.ts.map +1 -1
  474. package/bin/utils/Template.js +1 -1
  475. package/bin/utils/Template.js.map +1 -1
  476. package/bin/utils/Time.d.ts +5 -5
  477. package/bin/utils/Time.d.ts.map +1 -1
  478. package/bin/utils/Time.js +5 -5
  479. package/bin/utils/Time.js.map +1 -1
  480. package/bin/utils/cli/CliOutput.d.ts +1 -1
  481. package/bin/utils/cli/CliOutput.d.ts.map +1 -1
  482. package/bin/utils/cli/CliOutput.js +6 -6
  483. package/bin/utils/cli/CliOutput.js.map +1 -1
  484. package/bin/utils/cli/PrettyStatus.d.ts +3 -3
  485. package/bin/utils/cli/PrettyStatus.d.ts.map +1 -1
  486. package/bin/utils/cli/PrettyStatus.js +4 -4
  487. package/bin/utils/cli/PrettyStatus.js.map +1 -1
  488. package/bin/utils/logger/FormatRequest.d.ts +2 -2
  489. package/bin/utils/logger/FormatRequest.d.ts.map +1 -1
  490. package/bin/utils/logger/FormatRequest.js +49 -49
  491. package/bin/utils/logger/FormatRequest.js.map +1 -1
  492. package/bin/utils/logger/FormatResponse.d.ts +1 -1
  493. package/bin/utils/logger/FormatResponse.d.ts.map +1 -1
  494. package/bin/utils/logger/FormatResponse.js +36 -36
  495. package/bin/utils/logger/FormatResponse.js.map +1 -1
  496. package/bin/utils/logger/FormatShared.d.ts +16 -16
  497. package/bin/utils/logger/FormatShared.d.ts.map +1 -1
  498. package/bin/utils/logger/FormatShared.js +28 -28
  499. package/bin/utils/logger/FormatShared.js.map +1 -1
  500. package/bin/utils/logger/Logger.d.ts +15 -12
  501. package/bin/utils/logger/Logger.d.ts.map +1 -1
  502. package/bin/utils/logger/Logger.js +28 -26
  503. package/bin/utils/logger/Logger.js.map +1 -1
  504. package/bin/utils/object/DeepMerge.d.ts +1 -1
  505. package/bin/utils/object/DeepMerge.d.ts.map +1 -1
  506. package/bin/utils/object/DeepMerge.js +5 -5
  507. package/bin/utils/object/DeepMerge.js.map +1 -1
  508. package/bin/utils/object/ObjectGuards.d.ts +1 -1
  509. package/bin/utils/object/ObjectGuards.d.ts.map +1 -1
  510. package/bin/utils/object/ObjectGuards.js +1 -1
  511. package/bin/utils/object/ObjectGuards.js.map +1 -1
  512. package/bin/utils/path/AncestorFiles.d.ts +1 -1
  513. package/bin/utils/path/AncestorFiles.d.ts.map +1 -1
  514. package/bin/utils/path/AncestorFiles.js +2 -2
  515. package/bin/utils/path/AncestorFiles.js.map +1 -1
  516. package/bin/utils/storage/index.d.ts +2 -2
  517. package/bin/utils/storage/index.d.ts.map +1 -1
  518. package/bin/utils/storage/index.js +2 -2
  519. package/bin/utils/storage/index.js.map +1 -1
  520. package/bin/utils/string/EscapeRegExp.d.ts +1 -1
  521. package/bin/utils/string/EscapeRegExp.d.ts.map +1 -1
  522. package/bin/utils/string/EscapeRegExp.js +1 -1
  523. package/bin/utils/string/EscapeRegExp.js.map +1 -1
  524. package/bin/workspace/LocalFileSystem.d.ts +44 -0
  525. package/bin/workspace/LocalFileSystem.d.ts.map +1 -0
  526. package/bin/workspace/LocalFileSystem.js +153 -0
  527. package/bin/workspace/LocalFileSystem.js.map +1 -0
  528. package/bin/workspace/Workspace.d.ts +52 -0
  529. package/bin/workspace/Workspace.d.ts.map +1 -0
  530. package/bin/workspace/Workspace.js +153 -0
  531. package/bin/workspace/Workspace.js.map +1 -0
  532. package/bin/workspace/WorkspaceEnv.d.ts +19 -0
  533. package/bin/workspace/WorkspaceEnv.d.ts.map +1 -0
  534. package/bin/workspace/WorkspaceEnv.js +50 -0
  535. package/bin/workspace/WorkspaceEnv.js.map +1 -0
  536. package/bin/workspace/WorkspacePaths.d.ts +67 -0
  537. package/bin/workspace/WorkspacePaths.d.ts.map +1 -0
  538. package/bin/workspace/WorkspacePaths.js +102 -0
  539. package/bin/workspace/WorkspacePaths.js.map +1 -0
  540. package/bin/workspace/file/FileActionRuntime.d.ts +14 -0
  541. package/bin/workspace/file/FileActionRuntime.d.ts.map +1 -0
  542. package/bin/workspace/file/FileActionRuntime.js +386 -0
  543. package/bin/workspace/file/FileActionRuntime.js.map +1 -0
  544. package/bin/workspace/file/FileAtomicWriter.d.ts +20 -0
  545. package/bin/workspace/file/FileAtomicWriter.d.ts.map +1 -0
  546. package/bin/workspace/file/FileAtomicWriter.js +50 -0
  547. package/bin/workspace/file/FileAtomicWriter.js.map +1 -0
  548. package/bin/workspace/file/FileEncoding.d.ts +34 -0
  549. package/bin/workspace/file/FileEncoding.d.ts.map +1 -0
  550. package/bin/workspace/file/FileEncoding.js +152 -0
  551. package/bin/workspace/file/FileEncoding.js.map +1 -0
  552. package/bin/workspace/file/FilePathPolicy.d.ts +26 -0
  553. package/bin/workspace/file/FilePathPolicy.d.ts.map +1 -0
  554. package/bin/workspace/file/FilePathPolicy.js +134 -0
  555. package/bin/workspace/file/FilePathPolicy.js.map +1 -0
  556. package/bin/workspace/file/FileToolError.d.ts +30 -0
  557. package/bin/workspace/file/FileToolError.d.ts.map +1 -0
  558. package/bin/workspace/file/FileToolError.js +78 -0
  559. package/bin/workspace/file/FileToolError.js.map +1 -0
  560. package/bin/workspace/search/SearchActionRuntime.d.ts +14 -0
  561. package/bin/workspace/search/SearchActionRuntime.d.ts.map +1 -0
  562. package/bin/workspace/search/SearchActionRuntime.js +359 -0
  563. package/bin/workspace/search/SearchActionRuntime.js.map +1 -0
  564. package/bin/workspace/search/SearchToolError.d.ts +26 -0
  565. package/bin/workspace/search/SearchToolError.d.ts.map +1 -0
  566. package/bin/workspace/search/SearchToolError.js +76 -0
  567. package/bin/workspace/search/SearchToolError.js.map +1 -0
  568. package/bin/{session/messages → workspace/store}/JsonlSessionMessageStore.d.ts +4 -31
  569. package/bin/workspace/store/JsonlSessionMessageStore.d.ts.map +1 -0
  570. package/bin/{session/messages → workspace/store}/JsonlSessionMessageStore.js +28 -63
  571. package/bin/workspace/store/JsonlSessionMessageStore.js.map +1 -0
  572. package/bin/workspace/store/LocalAgentStore.d.ts +43 -0
  573. package/bin/workspace/store/LocalAgentStore.d.ts.map +1 -0
  574. package/bin/workspace/store/LocalAgentStore.js +135 -0
  575. package/bin/workspace/store/LocalAgentStore.js.map +1 -0
  576. package/bin/workspace/store/LocalSessionStore.d.ts +38 -0
  577. package/bin/workspace/store/LocalSessionStore.d.ts.map +1 -0
  578. package/bin/workspace/store/LocalSessionStore.js +70 -0
  579. package/bin/workspace/store/LocalSessionStore.js.map +1 -0
  580. package/bin/workspace/store/LocalStorePaths.d.ts +81 -0
  581. package/bin/workspace/store/LocalStorePaths.d.ts.map +1 -0
  582. package/bin/workspace/store/LocalStorePaths.js +112 -0
  583. package/bin/workspace/store/LocalStorePaths.js.map +1 -0
  584. package/bin/workspace/store/SessionMessageStoreFactory.d.ts +12 -0
  585. package/bin/workspace/store/SessionMessageStoreFactory.d.ts.map +1 -0
  586. package/bin/workspace/store/SessionMessageStoreFactory.js +13 -0
  587. package/bin/workspace/store/SessionMessageStoreFactory.js.map +1 -0
  588. package/bin/workspace/tool/FileToolSchemas.d.ts +35 -0
  589. package/bin/workspace/tool/FileToolSchemas.d.ts.map +1 -0
  590. package/bin/workspace/tool/FileToolSchemas.js +73 -0
  591. package/bin/workspace/tool/FileToolSchemas.js.map +1 -0
  592. package/bin/workspace/tool/FileTools.d.ts +11 -0
  593. package/bin/workspace/tool/FileTools.d.ts.map +1 -0
  594. package/bin/workspace/tool/FileTools.js +61 -0
  595. package/bin/workspace/tool/FileTools.js.map +1 -0
  596. package/bin/workspace/tool/SearchToolSchemas.d.ts +24 -0
  597. package/bin/workspace/tool/SearchToolSchemas.d.ts.map +1 -0
  598. package/bin/workspace/tool/SearchToolSchemas.js +60 -0
  599. package/bin/workspace/tool/SearchToolSchemas.js.map +1 -0
  600. package/bin/workspace/tool/SearchTools.d.ts +11 -0
  601. package/bin/workspace/tool/SearchTools.d.ts.map +1 -0
  602. package/bin/workspace/tool/SearchTools.js +38 -0
  603. package/bin/workspace/tool/SearchTools.js.map +1 -0
  604. package/bin/workspace/tool/WorkspaceTools.d.ts +11 -0
  605. package/bin/workspace/tool/WorkspaceTools.d.ts.map +1 -0
  606. package/bin/workspace/tool/WorkspaceTools.js +22 -0
  607. package/bin/workspace/tool/WorkspaceTools.js.map +1 -0
  608. package/package.json +11 -6
  609. package/scripts/action-schedule-store.test.mjs +101 -0
  610. package/scripts/agent-env-shell-sandbox.test.mjs +9 -19
  611. package/scripts/agent-env.test.mjs +10 -39
  612. package/scripts/agent-ready.test.mjs +16 -11
  613. package/scripts/agent-session-maintenance.test.mjs +9 -7
  614. package/scripts/agent-store.test.mjs +83 -0
  615. package/scripts/city-model-tool-loop.test.mjs +48 -22
  616. package/scripts/core-engine-context-compaction.test.mjs +29 -26
  617. package/scripts/core-engine-ui-stream-collector.test.mjs +4 -4
  618. package/scripts/executor-failure-result.test.mjs +36 -33
  619. package/scripts/file-tools.test.mjs +282 -0
  620. package/scripts/image-plugin-job.test.mjs +43 -34
  621. package/scripts/logger-isolation.test.mjs +6 -6
  622. package/scripts/multi-agent-plugin-isolation.test.mjs +8 -8
  623. package/scripts/{plugin-tool-bridge.test.mjs → plugin-tools.test.mjs} +106 -102
  624. package/scripts/public-api-naming.test.mjs +108 -0
  625. package/scripts/remote-session-reconnect.test.mjs +78 -9
  626. package/scripts/search-tools.test.mjs +188 -0
  627. package/scripts/session-ask-question.test.mjs +216 -0
  628. package/scripts/session-compact-handle.test.mjs +117 -0
  629. package/scripts/session-composer.test.mjs +7 -5
  630. package/scripts/session-config-turn-boundary.test.mjs +177 -43
  631. package/scripts/session-list-title.test.mjs +23 -23
  632. package/scripts/session-message-timeline.test.mjs +65 -0
  633. package/scripts/session-messages-error.test.mjs +0 -1
  634. package/scripts/session-messages.test.mjs +305 -68
  635. package/scripts/session-queue.test.mjs +75 -40
  636. package/scripts/session-shell-approval.test.mjs +25 -22
  637. package/scripts/session-system-blocks.test.mjs +3 -3
  638. package/scripts/session-title-event.test.mjs +7 -7
  639. package/scripts/session-turn-context.test.mjs +99 -0
  640. package/scripts/session-turn-failure.test.mjs +158 -38
  641. package/scripts/workspace.test.mjs +146 -0
  642. package/src/agent/Agent.ts +159 -109
  643. package/src/agent/AgentInstructions.ts +2 -2
  644. package/src/agent/AgentModel.ts +2 -2
  645. package/src/agent/AgentSessions.ts +50 -148
  646. package/src/agent/AgentState.ts +8 -63
  647. package/src/executor/Executor.ts +120 -226
  648. package/src/executor/README.md +13 -11
  649. package/src/executor/composer/system/SessionSystemComposer.ts +2 -2
  650. package/src/executor/composer/system/default/DefaultSessionSystemComposer.ts +24 -24
  651. package/src/executor/composer/system/default/PromptRenderer.ts +4 -4
  652. package/src/executor/composer/system/default/SystemDomain.ts +68 -68
  653. package/src/executor/composer/system/default/assets/core.prompt.ts +1 -1
  654. package/src/executor/composer/system/default/assets/core.prompt.ts.txt +1 -1
  655. package/src/executor/composer/system/default/variables/GeoContext.ts +4 -4
  656. package/src/executor/composer/system/default/variables/PromptTypes.ts +2 -2
  657. package/src/executor/composer/system/default/variables/VariableReplacer.ts +30 -30
  658. package/src/executor/core-engine/CoreEngineError.ts +2 -2
  659. package/src/executor/core-engine/CoreEngineLoopDecision.ts +2 -2
  660. package/src/executor/core-engine/CoreEngineMessageState.ts +16 -16
  661. package/src/executor/core-engine/CoreEngineRunner.ts +124 -134
  662. package/src/executor/core-engine/CoreEngineSignals.ts +24 -24
  663. package/src/executor/core-engine/CoreEngineUiStreamCollector.ts +18 -18
  664. package/src/executor/ids/resolveSessionId.ts +5 -5
  665. package/src/executor/messages/ChatMessageMarkup.ts +23 -23
  666. package/src/executor/messages/ChatMessageMarkupTypes.ts +10 -10
  667. package/src/executor/messages/SessionAttachmentMapper.ts +14 -14
  668. package/src/executor/messages/SessionMessageCodec.ts +17 -27
  669. package/src/executor/messages/SessionMessageLog.ts +3 -3
  670. package/src/executor/messages/SessionStepEventMapper.ts +9 -9
  671. package/src/executor/messages/UIMessageTransformer.ts +6 -6
  672. package/src/executor/messages/UserVisibleText.ts +6 -6
  673. package/src/executor/services/ExecutorRecoveryPolicy.ts +33 -32
  674. package/src/executor/types/SessionHistoryMeta.ts +10 -10
  675. package/src/executor/types/SessionRecords.ts +13 -13
  676. package/src/index.ts +108 -184
  677. package/src/plugin/core/ActionScheduleExecutor.ts +21 -23
  678. package/src/plugin/core/ActionScheduleRuntime.ts +8 -8
  679. package/src/plugin/core/ActionScheduleStore.ts +140 -128
  680. package/src/plugin/core/ActionScheduleTime.ts +6 -6
  681. package/src/plugin/core/BasePlugin.ts +6 -27
  682. package/src/plugin/core/HookRegistry.ts +56 -56
  683. package/src/plugin/core/PluginActionFactory.ts +20 -38
  684. package/src/plugin/core/PluginActionRunner.ts +21 -181
  685. package/src/plugin/core/PluginCatalog.ts +23 -23
  686. package/src/plugin/core/PluginContext.ts +52 -0
  687. package/src/plugin/core/PluginHttpRoutes.ts +8 -8
  688. package/src/plugin/core/PluginRegistry.ts +125 -88
  689. package/src/plugin/core/PluginStateController.ts +5 -47
  690. package/src/plugin/tool/PluginToolRuntime.ts +121 -0
  691. package/src/{executor/tools/plugin → plugin/tool}/PluginToolSchemas.ts +1 -1
  692. package/src/{executor/tools/plugin/PluginToolDefinition.ts → plugin/tool/PluginTools.ts} +25 -27
  693. package/src/plugin/types/ActionSchedule.ts +10 -10
  694. package/src/plugin/types/PluginApi.ts +3 -3
  695. package/src/remote/RemoteAgent.ts +3 -3
  696. package/src/remote/RemoteSession.ts +110 -28
  697. package/src/remote/RemoteTransport.ts +17 -20
  698. package/src/remote/transports/HttpRemoteAgentTransport.ts +59 -59
  699. package/src/remote/transports/RpcClient.ts +65 -106
  700. package/src/remote/transports/RpcRemoteAgentTransport.ts +21 -21
  701. package/src/session/DefaultSessionComposer.ts +2 -3
  702. package/src/session/Session.ts +352 -298
  703. package/src/session/SessionCommand.ts +42 -0
  704. package/src/session/SessionLoop.ts +661 -0
  705. package/src/session/SessionMessages.ts +141 -94
  706. package/src/session/SessionQueue.ts +31 -64
  707. package/src/session/SessionState.ts +48 -116
  708. package/src/session/SessionSystem.ts +7 -7
  709. package/src/session/SessionTitle.ts +24 -39
  710. package/src/session/browse/Browse.ts +160 -384
  711. package/src/session/browse/SessionMessageTimeline.ts +135 -0
  712. package/src/session/control/SessionInteractions.ts +290 -0
  713. package/src/session/execution/SessionAssistantOutputAdapter.ts +144 -0
  714. package/src/session/execution/tools/SessionShellApprovalAdapter.ts +94 -0
  715. package/src/session/messages/SessionAssistantMessageWriter.ts +33 -21
  716. package/src/session/messages/SessionJsonValue.ts +3 -3
  717. package/src/session/messages/SessionMessageCodec.ts +29 -84
  718. package/src/session/messages/SessionMessageCompaction.ts +2 -2
  719. package/src/session/messages/SessionMessageInteractionWriter.ts +277 -0
  720. package/src/session/preview/SessionMessagePreview.ts +2 -2
  721. package/src/session/runtime/SessionCompactOperation.ts +93 -0
  722. package/src/session/runtime/SessionHistoryCompaction.ts +45 -0
  723. package/src/session/runtime/SessionTurnContext.ts +222 -0
  724. package/src/session/storage/Metadata.ts +46 -195
  725. package/src/session/storage/RuntimeSessionPort.ts +13 -13
  726. package/src/tools/ask/AskQuestionsTool.ts +85 -0
  727. package/src/tools/ask/AskQuestionsToolSchemas.ts +55 -0
  728. package/src/tools/index.ts +12 -0
  729. package/src/types/action/ActionResult.ts +36 -0
  730. package/src/types/agent/AgentOptions.ts +13 -25
  731. package/src/types/agent/AgentState.ts +4 -15
  732. package/src/types/agent/RemoteAgentPluginAction.ts +2 -2
  733. package/src/types/agent/SessionActor.ts +21 -20
  734. package/src/types/agent/SessionTypes.ts +74 -94
  735. package/src/types/executor/SessionAssistantOutput.ts +35 -0
  736. package/src/types/executor/SessionToolExecutionContext.ts +5 -5
  737. package/src/types/executor/SessionTurnContext.ts +171 -0
  738. package/src/types/plugin/PluginAction.ts +13 -10
  739. package/src/types/plugin/PluginCommand.ts +8 -70
  740. package/src/types/plugin/PluginContext.ts +43 -0
  741. package/src/types/plugin/PluginDefinition.ts +8 -35
  742. package/src/types/plugin/PluginExecutionContext.ts +34 -0
  743. package/src/types/plugin/PluginHttp.ts +5 -5
  744. package/src/types/plugin/PluginRegistry.ts +25 -0
  745. package/src/types/plugin/PluginRuntime.ts +30 -43
  746. package/src/types/plugin/PluginState.ts +0 -17
  747. package/src/{executor/tools/plugin/types → types/plugin}/PluginTool.ts +42 -20
  748. package/src/types/rpc/RpcProtocol.ts +49 -74
  749. package/src/types/sdk/AgentSessionCompact.ts +36 -0
  750. package/src/types/sdk/AgentSessionPrompt.ts +1 -1
  751. package/src/types/sdk/AgentSessionStop.ts +2 -2
  752. package/src/types/sdk/AgentSessionTurn.ts +3 -15
  753. package/src/types/session/SessionCommand.ts +27 -0
  754. package/src/types/session/SessionComposer.ts +8 -4
  755. package/src/{executor/types/SessionRun.ts → types/session/SessionExecution.ts} +41 -34
  756. package/src/types/session/SessionInteraction.ts +209 -0
  757. package/src/types/session/SessionInteractions.ts +21 -0
  758. package/src/types/session/SessionLocalState.ts +1 -1
  759. package/src/types/session/SessionLoop.ts +72 -0
  760. package/src/types/session/SessionMessage.ts +43 -28
  761. package/src/types/session/SessionMessages.ts +2 -4
  762. package/src/types/session/SessionMutation.ts +21 -0
  763. package/src/types/session/SessionOptions.ts +38 -23
  764. package/src/types/session/SessionPort.ts +6 -24
  765. package/src/types/session/SessionState.ts +3 -16
  766. package/src/types/store/AgentStore.ts +52 -0
  767. package/src/types/store/LocalStore.ts +39 -0
  768. package/src/types/store/SessionStore.ts +105 -0
  769. package/src/types/tools/ask/AskQuestionsTool.ts +27 -0
  770. package/src/types/workspace/FileSystem.ts +76 -0
  771. package/src/types/workspace/FileTool.ts +225 -0
  772. package/src/types/workspace/SearchTool.ts +156 -0
  773. package/src/types/workspace/Workspace.ts +27 -0
  774. package/src/types/workspace/WorkspaceEnv.ts +19 -0
  775. package/src/types/workspace/WorkspaceTools.ts +23 -0
  776. package/src/utils/Id.ts +1 -1
  777. package/src/utils/Template.ts +1 -1
  778. package/src/utils/Time.ts +8 -8
  779. package/src/utils/cli/CliOutput.ts +7 -7
  780. package/src/utils/cli/PrettyStatus.ts +4 -4
  781. package/src/utils/logger/FormatRequest.ts +64 -64
  782. package/src/utils/logger/FormatResponse.ts +44 -44
  783. package/src/utils/logger/FormatShared.ts +28 -28
  784. package/src/utils/logger/Logger.ts +30 -26
  785. package/src/utils/object/DeepMerge.ts +5 -5
  786. package/src/utils/object/ObjectGuards.ts +1 -1
  787. package/src/utils/path/AncestorFiles.ts +3 -3
  788. package/src/utils/storage/index.ts +2 -2
  789. package/src/utils/string/EscapeRegExp.ts +1 -1
  790. package/src/workspace/LocalFileSystem.ts +209 -0
  791. package/src/workspace/Workspace.ts +180 -0
  792. package/src/workspace/WorkspaceEnv.ts +54 -0
  793. package/src/workspace/WorkspacePaths.ts +112 -0
  794. package/src/workspace/file/FileActionRuntime.ts +433 -0
  795. package/src/workspace/file/FileAtomicWriter.ts +61 -0
  796. package/src/workspace/file/FileEncoding.ts +175 -0
  797. package/src/workspace/file/FilePathPolicy.ts +162 -0
  798. package/src/workspace/file/FileToolError.ts +99 -0
  799. package/src/workspace/search/SearchActionRuntime.ts +438 -0
  800. package/src/workspace/search/SearchToolError.ts +94 -0
  801. package/src/{session/messages → workspace/store}/JsonlSessionMessageStore.ts +40 -91
  802. package/src/workspace/store/LocalAgentStore.ts +191 -0
  803. package/src/workspace/store/LocalSessionStore.ts +114 -0
  804. package/src/workspace/store/LocalStorePaths.ts +209 -0
  805. package/src/workspace/store/SessionMessageStoreFactory.ts +18 -0
  806. package/src/workspace/tool/FileToolSchemas.ts +77 -0
  807. package/src/workspace/tool/FileTools.ts +91 -0
  808. package/src/workspace/tool/SearchToolSchemas.ts +62 -0
  809. package/src/workspace/tool/SearchTools.ts +61 -0
  810. package/src/workspace/tool/WorkspaceTools.ts +31 -0
  811. package/tsconfig.tsbuildinfo +1 -1
  812. package/bin/agent/AgentContext.d.ts +0 -69
  813. package/bin/agent/AgentContext.d.ts.map +0 -1
  814. package/bin/agent/AgentContext.js +0 -56
  815. package/bin/agent/AgentContext.js.map +0 -1
  816. package/bin/config/AgentEnv.d.ts +0 -9
  817. package/bin/config/AgentEnv.d.ts.map +0 -1
  818. package/bin/config/AgentEnv.js +0 -48
  819. package/bin/config/AgentEnv.js.map +0 -1
  820. package/bin/config/AgentInitializer.d.ts +0 -31
  821. package/bin/config/AgentInitializer.d.ts.map +0 -1
  822. package/bin/config/AgentInitializer.js +0 -131
  823. package/bin/config/AgentInitializer.js.map +0 -1
  824. package/bin/config/EnvFile.d.ts +0 -31
  825. package/bin/config/EnvFile.d.ts.map +0 -1
  826. package/bin/config/EnvFile.js +0 -89
  827. package/bin/config/EnvFile.js.map +0 -1
  828. package/bin/config/ExecutionBinding.d.ts +0 -31
  829. package/bin/config/ExecutionBinding.d.ts.map +0 -1
  830. package/bin/config/ExecutionBinding.js +0 -46
  831. package/bin/config/ExecutionBinding.js.map +0 -1
  832. package/bin/config/Gitignore.d.ts +0 -21
  833. package/bin/config/Gitignore.d.ts.map +0 -1
  834. package/bin/config/Gitignore.js +0 -46
  835. package/bin/config/Gitignore.js.map +0 -1
  836. package/bin/config/Paths.d.ts +0 -122
  837. package/bin/config/Paths.d.ts.map +0 -1
  838. package/bin/config/Paths.js +0 -183
  839. package/bin/config/Paths.js.map +0 -1
  840. package/bin/config/PlatformPaths.d.ts +0 -31
  841. package/bin/config/PlatformPaths.d.ts.map +0 -1
  842. package/bin/config/PlatformPaths.js +0 -53
  843. package/bin/config/PlatformPaths.js.map +0 -1
  844. package/bin/config/ProjectSetup.d.ts +0 -11
  845. package/bin/config/ProjectSetup.d.ts.map +0 -1
  846. package/bin/config/ProjectSetup.js +0 -32
  847. package/bin/config/ProjectSetup.js.map +0 -1
  848. package/bin/executor/messages/AssistantFileResource.d.ts +0 -63
  849. package/bin/executor/messages/AssistantFileResource.d.ts.map +0 -1
  850. package/bin/executor/messages/AssistantFileResource.js +0 -352
  851. package/bin/executor/messages/AssistantFileResource.js.map +0 -1
  852. package/bin/executor/tools/file/ReadImageToolBridge.d.ts +0 -21
  853. package/bin/executor/tools/file/ReadImageToolBridge.d.ts.map +0 -1
  854. package/bin/executor/tools/file/ReadImageToolBridge.js +0 -69
  855. package/bin/executor/tools/file/ReadImageToolBridge.js.map +0 -1
  856. package/bin/executor/tools/plugin/PluginToolBridge.d.ts +0 -19
  857. package/bin/executor/tools/plugin/PluginToolBridge.d.ts.map +0 -1
  858. package/bin/executor/tools/plugin/PluginToolBridge.js +0 -181
  859. package/bin/executor/tools/plugin/PluginToolBridge.js.map +0 -1
  860. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts +0 -25
  861. package/bin/executor/tools/plugin/PluginToolDefinition.d.ts.map +0 -1
  862. package/bin/executor/tools/plugin/PluginToolDefinition.js.map +0 -1
  863. package/bin/executor/tools/plugin/PluginToolSchemas.d.ts.map +0 -1
  864. package/bin/executor/tools/plugin/PluginToolSchemas.js.map +0 -1
  865. package/bin/executor/tools/plugin/types/PluginTool.d.ts +0 -76
  866. package/bin/executor/tools/plugin/types/PluginTool.d.ts.map +0 -1
  867. package/bin/executor/tools/plugin/types/PluginTool.js.map +0 -1
  868. package/bin/executor/types/SessionExecutor.d.ts +0 -26
  869. package/bin/executor/types/SessionExecutor.d.ts.map +0 -1
  870. package/bin/executor/types/SessionExecutor.js +0 -9
  871. package/bin/executor/types/SessionExecutor.js.map +0 -1
  872. package/bin/executor/types/SessionRun.d.ts.map +0 -1
  873. package/bin/executor/types/SessionRun.js +0 -10
  874. package/bin/executor/types/SessionRun.js.map +0 -1
  875. package/bin/plugin/core/PluginCommand.d.ts +0 -17
  876. package/bin/plugin/core/PluginCommand.d.ts.map +0 -1
  877. package/bin/plugin/core/PluginCommand.js +0 -189
  878. package/bin/plugin/core/PluginCommand.js.map +0 -1
  879. package/bin/plugin/core/PluginCommandRequest.d.ts +0 -36
  880. package/bin/plugin/core/PluginCommandRequest.d.ts.map +0 -1
  881. package/bin/plugin/core/PluginCommandRequest.js +0 -53
  882. package/bin/plugin/core/PluginCommandRequest.js.map +0 -1
  883. package/bin/plugin/core/PluginLocalExecution.d.ts +0 -45
  884. package/bin/plugin/core/PluginLocalExecution.d.ts.map +0 -1
  885. package/bin/plugin/core/PluginLocalExecution.js +0 -115
  886. package/bin/plugin/core/PluginLocalExecution.js.map +0 -1
  887. package/bin/session/SessionTurn.d.ts +0 -84
  888. package/bin/session/SessionTurn.d.ts.map +0 -1
  889. package/bin/session/SessionTurn.js +0 -579
  890. package/bin/session/SessionTurn.js.map +0 -1
  891. package/bin/session/approval/SessionApprovalBroker.d.ts +0 -48
  892. package/bin/session/approval/SessionApprovalBroker.d.ts.map +0 -1
  893. package/bin/session/approval/SessionApprovalBroker.js +0 -126
  894. package/bin/session/approval/SessionApprovalBroker.js.map +0 -1
  895. package/bin/session/messages/JsonlSessionMessageStore.d.ts.map +0 -1
  896. package/bin/session/messages/JsonlSessionMessageStore.js.map +0 -1
  897. package/bin/session/storage/Instruction.d.ts +0 -16
  898. package/bin/session/storage/Instruction.d.ts.map +0 -1
  899. package/bin/session/storage/Instruction.js +0 -48
  900. package/bin/session/storage/Instruction.js.map +0 -1
  901. package/bin/session/storage/Paths.d.ts +0 -81
  902. package/bin/session/storage/Paths.d.ts.map +0 -1
  903. package/bin/session/storage/Paths.js +0 -112
  904. package/bin/session/storage/Paths.js.map +0 -1
  905. package/bin/types/common/EnvFile.d.ts +0 -30
  906. package/bin/types/common/EnvFile.d.ts.map +0 -1
  907. package/bin/types/common/EnvFile.js +0 -10
  908. package/bin/types/common/EnvFile.js.map +0 -1
  909. package/bin/types/config/AgentProject.d.ts +0 -73
  910. package/bin/types/config/AgentProject.d.ts.map +0 -1
  911. package/bin/types/config/AgentProject.js +0 -9
  912. package/bin/types/config/AgentProject.js.map +0 -1
  913. package/bin/types/config/DowncityConfig.d.ts +0 -145
  914. package/bin/types/config/DowncityConfig.d.ts.map +0 -1
  915. package/bin/types/config/DowncityConfig.js +0 -2
  916. package/bin/types/config/DowncityConfig.js.map +0 -1
  917. package/bin/types/config/ExecutionBinding.d.ts +0 -26
  918. package/bin/types/config/ExecutionBinding.d.ts.map +0 -1
  919. package/bin/types/config/ExecutionBinding.js +0 -10
  920. package/bin/types/config/ExecutionBinding.js.map +0 -1
  921. package/bin/types/config/LlmConfig.d.ts +0 -100
  922. package/bin/types/config/LlmConfig.d.ts.map +0 -1
  923. package/bin/types/config/LlmConfig.js +0 -10
  924. package/bin/types/config/LlmConfig.js.map +0 -1
  925. package/bin/types/executor/SessionRunContext.d.ts +0 -155
  926. package/bin/types/executor/SessionRunContext.d.ts.map +0 -1
  927. package/bin/types/executor/SessionRunContext.js +0 -10
  928. package/bin/types/executor/SessionRunContext.js.map +0 -1
  929. package/bin/types/platform/Store.d.ts +0 -191
  930. package/bin/types/platform/Store.d.ts.map +0 -1
  931. package/bin/types/platform/Store.js +0 -9
  932. package/bin/types/platform/Store.js.map +0 -1
  933. package/bin/types/plugin/PluginConfig.d.ts +0 -12
  934. package/bin/types/plugin/PluginConfig.d.ts.map +0 -1
  935. package/bin/types/plugin/PluginConfig.js +0 -5
  936. package/bin/types/plugin/PluginConfig.js.map +0 -1
  937. package/bin/types/plugin/PluginControl.d.ts +0 -74
  938. package/bin/types/plugin/PluginControl.d.ts.map +0 -1
  939. package/bin/types/plugin/PluginControl.js +0 -9
  940. package/bin/types/plugin/PluginControl.js.map +0 -1
  941. package/bin/types/plugin/PluginRunContext.d.ts +0 -26
  942. package/bin/types/plugin/PluginRunContext.d.ts.map +0 -1
  943. package/bin/types/plugin/PluginRunContext.js.map +0 -1
  944. package/bin/types/plugin/PluginSetup.d.ts +0 -133
  945. package/bin/types/plugin/PluginSetup.d.ts.map +0 -1
  946. package/bin/types/plugin/PluginSetup.js +0 -9
  947. package/bin/types/plugin/PluginSetup.js.map +0 -1
  948. package/bin/types/plugin/PluginToolRuntime.d.ts +0 -86
  949. package/bin/types/plugin/PluginToolRuntime.d.ts.map +0 -1
  950. package/bin/types/plugin/PluginToolRuntime.js +0 -9
  951. package/bin/types/plugin/PluginToolRuntime.js.map +0 -1
  952. package/bin/types/runtime/auth/AuthPermission.d.ts +0 -49
  953. package/bin/types/runtime/auth/AuthPermission.d.ts.map +0 -1
  954. package/bin/types/runtime/auth/AuthPermission.js +0 -87
  955. package/bin/types/runtime/auth/AuthPermission.js.map +0 -1
  956. package/bin/types/runtime/auth/AuthRoute.d.ts +0 -29
  957. package/bin/types/runtime/auth/AuthRoute.d.ts.map +0 -1
  958. package/bin/types/runtime/auth/AuthRoute.js +0 -8
  959. package/bin/types/runtime/auth/AuthRoute.js.map +0 -1
  960. package/bin/types/runtime/auth/AuthToken.d.ts +0 -46
  961. package/bin/types/runtime/auth/AuthToken.d.ts.map +0 -1
  962. package/bin/types/runtime/auth/AuthToken.js +0 -9
  963. package/bin/types/runtime/auth/AuthToken.js.map +0 -1
  964. package/bin/types/runtime/auth/AuthTypes.d.ts +0 -227
  965. package/bin/types/runtime/auth/AuthTypes.d.ts.map +0 -1
  966. package/bin/types/runtime/auth/AuthTypes.js +0 -9
  967. package/bin/types/runtime/auth/AuthTypes.js.map +0 -1
  968. package/bin/types/runtime/http/InlineInstant.d.ts +0 -82
  969. package/bin/types/runtime/http/InlineInstant.d.ts.map +0 -1
  970. package/bin/types/runtime/http/InlineInstant.js +0 -10
  971. package/bin/types/runtime/http/InlineInstant.js.map +0 -1
  972. package/bin/types/runtime/platform/Platform.d.ts +0 -362
  973. package/bin/types/runtime/platform/Platform.d.ts.map +0 -1
  974. package/bin/types/runtime/platform/Platform.js +0 -10
  975. package/bin/types/runtime/platform/Platform.js.map +0 -1
  976. package/bin/types/runtime/platform/PlatformGateway.d.ts +0 -41
  977. package/bin/types/runtime/platform/PlatformGateway.d.ts.map +0 -1
  978. package/bin/types/runtime/platform/PlatformGateway.js +0 -2
  979. package/bin/types/runtime/platform/PlatformGateway.js.map +0 -1
  980. package/bin/types/session/SessionApproval.d.ts +0 -63
  981. package/bin/types/session/SessionApproval.d.ts.map +0 -1
  982. package/bin/types/session/SessionApproval.js +0 -7
  983. package/bin/types/session/SessionApproval.js.map +0 -1
  984. package/bin/types/session/SessionApprovalBroker.d.ts +0 -17
  985. package/bin/types/session/SessionApprovalBroker.d.ts.map +0 -1
  986. package/bin/types/session/SessionApprovalBroker.js +0 -7
  987. package/bin/types/session/SessionApprovalBroker.js.map +0 -1
  988. package/bin/types/session/SessionInstruction.d.ts +0 -22
  989. package/bin/types/session/SessionInstruction.d.ts.map +0 -1
  990. package/bin/types/session/SessionInstruction.js +0 -9
  991. package/bin/types/session/SessionInstruction.js.map +0 -1
  992. package/bin/types/session/SessionQueue.d.ts +0 -88
  993. package/bin/types/session/SessionQueue.d.ts.map +0 -1
  994. package/bin/types/session/SessionQueue.js +0 -7
  995. package/bin/types/session/SessionQueue.js.map +0 -1
  996. package/bin/types/session/SessionTurn.d.ts +0 -52
  997. package/bin/types/session/SessionTurn.d.ts.map +0 -1
  998. package/bin/types/session/SessionTurn.js.map +0 -1
  999. package/scripts/assistant-file-resource.test.mjs +0 -344
  1000. package/scripts/read-image-tool-bridge.test.mjs +0 -71
  1001. package/src/agent/AgentContext.ts +0 -98
  1002. package/src/config/AgentEnv.ts +0 -49
  1003. package/src/config/AgentInitializer.ts +0 -167
  1004. package/src/config/EnvFile.ts +0 -99
  1005. package/src/config/ExecutionBinding.ts +0 -50
  1006. package/src/config/Gitignore.ts +0 -52
  1007. package/src/config/Paths.ts +0 -241
  1008. package/src/config/PlatformPaths.ts +0 -57
  1009. package/src/config/ProjectSetup.ts +0 -44
  1010. package/src/executor/messages/AssistantFileResource.ts +0 -446
  1011. package/src/executor/tools/file/ReadImageToolBridge.ts +0 -79
  1012. package/src/executor/tools/plugin/PluginToolBridge.ts +0 -212
  1013. package/src/executor/types/SessionExecutor.ts +0 -34
  1014. package/src/plugin/core/PluginCommand.ts +0 -230
  1015. package/src/plugin/core/PluginCommandRequest.ts +0 -93
  1016. package/src/plugin/core/PluginLocalExecution.ts +0 -154
  1017. package/src/session/SessionTurn.ts +0 -669
  1018. package/src/session/approval/SessionApprovalBroker.ts +0 -164
  1019. package/src/session/storage/Instruction.ts +0 -72
  1020. package/src/session/storage/Paths.ts +0 -209
  1021. package/src/types/common/EnvFile.ts +0 -31
  1022. package/src/types/config/AgentProject.ts +0 -85
  1023. package/src/types/config/DowncityConfig.ts +0 -153
  1024. package/src/types/config/ExecutionBinding.ts +0 -27
  1025. package/src/types/config/LlmConfig.ts +0 -115
  1026. package/src/types/executor/SessionRunContext.ts +0 -191
  1027. package/src/types/platform/Store.ts +0 -197
  1028. package/src/types/plugin/PluginConfig.ts +0 -13
  1029. package/src/types/plugin/PluginControl.ts +0 -80
  1030. package/src/types/plugin/PluginRunContext.ts +0 -31
  1031. package/src/types/plugin/PluginSetup.ts +0 -138
  1032. package/src/types/plugin/PluginToolRuntime.ts +0 -98
  1033. package/src/types/runtime/auth/AuthPermission.ts +0 -120
  1034. package/src/types/runtime/auth/AuthRoute.ts +0 -31
  1035. package/src/types/runtime/auth/AuthToken.ts +0 -47
  1036. package/src/types/runtime/auth/AuthTypes.ts +0 -235
  1037. package/src/types/runtime/http/InlineInstant.ts +0 -96
  1038. package/src/types/runtime/platform/Platform.ts +0 -432
  1039. package/src/types/runtime/platform/PlatformGateway.ts +0 -46
  1040. package/src/types/session/SessionApproval.ts +0 -69
  1041. package/src/types/session/SessionApprovalBroker.ts +0 -18
  1042. package/src/types/session/SessionInstruction.ts +0 -24
  1043. package/src/types/session/SessionQueue.ts +0 -102
  1044. package/src/types/session/SessionTurn.ts +0 -56
  1045. /package/bin/{executor/tools/plugin/types → types/plugin}/PluginTool.js +0 -0
@@ -13,10 +13,10 @@ import os from "node:os";
13
13
  import path from "node:path";
14
14
  import fs from "node:fs/promises";
15
15
  import { MockLanguageModelV3 } from "ai/test";
16
- import { Agent } from "../bin/index.js";
16
+ import { Agent, Workspace } from "../bin/index.js";
17
17
  import {
18
- createAction,
19
- createPlugin,
18
+ create_action,
19
+ create_plugin,
20
20
  } from "../bin/plugin/core/PluginActionFactory.js";
21
21
 
22
22
  function create_deferred() {
@@ -82,7 +82,7 @@ test("Agent instruction changes only affect newly created Sessions", async () =>
82
82
  return create_stream_text_result(`done:${String(provider_request_count)}`);
83
83
  },
84
84
  });
85
- const runtime_plugin = createPlugin({
85
+ const runtime_plugin = create_plugin({
86
86
  name: "runtime-config",
87
87
  title: "Runtime Config",
88
88
  description: "Provides a system block for turn-boundary tests",
@@ -91,32 +91,36 @@ test("Agent instruction changes only affect newly created Sessions", async () =>
91
91
  plugin_stop_count += 1;
92
92
  },
93
93
  },
94
- system: (context) => `plugin-env:${context.env.TURN_ENV || "missing"}`,
94
+ system: (_context, execution_context) =>
95
+ `plugin-env:${execution_context?.workspace_env?.TURN_ENV || "missing"}`,
95
96
  actions: {
96
- ping: createAction({
97
+ ping: create_action({
97
98
  description: "Ping",
98
99
  execute: async () => ({ success: true, data: { ok: true } }),
99
100
  }),
100
101
  },
101
102
  });
103
+ const workspace = new Workspace({
104
+ path: agent_path,
105
+ env: { TURN_ENV: "old" },
106
+ });
102
107
  const agent = new Agent({
103
108
  id: "config_turn_boundary_agent",
104
- path: agent_path,
109
+ workspace,
105
110
  model,
106
111
  instruction: ["instruction:old"],
107
- env: { TURN_ENV: "old" },
108
112
  plugins: [runtime_plugin],
109
113
  });
110
114
 
111
115
  try {
112
116
  const session = await agent.sessions.create({
113
- sessionId: "config_turn_boundary_session",
117
+ session_id: "config_turn_boundary_session",
114
118
  });
115
119
  const first_turn = await session.prompt({ query: "first" });
116
120
  await first_provider_request_started.promise;
117
121
 
118
- agent.setInstruction(["instruction:new"]);
119
- agent.patchEnv({ TURN_ENV: "new" });
122
+ agent.set_instruction(["instruction:new"]);
123
+ workspace.patch_env({ TURN_ENV: "new" });
120
124
  await agent.plugins.unregister("runtime-config");
121
125
  const steer_turn_promise = session.prompt({ query: "steer" });
122
126
 
@@ -142,7 +146,7 @@ test("Agent instruction changes only affect newly created Sessions", async () =>
142
146
  .filter((message) => message.type === "action" && message.status === "completed")
143
147
  .map((message) => message.title);
144
148
  assert.deepEqual(completed_actions, [
145
- "Agent environment updated",
149
+ "Workspace environment updated",
146
150
  "Agent plugin runtime-config unregistered",
147
151
  ]);
148
152
 
@@ -157,7 +161,7 @@ test("Agent instruction changes only affect newly created Sessions", async () =>
157
161
  assert.doesNotMatch(restored_system_text, /instruction:old/);
158
162
 
159
163
  const new_session = await agent.sessions.create({
160
- sessionId: "config_turn_boundary_new_session",
164
+ session_id: "config_turn_boundary_new_session",
161
165
  });
162
166
  const new_system = await new_session.system();
163
167
  const new_system_text = new_system.blocks
@@ -177,10 +181,10 @@ test("Plugin registry changes do not rewrite an existing Session system", async
177
181
  );
178
182
  const agent = new Agent({
179
183
  id: "fixed_plugin_system_agent",
180
- path: agent_path,
184
+ workspace: new Workspace({ path: agent_path }),
181
185
  model: new MockLanguageModelV3({ modelId: "fixed-plugin-system-model" }),
182
186
  });
183
- const runtime_plugin = createPlugin({
187
+ const runtime_plugin = create_plugin({
184
188
  name: "runtime-system",
185
189
  title: "Runtime System",
186
190
  description: "Provides a fixed Session system test block",
@@ -189,7 +193,7 @@ test("Plugin registry changes do not rewrite an existing Session system", async
189
193
 
190
194
  try {
191
195
  const existing_session = await agent.sessions.create({
192
- sessionId: "existing_session",
196
+ session_id: "existing_session",
193
197
  });
194
198
  const existing_before = await existing_session.system();
195
199
 
@@ -198,7 +202,7 @@ test("Plugin registry changes do not rewrite an existing Session system", async
198
202
  assert.deepEqual(existing_after_register, existing_before);
199
203
 
200
204
  const registered_session = await agent.sessions.create({
201
- sessionId: "registered_session",
205
+ session_id: "registered_session",
202
206
  });
203
207
  const registered_before = await registered_session.system();
204
208
  assert.match(
@@ -211,7 +215,7 @@ test("Plugin registry changes do not rewrite an existing Session system", async
211
215
  assert.deepEqual(registered_after_unregister, registered_before);
212
216
 
213
217
  const unregistered_session = await agent.sessions.create({
214
- sessionId: "unregistered_session",
218
+ session_id: "unregistered_session",
215
219
  });
216
220
  assert.doesNotMatch(
217
221
  (await unregistered_session.system()).blocks
@@ -239,7 +243,7 @@ test("Session syncshot refreshes system and only rewrites an existing instructio
239
243
  session_id,
240
244
  "instruction.md",
241
245
  );
242
- const create_system_plugin = (content) => createPlugin({
246
+ const create_system_plugin = (content) => create_plugin({
243
247
  name: "syncshot-system",
244
248
  title: "Syncshot System",
245
249
  description: "Provides system text refreshed by session.syncshot()",
@@ -248,21 +252,21 @@ test("Session syncshot refreshes system and only rewrites an existing instructio
248
252
  const model = new MockLanguageModelV3({ modelId: "syncshot-model" });
249
253
  const agent = new Agent({
250
254
  id: "syncshot_agent",
251
- path: agent_path,
255
+ workspace: new Workspace({ path: agent_path }),
252
256
  model,
253
257
  instruction: ["instruction:initial"],
254
258
  plugins: [create_system_plugin("plugin-system:initial")],
255
259
  });
256
260
 
257
261
  try {
258
- const session = await agent.sessions.create({ sessionId: session_id });
262
+ const session = await agent.sessions.create({ session_id: session_id });
259
263
  const initial_text = (await session.system()).blocks
260
264
  .map((block) => block.content)
261
265
  .join("\n");
262
266
  assert.match(initial_text, /instruction:initial/);
263
267
  assert.match(initial_text, /plugin-system:initial/);
264
268
 
265
- agent.setInstruction(["instruction:refreshed"]);
269
+ agent.set_instruction(["instruction:refreshed"]);
266
270
  await agent.plugins.register(create_system_plugin("plugin-system:refreshed"));
267
271
  await session.syncshot();
268
272
 
@@ -275,7 +279,7 @@ test("Session syncshot refreshes system and only rewrites an existing instructio
275
279
  await assert.rejects(fs.access(instruction_path));
276
280
 
277
281
  await session.snapshot();
278
- agent.setInstruction(["instruction:latest"]);
282
+ agent.set_instruction(["instruction:latest"]);
279
283
  await agent.plugins.register(create_system_plugin("plugin-system:latest"));
280
284
  await Promise.all([session.snapshot(), session.syncshot()]);
281
285
 
@@ -303,10 +307,10 @@ test("Session snapshot explicitly persists the complete system to instruction.md
303
307
  const model = new MockLanguageModelV3({ modelId: "instruction-restart-model" });
304
308
  const first_agent = new Agent({
305
309
  id: "instruction_restart_agent",
306
- path: agent_path,
310
+ workspace: new Workspace({ path: agent_path }),
307
311
  model,
308
312
  instruction: ["instruction:old"],
309
- plugins: [createPlugin({
313
+ plugins: [create_plugin({
310
314
  name: "snapshot-system",
311
315
  title: "Snapshot System",
312
316
  description: "Provides system text persisted by session.snapshot()",
@@ -316,7 +320,7 @@ test("Session snapshot explicitly persists the complete system to instruction.md
316
320
 
317
321
  try {
318
322
  const session = await first_agent.sessions.create({
319
- sessionId: "instruction_restart_session",
323
+ session_id: "instruction_restart_session",
320
324
  });
321
325
  const first_system = await session.system();
322
326
  assert.match(
@@ -349,7 +353,7 @@ test("Session snapshot explicitly persists the complete system to instruction.md
349
353
 
350
354
  const restarted_agent = new Agent({
351
355
  id: "instruction_restart_agent",
352
- path: agent_path,
356
+ workspace: new Workspace({ path: agent_path }),
353
357
  model,
354
358
  instruction: ["instruction:new"],
355
359
  });
@@ -381,7 +385,7 @@ test("Session snapshot explicitly persists the complete system to instruction.md
381
385
 
382
386
  const fallback_agent = new Agent({
383
387
  id: "instruction_restart_agent",
384
- path: agent_path,
388
+ workspace: new Workspace({ path: agent_path }),
385
389
  model,
386
390
  instruction: ["instruction:new"],
387
391
  });
@@ -408,12 +412,12 @@ test("empty Session snapshot suppresses Agent instruction after restart", async
408
412
  const model = new MockLanguageModelV3({ modelId: "empty-snapshot-model" });
409
413
  const first_agent = new Agent({
410
414
  id: "empty_snapshot_agent",
411
- path: agent_path,
415
+ workspace: new Workspace({ path: agent_path }),
412
416
  model,
413
417
  });
414
418
  try {
415
419
  const session = await first_agent.sessions.create({
416
- sessionId: "empty_snapshot_session",
420
+ session_id: "empty_snapshot_session",
417
421
  });
418
422
  await session.snapshot();
419
423
  } finally {
@@ -422,7 +426,7 @@ test("empty Session snapshot suppresses Agent instruction after restart", async
422
426
 
423
427
  const restarted_agent = new Agent({
424
428
  id: "empty_snapshot_agent",
425
- path: agent_path,
429
+ workspace: new Workspace({ path: agent_path }),
426
430
  model,
427
431
  instruction: ["instruction:must-not-appear"],
428
432
  });
@@ -467,12 +471,12 @@ test("running session model changes apply with steer at the next Session step",
467
471
  return create_stream_text_result("new response");
468
472
  },
469
473
  });
470
- const runtime_plugin = createPlugin({
474
+ const runtime_plugin = create_plugin({
471
475
  name: "model-boundary",
472
476
  title: "Model Boundary",
473
477
  description: "Ensures the main provider request has tools",
474
478
  actions: {
475
- ping: createAction({
479
+ ping: create_action({
476
480
  description: "Ping",
477
481
  execute: async () => ({ success: true, data: { ok: true } }),
478
482
  }),
@@ -480,19 +484,27 @@ test("running session model changes apply with steer at the next Session step",
480
484
  });
481
485
  const agent = new Agent({
482
486
  id: "session_step_boundary_agent",
483
- path: agent_path,
487
+ workspace: new Workspace({ path: agent_path }),
484
488
  model: old_model,
485
489
  plugins: [runtime_plugin],
486
490
  });
487
491
 
488
492
  try {
489
493
  const session = await agent.sessions.create({
490
- sessionId: "session_step_boundary_session",
494
+ session_id: "session_step_boundary_session",
495
+ });
496
+ await session.set({ model: old_model });
497
+ const mutations = [];
498
+ const unsubscribe = session.subscribe((mutation) => {
499
+ mutations.push(mutation);
491
500
  });
492
501
  const first_turn = await session.prompt({ query: "first" });
493
502
  await old_model_started.promise;
494
503
 
495
- await session.set({ model: new_model });
504
+ await session.set({
505
+ model: new_model,
506
+ security: { approval_mode: "always-allow" },
507
+ });
496
508
  const steer_turn_promise = session.prompt({ query: "continue" });
497
509
  assert.deepEqual(model_calls, ["old-model"]);
498
510
 
@@ -507,15 +519,126 @@ test("running session model changes apply with steer at the next Session step",
507
519
  const model_actions = messages.items.filter(
508
520
  (message) =>
509
521
  message.type === "action" &&
510
- message.title === "Session model switched from old-model to new-model",
522
+ message.title === "Session configuration updated" &&
523
+ message.description ===
524
+ "model: new-model; security.approval_mode: always-allow",
525
+ );
526
+ assert.equal(model_actions.length, 1);
527
+ assert.equal(model_actions[0].status, "completed");
528
+ assert.equal(
529
+ mutations.some(
530
+ (mutation) =>
531
+ mutation.variant === "message" &&
532
+ mutation.type === "action" &&
533
+ mutation.message.status === "completed" &&
534
+ mutation.message.title === "Session configuration updated" &&
535
+ mutation.message.description ===
536
+ "model: new-model; security.approval_mode: always-allow",
537
+ ),
538
+ true,
511
539
  );
512
- assert.deepEqual(model_actions, []);
540
+ unsubscribe();
513
541
  } finally {
514
542
  release_old_model.resolve();
515
543
  await agent.dispose();
516
544
  }
517
545
  });
518
546
 
547
+ test("running session approval mode changes stay queued until the next Session step", async () => {
548
+ const agent_path = await fs.mkdtemp(
549
+ path.join(os.tmpdir(), "downcity-session-approval-mode-boundary-"),
550
+ );
551
+ const first_provider_request_started = create_deferred();
552
+ const release_first_provider_request = create_deferred();
553
+ let provider_request_count = 0;
554
+ const model = new MockLanguageModelV3({
555
+ modelId: "approval-mode-boundary-model",
556
+ doStream: async (options) => {
557
+ const has_tools = Array.isArray(options.tools) && options.tools.length > 0;
558
+ if (!has_tools) return create_stream_text_result("Approval title");
559
+ provider_request_count += 1;
560
+ if (provider_request_count === 1) {
561
+ first_provider_request_started.resolve();
562
+ await release_first_provider_request.promise;
563
+ }
564
+ return create_stream_text_result(`approval:${provider_request_count}`);
565
+ },
566
+ });
567
+ const runtime_plugin = create_plugin({
568
+ name: "approval-mode-boundary",
569
+ title: "Approval Mode Boundary",
570
+ description: "Keeps the provider request on the tool-enabled execution path",
571
+ actions: {
572
+ ping: create_action({
573
+ description: "Ping",
574
+ execute: async () => ({ success: true, data: { ok: true } }),
575
+ }),
576
+ },
577
+ });
578
+ const agent = new Agent({
579
+ id: "approval_mode_boundary_agent",
580
+ workspace: new Workspace({ path: agent_path }),
581
+ model,
582
+ plugins: [runtime_plugin],
583
+ });
584
+
585
+ try {
586
+ const session = await agent.sessions.create({
587
+ session_id: "approval_mode_boundary_session",
588
+ });
589
+ const first_turn = await session.prompt({ query: "first" });
590
+ await first_provider_request_started.promise;
591
+
592
+ await session.set({ security: { approval_mode: "always-allow" } });
593
+ assert.deepEqual(await session.status(), {
594
+ session_id: session.id,
595
+ state: "running",
596
+ active_turn_id: first_turn.id,
597
+ security: {
598
+ approval_mode: "always-allow",
599
+ effective_approval_mode: "ask",
600
+ },
601
+ });
602
+
603
+ release_first_provider_request.resolve();
604
+ assert.equal((await first_turn.finished).success, true);
605
+ assert.deepEqual(await session.status(), {
606
+ session_id: session.id,
607
+ state: "idle",
608
+ security: {
609
+ approval_mode: "always-allow",
610
+ effective_approval_mode: "ask",
611
+ },
612
+ });
613
+
614
+ const second_turn = await session.prompt({ query: "second" });
615
+ assert.equal((await second_turn.finished).success, true);
616
+ assert.deepEqual(await session.status(), {
617
+ session_id: session.id,
618
+ state: "idle",
619
+ security: {
620
+ approval_mode: "always-allow",
621
+ effective_approval_mode: "always-allow",
622
+ },
623
+ });
624
+ const messages = await session.messages();
625
+ assert.equal(
626
+ messages.items.some(
627
+ (message) =>
628
+ message.type === "action" &&
629
+ message.status === "completed" &&
630
+ message.title === "Session configuration updated" &&
631
+ message.description === "security.approval_mode: always-allow",
632
+ ),
633
+ true,
634
+ );
635
+ } finally {
636
+ release_first_provider_request.resolve();
637
+ await agent.dispose();
638
+ await fs.rm(agent_path, { recursive: true, force: true });
639
+ }
640
+ });
641
+
519
642
  test("config remains effective when its action message cannot be persisted", async () => {
520
643
  const agent_path = await fs.mkdtemp(
521
644
  path.join(os.tmpdir(), "downcity-config-action-observability-"),
@@ -537,25 +660,36 @@ test("config remains effective when its action message cannot be persisted", asy
537
660
  });
538
661
  const agent = new Agent({
539
662
  id: "config_action_observability_agent",
540
- path: agent_path,
663
+ workspace: new Workspace({ path: agent_path }),
541
664
  model: old_model,
542
665
  });
543
666
 
544
667
  try {
545
668
  const session = await agent.sessions.create({
546
- sessionId: "config_action_observability_session",
669
+ session_id: "config_action_observability_session",
547
670
  });
548
- session.emit_action_event = async () => {
671
+ await session.set({ model: old_model });
672
+ const initial_turn = await session.prompt({ query: "initialize model" });
673
+ assert.equal((await initial_turn.finished).success, true);
674
+ model_calls.splice(0, model_calls.length);
675
+ const initial_action_count = (await session.messages()).items.filter(
676
+ (message) => message.type === "action",
677
+ ).length;
678
+
679
+ session.session_messages.persist_action_record = async () => {
549
680
  throw new Error("action store unavailable");
550
681
  };
551
682
 
552
683
  await session.set({ model: new_model });
553
684
  const turn = await session.prompt({ query: "use configured model" });
554
685
  assert.equal((await turn.finished).success, true);
555
- assert.deepEqual(model_calls, ["new", "new"]);
686
+ assert.deepEqual(model_calls, ["new"]);
556
687
 
557
688
  const messages = await session.messages();
558
- assert.equal(messages.items.some((message) => message.type === "action"), false);
689
+ assert.equal(
690
+ messages.items.filter((message) => message.type === "action").length,
691
+ initial_action_count,
692
+ );
559
693
  } finally {
560
694
  await agent.dispose();
561
695
  }
@@ -2,8 +2,8 @@
2
2
  * @file 验证 session 列表从正确目录读取持久化 title。
3
3
  *
4
4
  * 关键点(中文)
5
- * - 普通列表只读取 `.downcity/agents/<agentId>/sessions` 下的 meta。
6
- * - 归档列表只读取 `.downcity/agents/<agentId>/archived-sessions` 下的 meta。
5
+ * - 普通列表只读取 `.downcity/agents/<agent_id>/sessions` 下的 meta。
6
+ * - 归档列表只读取 `.downcity/agents/<agent_id>/archived-sessions` 下的 meta。
7
7
  * - title 允许为空;这里仅验证已由模型生成并落盘的 title 能被列表返回。
8
8
  */
9
9
 
@@ -14,7 +14,7 @@ import path from "node:path";
14
14
  import fs from "node:fs/promises";
15
15
 
16
16
  import { MockLanguageModelV3 } from "ai/test";
17
- import { Agent } from "../bin/index.js";
17
+ import { Agent, Workspace } from "../bin/index.js";
18
18
 
19
19
  function create_mock_title_model(title_text) {
20
20
  return new MockLanguageModelV3({
@@ -60,12 +60,12 @@ async function create_agent_with_titled_session(input) {
60
60
  );
61
61
  const agent = new Agent({
62
62
  id: input.agent_id,
63
- path: agent_path,
63
+ workspace: new Workspace({ path: agent_path }),
64
64
  model: create_mock_title_model(input.title),
65
65
  });
66
66
  const collection = agent.sessions;
67
67
  const session = await collection.create({
68
- sessionId: input.session_id,
68
+ session_id: input.session_id,
69
69
  });
70
70
  await session.set({ model: create_mock_title_model(input.title) });
71
71
 
@@ -94,7 +94,7 @@ test("list_sessions returns persisted title from active session metadata", async
94
94
  const meta = JSON.parse(
95
95
  await fs.readFile(
96
96
  path.join(
97
- agent.path,
97
+ agent.workspace.path,
98
98
  ".downcity",
99
99
  "agents",
100
100
  encodeURIComponent(agent.id),
@@ -108,11 +108,11 @@ test("list_sessions returns persisted title from active session metadata", async
108
108
  );
109
109
 
110
110
  assert.equal(page.total, 1);
111
- assert.equal(meta.messageCount, 1);
112
- assert.equal(meta.previewText, "Need the session list to show the generated title");
111
+ assert.equal(meta.message_count, 1);
112
+ assert.equal(meta.preview_text, "Need the session list to show the generated title");
113
113
  const history_stat = await fs.stat(
114
114
  path.join(
115
- agent.path,
115
+ agent.workspace.path,
116
116
  ".downcity",
117
117
  "agents",
118
118
  encodeURIComponent(agent.id),
@@ -125,15 +125,15 @@ test("list_sessions returns persisted title from active session metadata", async
125
125
  assert.equal(meta.historyBytes, history_stat.size);
126
126
  assert.deepEqual(
127
127
  page.items.map((item) => ({
128
- sessionId: item.sessionId,
128
+ session_id: item.session_id,
129
129
  title: item.title,
130
- messageCount: item.messageCount,
130
+ message_count: item.message_count,
131
131
  })),
132
132
  [
133
133
  {
134
- sessionId: session.id,
134
+ session_id: session.id,
135
135
  title: "列表标题",
136
- messageCount: 1,
136
+ message_count: 1,
137
137
  },
138
138
  ],
139
139
  );
@@ -151,7 +151,7 @@ test("list_sessions reflects canonical SessionMessages changes", async () => {
151
151
  first_user_text: "Initial history",
152
152
  });
153
153
  const messages_dir = path.join(
154
- agent.path,
154
+ agent.workspace.path,
155
155
  ".downcity",
156
156
  "agents",
157
157
  encodeURIComponent(agent.id),
@@ -188,11 +188,11 @@ test("list_sessions reflects canonical SessionMessages changes", async () => {
188
188
  "000000000001-000000000001.jsonl",
189
189
  ));
190
190
 
191
- assert.equal(page.items[0].messageCount, 2);
192
- assert.equal(info.messageCount, 2);
193
- assert.equal(page.items[0].previewText, "Recorder appended history");
194
- assert.equal(repaired_meta.messageCount, 2);
195
- assert.equal(repaired_meta.previewText, "Recorder appended history");
191
+ assert.equal(page.items[0].message_count, 2);
192
+ assert.equal(info.message_count, 2);
193
+ assert.equal(page.items[0].preview_text, "Recorder appended history");
194
+ assert.equal(repaired_meta.message_count, 2);
195
+ assert.equal(repaired_meta.preview_text, "Recorder appended history");
196
196
  assert.equal(repaired_meta.historyBytes, history_stat.size + segment_stat.size);
197
197
  } finally {
198
198
  await agent.dispose();
@@ -220,15 +220,15 @@ test("archive_sessions returns title from archived session metadata", async () =
220
220
  assert.equal(archived_page.total, 1);
221
221
  assert.deepEqual(
222
222
  archived_page.items.map((item) => ({
223
- sessionId: item.sessionId,
223
+ session_id: item.session_id,
224
224
  title: item.title,
225
- messageCount: item.messageCount,
225
+ message_count: item.message_count,
226
226
  })),
227
227
  [
228
228
  {
229
- sessionId: session.id,
229
+ session_id: session.id,
230
230
  title: "归档标题",
231
- messageCount: 1,
231
+ message_count: 1,
232
232
  },
233
233
  ],
234
234
  );
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @file 验证 canonical Session Message 到宿主时间线的稳定投影。
3
+ */
4
+
5
+ import assert from "node:assert/strict";
6
+ import test from "node:test";
7
+ import { to_session_message_timeline_events } from "../bin/index.js";
8
+
9
+ test("Session timeline preserves assistant text and tool order", () => {
10
+ const message = {
11
+ message_id: "assistant-1",
12
+ session_id: "session-1",
13
+ turn_id: "turn-1",
14
+ sequence: 1,
15
+ revision: 1,
16
+ visibility: "visible",
17
+ created_at: 10,
18
+ updated_at: 20,
19
+ type: "assistant",
20
+ kind: "normal",
21
+ status: "completed",
22
+ parts: [
23
+ {
24
+ part_id: "text-1",
25
+ sequence: 1,
26
+ type: "text",
27
+ text: "checking",
28
+ state: "done",
29
+ },
30
+ {
31
+ part_id: "tool-1",
32
+ sequence: 2,
33
+ type: "tool",
34
+ tool_call_id: "call-1",
35
+ tool_name: "read",
36
+ state: "completed",
37
+ input: { path: "README.md" },
38
+ output: { text: "ok" },
39
+ },
40
+ {
41
+ part_id: "text-2",
42
+ sequence: 3,
43
+ type: "text",
44
+ text: "done",
45
+ state: "done",
46
+ },
47
+ ],
48
+ };
49
+
50
+ const events = to_session_message_timeline_events(message);
51
+ assert.deepEqual(events.map((event) => event.role), [
52
+ "assistant",
53
+ "tool-call",
54
+ "tool-result",
55
+ "assistant",
56
+ ]);
57
+ assert.deepEqual(events.map((event) => event.id), [
58
+ "assistant-1:0",
59
+ "assistant-1:1",
60
+ "assistant-1:2",
61
+ "assistant-1:3",
62
+ ]);
63
+ assert.equal(events[1].tool_name, "read");
64
+ assert.match(events[2].text, /"ok"/);
65
+ });
@@ -50,7 +50,6 @@ test("open_assistant_message 透传草稿写入失败", async () => {
50
50
  await assert.rejects(
51
51
  messages.open_assistant_message({
52
52
  turn_id: "turn-1",
53
- segment_index: 1,
54
53
  }),
55
54
  /disk full/,
56
55
  );