@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
@@ -1,40 +1,35 @@
1
1
  /**
2
- * @file 验证 plugin tool bridge 会把生成文件摘要为可打开路径。
2
+ * @file 验证 Plugin Tool ActionResult 转换与 Agent 绑定。
3
3
  *
4
4
  * 关键点(中文)
5
- * - assistant message 使用 Agent 根目录相对路径,避免历史暴露本机路径。
6
- * - tool result 同时返回相对路径与本机绝对路径,便于模型与用户明确知道文件位置。
5
+ * - Plugin Action 自己产生本地 File Part,Tool 运行时不处理文件。
6
+ * - output messages 分开返回,由 Executor 的统一边界分流。
7
7
  */
8
8
 
9
9
  import test from "node:test";
10
10
  import assert from "node:assert/strict";
11
- import os from "node:os";
12
- import path from "node:path";
13
- import fs from "node:fs/promises";
14
-
15
11
  import {
16
- invokePluginCallTool,
17
- invokePluginReadTool,
18
- } from "../bin/executor/tools/plugin/PluginToolBridge.js";
19
- import { createPluginTools } from "../bin/executor/tools/plugin/PluginToolDefinition.js";
20
- import { plugin_call_input_schema } from "../bin/executor/tools/plugin/PluginToolSchemas.js";
21
- import { createAction, createPlugin } from "../bin/plugin/core/PluginActionFactory.js";
12
+ invoke_plugin_call_tool,
13
+ invoke_plugin_read_tool,
14
+ } from "../bin/plugin/tool/PluginToolRuntime.js";
15
+ import { create_plugin_tools } from "../bin/plugin/tool/PluginTools.js";
16
+ import { plugin_call_input_schema } from "../bin/plugin/tool/PluginToolSchemas.js";
17
+ import { create_action, create_plugin } from "../bin/plugin/core/PluginActionFactory.js";
22
18
  import { PluginRegistry } from "../bin/plugin/core/PluginRegistry.js";
19
+ import { create_session_turn_context } from "../bin/session/runtime/SessionTurnContext.js";
23
20
  import { z } from "zod";
24
21
 
25
- function create_run_context(project_root) {
26
- return {
27
- sessionId: "session_test",
28
- projectRoot: project_root,
29
- injectedUserMessages: [],
30
- deferredPersistedUserMessages: [],
31
- pendingAssistantFileParts: [],
32
- };
22
+ function create_turn_context(project_root) {
23
+ return create_session_turn_context({
24
+ session_id: "session_test",
25
+ turn_id: "turn_test",
26
+ project_root: project_root,
27
+ });
33
28
  }
34
29
 
35
30
  function create_registry(plugin) {
36
31
  const registry = new PluginRegistry([plugin]);
37
- registry.bind_context({ rootPath: process.cwd() });
32
+ registry.bind_context({ workspace_path: process.cwd() });
38
33
  return registry;
39
34
  }
40
35
 
@@ -50,31 +45,26 @@ test("plugin_call payload schema allows arbitrary object properties", async () =
50
45
  assert.deepEqual(payload_schema.default, {});
51
46
  });
52
47
 
