@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
@@ -7,103 +7,116 @@
7
7
  * - 内部使用 `SessionMessages` 统一管理 Active、Segment 与流式 Assistant 草稿。
8
8
  */
9
9
  import { Executor } from "../executor/Executor.js";
10
- import { normalizeAgentModel, read_agent_model_context_window, } from "../agent/AgentModel.js";
11
- import { JsonlSessionMessageStore } from "../session/messages/JsonlSessionMessageStore.js";
10
+ import { normalize_agent_model, read_agent_model_context_window, } from "../agent/AgentModel.js";
12
11
  import { SessionMessages } from "../session/SessionMessages.js";
13
- import { getSdkAgentSessionAssistantMessagePath, getSdkAgentSessionDirPath, } from "../session/storage/Paths.js";
14
- import { resolveSystemTimezone } from "../session/storage/Metadata.js";
15
- import { createRuntimeSessionPort } from "../session/storage/RuntimeSessionPort.js";
12
+ import { resolve_system_timezone } from "../session/storage/Metadata.js";
13
+ import { create_runtime_session_port } from "../session/storage/RuntimeSessionPort.js";
16
14
  import { SessionEventHub } from "../session/runtime/SessionEventHub.js";
15
+ import { create_session_compact_operation } from "../session/runtime/SessionCompactOperation.js";
16
+ import { run_session_history_compaction } from "../session/runtime/SessionHistoryCompaction.js";
17
+ import { create_session_plugin_execution_context } from "../session/runtime/SessionTurnContext.js";
17
18
  import { SessionState } from "../session/SessionState.js";
18
- import { SessionTurn } from "../session/SessionTurn.js";
19
- import { SessionApprovalBroker } from "../session/approval/SessionApprovalBroker.js";
19
+ import { SessionLoop } from "../session/SessionLoop.js";
20
+ import { SessionQueue } from "../session/SessionQueue.js";
21
+ import { SessionCommand } from "../session/SessionCommand.js";
22
+ import { SessionInteractions } from "../session/control/SessionInteractions.js";
23
+ import { SessionShellApprovalAdapter } from "../session/execution/tools/SessionShellApprovalAdapter.js";
20
24
  import { DefaultSessionComposer } from "../session/DefaultSessionComposer.js";
21
- import { generateId } from "../utils/Id.js";
25
+ import { generate_id } from "../utils/Id.js";
22
26
  import { nanoid } from "nanoid";
23
- import { buildSessionInfo } from "../session/browse/Browse.js";
24
- import { ensureSessionTitle } from "../session/SessionTitle.js";
25
- import { readSessionMetadata } from "../session/storage/Metadata.js";
26
- import { has_session_instruction, read_session_instruction, write_session_instruction, } from "../session/storage/Instruction.js";
27
+ import { build_session_info } from "../session/browse/Browse.js";
28
+ import { ensure_session_title } from "../session/SessionTitle.js";
27
29
  import { to_executor_history } from "../session/messages/SessionMessageCodec.js";
28
30
  /**
29
31
  * SDK 本地 Session。
30
32
  */
