@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
@@ -10,165 +10,163 @@
10
10
  import { Executor } from "@executor/Executor.js";
11
11
  import type { LanguageModel, Tool } from "ai";
12
12
  import {
13
- normalizeAgentModel,
13
+ normalize_agent_model,
14
14
  read_agent_model_context_window,
15
15
  type AgentModel,
16
16
  } from "@/agent/AgentModel.js";
17
- import { JsonlSessionMessageStore } from "@/session/messages/JsonlSessionMessageStore.js";
18
17
  import { SessionMessages } from "@/session/SessionMessages.js";
19
18
  import type {
20
19
  AgentSessionConfigSnapshot,
21
20
  AgentSessionForkInput,
22
21
  AgentSessionInfo,
22
+ AgentSessionStatus,
23
23
  AgentSessionSetInput,
24
24
  AgentSessionSystemBlock,
25
25
  AgentSessionSystemSnapshot,
26
26
  } from "@/types/agent/SessionTypes.js";
27
27
  import type { AgentSession } from "@/types/agent/SessionActor.js";
28
- import {
29
- getSdkAgentSessionAssistantMessagePath,
30
- getSdkAgentSessionDirPath,
31
- } from "@/session/storage/Paths.js";
32
- import { resolveSystemTimezone } from "@/session/storage/Metadata.js";
33
- import { createRuntimeSessionPort } from "@/session/storage/RuntimeSessionPort.js";
28
+ import { resolve_system_timezone } from "@/session/storage/Metadata.js";
29
+ import { create_runtime_session_port } from "@/session/storage/RuntimeSessionPort.js";
34
30
  import type { SessionPort } from "@/types/session/SessionPort.js";
31
+ import type { SessionMutationSubscriber, SessionMutationUnsubscribe } from "@/types/session/SessionMutation.js";
35
32
  import type {
36
- SessionMutationSubscriber,
37
- SessionMutationUnsubscribe,
38
- } from "@/types/session/SessionMutation.js";
39
- import type {
40
- ResolveSessionApprovalInput,
41
- SessionApproval,
42
- SessionApprovalModeSnapshot,
43
- SessionApprovalResult,
44
- SetSessionApprovalModeInput,
45
- } from "@/types/session/SessionApproval.js";
46
- import type {
47
- ListSessionMessagesInput,
48
- SessionMessagePage,
49
- } from "@/types/session/SessionMessage.js";
33
+ RespondSessionInteractionInput,
34
+ SessionApprovalMode,
35
+ SessionInteractionResult,
36
+ SessionPendingInteraction,
37
+ } from "@/types/session/SessionInteraction.js";
38
+ import type { ListSessionMessagesInput, SessionMessagePage } from "@/types/session/SessionMessage.js";
50
39
  import type { AgentSessionPromptInput } from "@/types/sdk/AgentSessionPrompt.js";
51
40
  import type { AgentSessionStopResult } from "@/types/sdk/AgentSessionStop.js";
41
+ import type { AgentSessionCompactHandle } from "@/types/sdk/AgentSessionCompact.js";
52
42
  import type { AgentSessionTurnHandle } from "@/types/sdk/AgentSessionTurn.js";
53
43
  import { SessionEventHub } from "@/session/runtime/SessionEventHub.js";
44
+ import { create_session_compact_operation } from "@/session/runtime/SessionCompactOperation.js";
45
+ import { run_session_history_compaction } from "@/session/runtime/SessionHistoryCompaction.js";
46
+ import { create_session_plugin_execution_context } from "@/session/runtime/SessionTurnContext.js";
54
47
  import { SessionState } from "@/session/SessionState.js";
55
- import { SessionTurn } from "@/session/SessionTurn.js";
48
+ import { SessionLoop } from "@/session/SessionLoop.js";
49
+ import { SessionQueue } from "@/session/SessionQueue.js";
50
+ import { SessionCommand } from "@/session/SessionCommand.js";
56
51
  import type { SessionLocalState } from "@/types/session/SessionLocalState.js";
57
- import type {
58
- AgentSessionCommand,
59
- SessionQueueCommand,
60
- } from "@/types/session/SessionQueue.js";
61
52
  import type { SessionOptions } from "@/types/session/SessionOptions.js";
62
53
  import type { AgentPluginExecutionRuntime } from "@/types/plugin/PluginRuntime.js";
63
- import { SessionApprovalBroker } from "@/session/approval/SessionApprovalBroker.js";
54
+ import { SessionInteractions } from "@/session/control/SessionInteractions.js";
55
+ import { SessionShellApprovalAdapter } from "@/session/execution/tools/SessionShellApprovalAdapter.js";
64
56
  import { DefaultSessionComposer } from "@/session/DefaultSessionComposer.js";
65
57
  import type {
66
58
  SessionComposer,
59
+ SessionComposeIdentity,
67
60
  SessionCompactionPlan,
68
61
  SessionComposeInput,
69
62
  SessionStepInput,
70
63
  } from "@/types/session/SessionComposer.js";
71
- import type { SessionRunContext } from "@/types/executor/SessionRunContext.js";
72
- import { generateId } from "@/utils/Id.js";
64
+ import type { SessionCompactHistory } from "@/types/session/SessionExecution.js";
65
+ import type { SessionTurnContext } from "@/types/executor/SessionTurnContext.js";
66
+ import { generate_id } from "@/utils/Id.js";
73
67
  import { nanoid } from "nanoid";
74
- import { buildSessionInfo } from "@/session/browse/Browse.js";
75
- import { ensureSessionTitle } from "@/session/SessionTitle.js";
76
- import { readSessionMetadata } from "@/session/storage/Metadata.js";
77
- import {
78
- has_session_instruction,
79
- read_session_instruction,
80
- write_session_instruction,
81
- } from "@/session/storage/Instruction.js";
68
+ import { build_session_info } from "@/session/browse/Browse.js";
69
+ import { ensure_session_title } from "@/session/SessionTitle.js";
82
70
  import { to_executor_history } from "@/session/messages/SessionMessageCodec.js";