53
- test("invokePluginCallTool returns absolute paths for materialized file parts", async () => {
54
- const project_root = await fs.mkdtemp(
55
- path.join(os.tmpdir(), "downcity-agent-plugin-tool-files-"),
56
- );
57
- const bytes = Buffer.from("png-bytes-for-plugin-tool", "utf8");
58
-
48
+ test("invoke_plugin_call_tool preserves Action output and messages", async () => {
59
49
  const plugins = {
60
50
  list: () => [],
61
51
  read: () => ({ plugins: [] }),
62
52
  availability: async () => ({ enabled: true, available: true, reasons: [] }),
63
- runAction: async () => ({
53
+ run_action: async () => ({
64
54
  success: true,
65
55
  message: "image generated",
66
- data: {
67
- id: "msg_image_test",
56
+ data: { job_id: "img_1" },
57
+ messages: [{
68
58
  role: "assistant",
69
59
  parts: [
70
60
  {
71
61
  type: "file",
72
62
  mediaType: "image/png",
73
63
  filename: "image.png",
74
- url: `data:image/png;base64,${bytes.toString("base64")}`,
64
+ url: "/workspace/image.png",
75
65
  },
76
66
  ],
77
- },
67
+ }],
78
68
  }),
79
69
  pipeline: async (_, value) => value,
80
70
  guard: async () => {},
@@ -84,10 +74,10 @@ test("invokePluginCallTool returns absolute paths for materialized file parts",
84
74
  },
85
75
  };
86
76
 
87
- const run_context = create_run_context(project_root);
88
- const result = await invokePluginCallTool({
77
+ const turn_context = create_turn_context("/workspace");
78
+ const result = await invoke_plugin_call_tool({
89
79
  plugins,
90
- run_context,
80
+ turn_context,
91
81
  input: {
92
82
  plugin: "image",
93
83
  action: "image_result",
@@ -95,24 +85,26 @@ test("invokePluginCallTool returns absolute paths for materialized file parts",
95
85
  },
96
86
  });
97
87
 
98
- assert.equal(result.success, true);
99
- assert.equal(result.assistant_file_count, 1);
100
- assert.equal(result.files?.length, 1);
101
- assert.match(result.files[0].relative_path, /^\.downcity\/resources\//);
102
- assert.equal(path.isAbsolute(result.files[0].path), true);
103
- assert.equal(
104
- path.dirname(result.files[0].path),
105
- path.join(project_root, ".downcity", "resources"),
106
- );
107
- assert.deepEqual(await fs.readFile(result.files[0].path), bytes);
108
- assert.equal("data" in result, false);
109
-
110
- const pending_parts = run_context.pendingAssistantFileParts;
111
- assert.equal(pending_parts.length, 1);
112
- assert.equal(pending_parts[0].url, result.files[0].relative_path);
88
+ assert.deepEqual(result.output, {
89
+ success: true,
90
+ plugin: "image",
91
+ action: "image_result",
92
+ message: "image generated",
93
+ data: { job_id: "img_1" },
94
+ });
95
+ assert.deepEqual(result.messages, [{
96
+ role: "assistant",
97
+ parts: [{
98
+ type: "file",
99
+ mediaType: "image/png",
100
+ filename: "image.png",
101
+ url: "/workspace/image.png",
102
+ }],
103
+ }]);
104
+ assert.equal(turn_context.output.take_assistant_parts().length, 0);
113
105
  });
114
106
 
115
- test("invokePluginReadTool returns plugin action metadata", async () => {
107
+ test("invoke_plugin_read_tool returns plugin action metadata", async () => {
116
108
  const plugins = {
117
109
  list: () => [],
118
110
  read: () => ({
@@ -142,7 +134,7 @@ test("invokePluginReadTool returns plugin action metadata", async () => {
142
134
  ],
143
135
  }),
144
136
  availability: async () => ({ enabled: true, available: true, reasons: [] }),
145
- runAction: async () => ({ success: false, error: "not used" }),
137
+ run_action: async () => ({ success: false, error: "not used" }),
146
138
  pipeline: async (_, value) => value,
147
139
  guard: async () => {},
148
140
  effect: async () => {},
@@ -151,25 +143,26 @@ test("invokePluginReadTool returns plugin action metadata", async () => {
151
143
  },
152
144
  };
153
145
 
154
- const result = await invokePluginReadTool({
146
+ const result = await invoke_plugin_read_tool({
155
147
  plugins,
156
- run_context: create_run_context(process.cwd()),
148
+ turn_context: create_turn_context(process.cwd()),
157
149
  input: {
158
150
  plugin: "image",
159
151
  action: "image_create",
160
152
  },
161
153
  });
162
154
 
163
- assert.equal(result.success, true);
164
- assert.equal(result.data.name, "image");
165
- assert.equal(result.data.actions[0].name, "image_create");
166
- assert.equal(result.data.actions[0].has_input_schema, true);
167
- assert.equal(result.data.actions[0].examples[0].payload.prompt, "draw");
155
+ assert.equal(result.output.success, true);
156
+ assert.equal(result.output.data.name, "image");
157
+ assert.equal(result.output.data.actions[0].name, "image_create");
158
+ assert.equal(result.output.data.actions[0].has_input_schema, true);
159
+ assert.equal(result.output.data.actions[0].examples[0].payload.prompt, "draw");
160
+ assert.deepEqual(result.messages, []);
168
161
  });
169
162
 
170
- test("invokePluginReadTool rejects unregistered plugins", async () => {
163
+ test("invoke_plugin_read_tool rejects unregistered plugins", async () => {
171
164
  const registry = create_registry(
172
- createPlugin({
165
+ create_plugin({
173
166
  name: "skill",
174
167
  title: "Skill",
175
168
  description: "Manage skills",
@@ -177,20 +170,20 @@ test("invokePluginReadTool rejects unregistered plugins", async () => {
177
170
  }),
178
171
  );
179
172
 
180
- const result = await invokePluginReadTool({
173
+ const result = await invoke_plugin_read_tool({
181
174
  plugins: registry,
182
- run_context: create_run_context(process.cwd()),
175
+ turn_context: create_turn_context(process.cwd()),
183
176
  input: { plugin: "task" },
184
177
  });
185
178
 
186
- assert.equal(result.success, false);
187
- assert.match(result.message, /Unknown plugin: task/);
188
- assert.match(result.data.error, /Unknown plugin: task/);
179
+ assert.equal(result.output.success, false);
180
+ assert.match(result.output.message, /Unknown plugin: task/);
181
+ assert.match(result.output.data.error, /Unknown plugin: task/);
189
182
  });
190
183
 
191
- test("invokePluginReadTool rejects unknown plugin actions", async () => {
184
+ test("invoke_plugin_read_tool rejects unknown plugin actions", async () => {
192
185
  const registry = create_registry(
193
- createPlugin({
186
+ create_plugin({
194
187
  name: "skill",
195
188
  title: "Skill",
196
189
  description: "Manage skills",
@@ -198,24 +191,24 @@ test("invokePluginReadTool rejects unknown plugin actions", async () => {
198
191
  }),
199
192
  );
200
193
 
201
- const result = await invokePluginReadTool({
194
+ const result = await invoke_plugin_read_tool({
202
195
  plugins: registry,
203
- run_context: create_run_context(process.cwd()),
196
+ turn_context: create_turn_context(process.cwd()),
204
197
  input: { plugin: "skill", action: "missing" },
205
198
  });
206
199
 
207
- assert.equal(result.success, false);
208
- assert.match(result.message, /Unknown action: skill\.missing/);
209
- assert.match(result.data.error, /Unknown action: skill\.missing/);
200
+ assert.equal(result.output.success, false);
201
+ assert.match(result.output.message, /Unknown action: skill\.missing/);
202
+ assert.match(result.output.data.error, /Unknown action: skill\.missing/);
210
203
  });
211
204
 
212
205
  test("PluginRegistry validates action payload with metadata schema", async () => {
213
- const plugin = createPlugin({
206
+ const plugin = create_plugin({
214
207
  name: "demo",
215
208
  title: "Demo",
216
209
  description: "Demo plugin",
217
210
  actions: {
218
- echo: createAction({
211
+ echo: create_action({
219
212
  description: "Echo text",
220
213
  input_schema: {
221
214
  zod: z.object({
@@ -243,7 +236,7 @@ test("PluginRegistry validates action payload with metadata schema", async () =>
243
236
  assert.equal(metadata.actions[0].description, "Echo text");
244
237
  assert.equal(metadata.actions[0].has_input_schema, true);
245
238
 
246
- const invalid = await registry.runAction({
239
+ const invalid = await registry.run_action({
247
240
  plugin: "demo",
248
241
  action: "echo",
249
242
  payload: {},
@@ -251,7 +244,7 @@ test("PluginRegistry validates action payload with metadata schema", async () =>
251
244
  assert.equal(invalid.success, false);
252
245
  assert.match(invalid.error, /Invalid payload/);
253
246
 
254
- const valid = await registry.runAction({
247
+ const valid = await registry.run_action({
255
248
  plugin: "demo",
256
249
  action: "echo",
257
250
  payload: { text: "hello" },
@@ -260,20 +253,21 @@ test("PluginRegistry validates action payload with metadata schema", async () =>
260
253
  assert.equal(valid.data.text, "hello");
261
254
  });
262
255
 
263
- test("createPluginTools binds plugin_call to the current registry", async () => {
256
+ test("create_plugin_tools binds plugin_call to the current registry", async () => {
264
257
  function create_owner_registry(owner) {
265
- const plugin = createPlugin({
258
+ const plugin = create_plugin({
266
259
  name: "skill",
267
260
  title: `Skill ${owner}`,
268
261
  description: "Owner scoped skill plugin",
269
262
  actions: {
270
- lookup: createAction({
263
+ lookup: create_action({
271
264
  description: "Return registry owner",
272
- execute: async ({ run_context }) => ({
265
+ execute: async ({ execution_context }) => ({
273
266
  success: true,
274
267
  data: {
275
268
  owner,
276
- session_id: run_context?.sessionId,
269
+ session_id: execution_context?.session_id,
270
+ context_keys: Object.keys(execution_context || {}).sort(),
277
271
  },
278
272
  message: owner,
279
273
  }),
@@ -285,16 +279,19 @@ test("createPluginTools binds plugin_call to the current registry", async () =>
285
279
 
286
280
  const registry_a = create_owner_registry("agent_a");
287
281
  const registry_b = create_owner_registry("agent_b");
288
- const tools_a = createPluginTools({ plugins: registry_a });
289
- const tools_b = createPluginTools({ plugins: registry_b });
282
+ const tools_a = create_plugin_tools({ plugins: registry_a });
283
+ const tools_b = create_plugin_tools({ plugins: registry_b });
290
284
  const create_execution_options = (session_id) => {
291
- const run_context = create_run_context(process.cwd());
292
- run_context.sessionId = session_id;
285
+ const turn_context = create_session_turn_context({
286
+ session_id,
287
+ turn_id: `turn_${session_id}`,
288
+ project_root: process.cwd(),
289
+ });
293
290
  return {
294
291
  toolCallId: `call_${session_id}`,
295
292
  messages: [],
296
293
  experimental_context: {
297
- session_run_context: run_context,
294
+ session_turn_context: turn_context,
298
295
  shell_run_context: {
299
296
  ownerContextId: session_id,
300
297
  },
@@ -313,22 +310,29 @@ test("createPluginTools binds plugin_call to the current registry", async () =>
313
310
  payload: { name: "anything" },
314
311
  }, create_execution_options("session_b"));
315
312
 
316
- assert.equal(result_a.success, true);
317
- assert.equal(result_a.data.value.owner, "agent_a");
318
- assert.equal(result_a.data.value.session_id, "session_a");
319
- assert.equal(result_b.success, true);
320
- assert.equal(result_b.data.value.owner, "agent_b");
321
- assert.equal(result_b.data.value.session_id, "session_b");
313
+ assert.equal(result_a.output.success, true);
314
+ assert.equal(result_a.output.data.owner, "agent_a");
315
+ assert.equal(result_a.output.data.session_id, "session_a");
316
+ assert.deepEqual(result_a.output.data.context_keys, [
317
+ "abort_signal",
318
+ "agent_systems",
319
+ "project_root",
320
+ "session_id",
321
+ "turn_id",
322
+ ]);
323
+ assert.equal(result_b.output.success, true);
324
+ assert.equal(result_b.output.data.owner, "agent_b");
325
+ assert.equal(result_b.output.data.session_id, "session_b");
322
326
  });
323
327
 
324
328
  test("PluginRegistry keeps plugin ready after action business failure", async () => {
325
329
  let call_count = 0;
326
- const plugin = createPlugin({
330
+ const plugin = create_plugin({
327
331
  name: "skill",
328
332
  title: "Skill",
329
333
  description: "Retryable skill plugin",
330
334
  actions: {
331
- lookup: createAction({
335
+ lookup: create_action({
332
336
  description: "Fail once then succeed",
333
337
  execute: async () => {
334
338
  call_count += 1;
@@ -350,7 +354,7 @@ test("PluginRegistry keeps plugin ready after action business failure", async ()
350
354
  });
351
355
  const registry = create_registry(plugin);
352
356
 
353
- const failed = await registry.runAction({
357
+ const failed = await registry.run_action({
354
358
  plugin: "skill",
355
359
  action: "lookup",
356
360
  payload: { name: "missing" },
@@ -358,7 +362,7 @@ test("PluginRegistry keeps plugin ready after action business failure", async ()
358
362
  assert.equal(failed.success, false);
359
363
  assert.equal(registry.status("skill").status, "ready");
360
364
 
361
- const retry = await registry.runAction({
365
+ const retry = await registry.run_action({
362
366
  plugin: "skill",
363
367
  action: "lookup",
364
368
  payload: { name: "exists" },
@@ -371,7 +375,7 @@ test("PluginRegistry keeps plugin ready after action business failure", async ()
371
375
  test("PluginRegistry delays lifecycle stop until the active execution lease is released", async () => {
372
376
  let lifecycle_active = false;
373
377
  let stop_count = 0;
374
- const plugin = createPlugin({
378
+ const plugin = create_plugin({
375
379
  name: "leased-plugin",
376
380
  title: "Leased Plugin",
377
381
  description: "Keeps runtime resources alive for an active Session step",
@@ -385,7 +389,7 @@ test("PluginRegistry delays lifecycle stop until the active execution lease is r
385
389
  },
386
390
  },
387
391
  actions: {
388
- status: createAction({
392
+ status: create_action({
389
393
  description: "Read lifecycle state",
390
394
  execute: async () => ({
391
395
  success: lifecycle_active,
@@ -395,7 +399,7 @@ test("PluginRegistry delays lifecycle stop until the active execution lease is r
395
399
  },
396
400
  });
397
401
  const registry = create_registry(plugin);
398
- await registry.startAll();
402
+ await registry.start_all();
399
403
  const lease = registry.execution_view().acquire();
400
404
 
401
405
  assert.equal(await registry.unregister("leased-plugin"), true);
@@ -403,7 +407,7 @@ test("PluginRegistry delays lifecycle stop until the active execution lease is r
403
407
  assert.equal(lifecycle_active, true);
404
408
  assert.equal(stop_count, 0);
405
409
 
406
- const result = await lease.runAction({
410
+ const result = await lease.run_action({
407
411
  plugin: "leased-plugin",
408
412
  action: "status",
409
413
  });
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Agent SDK 公开命名约束测试。
3
+ *
4
+ * 关键点(中文)
5
+ * - 类型名保持 PascalCase。
6
+ * - Downcity 自有公开函数、方法和字段统一使用 snake_case。
7
+ * - 第三方 AI SDK 原始结构不纳入本检查。
8
+ */
9
+
10
+ import assert from "node:assert/strict";
11
+ import fs from "node:fs";
12
+ import path from "node:path";
13
+ import test from "node:test";
14
+ import { fileURLToPath } from "node:url";
15
+
16
+ const package_root = path.resolve(
17
+ path.dirname(fileURLToPath(import.meta.url)),
18
+ "..",
19
+ );
20
+
21
+ const public_declaration_files = [
22
+ "agent/Agent.d.ts",
23
+ "agent/AgentSessions.d.ts",
24
+ "remote/RemoteAgent.d.ts",
25
+ "remote/RemoteSession.d.ts",
26
+ "session/Session.d.ts",
27
+ "workspace/Workspace.d.ts",
28
+ "plugin/core/PluginRegistry.d.ts",
29
+ "types/agent/AgentOptions.d.ts",
30
+ "types/agent/SessionActor.d.ts",
31
+ "types/agent/SessionTypes.d.ts",
32
+ "types/agent/RemoteAgentOptions.d.ts",
33
+ "types/agent/RemoteAgentPluginAction.d.ts",
34
+ "types/sdk/AgentSessionPrompt.d.ts",
35
+ "types/sdk/AgentSessionStop.d.ts",
36
+ "types/sdk/AgentSessionTurn.d.ts",
37
+ "types/session/SessionOptions.d.ts",
38
+ "types/session/SessionPort.d.ts",
39
+ "types/plugin/PluginContext.d.ts",
40
+ "types/plugin/PluginRuntime.d.ts",
41
+ "types/plugin/PluginAction.d.ts",
42
+ "types/plugin/PluginCommand.d.ts",
43
+ "types/plugin/PluginHttp.d.ts",
44
+ "types/plugin/PluginExecutionContext.d.ts",
45
+ "plugin/types/ActionSchedule.d.ts",
46
+ "types/rpc/RpcProtocol.d.ts",
47
+ ];
48
+
49
+ /** 删除声明文件注释,避免示例文本参与标识符检查。 */
50
+ function strip_comments(input) {
51
+ return input
52
+ .replace(/\/\*[\s\S]*?\*\//g, "")
53
+ .replace(/\/\/.*$/gm, "");
54
+ }
55
+
56
+ test("Agent SDK public members use snake_case", () => {
57
+ const failures = [];
58
+ const camel_member_pattern =
59
+ /^\s+(?:readonly\s+)?([a-z][A-Za-z0-9_]*[A-Z][A-Za-z0-9_]*)(?:\??:|\??\()/gm;
60
+
61
+ for (const relative_path of public_declaration_files) {
62
+ const file_path = path.join(package_root, "bin", relative_path);
63
+ const content = strip_comments(fs.readFileSync(file_path, "utf8"));
64
+ for (const match of content.matchAll(camel_member_pattern)) {
65
+ failures.push(`${relative_path}: ${match[1]}`);
66
+ }
67
+ }
68
+
69
+ assert.deepEqual(failures, []);
70
+ });
71
+
72
+ test("Agent SDK root exports do not expose camelCase functions", () => {
73
+ const file_path = path.join(package_root, "bin", "index.d.ts");
74
+ const content = strip_comments(fs.readFileSync(file_path, "utf8"))
75
+ .replace(/from\s+["'][^"']+["']/g, "")
76
+ .replace(/export\s+\*\s+["'][^"']+["']/g, "");
77
+ const camel_function_exports = [
78
+ ...content.matchAll(/\b([a-z][A-Za-z0-9]*[A-Z][A-Za-z0-9]*)\b/g),
79
+ ].map((match) => match[1]);
80
+
81
+ assert.deepEqual([...new Set(camel_function_exports)], []);
82
+ });
83
+
84
+ test("Agent internal module exports use snake_case function names", () => {
85
+ const source_root = path.join(package_root, "src");
86
+ const failures = [];
87
+ const camel_export_pattern =
88
+ /^export\s+(?:async\s+)?function\s+([a-z][A-Za-z0-9_]*[A-Z][A-Za-z0-9_]*)\b/gm;
89
+
90
+ /** 递归扫描 Agent 源码,覆盖未从根入口暴露的内部模块 API。 */
91
+ function visit(directory) {
92
+ for (const entry of fs.readdirSync(directory, { withFileTypes: true })) {
93
+ const absolute_path = path.join(directory, entry.name);
94
+ if (entry.isDirectory()) {
95
+ visit(absolute_path);
96
+ continue;
97
+ }
98
+ if (!entry.isFile() || !entry.name.endsWith(".ts")) continue;
99
+ const content = strip_comments(fs.readFileSync(absolute_path, "utf8"));
100
+ for (const match of content.matchAll(camel_export_pattern)) {
101
+ failures.push(`${path.relative(source_root, absolute_path)}: ${match[1]}`);
102
+ }
103
+ }
104
+ }
105
+
106
+ visit(source_root);
107
+ assert.deepEqual(failures, []);
108
+ });
@@ -28,7 +28,7 @@ test("RemoteSession reconnects the event pump after transport close", async () =
28
28
  throw new Error("unused");
29
29
  },
30
30
  async stop() {
31
- return { stopped: false, cancelledQueuedPrompts: 0, reason: "idle" };
31
+ return { stopped: false, cancelled_queued_prompts: 0, reason: "idle" };
32
32
  },
33
33
  async records() {
34
34
  throw new Error("unused");
@@ -41,15 +41,15 @@ test("RemoteSession reconnects the event pump after transport close", async () =
41
41
  },
42
42
  };
43
43
  const session = new RemoteSession(transport, {
44
- agentId: "agent_test",
45
- sessionId: "session_test",
46
- messageCount: 0,
44
+ agent_id: "agent_test",
45
+ session_id: "session_test",
46
+ message_count: 0,
47
47
  });
48
48
 
49
49
  const first_turn = await session.prompt({ query: "first" });
50
50
  subscriptions[0].on_close(new Error("stream dropped"));
51
51
  assert.deepEqual(await first_turn.finished, {
52
- turnId: "turn_1",
52
+ turn_id: "turn_1",
53
53
  text: "",
54
54
  success: false,
55
55
  error: "stream dropped",
@@ -72,18 +72,87 @@ test("RemoteSession reconnects the event pump after transport close", async () =
72
72
 
73
73
  test("RemoteSession queues compact through its transport", async () => {
74
74
  const compacted_session_ids = [];
75
+ let subscription;
75
76
  const transport = {
77
+ async subscribe(input) {
78
+ subscription = input;
79
+ input.on_ready();
80
+ return { close: async () => {} };
81
+ },
76
82
  async compact(session_id) {
77
83
  compacted_session_ids.push(session_id);
84
+ return { id: "compact_test" };
78
85
  },
79
86
  };
80
87
  const session = new RemoteSession(transport, {
81
- agentId: "agent_test",
82
- sessionId: "session_test",
83
- messageCount: 0,
88
+ agent_id: "agent_test",
89
+ session_id: "session_test",
90
+ message_count: 0,
84
91
  });
85
92
 
86
- await session.compact();
93
+ const handle = await session.compact();
87
94
 
88
95
  assert.deepEqual(compacted_session_ids, ["session_test"]);
96
+ assert.equal(handle.id, "compact_test");
97
+ assert.equal(handle.result, null);
98
+
99
+ subscription.on_event({
100
+ mutation_id: "compact-finish",
101
+ variant: "compact",
102
+ type: "finish",
103
+ session_id: "session_test",
104
+ compact_id: handle.id,
105
+ status: "completed",
106
+ compacted: false,
107
+ reason: "nothing_to_compact",
108
+ created_at: Date.now(),
109
+ });
110
+
111
+ assert.deepEqual(await handle.finished, {
112
+ compact_id: "compact_test",
113
+ success: true,
114
+ compacted: false,
115
+ reason: "nothing_to_compact",
116
+ });
117
+ assert.deepEqual(handle.result, await handle.finished);
118
+ });
119
+
120
+ test("RemoteSession preserves an early compact finish until transport returns", async () => {
121
+ let subscription;
122
+ const transport = {
123
+ async subscribe(input) {
124
+ subscription = input;
125
+ input.on_ready();
126
+ return { close: async () => {} };
127
+ },
128
+ async compact() {
129
+ subscription.on_event({
130
+ mutation_id: "compact-early-finish",
131
+ variant: "compact",
132
+ type: "finish",
133
+ session_id: "session_test",
134
+ compact_id: "compact_early",
135
+ status: "completed",
136
+ compacted: true,
137
+ reason: "compacted",
138
+ created_at: Date.now(),
139
+ });
140
+ return { id: "compact_early" };
141
+ },
142
+ };
143
+ const session = new RemoteSession(transport, {
144
+ agent_id: "agent_test",
145
+ session_id: "session_test",
146
+ message_count: 0,
147
+ });
148
+
149
+ const handle = await session.compact();
150
+
151
+ assert.deepEqual(handle.result, {
152
+ compact_id: "compact_early",
153
+ success: true,
154
+ compacted: true,
155
+ reason: "compacted",
156
+ });
157
+ assert.deepEqual(await handle.finished, handle.result);
89
158
  });