31
33
  export class Session {
32
34
  id;
33
- agentId;
34
- project_root;
35
+ agent_id;
36
+ workspace_path;
37
+ store;
38
+ get_session_store;
35
39
  tools;
36
40
  logger;
37
41
  get_managed_plugin_system_blocks;
38
42
  ensure_configured_hook;
39
43
  composer;
40
- message_store;
41
44
  session_messages;
42
45
  executor;
43
46
  events;
44
- approval_broker;
47
+ session_interactions;
48
+ shell_approval_adapter;
49
+ /** 已被 Session 接受、等待或已经在 Step 检查点提交的审批模式。 */
50
+ configured_approval_mode = "ask";
45
51
  local_state;
46
- get_agent_env;
52
+ get_workspace_env;
47
53
  get_agent_model;
48
54
  get_agent_plugins;
49
55
  get_instruction_system_blocks;
50
56
  effective_instruction_system_blocks;
51
57
  instruction_initialize_promise = null;
52
- effective_agent_env;
58
+ effective_workspace_env;
53
59
  effective_agent_plugins;
54
60
  /** 当前 Session 首次生成后固定的完整 system snapshot。 */
55
61
  system_snapshot_blocks = null;
56
62
  /** 串行化 snapshot / syncshot 对 system 与 instruction.md 的修改。 */
57
63
  system_mutation_chain = Promise.resolve();
58
64
  state;
59
- session_turn;
65
+ /** 当前 Session 独享的 Command FIFO。 */
66
+ session_queue = new SessionQueue();
67
+ session_loop;
60
68
  runtime_port = null;
61
69
  constructor(options) {
62
- this.id = String(options.sessionId || "").trim();
63
- this.agentId = String(options.agentId || "").trim();
64
- this.project_root = String(options.projectRoot || "").trim();
70
+ this.id = String(options.session_id || "").trim();
71
+ this.agent_id = String(options.agent_id || "").trim();
72
+ this.workspace_path = String(options.workspace_path || "").trim();
73
+ this.store = options.store;
74
+ this.get_session_store = options.get_session_store;
65
75
  this.tools = options.tools;
66
76
  this.logger = options.logger;
67
- this.get_agent_env = options.getAgentEnv;
68
- this.get_agent_model = options.getAgentModel;
77
+ this.get_workspace_env = options.get_workspace_env;
78
+ this.get_agent_model = options.get_agent_model;
69
79
  this.get_agent_plugins = options.get_agent_plugins;
70
80
  this.get_instruction_system_blocks = options.get_instruction_system_blocks;
71
81
  this.effective_instruction_system_blocks = options
72
82
  .instruction_system_blocks
73
83
  .map((block) => ({ ...block }));
74
- this.effective_agent_env = { ...options.getAgentEnv() };
84
+ this.effective_workspace_env = { ...options.get_workspace_env() };
75
85
  this.effective_agent_plugins = options.get_agent_plugins();
76
- this.get_managed_plugin_system_blocks = options.getManagedPluginSystemBlocks;
77
- this.ensure_configured_hook = options.ensureConfigured;
86
+ this.get_managed_plugin_system_blocks = options.get_managed_plugin_system_blocks;
87
+ this.ensure_configured_hook = options.ensure_configured;
78
88
  this.composer = options.composer || new DefaultSessionComposer();
79
89
  if (!this.id) {
80
- throw new Error("Session requires a non-empty sessionId");
90
+ throw new Error("Session requires a non-empty session_id");
81
91
  }
82
- if (!this.agentId) {
83
- throw new Error("Session requires a non-empty agentId");
92
+ if (!this.agent_id) {
93
+ throw new Error("Session requires a non-empty agent_id");
84
94
  }
85
- if (!this.project_root) {
86
- throw new Error("Session requires a non-empty project_root");
95
+ if (!this.workspace_path) {
96
+ throw new Error("Session requires a non-empty workspace_path");
87
97
  }
88
98
  this.events = new SessionEventHub();
89
- this.message_store = this.create_message_store();
90
99
  this.session_messages = new SessionMessages({
91
100
  session_id: this.id,
92
- store: this.message_store,
101
+ store: this.store.messages,
93
102
  publish: (mutation) => {
94
103
  this.events.publish(mutation);
95
104
  },
96
105
  });
97
- this.approval_broker = new SessionApprovalBroker({
106
+ this.session_interactions = new SessionInteractions({
98
107
  session_id: this.id,
99
108
  messages: this.session_messages,
100
109
  });
110
+ this.shell_approval_adapter = new SessionShellApprovalAdapter({
111
+ session_id: this.id,
112
+ interactions: this.session_interactions,
113
+ });
101
114
  this.local_state = this.create_local_state();
102
115
  this.executor = this.create_executor();
103
116
  this.state = new SessionState({
104
- agent_id: this.agentId,
105
- project_root: this.project_root,
117
+ agent_id: this.agent_id,
106
118
  session_id: this.id,
119
+ store: this.store,
107
120
  messages: this.session_messages,
108
121
  state: this.local_state,
109
122
  logger: this.logger,
@@ -117,15 +130,18 @@ export class Session {
117
130
  this.events.publish(event);
118
131
  },
119
132
  });
120
- this.session_turn = new SessionTurn({
133
+ this.session_loop = new SessionLoop({
121
134
  session_id: this.id,
122
- project_root: this.project_root,
135
+ workspace_path: this.workspace_path,
123
136
  executor: this.executor,
137
+ compact_history: async (input) => await this.compact_history(input),
124
138
  state: this.state,
125
139
  events: this.events,
140
+ logger: this.logger,
126
141
  messages: this.session_messages,
127
- approvals: this.approval_broker,
128
- apply_command: async (command, turn_id) => await this.apply_queue_command(command, turn_id),
142
+ interactions: this.session_interactions,
143
+ shell_approval_gateway: this.shell_approval_adapter,
144
+ queue: this.session_queue,
129
145
  });
130
146
  }
131
147
  /**
@@ -163,18 +179,8 @@ export class Session {
163
179
  async syncshot() {
164
180
  await this.run_system_mutation(async () => {
165
181
  await this.initialize_instruction();
166
- const should_persist = await has_session_instruction({
167
- project_root: this.project_root,
168
- agent_id: this.agentId,
169
- session_id: this.id,
170
- });
171
- const run_context = {
172
- sessionId: this.id,
173
- injectedUserMessages: [],
174
- deferredPersistedUserMessages: [],
175
- pendingAssistantFileParts: [],
176
- };
177
- const composed = await this.composer.compose(await this.create_compose_input(run_context, 0, true));
182
+ const should_persist = await this.store.has_instruction();
183
+ const composed = await this.composer.compose(await this.create_compose_input(undefined, 0, true));
178
184
  const next_blocks = resolve_composed_system_blocks(composed);
179
185
  if (should_persist) {
180
186
  await this.write_system_snapshot(next_blocks);
@@ -194,103 +200,163 @@ export class Session {
194
200
  * 写入当前 session 默认配置。
195
201
  */
196
202
  async set(input) {
197
- const configured = await this.state.set(input);
198
- if (configured.command) {
199
- this.session_turn.enqueue_command(configured.command);
203
+ if (!input.model && !input.security) {
204
+ throw new Error("session.set requires model or security");
205
+ }
206
+ const requested_approval_mode = input.security?.approval_mode;
207
+ if (requested_approval_mode !== undefined &&
208
+ requested_approval_mode !== "ask" &&
209
+ requested_approval_mode !== "always-allow") {
210
+ throw new Error("security.approval_mode must be ask or always-allow");
200
211
  }
212
+ const model_config = input.model
213
+ ? await this.state.set_model(input.model)
214
+ : undefined;
215
+ const next_approval_mode = requested_approval_mode;
216
+ const security_changed = Boolean(next_approval_mode && next_approval_mode !== this.configured_approval_mode);
217
+ if (next_approval_mode !== undefined) {
218
+ this.configured_approval_mode = next_approval_mode;
219
+ }
220
+ if (!model_config && !security_changed)
221
+ return;
222
+ const changed_fields = [
223
+ ...(model_config
224
+ ? [`model: ${String(model_config.model_label || "configured")}`]
225
+ : []),
226
+ ...(security_changed
227
+ ? [`security.approval_mode: ${String(next_approval_mode)}`]
228
+ : []),
229
+ ];
230
+ this.enqueue_command({
231
+ execute: async () => {
232
+ if (model_config)
233
+ this.state.apply_model_config(model_config);
234
+ if (security_changed && next_approval_mode) {
235
+ this.shell_approval_adapter.set_effective_mode(next_approval_mode);
236
+ }
237
+ },
238
+ completion: {
239
+ type: "action",
240
+ id: `session-config:${this.id}:${Date.now()}:${generate_id()}`,
241
+ title: "Session configuration updated",
242
+ description: changed_fields.join("; "),
243
+ },
244
+ });
201
245
  }
202
246
  /**
203
247
  * 追加一条新的 Session prompt。
204
248
  */
205
249
  async prompt(input) {
206
250
  await this.initialize_instruction();
207
- return await this.session_turn.prompt(input);
251
+ return await this.session_loop.prompt(input);
208
252
  }
209
253
  /**
210
254
  * 停止当前 turn,并取消尚未被吸收的排队 prompt。
211
255
  */
212
256
  async stop() {
213
- await this.approval_broker.expire_all();
214
- return this.session_turn.stop();
257
+ return await this.session_loop.stop();
215
258
  }
216
259
  /**
217
260
  * 把一次显式历史压缩加入当前 Session 的有序输入队列。
218
261
  */
219
262
  async compact() {
220
- await this.session_turn.compact();
263
+ await this.state.ensure_runnable();
264
+ const compact_id = `compact:${this.id}:${generate_id()}`;
265
+ const operation = create_session_compact_operation({
266
+ compact_id,
267
+ run: async () => await this.session_loop.compact_history(compact_id),
268
+ log_error: async (error_message) => {
269
+ await this.logger.log("warn", "[agent] session compact command failed", {
270
+ session_id: this.id,
271
+ compact_id,
272
+ error: error_message,
273
+ });
274
+ },
275
+ publish_finish: (final_result) => {
276
+ this.events.publish({
277
+ mutation_id: nanoid(),
278
+ variant: "compact",
279
+ type: "finish",
280
+ session_id: this.id,
281
+ compact_id,
282
+ status: final_result.success ? "completed" : "failed",
283
+ compacted: final_result.compacted,
284
+ reason: final_result.reason,
285
+ created_at: Date.now(),
286
+ ...(final_result.error ? { error: final_result.error } : {}),
287
+ });
288
+ },
289
+ });
290
+ this.enqueue_command({
291
+ execute: operation.execute,
292
+ });
293
+ this.events.publish({
294
+ mutation_id: nanoid(),
295
+ variant: "compact",
296
+ type: "start",
297
+ session_id: this.id,
298
+ compact_id,
299
+ status: "queued",
300
+ created_at: Date.now(),
301
+ });
302
+ return operation.handle;
221
303
  }
222
- /**
223
- * 把 Agent configured state command 加入当前 Session 的统一输入队列。
224
- */
225
- enqueue_agent_command(command) {
226
- if (command.type === "env") {
227
- this.session_turn.enqueue_command({
228
- type: "agent_env",
229
- command_id: command.command_id,
230
- env: command.env,
231
- });
232
- return;
233
- }
234
- this.session_turn.enqueue_command({
235
- type: "agent_plugins",
236
- command_id: command.command_id,
237
- title: command.title,
238
- plugins: command.plugins,
304
+ /** 把 Workspace env 快照加入当前 Session 的有序输入队列。 */
305
+ enqueue_workspace_env(input) {
306
+ this.enqueue_command({
307
+ execute: async () => {
308
+ this.effective_workspace_env = { ...input.env };
309
+ },
310
+ completion: {
311
+ type: "action",
312
+ id: `agent-env:${this.id}:${input.command_id}`,
313
+ title: "Workspace environment updated",
314
+ },
239
315
  });
240
316
  }
241
- /** Step 检查点提交明确的 Session/Agent 状态命令。 */
242
- async apply_queue_command(command, turn_id) {
243
- if (command.type === "session_model") {
244
- await this.state.apply_model_command(command);
245
- if (command.action_id && command.action_title) {
246
- await this.emit_config_action_event({
247
- id: command.action_id,
248
- title: command.action_title,
249
- state: "completed",
250
- turnId: turn_id,
251
- });
252
- }
253
- return;
254
- }
255
- if (command.type === "agent_env") {
256
- this.effective_agent_env = { ...command.env };
257
- await this.emit_config_action_event({
258
- id: `agent-env:${this.id}:${command.command_id}`,
259
- title: "Agent environment updated",
260
- state: "completed",
261
- turnId: turn_id,
262
- });
263
- return;
264
- }
265
- this.effective_agent_plugins = command.plugins;
266
- await this.emit_config_action_event({
267
- id: `agent-plugins:${this.id}:${command.command_id}`,
268
- title: command.title,
269
- state: "completed",
270
- turnId: turn_id,
317
+ /** Agent Plugin 执行视图加入当前 Session 的有序输入队列。 */
318
+ enqueue_agent_plugins(input) {
319
+ this.enqueue_command({
320
+ execute: async () => {
321
+ this.effective_agent_plugins = input.plugins;
322
+ },
323
+ completion: {
324
+ type: "action",
325
+ id: `agent-plugins:${this.id}:${input.command_id}`,
326
+ title: input.title,
327
+ },
271
328
  });
272
329
  }
330
+ /** 创建一个具体 Session Command 对象并加入当前 FIFO。 */
331
+ enqueue_command(options) {
332
+ this.session_queue.enqueue_command(new SessionCommand(options));
333
+ }
273
334
  /**
274
335
  * 订阅当前 Session 的未来事件。
275
336
  */
276
337
  subscribe(subscriber) {
277
338
  return this.events.subscribe(subscriber);
278
339
  }
279
- /** 列出当前 Session pending 工具审批。 */
280
- async approvals() {
281
- return this.approval_broker.list();
340
+ /** 列出当前 Session 正在等待用户响应的 Interaction。 */
341
+ async interactions() {
342
+ return this.session_interactions.list();
282
343
  }
283
- /** 读取当前 Session 的工具审批模式。 */
284
- async approval_mode() {
285
- return this.approval_broker.get_mode();
286
- }
287
- /** 更新当前 Session 的工具审批模式。 */
288
- async set_approval_mode(input) {
289
- return this.approval_broker.set_mode(input.mode);
344
+ /** 读取当前 Session 的运行与安全状态。 */
345
+ async status() {
346
+ const active_turn_id = this.session_loop.current_turn_id();
347
+ return {
348
+ session_id: this.id,
349
+ state: active_turn_id || this.executor.is_executing() ? "running" : "idle",
350
+ ...(active_turn_id ? { active_turn_id } : {}),
351
+ security: {
352
+ approval_mode: this.configured_approval_mode,
353
+ effective_approval_mode: this.shell_approval_adapter.get_effective_mode(),
354
+ },
355
+ };
290
356
  }
291
- /** 处理当前 Session 的 pending 工具审批。 */
292
- async resolve_approval(input) {
293
- return await this.approval_broker.resolve(input);
357
+ /** 提交当前 Session 的 Interaction 用户响应。 */
358
+ async respond(input) {
359
+ return await this.session_interactions.respond(input);
294
360
  }
295
361
  /**
296
362
  * 追加一条 user 文本消息。
@@ -319,30 +385,25 @@ export class Session {
319
385
  */
320
386
  async get_info() {
321
387
  const [metadata, snapshot] = await Promise.all([
322
- readSessionMetadata({
323
- projectRoot: this.project_root,
324
- agentId: this.agentId,
325
- sessionId: this.id,
326
- }),
388
+ this.store.read_metadata(),
327
389
  this.session_messages.context_snapshot(),
328
390
  ]);
329
391
  const records = to_executor_history(this.id, snapshot);
330
392
  const metadata_with_title = metadata.title
331
393
  ? metadata
332
- : await ensureSessionTitle({
333
- projectRoot: this.project_root,
334
- agentId: this.agentId,
335
- sessionId: this.id,
394
+ : await ensure_session_title({
395
+ session_id: this.id,
396
+ store: this.store,
336
397
  messages: records,
337
398
  logger: this.logger,
338
399
  });
339
- return buildSessionInfo({
340
- projectRoot: this.project_root,
341
- agentId: this.agentId,
342
- sessionId: this.id,
400
+ return build_session_info({
401
+ project_root: this.workspace_path,
402
+ agent_id: this.agent_id,
403
+ session_id: this.id,
343
404
  metadata: metadata_with_title,
344
405
  messages: records,
345
- executing: this.isExecuting(),
406
+ executing: this.is_executing(),
346
407
  });
347
408
  }
348
409
  /**
@@ -359,12 +420,12 @@ export class Session {
359
420
  const composed = await this.compose_for_view();
360
421
  const blocks = resolve_composed_system_blocks(composed);
361
422
  return {
362
- sessionId: this.id,
423
+ session_id: this.id,
363
424
  session: {
364
- agentId: this.agentId,
365
- sessionId: this.id,
366
- projectRoot: this.project_root,
367
- createdAt: new Date(this.state.get_created_at()).toISOString(),
425
+ agent_id: this.agent_id,
426
+ session_id: this.id,
427
+ project_root: this.workspace_path,
428
+ created_at: new Date(this.state.get_created_at()).toISOString(),
368
429
  timezone: this.state.get_timezone(),
369
430
  },
370
431
  blocks,
@@ -373,8 +434,8 @@ export class Session {
373
434
  /**
374
435
  * 返回当前 session 是否正在执行。
375
436
  */
376
- isExecuting() {
377
- return this.session_turn.is_active() || this.executor.isExecuting();
437
+ is_executing() {
438
+ return this.session_loop.is_active() || this.executor.is_executing();
378
439
  }
379
440
  /**
380
441
  * 从当前 session 创建一个分叉会话。
@@ -382,7 +443,7 @@ export class Session {
382
443
  async fork(input) {
383
444
  const message_id = typeof input === "string"
384
445
  ? String(input || "").trim() || undefined
385
- : String(input?.messageId || "").trim() || undefined;
446
+ : String(input?.message_id || "").trim() || undefined;
386
447
  const messages = await this.session_messages.list_history_messages();
387
448
  const fork_messages = message_id
388
449
  ? this.resolve_fork_messages(messages, message_id)
@@ -399,7 +460,8 @@ export class Session {
399
460
  await forked.initialize();
400
461
  const session_config = this.state.get_config();
401
462
  if (session_config.model) {
402
- await forked.state.set({ model: session_config.model }, { emit_action: false });
463
+ const forked_config = await forked.state.set_model(session_config.model);
464
+ forked.state.apply_model_config(forked_config);
403
465
  }
404
466
  await forked.session_messages.import_messages(fork_messages);
405
467
  await this.emit_action_event({
@@ -424,20 +486,20 @@ export class Session {
424
486
  resolve_fork_messages(messages, message_id) {
425
487
  const target_index = messages.findIndex((message) => message.message_id === message_id);
426
488
  if (target_index < 0) {
427
- throw new Error(`Cannot fork session "${this.id}": messageId "${message_id}" not found.`);
489
+ throw new Error(`Cannot fork session "${this.id}": message_id "${message_id}" not found.`);
428
490
  }
429
491
  return messages.slice(0, target_index + 1);
430
492
  }
431
493
  /**
432
494
  * 返回供受托管 plugin 使用的 session 端口。
433
495
  */
434
- getRuntimePort() {
496
+ get_runtime_port() {
435
497
  if (this.runtime_port)
436
498
  return this.runtime_port;
437
- this.runtime_port = createRuntimeSessionPort({
438
- sessionId: this.id,
439
- getModel: () => this.get_model(),
440
- getExecutor: () => this.executor.getExecutor(),
499
+ this.runtime_port = create_runtime_session_port({
500
+ session_id: this.id,
501
+ get_model: () => this.get_model(),
502
+ get_executor: () => this.executor,
441
503
  prompt: async (input) => await this.prompt(input),
442
504
  stop: async () => await this.stop(),
443
505
  subscribe: (subscriber) => this.subscribe(subscriber),
@@ -451,15 +513,15 @@ export class Session {
451
513
  append_assistant_message: async (message_params) => {
452
514
  const appended = await this.session_messages.append_external_assistant_message({
453
515
  message: message_params.message,
454
- fallback_text: message_params.fallbackText,
516
+ fallback_text: message_params.fallback_text,
455
517
  });
456
518
  if (appended)
457
519
  await this.state.touch_metadata();
458
520
  },
459
- isExecuting: () => this.isExecuting(),
521
+ is_executing: () => this.is_executing(),
460
522
  context: async () => await this.session_messages.context_snapshot(),
461
- ensureReadyForExecution: async () => {
462
- await this.ensureReadyForExecution();
523
+ ensure_ready_for_execution: async () => {
524
+ await this.ensure_ready_for_execution();
463
525
  },
464
526
  });
465
527
  return this.runtime_port;
@@ -467,24 +529,26 @@ export class Session {
467
529
  /**
468
530
  * 在执行前确保 session 已完成初始化与宿主装配。
469
531
  */
470
- async ensureReadyForExecution() {
532
+ async ensure_ready_for_execution() {
471
533
  await this.initialize_instruction();
472
534
  await this.state.ensure_ready_for_execution();
473
535
  }
474
536
  create_fork_session(session_id) {
475
537
  return this.create_child_session({
476
- agentId: this.agentId,
477
- projectRoot: this.project_root,
478
- sessionId: session_id,
538
+ agent_id: this.agent_id,
539
+ workspace_path: this.workspace_path,
540
+ store: this.get_session_store(session_id),
541
+ get_session_store: this.get_session_store,
542
+ session_id: session_id,
479
543
  tools: this.tools,
480
544
  logger: this.logger,
481
545
  instruction_system_blocks: this.effective_instruction_system_blocks.map((block) => ({ ...block })),
482
546
  get_instruction_system_blocks: this.get_instruction_system_blocks,
483
- getAgentEnv: this.get_agent_env,
547
+ get_workspace_env: this.get_workspace_env,
484
548
  get_agent_plugins: this.get_agent_plugins,
485
- getManagedPluginSystemBlocks: this.get_managed_plugin_system_blocks,
486
- ensureConfigured: this.ensure_configured_hook,
487
- getAgentModel: this.get_agent_model,
549
+ get_managed_plugin_system_blocks: this.get_managed_plugin_system_blocks,
550
+ ensure_configured: this.ensure_configured_hook,
551
+ get_agent_model: this.get_agent_model,
488
552
  composer: this.composer,
489
553
  });
490
554
  }
@@ -496,18 +560,14 @@ export class Session {
496
560
  * - 子类仍可覆盖该方法,接管更特殊的子会话创建逻辑。
497
561
  */
498
562
  create_child_session(options) {
499
- const SessionClass = this.constructor;
500
- return new SessionClass(options);
563
+ const session_class = this.constructor;
564
+ return new session_class(options);
501
565
  }
502
566
  /** 恢复显式固化的完整 system snapshot;文件不存在时等待首次生成。 */
503
567
  async initialize_instruction() {
504
568
  if (!this.instruction_initialize_promise) {
505
569
  this.instruction_initialize_promise = (async () => {
506
- const persisted_instruction = await read_session_instruction({
507
- project_root: this.project_root,
508
- agent_id: this.agentId,
509
- session_id: this.id,
510
- });
570
+ const persisted_instruction = await this.store.read_instruction();
511
571
  if (persisted_instruction === null)
512
572
  return;
513
573
  const instruction = persisted_instruction.trim();
@@ -535,21 +595,12 @@ export class Session {
535
595
  }
536
596
  await this.instruction_initialize_promise;
537
597
  }
538
- create_message_store() {
539
- const session_dir_path = getSdkAgentSessionDirPath(this.project_root, this.agentId, this.id);
540
- const messages_dir_path = `${session_dir_path}/messages`;
541
- return new JsonlSessionMessageStore({
542
- session_id: this.id,
543
- file_path: `${messages_dir_path}/active.jsonl`,
544
- assistant_message_file_path: getSdkAgentSessionAssistantMessagePath(this.project_root, this.agentId, this.id),
545
- });
546
- }
547
598
  create_local_state() {
548
599
  return {
549
600
  session_config: {},
550
601
  effective_session_config: {},
551
602
  created_at: Date.now(),
552
- timezone: resolveSystemTimezone(),
603
+ timezone: resolve_system_timezone(),
553
604
  initialize_promise: null,
554
605
  ensure_configured_promise: null,
555
606
  };
@@ -557,40 +608,47 @@ export class Session {
557
608
  /** 创建只依赖统一 Composer 的 Turn Executor。 */
558
609
  create_executor() {
559
610
  return new Executor({
560
- sessionId: this.id,
611
+ session_id: this.id,
561
612
  composer: this.composer,
562
- get_compose_input: async (run_context, retry_count) => await this.create_compose_input(run_context, retry_count),
563
- commit_compaction: async (plan, run_context) => await this.commit_compaction_plan(plan, run_context),
564
- getModel: () => this.get_model(),
613
+ get_compose_input: async (turn_context, retry_count) => await this.create_compose_input(turn_context, retry_count),
614
+ compact_history: async (input) => await this.compact_history(input),
615
+ get_model: () => this.get_model(),
565
616
  logger: this.logger,
566
617
  get_plugins: () => this.effective_agent_plugins,
567
618
  apply_system_snapshot: (input) => this.apply_system_snapshot(input),
568
619
  });
569
620
  }
570
621
  /** 为 Composer 创建当前 Step 的只读 Session 快照。 */
571
- async create_compose_input(run_context, retry_count, refresh_system = false) {
622
+ async create_compose_input(turn_context, retry_count, refresh_system = false) {
572
623
  const instruction_system_blocks = refresh_system
573
624
  ? this.get_instruction_system_blocks().map((block) => ({ ...block }))
574
625
  : this.effective_instruction_system_blocks.map((block) => ({ ...block }));
626
+ // 关键点(中文):Plugin system 本身参与 Compose,必须先让它看到当前检查点
627
+ // 已确定的 env 与 instruction;Executor 会在 Compose 返回后提交最终 Step 快照。
628
+ turn_context?.step.commit({
629
+ workspace_env: this.effective_workspace_env,
630
+ agent_systems: instruction_system_blocks.map((block) => block.content),
631
+ });
632
+ const plugin_execution_context = turn_context?.step.plugin_execution_context() ||
633
+ create_session_plugin_execution_context({
634
+ session_id: this.id,
635
+ project_root: this.workspace_path,
636
+ workspace_env: this.effective_workspace_env,
637
+ agent_systems: this.effective_instruction_system_blocks.map((block) => block.content),
638
+ });
575
639
  const plugin_system_blocks = this.system_snapshot_blocks && !refresh_system
576
640
  ? []
577
641
  : refresh_system
578
- ? await this.get_agent_plugins().systemBlocks(run_context)
579
- : run_context.agentPlugins
580
- ? await run_context.agentPlugins.systemBlocks(run_context)
581
- : await this.effective_agent_plugins.systemBlocks(run_context);
642
+ ? await this.get_agent_plugins().system_blocks(plugin_execution_context)
643
+ : turn_context?.step.plugins
644
+ ? await turn_context.step.plugins.system_blocks(plugin_execution_context)
645
+ : await this.effective_agent_plugins.system_blocks(plugin_execution_context);
582
646
  return {
583
- session: {
584
- agent_id: this.agentId,
585
- session_id: this.id,
586
- project_root: this.project_root,
587
- created_at: this.local_state.created_at,
588
- timezone: this.local_state.timezone,
589
- },
647
+ session: this.create_compose_identity(),
590
648
  state: {
591
649
  model: this.get_model(),
592
650
  model_context_window: this.get_model_context_window(),
593
- env: Object.freeze({ ...this.effective_agent_env }),
651
+ env: Object.freeze({ ...this.effective_workspace_env }),
594
652
  systems: Object.freeze(instruction_system_blocks.map((block) => block.content)),
595
653
  tools: Object.freeze({ ...this.tools }),
596
654
  instruction_system_blocks,
@@ -601,20 +659,47 @@ export class Session {
601
659
  },
602
660
  history: await this.session_messages.context_snapshot(),
603
661
  turn: {
604
- ...(run_context.turnId ? { turn_id: run_context.turnId } : {}),
662
+ ...(turn_context
663
+ ? { turn_id: turn_context.session.turn_id }
664
+ : {}),
605
665
  retry_count,
606
666
  },
607
667
  };
608
668
  }
669
+ /** 创建 Composer 共用的稳定 Session 身份快照。 */
670
+ create_compose_identity() {
671
+ return {
672
+ agent_id: this.agent_id,
673
+ session_id: this.id,
674
+ project_root: this.workspace_path,
675
+ created_at: this.local_state.created_at,
676
+ timezone: this.local_state.timezone,
677
+ };
678
+ }
679
+ /** 生成并提交 canonical 历史压缩;该职责不进入 Executor。 */
680
+ async compact_history(input) {
681
+ return await run_session_history_compaction({
682
+ turn_id: input.turn_id,
683
+ create_plan: async () => await this.composer.compact({
684
+ session: this.create_compose_identity(),
685
+ model: this.get_model(),
686
+ history: await this.session_messages.context_snapshot(),
687
+ }),
688
+ commit_plan: async (plan) => {
689
+ await this.commit_compaction_plan(plan, input.turn_id);
690
+ },
691
+ log_error: async (error_message) => {
692
+ await this.logger.log("warn", "[agent] session history compaction failed", {
693
+ session_id: this.id,
694
+ ...(input.turn_id ? { turn_id: input.turn_id } : {}),
695
+ error: error_message,
696
+ });
697
+ },
698
+ });
699
+ }
609
700
  /** 使用统一 Composer 生成只读 system/history 查询结果。 */
610
701
  async compose_for_view() {
611
- const run_context = {
612
- sessionId: this.id,
613
- injectedUserMessages: [],
614
- deferredPersistedUserMessages: [],
615
- pendingAssistantFileParts: [],
616
- };
617
- const composed = await this.composer.compose(await this.create_compose_input(run_context, 0));
702
+ const composed = await this.composer.compose(await this.create_compose_input(undefined, 0));
618
703
  return this.apply_system_snapshot(composed);
619
704
  }
620
705
  /** 固定或应用当前 Session 的 system snapshot。 */
@@ -639,21 +724,18 @@ export class Session {
639
724
  }
640
725
  /** 把指定完整 system blocks 原子写入 instruction.md。 */
641
726
  async write_system_snapshot(blocks) {
642
- await write_session_instruction({
643
- project_root: this.project_root,
644
- agent_id: this.agentId,
645
- session_id: this.id,
646
- instruction: blocks.map((block) => block.content).join("\n\n"),
647
- });
727
+ await this.store.write_instruction(blocks.map((block) => block.content).join("\n\n"));
648
728
  }
649
729
  /** 提交 Composer 生成的 Segment 压缩计划。 */
650
- async commit_compaction_plan(plan, run_context) {
651
- const action_id = `compacting:${this.id}:${generateId()}`;
730
+ async commit_compaction_plan(plan, turn_id) {
731
+ const action_id = `compacting:${this.id}:${generate_id()}`;
652
732
  await this.emit_action_event({
653
733
  id: action_id,
654
734
  title: "Compacting session messages",
655
735
  state: "running",
656
- ...(run_context.turnId ? { turnId: run_context.turnId } : {}),
736
+ ...(turn_id
737
+ ? { turn_id }
738
+ : {}),
657
739
  });
658
740
  try {
659
741
  await this.session_messages.compact_active({
@@ -667,7 +749,9 @@ export class Session {
667
749
  ? `Closed Active through Message ${plan.boundary_message_id} with deterministic fallback Summary.`
668
750
  : `Closed Active through Message ${plan.boundary_message_id}.`,
669
751
  state: "completed",
670
- ...(run_context.turnId ? { turnId: run_context.turnId } : {}),
752
+ ...(turn_id
753
+ ? { turn_id }
754
+ : {}),
671
755
  });
672
756
  await this.state.touch_metadata();
673
757
  }
@@ -677,7 +761,9 @@ export class Session {
677
761
  title: "Session messages compact failed",
678
762
  description: error instanceof Error ? error.message : String(error),
679
763
  state: "failed",
680
- ...(run_context.turnId ? { turnId: run_context.turnId } : {}),
764
+ ...(turn_id
765
+ ? { turn_id }
766
+ : {}),
681
767
  });
682
768
  throw error;
683
769
  }
@@ -689,7 +775,7 @@ export class Session {
689
775
  */
690
776
  get_model() {
691
777
  const model = this.get_selected_model();
692
- return model ? normalizeAgentModel(model) : undefined;
778
+ return model ? normalize_agent_model(model) : undefined;
693
779
  }
694
780
  /** 按 Session 优先、Agent 兜底规则读取当前配置的 AgentModel。 */
695
781
  get_selected_model() {
@@ -716,38 +802,12 @@ export class Session {
716
802
  metadata: {
717
803
  v: 1,
718
804
  ts: Date.now(),
719
- sessionId: this.id,
720
- ...(input.turnId ? { turnId: input.turnId } : {}),
805
+ session_id: this.id,
806
+ ...(input.turn_id ? { turn_id: input.turn_id } : {}),
721
807
  },
722
808
  });
723
809
  await this.state.touch_metadata();
724
810
  }
725
- /** 尽力记录配置 Action,不让 timeline 故障反向改变已提交配置。 */
726
- async emit_config_action_event(input) {
727
- try {
728
- await this.emit_action_event({
729
- id: input.id,
730
- title: input.title,
731
- description: input.description,
732
- state: input.state,
733
- turnId: "turnId" in input ? input.turnId : input.metadata?.turnId,
734
- });
735
- return true;
736
- }
737
- catch (error) {
738
- try {
739
- await this.logger.log("warn", "[agent] config action persistence failed", {
740
- sessionId: this.id,
741
- actionId: String(input.id || ""),
742
- error: error instanceof Error ? error.message : String(error),
743
- });
744
- }
745
- catch {
746
- // 配置已提交,日志失败也不能反向改变 effective state。
747
- }
748
- return false;
749
- }
750
- }
751
811
  }
752
812
  /** 把自定义 Composer 的 system content 转为可展示文本。 */
753
813
  function stringify_system_content(content) {