83
71
  import type { SessionMessage } from "@/types/session/SessionMessage.js";
84
- import type {
85
- SessionActionRecordInputV1,
86
- SessionActionRecordV1,
87
- } from "@/executor/types/SessionRecords.js";
72
+ import type { SessionActionRecordInputV1 } from "@/executor/types/SessionRecords.js";
73
+ import type { SessionCommandOptions } from "@/types/session/SessionCommand.js";
74
+ import type { SessionStore } from "@/types/store/SessionStore.js";
88
75
 
89
76
  /**
90
77
  * SDK 本地 Session。
91
78
  */
92
79
  export class Session implements AgentSession {
93
80
  readonly id: string;
94
- readonly agentId: string;
81
+ readonly agent_id: string;
95
82
 
96
- private readonly project_root: string;
83
+ private readonly workspace_path: string;
84
+ private readonly store: SessionStore;
85
+ private readonly get_session_store: SessionOptions["get_session_store"];
97
86
  private readonly tools: Record<string, Tool>;
98
87
  private readonly logger: SessionOptions["logger"];
99
- private readonly get_managed_plugin_system_blocks: SessionOptions["getManagedPluginSystemBlocks"];
100
- private readonly ensure_configured_hook?: SessionOptions["ensureConfigured"];
88
+ private readonly get_managed_plugin_system_blocks: SessionOptions["get_managed_plugin_system_blocks"];
89
+ private readonly ensure_configured_hook?: SessionOptions["ensure_configured"];
101
90
  private readonly composer: SessionComposer;
102
- private readonly message_store: JsonlSessionMessageStore;
103
91
  private readonly session_messages: SessionMessages;
104
92
  private readonly executor: Executor;
105
93
  private readonly events: SessionEventHub;
106
- private readonly approval_broker: SessionApprovalBroker;
94
+ private readonly session_interactions: SessionInteractions;
95
+ private readonly shell_approval_adapter: SessionShellApprovalAdapter;
96
+ /** 已被 Session 接受、等待或已经在 Step 检查点提交的审批模式。 */
97
+ private configured_approval_mode: SessionApprovalMode = "ask";
107
98
  private readonly local_state: SessionLocalState;
108
- private readonly get_agent_env: SessionOptions["getAgentEnv"];
109
- private readonly get_agent_model: SessionOptions["getAgentModel"];
99
+ private readonly get_workspace_env: SessionOptions["get_workspace_env"];
100
+ private readonly get_agent_model: SessionOptions["get_agent_model"];
110
101
  private readonly get_agent_plugins: SessionOptions["get_agent_plugins"];
111
102
  private readonly get_instruction_system_blocks:
112
103
  SessionOptions["get_instruction_system_blocks"];
113
104
  private effective_instruction_system_blocks: AgentSessionSystemBlock[];
114
105
  private instruction_initialize_promise: Promise<void> | null = null;
115
- private effective_agent_env: Record<string, string>;
106
+ private effective_workspace_env: Record<string, string>;
116
107
  private effective_agent_plugins: AgentPluginExecutionRuntime;
117
108
  /** 当前 Session 首次生成后固定的完整 system snapshot。 */
118
109
  private system_snapshot_blocks: AgentSessionSystemBlock[] | null = null;
119
110
  /** 串行化 snapshot / syncshot 对 system 与 instruction.md 的修改。 */
120
111
  private system_mutation_chain: Promise<void> = Promise.resolve();
121
112
  private readonly state: SessionState;
122
- private readonly session_turn: SessionTurn;
113
+ /** 当前 Session 独享的 Command FIFO。 */
114
+ private readonly session_queue = new SessionQueue();
115
+ private readonly session_loop: SessionLoop;
123
116
  private runtime_port: SessionPort | null = null;
124
117
 
125
118
  constructor(options: SessionOptions) {
126
- this.id = String(options.sessionId || "").trim();
127
- this.agentId = String(options.agentId || "").trim();
128
- this.project_root = String(options.projectRoot || "").trim();
119
+ this.id = String(options.session_id || "").trim();
120
+ this.agent_id = String(options.agent_id || "").trim();
121
+ this.workspace_path = String(options.workspace_path || "").trim();
122
+ this.store = options.store;
123
+ this.get_session_store = options.get_session_store;
129
124
  this.tools = options.tools;
130
125
  this.logger = options.logger;
131
- this.get_agent_env = options.getAgentEnv;
132
- this.get_agent_model = options.getAgentModel;
126
+ this.get_workspace_env = options.get_workspace_env;
127
+ this.get_agent_model = options.get_agent_model;
133
128
  this.get_agent_plugins = options.get_agent_plugins;
134
129
  this.get_instruction_system_blocks = options.get_instruction_system_blocks;
135
130
  this.effective_instruction_system_blocks = options
136
131
  .instruction_system_blocks
137
132
  .map((block) => ({ ...block }));
138
- this.effective_agent_env = { ...options.getAgentEnv() };
133
+ this.effective_workspace_env = { ...options.get_workspace_env() };
139
134
  this.effective_agent_plugins = options.get_agent_plugins();
140
- this.get_managed_plugin_system_blocks = options.getManagedPluginSystemBlocks;
141
- this.ensure_configured_hook = options.ensureConfigured;
135
+ this.get_managed_plugin_system_blocks = options.get_managed_plugin_system_blocks;
136
+ this.ensure_configured_hook = options.ensure_configured;
142
137
  this.composer = options.composer || new DefaultSessionComposer();
143
138
  if (!this.id) {
144
- throw new Error("Session requires a non-empty sessionId");
139
+ throw new Error("Session requires a non-empty session_id");
145
140
  }
146
- if (!this.agentId) {
147
- throw new Error("Session requires a non-empty agentId");
141
+ if (!this.agent_id) {
142
+ throw new Error("Session requires a non-empty agent_id");
148
143
  }
149
- if (!this.project_root) {
150
- throw new Error("Session requires a non-empty project_root");
144
+ if (!this.workspace_path) {
145
+ throw new Error("Session requires a non-empty workspace_path");
151
146
  }
152
147
 
153
148
  this.events = new SessionEventHub();
154
- this.message_store = this.create_message_store();
155
149
  this.session_messages = new SessionMessages({
156
150
  session_id: this.id,
157
- store: this.message_store,
151
+ store: this.store.messages,
158
152
  publish: (mutation) => {
159
153
  this.events.publish(mutation);
160
154
  },
161
155
  });
162
- this.approval_broker = new SessionApprovalBroker({
156
+ this.session_interactions = new SessionInteractions({
163
157
  session_id: this.id,
164
158
  messages: this.session_messages,
165
159
  });
160
+ this.shell_approval_adapter = new SessionShellApprovalAdapter({
161
+ session_id: this.id,
162
+ interactions: this.session_interactions,
163
+ });
166
164
  this.local_state = this.create_local_state();
167
165
  this.executor = this.create_executor();
168
166
  this.state = new SessionState({
169
- agent_id: this.agentId,
170
- project_root: this.project_root,
167
+ agent_id: this.agent_id,
171
168
  session_id: this.id,
169
+ store: this.store,
172
170
  messages: this.session_messages,
173
171
  state: this.local_state,
174
172
  logger: this.logger,
@@ -182,16 +180,18 @@ export class Session implements AgentSession {
182
180
  this.events.publish(event);
183
181
  },
184
182
  });
185
- this.session_turn = new SessionTurn({
183
+ this.session_loop = new SessionLoop({
186
184
  session_id: this.id,
187
- project_root: this.project_root,
185
+ workspace_path: this.workspace_path,
188
186
  executor: this.executor,
187
+ compact_history: async (input) => await this.compact_history(input),
189
188
  state: this.state,
190
189
  events: this.events,
190
+ logger: this.logger,
191
191
  messages: this.session_messages,
192
- approvals: this.approval_broker,
193
- apply_command: async (command, turn_id) =>
194
- await this.apply_queue_command(command, turn_id),
192
+ interactions: this.session_interactions,
193
+ shell_approval_gateway: this.shell_approval_adapter,
194
+ queue: this.session_queue,
195
195
  });
196
196
  }
197
197
 
@@ -232,19 +232,9 @@ export class Session implements AgentSession {
232
232
  async syncshot(): Promise<void> {
233
233
  await this.run_system_mutation(async () => {
234
234
  await this.initialize_instruction();
235
- const should_persist = await has_session_instruction({
236
- project_root: this.project_root,
237
- agent_id: this.agentId,
238
- session_id: this.id,
239
- });
240
- const run_context: SessionRunContext = {
241
- sessionId: this.id,
242
- injectedUserMessages: [],
243
- deferredPersistedUserMessages: [],
244
- pendingAssistantFileParts: [],
245
- };
235
+ const should_persist = await this.store.has_instruction();
246
236
  const composed = await this.composer.compose(
247
- await this.create_compose_input(run_context, 0, true),
237
+ await this.create_compose_input(undefined, 0, true),
248
238
  );
249
239
  const next_blocks = resolve_composed_system_blocks(composed);
250
240
 
@@ -268,10 +258,50 @@ export class Session implements AgentSession {
268
258
  * 写入当前 session 默认配置。
269
259
  */
270
260
  async set(input: AgentSessionSetInput): Promise<void> {
271
- const configured = await this.state.set(input);
272
- if (configured.command) {
273
- this.session_turn.enqueue_command(configured.command);
261
+ if (!input.model && !input.security) {
262
+ throw new Error("session.set requires model or security");
263
+ }
264
+ const requested_approval_mode = input.security?.approval_mode;
265
+ if (
266
+ requested_approval_mode !== undefined &&
267
+ requested_approval_mode !== "ask" &&
268
+ requested_approval_mode !== "always-allow"
269
+ ) {
270
+ throw new Error("security.approval_mode must be ask or always-allow");
271
+ }
272
+ const model_config = input.model
273
+ ? await this.state.set_model(input.model)
274
+ : undefined;
275
+ const next_approval_mode = requested_approval_mode;
276
+ const security_changed = Boolean(
277
+ next_approval_mode && next_approval_mode !== this.configured_approval_mode,
278
+ );
279
+ if (next_approval_mode !== undefined) {
280
+ this.configured_approval_mode = next_approval_mode;
274
281
  }
282
+ if (!model_config && !security_changed) return;
283
+ const changed_fields = [
284
+ ...(model_config
285
+ ? [`model: ${String(model_config.model_label || "configured")}`]
286
+ : []),
287
+ ...(security_changed
288
+ ? [`security.approval_mode: ${String(next_approval_mode)}`]
289
+ : []),
290
+ ];
291
+ this.enqueue_command({
292
+ execute: async () => {
293
+ if (model_config) this.state.apply_model_config(model_config);
294
+ if (security_changed && next_approval_mode) {
295
+ this.shell_approval_adapter.set_effective_mode(next_approval_mode);
296
+ }
297
+ },
298
+ completion: {
299
+ type: "action",
300
+ id: `session-config:${this.id}:${Date.now()}:${generate_id()}`,
301
+ title: "Session configuration updated",
302
+ description: changed_fields.join("; "),
303
+ },
304
+ });
275
305
  }
276
306
 
277
307
  /**
@@ -279,78 +309,105 @@ export class Session implements AgentSession {
279
309
  */
280
310
  async prompt(input: AgentSessionPromptInput): Promise<AgentSessionTurnHandle> {
281
311
  await this.initialize_instruction();
282
- return await this.session_turn.prompt(input);
312
+ return await this.session_loop.prompt(input);
283
313
  }
284
314
 
285
315
  /**
286
316
  * 停止当前 turn,并取消尚未被吸收的排队 prompt。
287
317
  */
288
318
  async stop(): Promise<AgentSessionStopResult> {
289
- await this.approval_broker.expire_all();
290
- return this.session_turn.stop();
319
+ return await this.session_loop.stop();
291
320
  }
292
321
 
293
322
  /**
294
323
  * 把一次显式历史压缩加入当前 Session 的有序输入队列。
295
324
  */
296
- async compact(): Promise<void> {
297
- await this.session_turn.compact();
325
+ async compact(): Promise<AgentSessionCompactHandle> {
326
+ await this.state.ensure_runnable();
327
+ const compact_id = `compact:${this.id}:${generate_id()}`;
328
+ const operation = create_session_compact_operation({
329
+ compact_id,
330
+ run: async () => await this.session_loop.compact_history(compact_id),
331
+ log_error: async (error_message) => {
332
+ await this.logger.log("warn", "[agent] session compact command failed", {
333
+ session_id: this.id,
334
+ compact_id,
335
+ error: error_message,
336
+ });
337
+ },
338
+ publish_finish: (final_result) => {
339
+ this.events.publish({
340
+ mutation_id: nanoid(),
341
+ variant: "compact",
342
+ type: "finish",
343
+ session_id: this.id,
344
+ compact_id,
345
+ status: final_result.success ? "completed" : "failed",
346
+ compacted: final_result.compacted,
347
+ reason: final_result.reason,
348
+ created_at: Date.now(),
349
+ ...(final_result.error ? { error: final_result.error } : {}),
350
+ });
351
+ },
352
+ });
353
+ this.enqueue_command({
354
+ execute: operation.execute,
355
+ });
356
+ this.events.publish({
357
+ mutation_id: nanoid(),
358
+ variant: "compact",
359
+ type: "start",
360
+ session_id: this.id,
361
+ compact_id,
362
+ status: "queued",
363
+ created_at: Date.now(),
364
+ });
365
+ return operation.handle;
366
+ }
367
+
368
+ /** 把 Workspace env 快照加入当前 Session 的有序输入队列。 */
369
+ enqueue_workspace_env(input: {
370
+ /** 当前 Workspace env 修改的稳定标识。 */
371
+ command_id: string;
372
+ /** 下一 Session Step 使用的完整环境变量快照。 */
373
+ env: Record<string, string>;
374
+ }): void {
375
+ this.enqueue_command({
376
+ execute: async () => {
377
+ this.effective_workspace_env = { ...input.env };
378
+ },
379
+ completion: {
380
+ type: "action",
381
+ id: `agent-env:${this.id}:${input.command_id}`,
382
+ title: "Workspace environment updated",
383
+ },
384
+ });
298
385
  }
299
386
 
300
- /**
301
- * 把 Agent configured state command 加入当前 Session 的统一输入队列。
302
- */
303
- enqueue_agent_command(command: AgentSessionCommand): void {
304
- if (command.type === "env") {
305
- this.session_turn.enqueue_command({
306
- type: "agent_env",
307
- command_id: command.command_id,
308
- env: command.env,
309
- });
310
- return;
311
- }
312
- this.session_turn.enqueue_command({
313
- type: "agent_plugins",
314
- command_id: command.command_id,
315
- title: command.title,
316
- plugins: command.plugins,
387
+ /** 把 Agent Plugin 执行视图加入当前 Session 的有序输入队列。 */
388
+ enqueue_agent_plugins(input: {
389
+ /** 当前 Plugin 修改的稳定标识。 */
390
+ command_id: string;
391
+ /** 当前 Plugin 修改的用户可读标题。 */
392
+ title: string;
393
+ /** 下一 Session Step 使用的 Plugin 执行视图。 */
394
+ plugins: AgentPluginExecutionRuntime;
395
+ }): void {
396
+ this.enqueue_command({
397
+ execute: async () => {
398
+ this.effective_agent_plugins = input.plugins;
399
+ },
400
+ completion: {
401
+ type: "action",
402
+ id: `agent-plugins:${this.id}:${input.command_id}`,
403
+ title: input.title,
404
+ },
317
405
  });
318
406
  }
319
407
 
320
- /** Step 检查点提交明确的 Session/Agent 状态命令。 */
321
- private async apply_queue_command(
322
- command: Exclude<SessionQueueCommand, { type: "compact" }>,
323
- turn_id: string,
324
- ): Promise<void> {
325
- if (command.type === "session_model") {
326
- await this.state.apply_model_command(command);
327
- if (command.action_id && command.action_title) {
328
- await this.emit_config_action_event({
329
- id: command.action_id,
330
- title: command.action_title,
331
- state: "completed",
332
- turnId: turn_id,
333
- });
334
- }
335
- return;
336
- }
337
- if (command.type === "agent_env") {
338
- this.effective_agent_env = { ...command.env };
339
- await this.emit_config_action_event({
340
- id: `agent-env:${this.id}:${command.command_id}`,
341
- title: "Agent environment updated",
342
- state: "completed",
343
- turnId: turn_id,
344
- });
345
- return;
346
- }
347
- this.effective_agent_plugins = command.plugins;
348
- await this.emit_config_action_event({
349
- id: `agent-plugins:${this.id}:${command.command_id}`,
350
- title: command.title,
351
- state: "completed",
352
- turnId: turn_id,
353
- });
408
+ /** 创建一个具体 Session Command 对象并加入当前 FIFO。 */
409
+ private enqueue_command(options: SessionCommandOptions): void {
410
+ this.session_queue.enqueue_command(new SessionCommand(options));
354
411
  }
355
412
 
356
413
  /**
@@ -362,24 +419,28 @@ export class Session implements AgentSession {
362
419
  return this.events.subscribe(subscriber);
363
420
  }
364
421
 
365
- /** 列出当前 Session pending 工具审批。 */
366
- async approvals(): Promise<SessionApproval[]> {
367
- return this.approval_broker.list();
422
+ /** 列出当前 Session 正在等待用户响应的 Interaction。 */
423
+ async interactions(): Promise<SessionPendingInteraction[]> {
424
+ return this.session_interactions.list();
368
425
  }
369
426
 
370
- /** 读取当前 Session 的工具审批模式。 */
371
- async approval_mode(): Promise<SessionApprovalModeSnapshot> {
372
- return this.approval_broker.get_mode();
373
- }
374
-
375
- /** 更新当前 Session 的工具审批模式。 */
376
- async set_approval_mode(input: SetSessionApprovalModeInput): Promise<SessionApprovalModeSnapshot> {
377
- return this.approval_broker.set_mode(input.mode);
427
+ /** 读取当前 Session 的运行与安全状态。 */
428
+ async status(): Promise<AgentSessionStatus> {
429
+ const active_turn_id = this.session_loop.current_turn_id();
430
+ return {
431
+ session_id: this.id,
432
+ state: active_turn_id || this.executor.is_executing() ? "running" : "idle",
433
+ ...(active_turn_id ? { active_turn_id } : {}),
434
+ security: {
435
+ approval_mode: this.configured_approval_mode,
436
+ effective_approval_mode: this.shell_approval_adapter.get_effective_mode(),
437
+ },
438
+ };
378
439
  }
379
440
 
380
- /** 处理当前 Session 的 pending 工具审批。 */
381
- async resolve_approval(input: ResolveSessionApprovalInput): Promise<SessionApprovalResult> {
382
- return await this.approval_broker.resolve(input);
441
+ /** 提交当前 Session 的 Interaction 用户响应。 */
442
+ async respond(input: RespondSessionInteractionInput): Promise<SessionInteractionResult> {
443
+ return await this.session_interactions.respond(input);
383
444
  }
384
445
 
385
446
  /**
@@ -413,30 +474,25 @@ export class Session implements AgentSession {
413
474
  */
414
475
  async get_info(): Promise<AgentSessionInfo> {
415
476
  const [metadata, snapshot] = await Promise.all([
416
- readSessionMetadata({
417
- projectRoot: this.project_root,
418
- agentId: this.agentId,
419
- sessionId: this.id,
420
- }),
477
+ this.store.read_metadata(),
421
478
  this.session_messages.context_snapshot(),
422
479
  ]);
423
480
  const records = to_executor_history(this.id, snapshot);
424
481
  const metadata_with_title = metadata.title
425
482
  ? metadata
426
- : await ensureSessionTitle({
427
- projectRoot: this.project_root,
428
- agentId: this.agentId,
429
- sessionId: this.id,
483
+ : await ensure_session_title({
484
+ session_id: this.id,
485
+ store: this.store,
430
486
  messages: records,
431
487
  logger: this.logger,
432
488
  });
433
- return buildSessionInfo({
434
- projectRoot: this.project_root,
435
- agentId: this.agentId,
436
- sessionId: this.id,
489
+ return build_session_info({
490
+ project_root: this.workspace_path,
491
+ agent_id: this.agent_id,
492
+ session_id: this.id,
437
493
  metadata: metadata_with_title,
438
494
  messages: records,
439
- executing: this.isExecuting(),
495
+ executing: this.is_executing(),
440
496
  });
441
497
  }
442
498
 
@@ -455,12 +511,12 @@ export class Session implements AgentSession {
455
511
  const composed = await this.compose_for_view();
456
512
  const blocks = resolve_composed_system_blocks(composed);
457
513
  return {
458
- sessionId: this.id,
514
+ session_id: this.id,
459
515
  session: {
460
- agentId: this.agentId,
461
- sessionId: this.id,
462
- projectRoot: this.project_root,
463
- createdAt: new Date(this.state.get_created_at()).toISOString(),
516
+ agent_id: this.agent_id,
517
+ session_id: this.id,
518
+ project_root: this.workspace_path,
519
+ created_at: new Date(this.state.get_created_at()).toISOString(),
464
520
  timezone: this.state.get_timezone(),
465
521
  },
466
522
  blocks,
@@ -470,8 +526,8 @@ export class Session implements AgentSession {
470
526
  /**
471
527
  * 返回当前 session 是否正在执行。
472
528
  */
473
- isExecuting(): boolean {
474
- return this.session_turn.is_active() || this.executor.isExecuting();
529
+ is_executing(): boolean {
530
+ return this.session_loop.is_active() || this.executor.is_executing();
475
531
  }
476
532
 
477
533
  /**
@@ -480,7 +536,7 @@ export class Session implements AgentSession {
480
536
  async fork(input?: AgentSessionForkInput | string): Promise<this> {
481
537
  const message_id = typeof input === "string"
482
538
  ? String(input || "").trim() || undefined
483
- : String(input?.messageId || "").trim() || undefined;
539
+ : String(input?.message_id || "").trim() || undefined;
484
540
  const messages = await this.session_messages.list_history_messages();
485
541
  const fork_messages = message_id
486
542
  ? this.resolve_fork_messages(messages, message_id)
@@ -499,10 +555,8 @@ export class Session implements AgentSession {
499
555
  await forked.initialize();
500
556
  const session_config = this.state.get_config();
501
557
  if (session_config.model) {
502
- await forked.state.set(
503
- { model: session_config.model },
504
- { emit_action: false },
505
- );
558
+ const forked_config = await forked.state.set_model(session_config.model);
559
+ forked.state.apply_model_config(forked_config);
506
560
  }
507
561
  await forked.session_messages.import_messages(fork_messages);
508
562
  await this.emit_action_event({
@@ -533,7 +587,7 @@ export class Session implements AgentSession {
533
587
  );
534
588
  if (target_index < 0) {
535
589
  throw new Error(
536
- `Cannot fork session "${this.id}": messageId "${message_id}" not found.`,
590
+ `Cannot fork session "${this.id}": message_id "${message_id}" not found.`,
537
591
  );
538
592
  }
539
593
  return messages.slice(0, target_index + 1);
@@ -542,12 +596,12 @@ export class Session implements AgentSession {
542
596
  /**
543
597
  * 返回供受托管 plugin 使用的 session 端口。
544
598
  */
545
- getRuntimePort(): SessionPort {
599
+ get_runtime_port(): SessionPort {
546
600
  if (this.runtime_port) return this.runtime_port;
547
- this.runtime_port = createRuntimeSessionPort({
548
- sessionId: this.id,
549
- getModel: () => this.get_model(),
550
- getExecutor: () => this.executor.getExecutor(),
601
+ this.runtime_port = create_runtime_session_port({
602
+ session_id: this.id,
603
+ get_model: () => this.get_model(),
604
+ get_executor: () => this.executor,
551
605
  prompt: async (input) => await this.prompt(input),
552
606
  stop: async () => await this.stop(),
553
607
  subscribe: (subscriber) => this.subscribe(subscriber),
@@ -562,14 +616,14 @@ export class Session implements AgentSession {
562
616
  append_assistant_message: async (message_params) => {
563
617
  const appended = await this.session_messages.append_external_assistant_message({
564
618
  message: message_params.message,
565
- fallback_text: message_params.fallbackText,
619
+ fallback_text: message_params.fallback_text,
566
620
  });
567
621
  if (appended) await this.state.touch_metadata();
568
622
  },
569
- isExecuting: () => this.isExecuting(),
623
+ is_executing: () => this.is_executing(),
570
624
  context: async () => await this.session_messages.context_snapshot(),
571
- ensureReadyForExecution: async () => {
572
- await this.ensureReadyForExecution();
625
+ ensure_ready_for_execution: async () => {
626
+ await this.ensure_ready_for_execution();
573
627
  },
574
628
  });
575
629
  return this.runtime_port;
@@ -578,27 +632,29 @@ export class Session implements AgentSession {
578
632
  /**
579
633
  * 在执行前确保 session 已完成初始化与宿主装配。
580
634
  */
581
- async ensureReadyForExecution(): Promise<void> {
635
+ async ensure_ready_for_execution(): Promise<void> {
582
636
  await this.initialize_instruction();
583
637
  await this.state.ensure_ready_for_execution();
584
638
  }
585
639
 
586
640
  private create_fork_session(session_id: string): this {
587
641
  return this.create_child_session({
588
- agentId: this.agentId,
589
- projectRoot: this.project_root,
590
- sessionId: session_id,
642
+ agent_id: this.agent_id,
643
+ workspace_path: this.workspace_path,
644
+ store: this.get_session_store(session_id),
645
+ get_session_store: this.get_session_store,
646
+ session_id: session_id,
591
647
  tools: this.tools,
592
648
  logger: this.logger,
593
649
  instruction_system_blocks: this.effective_instruction_system_blocks.map(
594
650
  (block) => ({ ...block }),
595
651
  ),
596
652
  get_instruction_system_blocks: this.get_instruction_system_blocks,
597
- getAgentEnv: this.get_agent_env,
653
+ get_workspace_env: this.get_workspace_env,
598
654
  get_agent_plugins: this.get_agent_plugins,
599
- getManagedPluginSystemBlocks: this.get_managed_plugin_system_blocks,
600
- ensureConfigured: this.ensure_configured_hook,
601
- getAgentModel: this.get_agent_model,
655
+ get_managed_plugin_system_blocks: this.get_managed_plugin_system_blocks,
656
+ ensure_configured: this.ensure_configured_hook,
657
+ get_agent_model: this.get_agent_model,
602
658
  composer: this.composer,
603
659
  });
604
660
  }
@@ -611,21 +667,17 @@ export class Session implements AgentSession {
611
667
  * - 子类仍可覆盖该方法,接管更特殊的子会话创建逻辑。
612
668
  */
613
669
  protected create_child_session(options: SessionOptions): this {
614
- const SessionClass = this.constructor as new (
670
+ const session_class = this.constructor as new (
615
671
  options: SessionOptions,
616
672
  ) => Session;
617
- return new SessionClass(options) as this;
673
+ return new session_class(options) as this;
618
674
  }
619
675
 
620
676
  /** 恢复显式固化的完整 system snapshot;文件不存在时等待首次生成。 */
621
677
  private async initialize_instruction(): Promise<void> {
622
678
  if (!this.instruction_initialize_promise) {
623
679
  this.instruction_initialize_promise = (async () => {
624
- const persisted_instruction = await read_session_instruction({
625
- project_root: this.project_root,
626
- agent_id: this.agentId,
627
- session_id: this.id,
628
- });
680
+ const persisted_instruction = await this.store.read_instruction();
629
681
  if (persisted_instruction === null) return;
630
682
 
631
683
  const instruction = persisted_instruction.trim();
@@ -654,30 +706,12 @@ export class Session implements AgentSession {
654
706
  await this.instruction_initialize_promise;
655
707
  }
656
708
 
657
- private create_message_store(): JsonlSessionMessageStore {
658
- const session_dir_path = getSdkAgentSessionDirPath(
659
- this.project_root,
660
- this.agentId,
661
- this.id,
662
- );
663
- const messages_dir_path = `${session_dir_path}/messages`;
664
- return new JsonlSessionMessageStore({
665
- session_id: this.id,
666
- file_path: `${messages_dir_path}/active.jsonl`,
667
- assistant_message_file_path: getSdkAgentSessionAssistantMessagePath(
668
- this.project_root,
669
- this.agentId,
670
- this.id,
671
- ),
672
- });
673
- }
674
-
675
709
  private create_local_state(): SessionLocalState {
676
710
  return {
677
711
  session_config: {},
678
712
  effective_session_config: {},
679
713
  created_at: Date.now(),
680
- timezone: resolveSystemTimezone(),
714
+ timezone: resolve_system_timezone(),
681
715
  initialize_promise: null,
682
716
  ensure_configured_promise: null,
683
717
  };
@@ -686,13 +720,12 @@ export class Session implements AgentSession {
686
720
  /** 创建只依赖统一 Composer 的 Turn Executor。 */
687
721
  private create_executor(): Executor {
688
722
  return new Executor({
689
- sessionId: this.id,
723
+ session_id: this.id,
690
724
  composer: this.composer,
691
- get_compose_input: async (run_context, retry_count) =>
692
- await this.create_compose_input(run_context, retry_count),
693
- commit_compaction: async (plan, run_context) =>
694
- await this.commit_compaction_plan(plan, run_context),
695
- getModel: () => this.get_model(),
725
+ get_compose_input: async (turn_context, retry_count) =>
726
+ await this.create_compose_input(turn_context, retry_count),
727
+ compact_history: async (input) => await this.compact_history(input),
728
+ get_model: () => this.get_model(),
696
729
  logger: this.logger,
697
730
  get_plugins: () => this.effective_agent_plugins,
698
731
  apply_system_snapshot: (input) => this.apply_system_snapshot(input),
@@ -701,32 +734,46 @@ export class Session implements AgentSession {
701
734
 
702
735
  /** 为 Composer 创建当前 Step 的只读 Session 快照。 */
703
736
  private async create_compose_input(
704
- run_context: SessionRunContext,
737
+ turn_context: SessionTurnContext | undefined,
705
738
  retry_count: number,
706
739
  refresh_system = false,
707
740
  ): Promise<SessionComposeInput> {
708
741
  const instruction_system_blocks = refresh_system
709
742
  ? this.get_instruction_system_blocks().map((block) => ({ ...block }))
710
743
  : this.effective_instruction_system_blocks.map((block) => ({ ...block }));
744
+ // 关键点(中文):Plugin system 本身参与 Compose,必须先让它看到当前检查点
745
+ // 已确定的 env 与 instruction;Executor 会在 Compose 返回后提交最终 Step 快照。
746
+ turn_context?.step.commit({
747
+ workspace_env: this.effective_workspace_env,
748
+ agent_systems: instruction_system_blocks.map((block) => block.content),
749
+ });
750
+ const plugin_execution_context =
751
+ turn_context?.step.plugin_execution_context() ||
752
+ create_session_plugin_execution_context({
753
+ session_id: this.id,
754
+ project_root: this.workspace_path,
755
+ workspace_env: this.effective_workspace_env,
756
+ agent_systems: this.effective_instruction_system_blocks.map(
757
+ (block) => block.content,
758
+ ),
759
+ });
711
760
  const plugin_system_blocks = this.system_snapshot_blocks && !refresh_system
712
761
  ? []
713
762
  : refresh_system
714
- ? await this.get_agent_plugins().systemBlocks(run_context)
715
- : run_context.agentPlugins
716
- ? await run_context.agentPlugins.systemBlocks(run_context)
717
- : await this.effective_agent_plugins.systemBlocks(run_context);
763
+ ? await this.get_agent_plugins().system_blocks(plugin_execution_context)
764
+ : turn_context?.step.plugins
765
+ ? await turn_context.step.plugins.system_blocks(
766
+ plugin_execution_context,
767
+ )
768
+ : await this.effective_agent_plugins.system_blocks(
769
+ plugin_execution_context,
770
+ );
718
771
  return {
719
- session: {
720
- agent_id: this.agentId,
721
- session_id: this.id,
722
- project_root: this.project_root,
723
- created_at: this.local_state.created_at,
724
- timezone: this.local_state.timezone,
725
- },
772
+ session: this.create_compose_identity(),
726
773
  state: {
727
774
  model: this.get_model(),
728
775
  model_context_window: this.get_model_context_window(),
729
- env: Object.freeze({ ...this.effective_agent_env }),
776
+ env: Object.freeze({ ...this.effective_workspace_env }),
730
777
  systems: Object.freeze(
731
778
  instruction_system_blocks.map((block) => block.content),
732
779
  ),
@@ -740,22 +787,53 @@ export class Session implements AgentSession {
740
787
  },
741
788
  history: await this.session_messages.context_snapshot(),
742
789
  turn: {
743
- ...(run_context.turnId ? { turn_id: run_context.turnId } : {}),
790
+ ...(turn_context
791
+ ? { turn_id: turn_context.session.turn_id }
792
+ : {}),
744
793
  retry_count,
745
794
  },
746
795
  };
747
796
  }
748
797
 
798
+ /** 创建 Composer 共用的稳定 Session 身份快照。 */
799
+ private create_compose_identity(): SessionComposeIdentity {
800
+ return {
801
+ agent_id: this.agent_id,
802
+ session_id: this.id,
803
+ project_root: this.workspace_path,
804
+ created_at: this.local_state.created_at,
805
+ timezone: this.local_state.timezone,
806
+ };
807
+ }
808
+
809
+ /** 生成并提交 canonical 历史压缩;该职责不进入 Executor。 */
810
+ private async compact_history(
811
+ input: Parameters<SessionCompactHistory>[0],
812
+ ): ReturnType<SessionCompactHistory> {
813
+ return await run_session_history_compaction({
814
+ turn_id: input.turn_id,
815
+ create_plan: async () => await this.composer.compact({
816
+ session: this.create_compose_identity(),
817
+ model: this.get_model(),
818
+ history: await this.session_messages.context_snapshot(),
819
+ }),
820
+ commit_plan: async (plan) => {
821
+ await this.commit_compaction_plan(plan, input.turn_id);
822
+ },
823
+ log_error: async (error_message) => {
824
+ await this.logger.log("warn", "[agent] session history compaction failed", {
825
+ session_id: this.id,
826
+ ...(input.turn_id ? { turn_id: input.turn_id } : {}),
827
+ error: error_message,
828
+ });
829
+ },
830
+ });
831
+ }
832
+
749
833
  /** 使用统一 Composer 生成只读 system/history 查询结果。 */
750
834
  private async compose_for_view(): Promise<SessionStepInput> {
751
- const run_context: SessionRunContext = {
752
- sessionId: this.id,
753
- injectedUserMessages: [],
754
- deferredPersistedUserMessages: [],
755
- pendingAssistantFileParts: [],
756
- };
757
835
  const composed = await this.composer.compose(
758
- await this.create_compose_input(run_context, 0),
836
+ await this.create_compose_input(undefined, 0),
759
837
  );
760
838
  return this.apply_system_snapshot(composed);
761
839
  }
@@ -789,25 +867,24 @@ export class Session implements AgentSession {
789
867
  private async write_system_snapshot(
790
868
  blocks: readonly AgentSessionSystemBlock[],
791
869
  ): Promise<void> {
792
- await write_session_instruction({
793
- project_root: this.project_root,
794
- agent_id: this.agentId,
795
- session_id: this.id,
796
- instruction: blocks.map((block) => block.content).join("\n\n"),
797
- });
870
+ await this.store.write_instruction(
871
+ blocks.map((block) => block.content).join("\n\n"),
872
+ );
798
873
  }
799
874
 
800
875
  /** 提交 Composer 生成的 Segment 压缩计划。 */
801
876
  private async commit_compaction_plan(
802
877
  plan: SessionCompactionPlan,
803
- run_context: SessionRunContext,
878
+ turn_id?: string,
804
879
  ): Promise<void> {
805
- const action_id = `compacting:${this.id}:${generateId()}`;
880
+ const action_id = `compacting:${this.id}:${generate_id()}`;
806
881
  await this.emit_action_event({
807
882
  id: action_id,
808
883
  title: "Compacting session messages",
809
884
  state: "running",
810
- ...(run_context.turnId ? { turnId: run_context.turnId } : {}),
885
+ ...(turn_id
886
+ ? { turn_id }
887
+ : {}),
811
888
  });
812
889
  try {
813
890
  await this.session_messages.compact_active({
@@ -821,7 +898,9 @@ export class Session implements AgentSession {
821
898
  ? `Closed Active through Message ${plan.boundary_message_id} with deterministic fallback Summary.`
822
899
  : `Closed Active through Message ${plan.boundary_message_id}.`,
823
900
  state: "completed",
824
- ...(run_context.turnId ? { turnId: run_context.turnId } : {}),
901
+ ...(turn_id
902
+ ? { turn_id }
903
+ : {}),
825
904
  });
826
905
  await this.state.touch_metadata();
827
906
  } catch (error) {
@@ -830,7 +909,9 @@ export class Session implements AgentSession {
830
909
  title: "Session messages compact failed",
831
910
  description: error instanceof Error ? error.message : String(error),
832
911
  state: "failed",
833
- ...(run_context.turnId ? { turnId: run_context.turnId } : {}),
912
+ ...(turn_id
913
+ ? { turn_id }
914
+ : {}),
834
915
  });
835
916
  throw error;
836
917
  }
@@ -843,7 +924,7 @@ export class Session implements AgentSession {
843
924
  */
844
925
  get_model(): LanguageModel | undefined {
845
926
  const model = this.get_selected_model();
846
- return model ? normalizeAgentModel(model) : undefined;
927
+ return model ? normalize_agent_model(model) : undefined;
847
928
  }
848
929
 
849
930
  /** 按 Session 优先、Agent 兜底规则读取当前配置的 AgentModel。 */
@@ -877,40 +958,13 @@ export class Session implements AgentSession {
877
958
  metadata: {
878
959
  v: 1,
879
960
  ts: Date.now(),
880
- sessionId: this.id,
881
- ...(input.turnId ? { turnId: input.turnId } : {}),
961
+ session_id: this.id,
962
+ ...(input.turn_id ? { turn_id: input.turn_id } : {}),
882
963
  },
883
964
  });
884
965
  await this.state.touch_metadata();
885
966
  }
886
967
 
887
- /** 尽力记录配置 Action,不让 timeline 故障反向改变已提交配置。 */
888
- private async emit_config_action_event(
889
- input: SessionActionRecordInputV1 | SessionActionRecordV1,
890
- ): Promise<boolean> {
891
- try {
892
- await this.emit_action_event({
893
- id: input.id,
894
- title: input.title,
895
- description: input.description,
896
- state: input.state,
897
- turnId: "turnId" in input ? input.turnId : input.metadata?.turnId,
898
- });
899
- return true;
900
- } catch (error) {
901
- try {
902
- await this.logger.log("warn", "[agent] config action persistence failed", {
903
- sessionId: this.id,
904
- actionId: String(input.id || ""),
905
- error: error instanceof Error ? error.message : String(error),
906
- });
907
- } catch {
908
- // 配置已提交,日志失败也不能反向改变 effective state。
909
- }
910
- return false;
911
- }
912
- }
913
-
914
968
  }
915
969
 
916
970
  /** 把自定义 Composer 的 system content 转为可展示文本。 */