@downcity/agent 1.1.408 → 1.1.437

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 (1152) hide show
  1. package/README.md +63 -51
  2. package/bin/agent/Agent.d.ts +39 -17
  3. package/bin/agent/Agent.d.ts.map +1 -1
  4. package/bin/agent/Agent.js +169 -71
  5. package/bin/agent/Agent.js.map +1 -1
  6. package/bin/agent/AgentInstructions.d.ts +1 -1
  7. package/bin/agent/AgentInstructions.js +3 -3
  8. package/bin/agent/AgentInstructions.js.map +1 -1
  9. package/bin/agent/AgentMemoryStorage.d.ts +18 -0
  10. package/bin/agent/AgentMemoryStorage.d.ts.map +1 -0
  11. package/bin/agent/AgentMemoryStorage.js +176 -0
  12. package/bin/agent/AgentMemoryStorage.js.map +1 -0
  13. package/bin/agent/AgentSessions.d.ts +32 -33
  14. package/bin/agent/AgentSessions.d.ts.map +1 -1
  15. package/bin/agent/AgentSessions.js +122 -72
  16. package/bin/agent/AgentSessions.js.map +1 -1
  17. package/bin/executor/Executor.d.ts +12 -30
  18. package/bin/executor/Executor.d.ts.map +1 -1
  19. package/bin/executor/Executor.js +39 -121
  20. package/bin/executor/Executor.js.map +1 -1
  21. package/bin/executor/composer/system/default/SystemPromptAssets.d.ts +0 -4
  22. package/bin/executor/composer/system/default/SystemPromptAssets.d.ts.map +1 -1
  23. package/bin/executor/composer/system/default/SystemPromptAssets.js +1 -6
  24. package/bin/executor/composer/system/default/SystemPromptAssets.js.map +1 -1
  25. package/bin/executor/composer/system/default/assets/core.prompt.d.ts +1 -1
  26. package/bin/executor/composer/system/default/assets/core.prompt.d.ts.map +1 -1
  27. package/bin/executor/composer/system/default/assets/core.prompt.js +1 -1
  28. package/bin/executor/composer/system/default/assets/core.prompt.js.map +1 -1
  29. package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts +3 -9
  30. package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts.map +1 -1
  31. package/bin/executor/core-engine/CoreEngineContextCompaction.js +4 -130
  32. package/bin/executor/core-engine/CoreEngineContextCompaction.js.map +1 -1
  33. package/bin/executor/core-engine/CoreEngineError.d.ts +1 -1
  34. package/bin/executor/core-engine/CoreEngineError.d.ts.map +1 -1
  35. package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts +1 -1
  36. package/bin/executor/core-engine/CoreEngineRunner.d.ts +3 -30
  37. package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -1
  38. package/bin/executor/core-engine/CoreEngineRunner.js +83 -245
  39. package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
  40. package/bin/executor/core-engine/CoreEngineSignals.d.ts +7 -7
  41. package/bin/executor/core-engine/CoreEngineSignals.d.ts.map +1 -1
  42. package/bin/executor/core-engine/CoreEngineSignals.js +1 -1
  43. package/bin/executor/core-engine/CoreEngineSignals.js.map +1 -1
  44. package/bin/executor/messages/SessionAttachmentMapper.d.ts +2 -2
  45. package/bin/executor/messages/SessionAttachmentMapper.d.ts.map +1 -1
  46. package/bin/executor/messages/SessionAttachmentMapper.js.map +1 -1
  47. package/bin/executor/messages/SessionMessageLog.d.ts +3 -3
  48. package/bin/executor/messages/SessionMessageLog.d.ts.map +1 -1
  49. package/bin/executor/messages/SessionMessageLog.js.map +1 -1
  50. package/bin/executor/messages/SessionModelMessages.d.ts +1 -4
  51. package/bin/executor/messages/SessionModelMessages.d.ts.map +1 -1
  52. package/bin/executor/messages/SessionModelMessages.js +81 -91
  53. package/bin/executor/messages/SessionModelMessages.js.map +1 -1
  54. package/bin/executor/model/ModelGenerate.d.ts +12 -2
  55. package/bin/executor/model/ModelGenerate.d.ts.map +1 -1
  56. package/bin/executor/model/ModelGenerate.js +23 -15
  57. package/bin/executor/model/ModelGenerate.js.map +1 -1
  58. package/bin/executor/model/ModelRequestRunner.d.ts +29 -0
  59. package/bin/executor/model/ModelRequestRunner.d.ts.map +1 -0
  60. package/bin/executor/model/ModelRequestRunner.js +77 -0
  61. package/bin/executor/model/ModelRequestRunner.js.map +1 -0
  62. package/bin/executor/model/ModelStepRunner.d.ts +3 -7
  63. package/bin/executor/model/ModelStepRunner.d.ts.map +1 -1
  64. package/bin/executor/model/ModelStepRunner.js +9 -41
  65. package/bin/executor/model/ModelStepRunner.js.map +1 -1
  66. package/bin/executor/model/ModelStreamConsumer.d.ts +12 -0
  67. package/bin/executor/model/ModelStreamConsumer.d.ts.map +1 -0
  68. package/bin/executor/model/ModelStreamConsumer.js +60 -0
  69. package/bin/executor/model/ModelStreamConsumer.js.map +1 -0
  70. package/bin/executor/model/ModelStreamFailure.d.ts +4 -0
  71. package/bin/executor/model/ModelStreamFailure.d.ts.map +1 -1
  72. package/bin/executor/model/ModelStreamFailure.js +21 -0
  73. package/bin/executor/model/ModelStreamFailure.js.map +1 -1
  74. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +7 -64
  75. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +1 -1
  76. package/bin/executor/services/ExecutorRecoveryPolicy.js +29 -45
  77. package/bin/executor/services/ExecutorRecoveryPolicy.js.map +1 -1
  78. package/bin/executor/types/SessionHistoryMeta.d.ts +6 -8
  79. package/bin/executor/types/SessionHistoryMeta.d.ts.map +1 -1
  80. package/bin/executor/types/SessionHistoryMeta.js +1 -1
  81. package/bin/group/Group.d.ts +22 -3
  82. package/bin/group/Group.d.ts.map +1 -1
  83. package/bin/group/Group.js +54 -4
  84. package/bin/group/Group.js.map +1 -1
  85. package/bin/group/GroupDispatchRuntime.d.ts +37 -0
  86. package/bin/group/GroupDispatchRuntime.d.ts.map +1 -0
  87. package/bin/group/{GroupDispatchSession.js → GroupDispatchRuntime.js} +77 -21
  88. package/bin/group/GroupDispatchRuntime.js.map +1 -0
  89. package/bin/group/GroupSession.d.ts +20 -6
  90. package/bin/group/GroupSession.d.ts.map +1 -1
  91. package/bin/group/GroupSession.js +148 -84
  92. package/bin/group/GroupSession.js.map +1 -1
  93. package/bin/group/GroupSessions.d.ts +1 -1
  94. package/bin/group/GroupSessions.d.ts.map +1 -1
  95. package/bin/group/GroupSessions.js +11 -10
  96. package/bin/group/GroupSessions.js.map +1 -1
  97. package/bin/group/index.d.ts +1 -1
  98. package/bin/group/index.d.ts.map +1 -1
  99. package/bin/{workspace/store → group/storage}/LocalGroupSessionDataStore.d.ts +11 -3
  100. package/bin/group/storage/LocalGroupSessionDataStore.d.ts.map +1 -0
  101. package/bin/{workspace/store → group/storage}/LocalGroupSessionDataStore.js +89 -6
  102. package/bin/group/storage/LocalGroupSessionDataStore.js.map +1 -0
  103. package/bin/group/storage/LocalGroupSessionStore.d.ts.map +1 -0
  104. package/bin/{workspace/store → group/storage}/LocalGroupSessionStore.js +1 -1
  105. package/bin/group/storage/LocalGroupSessionStore.js.map +1 -0
  106. package/bin/index.d.ts +25 -55
  107. package/bin/index.d.ts.map +1 -1
  108. package/bin/index.js +9 -21
  109. package/bin/index.js.map +1 -1
  110. package/bin/session/DefaultSessionComposer.d.ts +13 -7
  111. package/bin/session/DefaultSessionComposer.d.ts.map +1 -1
  112. package/bin/session/DefaultSessionComposer.js +63 -24
  113. package/bin/session/DefaultSessionComposer.js.map +1 -1
  114. package/bin/session/Session.d.ts +27 -70
  115. package/bin/session/Session.d.ts.map +1 -1
  116. package/bin/session/Session.js +136 -446
  117. package/bin/session/Session.js.map +1 -1
  118. package/bin/session/SessionComposition.d.ts +49 -0
  119. package/bin/session/SessionComposition.d.ts.map +1 -0
  120. package/bin/session/SessionComposition.js +309 -0
  121. package/bin/session/SessionComposition.js.map +1 -0
  122. package/bin/session/SessionHookPoints.d.ts +15 -0
  123. package/bin/session/SessionHookPoints.d.ts.map +1 -0
  124. package/bin/session/SessionHookPoints.js +15 -0
  125. package/bin/session/SessionHookPoints.js.map +1 -0
  126. package/bin/session/SessionHooks.d.ts +38 -0
  127. package/bin/session/SessionHooks.d.ts.map +1 -0
  128. package/bin/session/SessionHooks.js +71 -0
  129. package/bin/session/SessionHooks.js.map +1 -0
  130. package/bin/session/SessionLoop.d.ts +18 -10
  131. package/bin/session/SessionLoop.d.ts.map +1 -1
  132. package/bin/session/SessionLoop.js +234 -213
  133. package/bin/session/SessionLoop.js.map +1 -1
  134. package/bin/session/SessionMessages.d.ts +57 -86
  135. package/bin/session/SessionMessages.d.ts.map +1 -1
  136. package/bin/session/SessionMessages.js +289 -506
  137. package/bin/session/SessionMessages.js.map +1 -1
  138. package/bin/session/SessionQueue.d.ts +1 -1
  139. package/bin/session/SessionQueue.d.ts.map +1 -1
  140. package/bin/session/SessionQueue.js +2 -1
  141. package/bin/session/SessionQueue.js.map +1 -1
  142. package/bin/session/SessionState.d.ts +7 -11
  143. package/bin/session/SessionState.d.ts.map +1 -1
  144. package/bin/session/SessionState.js +63 -95
  145. package/bin/session/SessionState.js.map +1 -1
  146. package/bin/session/SessionSystem.d.ts +6 -2
  147. package/bin/session/SessionSystem.d.ts.map +1 -1
  148. package/bin/session/SessionSystem.js +41 -1
  149. package/bin/session/SessionSystem.js.map +1 -1
  150. package/bin/session/SessionTitle.d.ts +37 -7
  151. package/bin/session/SessionTitle.d.ts.map +1 -1
  152. package/bin/session/SessionTitle.js +43 -37
  153. package/bin/session/SessionTitle.js.map +1 -1
  154. package/bin/session/browse/Browse.d.ts +34 -48
  155. package/bin/session/browse/Browse.d.ts.map +1 -1
  156. package/bin/session/browse/Browse.js +106 -354
  157. package/bin/session/browse/Browse.js.map +1 -1
  158. package/bin/session/browse/SessionMessageTimeline.d.ts +1 -1
  159. package/bin/session/browse/SessionMessageTimeline.d.ts.map +1 -1
  160. package/bin/session/browse/SessionMessageTimeline.js +61 -37
  161. package/bin/session/browse/SessionMessageTimeline.js.map +1 -1
  162. package/bin/session/composer/policies/AdaptivePartContextPolicy.d.ts +35 -0
  163. package/bin/session/composer/policies/AdaptivePartContextPolicy.d.ts.map +1 -0
  164. package/bin/session/composer/policies/AdaptivePartContextPolicy.js +256 -0
  165. package/bin/session/composer/policies/AdaptivePartContextPolicy.js.map +1 -0
  166. package/bin/session/composer/policies/FullHistoryContextPolicy.d.ts +24 -0
  167. package/bin/session/composer/policies/FullHistoryContextPolicy.d.ts.map +1 -0
  168. package/bin/session/composer/policies/FullHistoryContextPolicy.js +31 -0
  169. package/bin/session/composer/policies/FullHistoryContextPolicy.js.map +1 -0
  170. package/bin/session/composer/policies/SessionSummaryPrompts.d.ts +16 -0
  171. package/bin/session/composer/policies/SessionSummaryPrompts.d.ts.map +1 -0
  172. package/bin/session/composer/policies/SessionSummaryPrompts.js +32 -0
  173. package/bin/session/composer/policies/SessionSummaryPrompts.js.map +1 -0
  174. package/bin/session/control/SessionInteractions.d.ts +2 -2
  175. package/bin/session/control/SessionInteractions.d.ts.map +1 -1
  176. package/bin/session/execution/SessionAssistantOutputAdapter.d.ts +16 -5
  177. package/bin/session/execution/SessionAssistantOutputAdapter.d.ts.map +1 -1
  178. package/bin/session/execution/SessionAssistantOutputAdapter.js +7 -3
  179. package/bin/session/execution/SessionAssistantOutputAdapter.js.map +1 -1
  180. package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts +3 -3
  181. package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts.map +1 -1
  182. package/bin/session/index.d.ts +8 -0
  183. package/bin/session/index.d.ts.map +1 -0
  184. package/bin/session/index.js +7 -0
  185. package/bin/session/index.js.map +1 -0
  186. package/bin/session/messages/SessionAgentActionPartWriter.d.ts +22 -0
  187. package/bin/session/messages/SessionAgentActionPartWriter.d.ts.map +1 -0
  188. package/bin/session/messages/SessionAgentActionPartWriter.js +36 -0
  189. package/bin/session/messages/SessionAgentActionPartWriter.js.map +1 -0
  190. package/bin/session/messages/SessionAgentContent.d.ts +10 -0
  191. package/bin/session/messages/SessionAgentContent.d.ts.map +1 -0
  192. package/bin/session/messages/SessionAgentContent.js +44 -0
  193. package/bin/session/messages/SessionAgentContent.js.map +1 -0
  194. package/bin/session/messages/SessionAgentMessageState.d.ts +50 -0
  195. package/bin/session/messages/SessionAgentMessageState.d.ts.map +1 -0
  196. package/bin/session/messages/SessionAgentMessageState.js +283 -0
  197. package/bin/session/messages/SessionAgentMessageState.js.map +1 -0
  198. package/bin/session/messages/{SessionAssistantMessageWriter.d.ts → SessionAgentMessageWriter.d.ts} +23 -9
  199. package/bin/session/messages/SessionAgentMessageWriter.d.ts.map +1 -0
  200. package/bin/session/messages/{SessionAssistantMessageWriter.js → SessionAgentMessageWriter.js} +56 -44
  201. package/bin/session/messages/SessionAgentMessageWriter.js.map +1 -0
  202. package/bin/session/messages/SessionForkMessageFiles.d.ts +22 -0
  203. package/bin/session/messages/SessionForkMessageFiles.d.ts.map +1 -0
  204. package/bin/session/messages/SessionForkMessageFiles.js +52 -0
  205. package/bin/session/messages/SessionForkMessageFiles.js.map +1 -0
  206. package/bin/session/messages/SessionJsonValue.d.ts +1 -1
  207. package/bin/session/messages/SessionJsonValue.d.ts.map +1 -1
  208. package/bin/session/messages/SessionMessageInteractionWriter.d.ts +7 -12
  209. package/bin/session/messages/SessionMessageInteractionWriter.d.ts.map +1 -1
  210. package/bin/session/messages/SessionMessageInteractionWriter.js +4 -4
  211. package/bin/session/messages/SessionMessageInteractionWriter.js.map +1 -1
  212. package/bin/session/messages/SessionMessageText.d.ts +4 -4
  213. package/bin/session/messages/SessionMessageText.d.ts.map +1 -1
  214. package/bin/session/messages/SessionMessageText.js +0 -2
  215. package/bin/session/messages/SessionMessageText.js.map +1 -1
  216. package/bin/session/messages/SessionTurnFileDiffBuilder.d.ts +15 -0
  217. package/bin/session/messages/SessionTurnFileDiffBuilder.d.ts.map +1 -0
  218. package/bin/session/messages/SessionTurnFileDiffBuilder.js +180 -0
  219. package/bin/session/messages/SessionTurnFileDiffBuilder.js.map +1 -0
  220. package/bin/session/messages/SessionTurnFileDiffData.d.ts +15 -0
  221. package/bin/session/messages/SessionTurnFileDiffData.d.ts.map +1 -0
  222. package/bin/session/messages/SessionTurnFileDiffData.js +59 -0
  223. package/bin/session/messages/SessionTurnFileDiffData.js.map +1 -0
  224. package/bin/session/messages/SessionUserContext.d.ts +13 -0
  225. package/bin/session/messages/SessionUserContext.d.ts.map +1 -0
  226. package/bin/session/messages/SessionUserContext.js +38 -0
  227. package/bin/session/messages/SessionUserContext.js.map +1 -0
  228. package/bin/session/messages/SessionUserMessage.d.ts +14 -0
  229. package/bin/session/messages/SessionUserMessage.d.ts.map +1 -0
  230. package/bin/session/messages/SessionUserMessage.js +74 -0
  231. package/bin/session/messages/SessionUserMessage.js.map +1 -0
  232. package/bin/session/preview/SessionMessagePreview.d.ts +1 -1
  233. package/bin/session/preview/SessionMessagePreview.d.ts.map +1 -1
  234. package/bin/session/preview/SessionMessagePreview.js +26 -10
  235. package/bin/session/preview/SessionMessagePreview.js.map +1 -1
  236. package/bin/session/runtime/SessionEventHub.d.ts +1 -1
  237. package/bin/session/runtime/SessionEventHub.d.ts.map +1 -1
  238. package/bin/session/runtime/SessionModelRequestWarning.d.ts +17 -0
  239. package/bin/session/runtime/SessionModelRequestWarning.d.ts.map +1 -0
  240. package/bin/session/runtime/SessionModelRequestWarning.js +19 -0
  241. package/bin/session/runtime/SessionModelRequestWarning.js.map +1 -0
  242. package/bin/session/runtime/SessionTitleTask.d.ts +2 -2
  243. package/bin/session/runtime/SessionTitleTask.d.ts.map +1 -1
  244. package/bin/session/runtime/SessionTitleTask.js +1 -1
  245. package/bin/session/runtime/SessionTitleTask.js.map +1 -1
  246. package/bin/session/runtime/SessionTurnCompletion.d.ts +15 -0
  247. package/bin/session/runtime/SessionTurnCompletion.d.ts.map +1 -0
  248. package/bin/session/runtime/SessionTurnCompletion.js +126 -0
  249. package/bin/session/runtime/SessionTurnCompletion.js.map +1 -0
  250. package/bin/session/runtime/SessionTurnContext.d.ts +6 -3
  251. package/bin/session/runtime/SessionTurnContext.d.ts.map +1 -1
  252. package/bin/session/runtime/SessionTurnContext.js +73 -38
  253. package/bin/session/runtime/SessionTurnContext.js.map +1 -1
  254. package/bin/session/runtime/SessionTurnFileDiff.d.ts +12 -0
  255. package/bin/session/runtime/SessionTurnFileDiff.d.ts.map +1 -0
  256. package/bin/session/runtime/SessionTurnFileDiff.js +71 -0
  257. package/bin/session/runtime/SessionTurnFileDiff.js.map +1 -0
  258. package/bin/{workspace/store → session/storage}/LocalSessionAttachmentStore.d.ts +11 -4
  259. package/bin/session/storage/LocalSessionAttachmentStore.d.ts.map +1 -0
  260. package/bin/{workspace/store → session/storage}/LocalSessionAttachmentStore.js +17 -2
  261. package/bin/session/storage/LocalSessionAttachmentStore.js.map +1 -0
  262. package/bin/session/storage/LocalSessionDataStore.d.ts +13 -0
  263. package/bin/session/storage/LocalSessionDataStore.d.ts.map +1 -0
  264. package/bin/session/storage/LocalSessionDataStore.js +28 -0
  265. package/bin/session/storage/LocalSessionDataStore.js.map +1 -0
  266. package/bin/{workspace/store → session/storage}/LocalSessionStore.d.ts +21 -10
  267. package/bin/session/storage/LocalSessionStore.d.ts.map +1 -0
  268. package/bin/session/storage/LocalSessionStore.js +329 -0
  269. package/bin/session/storage/LocalSessionStore.js.map +1 -0
  270. package/bin/session/storage/LocalStorePaths.d.ts +27 -0
  271. package/bin/session/storage/LocalStorePaths.d.ts.map +1 -0
  272. package/bin/session/storage/LocalStorePaths.js +69 -0
  273. package/bin/session/storage/LocalStorePaths.js.map +1 -0
  274. package/bin/session/storage/Metadata.d.ts +12 -9
  275. package/bin/session/storage/Metadata.d.ts.map +1 -1
  276. package/bin/session/storage/Metadata.js +8 -30
  277. package/bin/session/storage/Metadata.js.map +1 -1
  278. package/bin/session/storage/RuntimeSessionPort.d.ts +8 -8
  279. package/bin/session/storage/RuntimeSessionPort.d.ts.map +1 -1
  280. package/bin/session/storage/RuntimeSessionPort.js +6 -6
  281. package/bin/session/storage/RuntimeSessionPort.js.map +1 -1
  282. package/bin/session/storage/SessionStorageCodec.d.ts +59 -0
  283. package/bin/session/storage/SessionStorageCodec.d.ts.map +1 -0
  284. package/bin/session/storage/SessionStorageCodec.js +331 -0
  285. package/bin/session/storage/SessionStorageCodec.js.map +1 -0
  286. package/bin/session/storage/SessionStorageSchema.d.ts +11 -0
  287. package/bin/session/storage/SessionStorageSchema.d.ts.map +1 -0
  288. package/bin/session/storage/SessionStorageSchema.js +131 -0
  289. package/bin/session/storage/SessionStorageSchema.js.map +1 -0
  290. package/bin/session/storage/SqliteSessionStorage.d.ts +120 -0
  291. package/bin/session/storage/SqliteSessionStorage.d.ts.map +1 -0
  292. package/bin/session/storage/SqliteSessionStorage.js +581 -0
  293. package/bin/session/storage/SqliteSessionStorage.js.map +1 -0
  294. package/bin/tools/ask/AskQuestionsTool.d.ts.map +1 -1
  295. package/bin/tools/ask/AskQuestionsTool.js +3 -1
  296. package/bin/tools/ask/AskQuestionsTool.js.map +1 -1
  297. package/bin/tools/ask/AskQuestionsToolSchemas.d.ts +1 -1
  298. package/bin/types/action/ActionResult.d.ts +13 -9
  299. package/bin/types/action/ActionResult.d.ts.map +1 -1
  300. package/bin/types/action/ActionResult.js +2 -1
  301. package/bin/types/action/ActionResult.js.map +1 -1
  302. package/bin/types/agent/AgentOptions.d.ts +25 -18
  303. package/bin/types/agent/AgentOptions.d.ts.map +1 -1
  304. package/bin/types/agent/AgentSessionCollection.d.ts +17 -13
  305. package/bin/types/agent/AgentSessionCollection.d.ts.map +1 -1
  306. package/bin/types/agent/AgentStorage.d.ts +4 -2
  307. package/bin/types/agent/AgentStorage.d.ts.map +1 -1
  308. package/bin/types/agent/SessionActor.d.ts +11 -20
  309. package/bin/types/agent/SessionActor.d.ts.map +1 -1
  310. package/bin/types/agent/SessionTypes.d.ts +29 -37
  311. package/bin/types/agent/SessionTypes.d.ts.map +1 -1
  312. package/bin/types/executor/ModelRequest.d.ts +11 -0
  313. package/bin/types/executor/ModelRequest.d.ts.map +1 -0
  314. package/bin/types/executor/ModelRequest.js +7 -0
  315. package/bin/types/executor/ModelRequest.js.map +1 -0
  316. package/bin/types/executor/SessionAssistantOutput.d.ts +16 -5
  317. package/bin/types/executor/SessionAssistantOutput.d.ts.map +1 -1
  318. package/bin/types/executor/SessionToolExecutionContext.d.ts +3 -3
  319. package/bin/types/executor/SessionToolExecutionContext.d.ts.map +1 -1
  320. package/bin/types/executor/SessionTurnContext.d.ts +57 -34
  321. package/bin/types/executor/SessionTurnContext.d.ts.map +1 -1
  322. package/bin/types/group/DispatchStrategy.d.ts +62 -36
  323. package/bin/types/group/DispatchStrategy.d.ts.map +1 -1
  324. package/bin/types/group/DispatchStrategy.js +83 -39
  325. package/bin/types/group/DispatchStrategy.js.map +1 -1
  326. package/bin/types/group/Group.d.ts +8 -8
  327. package/bin/types/group/Group.d.ts.map +1 -1
  328. package/bin/types/group/{GroupDispatchSession.d.ts → GroupDispatch.d.ts} +21 -27
  329. package/bin/types/group/GroupDispatch.d.ts.map +1 -0
  330. package/bin/types/group/GroupDispatch.js +8 -0
  331. package/bin/types/group/GroupDispatch.js.map +1 -0
  332. package/bin/types/group/GroupSession.d.ts +14 -7
  333. package/bin/types/group/GroupSession.d.ts.map +1 -1
  334. package/bin/types/group/GroupSessionStore.d.ts +9 -5
  335. package/bin/types/group/GroupSessionStore.d.ts.map +1 -1
  336. package/bin/types/sdk/AgentSessionAction.d.ts +2 -2
  337. package/bin/types/sdk/AgentSessionAction.d.ts.map +1 -1
  338. package/bin/types/sdk/AgentSessionAction.js +1 -1
  339. package/bin/types/sdk/AgentSessionPrompt.d.ts +16 -6
  340. package/bin/types/sdk/AgentSessionPrompt.d.ts.map +1 -1
  341. package/bin/types/sdk/AgentSessionPrompt.js +7 -3
  342. package/bin/types/sdk/AgentSessionPrompt.js.map +1 -1
  343. package/bin/types/session/AdaptivePartContextPolicy.d.ts +31 -0
  344. package/bin/types/session/AdaptivePartContextPolicy.d.ts.map +1 -0
  345. package/bin/types/session/AdaptivePartContextPolicy.js +7 -0
  346. package/bin/types/session/AdaptivePartContextPolicy.js.map +1 -0
  347. package/bin/types/session/SessionAgentMessageState.d.ts +23 -0
  348. package/bin/types/session/SessionAgentMessageState.d.ts.map +1 -0
  349. package/bin/types/session/SessionAgentMessageState.js +8 -0
  350. package/bin/types/session/SessionAgentMessageState.js.map +1 -0
  351. package/bin/types/session/SessionCommand.d.ts +19 -7
  352. package/bin/types/session/SessionCommand.d.ts.map +1 -1
  353. package/bin/types/session/SessionComposer.d.ts +47 -41
  354. package/bin/types/session/SessionComposer.d.ts.map +1 -1
  355. package/bin/types/session/SessionComposer.js +2 -2
  356. package/bin/types/session/SessionComposition.d.ts +51 -0
  357. package/bin/types/session/SessionComposition.d.ts.map +1 -0
  358. package/bin/types/session/SessionComposition.js +8 -0
  359. package/bin/types/session/SessionComposition.js.map +1 -0
  360. package/bin/types/session/SessionContextPolicy.d.ts +70 -0
  361. package/bin/types/session/SessionContextPolicy.d.ts.map +1 -0
  362. package/bin/types/session/SessionContextPolicy.js +8 -0
  363. package/bin/types/session/SessionContextPolicy.js.map +1 -0
  364. package/bin/types/session/SessionExecution.d.ts +6 -33
  365. package/bin/types/session/SessionExecution.d.ts.map +1 -1
  366. package/bin/types/session/SessionInteractions.d.ts +1 -1
  367. package/bin/types/session/SessionInteractions.d.ts.map +1 -1
  368. package/bin/types/session/SessionLocalState.d.ts +2 -2
  369. package/bin/types/session/SessionLocalState.d.ts.map +1 -1
  370. package/bin/types/session/SessionLoop.d.ts +10 -9
  371. package/bin/types/session/SessionLoop.d.ts.map +1 -1
  372. package/bin/types/session/SessionMessages.d.ts +29 -30
  373. package/bin/types/session/SessionMessages.d.ts.map +1 -1
  374. package/bin/types/session/SessionOptions.d.ts +30 -44
  375. package/bin/types/session/SessionOptions.d.ts.map +1 -1
  376. package/bin/types/session/SessionPort.d.ts +14 -15
  377. package/bin/types/session/SessionPort.d.ts.map +1 -1
  378. package/bin/types/session/SessionPort.js +1 -1
  379. package/bin/types/session/SessionState.d.ts +6 -9
  380. package/bin/types/session/SessionState.d.ts.map +1 -1
  381. package/bin/types/session/SessionSystem.d.ts +16 -2
  382. package/bin/types/session/SessionSystem.d.ts.map +1 -1
  383. package/bin/types/session/SessionTool.d.ts +2 -2
  384. package/bin/types/session/SessionTool.d.ts.map +1 -1
  385. package/bin/types/session/SessionTurnCompletion.d.ts +23 -0
  386. package/bin/types/session/SessionTurnCompletion.d.ts.map +1 -0
  387. package/bin/types/session/SessionTurnCompletion.js +8 -0
  388. package/bin/types/session/SessionTurnCompletion.js.map +1 -0
  389. package/bin/types/session/SessionTurnFileDiff.d.ts +42 -0
  390. package/bin/types/session/SessionTurnFileDiff.d.ts.map +1 -0
  391. package/bin/types/session/SessionTurnFileDiff.js +8 -0
  392. package/bin/types/session/SessionTurnFileDiff.js.map +1 -0
  393. package/bin/types/store/LocalStore.d.ts +10 -14
  394. package/bin/types/store/LocalStore.d.ts.map +1 -1
  395. package/bin/types/store/LocalStore.js +2 -2
  396. package/bin/types/store/SessionAttachmentStore.d.ts +17 -2
  397. package/bin/types/store/SessionAttachmentStore.d.ts.map +1 -1
  398. package/bin/types/store/SessionAttachmentStore.js +2 -1
  399. package/bin/types/store/SessionAttachmentStore.js.map +1 -1
  400. package/bin/types/store/SessionStorage.d.ts +103 -0
  401. package/bin/types/store/SessionStorage.d.ts.map +1 -0
  402. package/bin/types/store/SessionStorage.js +8 -0
  403. package/bin/types/store/SessionStorage.js.map +1 -0
  404. package/bin/types/store/SessionStore.d.ts +11 -8
  405. package/bin/types/store/SessionStore.d.ts.map +1 -1
  406. package/bin/types/tools/ToolActionExecutionContext.d.ts +1 -1
  407. package/bin/types/tools/ToolActionExecutionContext.d.ts.map +1 -1
  408. package/bin/types/tools/ask/AskQuestionsTool.d.ts +1 -1
  409. package/bin/types/tools/ask/AskQuestionsTool.d.ts.map +1 -1
  410. package/bin/utils/logger/Logger.d.ts +12 -21
  411. package/bin/utils/logger/Logger.d.ts.map +1 -1
  412. package/bin/utils/logger/Logger.js +21 -39
  413. package/bin/utils/logger/Logger.js.map +1 -1
  414. package/package.json +7 -24
  415. package/scripts/ModelClientMock.mjs +11 -0
  416. package/scripts/core-engine-context-compaction.test.mjs +160 -220
  417. package/scripts/core-engine-model-stream.test.mjs +94 -4
  418. package/scripts/executor-failure-result.test.mjs +37 -22
  419. package/scripts/logger-isolation.test.mjs +17 -2
  420. package/scripts/public-api-naming.test.mjs +9 -15
  421. package/scripts/session-agent-message-part-order.test.mjs +63 -0
  422. package/scripts/session-initialization.test.mjs +141 -0
  423. package/scripts/session-message-timeline.test.mjs +5 -6
  424. package/scripts/session-messages-error-part.test.mjs +175 -0
  425. package/scripts/session-messages-error.test.mjs +47 -6
  426. package/scripts/session-prompt-idempotency.test.mjs +91 -0
  427. package/scripts/session-queue.test.mjs +13 -12
  428. package/scripts/session-storage-sqlite.test.mjs +209 -0
  429. package/scripts/session-turn-context.test.mjs +90 -42
  430. package/src/agent/Agent.ts +212 -91
  431. package/src/agent/AgentInstructions.ts +3 -3
  432. package/src/agent/AgentMemoryStorage.ts +208 -0
  433. package/src/agent/AgentSessions.ts +164 -88
  434. package/src/executor/Executor.ts +56 -177
  435. package/src/executor/README.md +19 -16
  436. package/src/executor/composer/system/default/SystemPromptAssets.ts +0 -6
  437. package/src/executor/composer/system/default/assets/core.prompt.ts +1 -1
  438. package/src/executor/composer/system/default/assets/core.prompt.ts.txt +8 -8
  439. package/src/executor/core-engine/CoreEngineContextCompaction.ts +3 -135
  440. package/src/executor/core-engine/CoreEngineError.ts +1 -1
  441. package/src/executor/core-engine/CoreEngineRunner.ts +93 -334
  442. package/src/executor/core-engine/CoreEngineSignals.ts +10 -10
  443. package/src/executor/messages/SessionAttachmentMapper.ts +4 -4
  444. package/src/executor/messages/SessionMessageLog.ts +3 -3
  445. package/src/executor/messages/SessionModelMessages.ts +87 -99
  446. package/src/executor/model/ModelGenerate.ts +59 -21
  447. package/src/executor/model/ModelRequestRunner.ts +107 -0
  448. package/src/executor/model/ModelStepRunner.ts +28 -60
  449. package/src/executor/model/ModelStreamConsumer.ts +76 -0
  450. package/src/executor/model/ModelStreamFailure.ts +28 -0
  451. package/src/executor/services/ExecutorRecoveryPolicy.ts +34 -127
  452. package/src/executor/types/SessionHistoryMeta.ts +6 -8
  453. package/src/group/Group.ts +60 -5
  454. package/src/group/GroupDispatchRuntime.ts +233 -0
  455. package/src/group/GroupSession.ts +168 -93
  456. package/src/group/GroupSessions.ts +12 -11
  457. package/src/group/index.ts +4 -2
  458. package/src/{workspace/store → group/storage}/LocalGroupSessionDataStore.ts +99 -8
  459. package/src/{workspace/store → group/storage}/LocalGroupSessionStore.ts +2 -2
  460. package/src/index.ts +84 -208
  461. package/src/session/DefaultSessionComposer.ts +77 -32
  462. package/src/session/Session.ts +167 -529
  463. package/src/session/SessionComposition.ts +370 -0
  464. package/src/session/SessionHookPoints.ts +17 -0
  465. package/src/session/SessionHooks.ts +85 -0
  466. package/src/session/SessionLoop.ts +289 -226
  467. package/src/session/SessionMessages.ts +380 -642
  468. package/src/session/SessionQueue.ts +3 -2
  469. package/src/session/SessionState.ts +71 -110
  470. package/src/session/SessionSystem.ts +53 -3
  471. package/src/session/SessionTitle.ts +55 -42
  472. package/src/session/browse/Browse.ts +188 -462
  473. package/src/session/browse/SessionMessageTimeline.ts +64 -39
  474. package/src/session/composer/policies/AdaptivePartContextPolicy.ts +307 -0
  475. package/src/session/composer/policies/FullHistoryContextPolicy.ts +36 -0
  476. package/src/session/composer/policies/SessionSummaryPrompts.ts +42 -0
  477. package/src/session/control/SessionInteractions.ts +1 -1
  478. package/src/session/execution/SessionAssistantOutputAdapter.ts +25 -11
  479. package/src/session/execution/tools/SessionShellApprovalAdapter.ts +2 -2
  480. package/src/session/index.ts +17 -0
  481. package/src/session/messages/SessionAgentActionPartWriter.ts +54 -0
  482. package/src/session/messages/SessionAgentContent.ts +56 -0
  483. package/src/session/messages/SessionAgentMessageState.ts +378 -0
  484. package/src/session/messages/{SessionAssistantMessageWriter.ts → SessionAgentMessageWriter.ts} +90 -61
  485. package/src/session/messages/SessionForkMessageFiles.ts +79 -0
  486. package/src/session/messages/SessionJsonValue.ts +1 -1
  487. package/src/session/messages/SessionMessageInteractionWriter.ts +23 -27
  488. package/src/session/messages/SessionMessageText.ts +5 -6
  489. package/src/session/messages/SessionTurnFileDiffBuilder.ts +229 -0
  490. package/src/session/messages/SessionTurnFileDiffData.ts +72 -0
  491. package/src/session/messages/SessionUserContext.ts +47 -0
  492. package/src/session/messages/SessionUserMessage.ts +88 -0
  493. package/src/session/preview/SessionMessagePreview.ts +27 -10
  494. package/src/session/runtime/SessionEventHub.ts +1 -1
  495. package/src/session/runtime/SessionModelRequestWarning.ts +29 -0
  496. package/src/session/runtime/SessionTitleTask.ts +3 -3
  497. package/src/session/runtime/SessionTurnCompletion.ts +159 -0
  498. package/src/session/runtime/SessionTurnContext.ts +96 -46
  499. package/src/session/runtime/SessionTurnFileDiff.ts +105 -0
  500. package/src/{workspace/store → session/storage}/LocalSessionAttachmentStore.ts +25 -4
  501. package/src/session/storage/LocalSessionDataStore.ts +41 -0
  502. package/src/session/storage/LocalSessionStore.ts +414 -0
  503. package/src/session/storage/LocalStorePaths.ts +123 -0
  504. package/src/session/storage/Metadata.ts +19 -36
  505. package/src/session/storage/RuntimeSessionPort.ts +11 -11
  506. package/src/session/storage/SessionStorageCodec.ts +465 -0
  507. package/src/session/storage/SessionStorageSchema.ts +132 -0
  508. package/src/session/storage/SqliteSessionStorage.ts +776 -0
  509. package/src/tools/ask/AskQuestionsTool.ts +5 -3
  510. package/src/types/action/ActionResult.ts +16 -11
  511. package/src/types/agent/AgentOptions.ts +27 -19
  512. package/src/types/agent/AgentSessionCollection.ts +19 -9
  513. package/src/types/agent/AgentStorage.ts +3 -1
  514. package/src/types/agent/SessionActor.ts +8 -17
  515. package/src/types/agent/SessionTypes.ts +32 -41
  516. package/src/types/executor/ModelRequest.ts +14 -0
  517. package/src/types/executor/SessionAssistantOutput.ts +15 -4
  518. package/src/types/executor/SessionToolExecutionContext.ts +1 -1
  519. package/src/types/executor/SessionTurnContext.ts +76 -35
  520. package/src/types/group/DispatchStrategy.ts +151 -77
  521. package/src/types/group/Group.ts +6 -6
  522. package/src/types/group/{GroupDispatchSession.ts → GroupDispatch.ts} +20 -25
  523. package/src/types/group/GroupSession.ts +9 -4
  524. package/src/types/group/GroupSessionStore.ts +8 -4
  525. package/src/types/sdk/AgentSessionAction.ts +2 -2
  526. package/src/types/sdk/AgentSessionPrompt.ts +21 -8
  527. package/src/types/session/AdaptivePartContextPolicy.ts +37 -0
  528. package/src/types/session/SessionAgentMessageState.ts +30 -0
  529. package/src/types/session/SessionCommand.ts +21 -7
  530. package/src/types/session/SessionComposer.ts +51 -45
  531. package/src/types/session/SessionComposition.ts +52 -0
  532. package/src/types/session/SessionContextPolicy.ts +77 -0
  533. package/src/types/session/SessionExecution.ts +11 -36
  534. package/src/types/session/SessionInteractions.ts +1 -1
  535. package/src/types/session/SessionLocalState.ts +1 -1
  536. package/src/types/session/SessionLoop.ts +8 -10
  537. package/src/types/session/SessionMessages.ts +31 -31
  538. package/src/types/session/SessionOptions.ts +27 -41
  539. package/src/types/session/SessionPort.ts +13 -13
  540. package/src/types/session/SessionState.ts +5 -8
  541. package/src/types/session/SessionSystem.ts +20 -1
  542. package/src/types/session/SessionTool.ts +2 -2
  543. package/src/types/session/SessionTurnCompletion.ts +24 -0
  544. package/src/types/session/SessionTurnFileDiff.ts +44 -0
  545. package/src/types/store/LocalStore.ts +10 -15
  546. package/src/types/store/SessionAttachmentStore.ts +19 -2
  547. package/src/types/store/SessionStorage.ts +121 -0
  548. package/src/types/store/SessionStore.ts +11 -7
  549. package/src/types/tools/ToolActionExecutionContext.ts +1 -1
  550. package/src/types/tools/ask/AskQuestionsTool.ts +1 -1
  551. package/src/utils/logger/Logger.ts +24 -42
  552. package/tsconfig.json +1 -2
  553. package/tsconfig.tsbuildinfo +1 -1
  554. package/bin/agent/AgentModel.d.ts +0 -28
  555. package/bin/agent/AgentModel.d.ts.map +0 -1
  556. package/bin/agent/AgentModel.js +0 -57
  557. package/bin/agent/AgentModel.js.map +0 -1
  558. package/bin/agent/WorkspaceEntry.d.ts +0 -82
  559. package/bin/agent/WorkspaceEntry.d.ts.map +0 -1
  560. package/bin/agent/WorkspaceEntry.js +0 -246
  561. package/bin/agent/WorkspaceEntry.js.map +0 -1
  562. package/bin/city/host/CityHostRegistry.d.ts +0 -44
  563. package/bin/city/host/CityHostRegistry.d.ts.map +0 -1
  564. package/bin/city/host/CityHostRegistry.js +0 -225
  565. package/bin/city/host/CityHostRegistry.js.map +0 -1
  566. package/bin/city/index.d.ts +0 -22
  567. package/bin/city/index.d.ts.map +0 -1
  568. package/bin/city/index.js +0 -10
  569. package/bin/city/index.js.map +0 -1
  570. package/bin/city/runtime/City.d.ts +0 -99
  571. package/bin/city/runtime/City.d.ts.map +0 -1
  572. package/bin/city/runtime/City.js +0 -376
  573. package/bin/city/runtime/City.js.map +0 -1
  574. package/bin/city/transport/SerializedTransport.d.ts +0 -30
  575. package/bin/city/transport/SerializedTransport.d.ts.map +0 -1
  576. package/bin/city/transport/SerializedTransport.js +0 -57
  577. package/bin/city/transport/SerializedTransport.js.map +0 -1
  578. package/bin/city/transport/http/AgentHTTP.d.ts +0 -66
  579. package/bin/city/transport/http/AgentHTTP.d.ts.map +0 -1
  580. package/bin/city/transport/http/AgentHTTP.js +0 -142
  581. package/bin/city/transport/http/AgentHTTP.js.map +0 -1
  582. package/bin/city/transport/http/CityHTTP.d.ts +0 -44
  583. package/bin/city/transport/http/CityHTTP.d.ts.map +0 -1
  584. package/bin/city/transport/http/CityHTTP.js +0 -171
  585. package/bin/city/transport/http/CityHTTP.js.map +0 -1
  586. package/bin/city/transport/http/NodeHttpAdapter.d.ts +0 -27
  587. package/bin/city/transport/http/NodeHttpAdapter.d.ts.map +0 -1
  588. package/bin/city/transport/http/NodeHttpAdapter.js +0 -57
  589. package/bin/city/transport/http/NodeHttpAdapter.js.map +0 -1
  590. package/bin/city/transport/http/routes/RuntimeRoutes.d.ts +0 -15
  591. package/bin/city/transport/http/routes/RuntimeRoutes.d.ts.map +0 -1
  592. package/bin/city/transport/http/routes/RuntimeRoutes.js +0 -38
  593. package/bin/city/transport/http/routes/RuntimeRoutes.js.map +0 -1
  594. package/bin/city/transport/http/routes/SessionRoutes.d.ts +0 -17
  595. package/bin/city/transport/http/routes/SessionRoutes.d.ts.map +0 -1
  596. package/bin/city/transport/http/routes/SessionRoutes.js +0 -417
  597. package/bin/city/transport/http/routes/SessionRoutes.js.map +0 -1
  598. package/bin/city/transport/rpc/AgentRPC.d.ts +0 -47
  599. package/bin/city/transport/rpc/AgentRPC.d.ts.map +0 -1
  600. package/bin/city/transport/rpc/AgentRPC.js +0 -89
  601. package/bin/city/transport/rpc/AgentRPC.js.map +0 -1
  602. package/bin/city/transport/rpc/CityRPC.d.ts +0 -26
  603. package/bin/city/transport/rpc/CityRPC.d.ts.map +0 -1
  604. package/bin/city/transport/rpc/CityRPC.js +0 -110
  605. package/bin/city/transport/rpc/CityRPC.js.map +0 -1
  606. package/bin/city/transport/rpc/RpcServer.d.ts +0 -30
  607. package/bin/city/transport/rpc/RpcServer.d.ts.map +0 -1
  608. package/bin/city/transport/rpc/RpcServer.js +0 -125
  609. package/bin/city/transport/rpc/RpcServer.js.map +0 -1
  610. package/bin/city/transport/rpc/server/InternalHandlers.d.ts +0 -22
  611. package/bin/city/transport/rpc/server/InternalHandlers.d.ts.map +0 -1
  612. package/bin/city/transport/rpc/server/InternalHandlers.js +0 -196
  613. package/bin/city/transport/rpc/server/InternalHandlers.js.map +0 -1
  614. package/bin/city/transport/rpc/server/RequestDispatcher.d.ts +0 -27
  615. package/bin/city/transport/rpc/server/RequestDispatcher.d.ts.map +0 -1
  616. package/bin/city/transport/rpc/server/RequestDispatcher.js +0 -38
  617. package/bin/city/transport/rpc/server/RequestDispatcher.js.map +0 -1
  618. package/bin/city/transport/rpc/server/SdkSessionHandlers.d.ts +0 -25
  619. package/bin/city/transport/rpc/server/SdkSessionHandlers.d.ts.map +0 -1
  620. package/bin/city/transport/rpc/server/SdkSessionHandlers.js +0 -146
  621. package/bin/city/transport/rpc/server/SdkSessionHandlers.js.map +0 -1
  622. package/bin/city/transport/rpc/server/ServerTypes.d.ts +0 -94
  623. package/bin/city/transport/rpc/server/ServerTypes.d.ts.map +0 -1
  624. package/bin/city/transport/rpc/server/ServerTypes.js +0 -9
  625. package/bin/city/transport/rpc/server/ServerTypes.js.map +0 -1
  626. package/bin/city/transport/session/RemoteSessionConfig.d.ts +0 -15
  627. package/bin/city/transport/session/RemoteSessionConfig.d.ts.map +0 -1
  628. package/bin/city/transport/session/RemoteSessionConfig.js +0 -23
  629. package/bin/city/transport/session/RemoteSessionConfig.js.map +0 -1
  630. package/bin/city/transport/types/AgentHttpBinding.d.ts +0 -24
  631. package/bin/city/transport/types/AgentHttpBinding.d.ts.map +0 -1
  632. package/bin/city/transport/types/AgentHttpBinding.js +0 -5
  633. package/bin/city/transport/types/AgentHttpBinding.js.map +0 -1
  634. package/bin/city/transport/types/AgentHttpRuntime.d.ts +0 -12
  635. package/bin/city/transport/types/AgentHttpRuntime.d.ts.map +0 -1
  636. package/bin/city/transport/types/AgentHttpRuntime.js +0 -7
  637. package/bin/city/transport/types/AgentHttpRuntime.js.map +0 -1
  638. package/bin/city/transport/types/AgentRpcBinding.d.ts +0 -27
  639. package/bin/city/transport/types/AgentRpcBinding.d.ts.map +0 -1
  640. package/bin/city/transport/types/AgentRpcBinding.js +0 -8
  641. package/bin/city/transport/types/AgentRpcBinding.js.map +0 -1
  642. package/bin/city/transport/types/AgentRpcRuntime.d.ts +0 -18
  643. package/bin/city/transport/types/AgentRpcRuntime.d.ts.map +0 -1
  644. package/bin/city/transport/types/AgentRpcRuntime.js +0 -7
  645. package/bin/city/transport/types/AgentRpcRuntime.js.map +0 -1
  646. package/bin/city/transport/types/AgentSessionModelResolver.d.ts +0 -11
  647. package/bin/city/transport/types/AgentSessionModelResolver.d.ts.map +0 -1
  648. package/bin/city/transport/types/AgentSessionModelResolver.js +0 -7
  649. package/bin/city/transport/types/AgentSessionModelResolver.js.map +0 -1
  650. package/bin/city/transport/types/CityHttpRuntime.d.ts +0 -36
  651. package/bin/city/transport/types/CityHttpRuntime.d.ts.map +0 -1
  652. package/bin/city/transport/types/CityHttpRuntime.js +0 -8
  653. package/bin/city/transport/types/CityHttpRuntime.js.map +0 -1
  654. package/bin/city/transport/types/CityRpcRuntime.d.ts +0 -17
  655. package/bin/city/transport/types/CityRpcRuntime.d.ts.map +0 -1
  656. package/bin/city/transport/types/CityRpcRuntime.js +0 -8
  657. package/bin/city/transport/types/CityRpcRuntime.js.map +0 -1
  658. package/bin/city/transport/types/RpcProtocol.d.ts +0 -24
  659. package/bin/city/transport/types/RpcProtocol.d.ts.map +0 -1
  660. package/bin/city/transport/types/RpcProtocol.js +0 -9
  661. package/bin/city/transport/types/RpcProtocol.js.map +0 -1
  662. package/bin/city/types/City.d.ts +0 -84
  663. package/bin/city/types/City.d.ts.map +0 -1
  664. package/bin/city/types/City.js +0 -7
  665. package/bin/city/types/City.js.map +0 -1
  666. package/bin/city/types/PluginHostContext.d.ts +0 -34
  667. package/bin/city/types/PluginHostContext.d.ts.map +0 -1
  668. package/bin/city/types/PluginHostContext.js +0 -11
  669. package/bin/city/types/PluginHostContext.js.map +0 -1
  670. package/bin/city/types/SerializedTransport.d.ts +0 -16
  671. package/bin/city/types/SerializedTransport.d.ts.map +0 -1
  672. package/bin/city/types/SerializedTransport.js +0 -3
  673. package/bin/city/types/SerializedTransport.js.map +0 -1
  674. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.d.ts +0 -45
  675. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.d.ts.map +0 -1
  676. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.js +0 -144
  677. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.js.map +0 -1
  678. package/bin/executor/composer/system/SessionSystemComposer.d.ts +0 -23
  679. package/bin/executor/composer/system/SessionSystemComposer.d.ts.map +0 -1
  680. package/bin/executor/composer/system/SessionSystemComposer.js +0 -9
  681. package/bin/executor/composer/system/SessionSystemComposer.js.map +0 -1
  682. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts +0 -43
  683. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts.map +0 -1
  684. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js +0 -42
  685. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js.map +0 -1
  686. package/bin/executor/composer/system/default/PromptRenderer.d.ts +0 -35
  687. package/bin/executor/composer/system/default/PromptRenderer.d.ts.map +0 -1
  688. package/bin/executor/composer/system/default/PromptRenderer.js +0 -23
  689. package/bin/executor/composer/system/default/PromptRenderer.js.map +0 -1
  690. package/bin/executor/composer/system/default/SystemDomain.d.ts +0 -169
  691. package/bin/executor/composer/system/default/SystemDomain.d.ts.map +0 -1
  692. package/bin/executor/composer/system/default/SystemDomain.js +0 -201
  693. package/bin/executor/composer/system/default/SystemDomain.js.map +0 -1
  694. package/bin/executor/composer/system/default/assets/task.prompt.d.ts +0 -7
  695. package/bin/executor/composer/system/default/assets/task.prompt.d.ts.map +0 -1
  696. package/bin/executor/composer/system/default/assets/task.prompt.js +0 -8
  697. package/bin/executor/composer/system/default/assets/task.prompt.js.map +0 -1
  698. package/bin/executor/composer/system/default/variables/GeoContext.d.ts +0 -14
  699. package/bin/executor/composer/system/default/variables/GeoContext.d.ts.map +0 -1
  700. package/bin/executor/composer/system/default/variables/GeoContext.js +0 -150
  701. package/bin/executor/composer/system/default/variables/GeoContext.js.map +0 -1
  702. package/bin/executor/composer/system/default/variables/PromptTypes.d.ts +0 -36
  703. package/bin/executor/composer/system/default/variables/PromptTypes.d.ts.map +0 -1
  704. package/bin/executor/composer/system/default/variables/PromptTypes.js +0 -9
  705. package/bin/executor/composer/system/default/variables/PromptTypes.js.map +0 -1
  706. package/bin/executor/composer/system/default/variables/VariableReplacer.d.ts +0 -61
  707. package/bin/executor/composer/system/default/variables/VariableReplacer.d.ts.map +0 -1
  708. package/bin/executor/composer/system/default/variables/VariableReplacer.js +0 -93
  709. package/bin/executor/composer/system/default/variables/VariableReplacer.js.map +0 -1
  710. package/bin/executor/core-engine/CoreEngineMessageState.d.ts +0 -63
  711. package/bin/executor/core-engine/CoreEngineMessageState.d.ts.map +0 -1
  712. package/bin/executor/core-engine/CoreEngineMessageState.js +0 -81
  713. package/bin/executor/core-engine/CoreEngineMessageState.js.map +0 -1
  714. package/bin/group/GroupDispatchSession.d.ts +0 -36
  715. package/bin/group/GroupDispatchSession.d.ts.map +0 -1
  716. package/bin/group/GroupDispatchSession.js.map +0 -1
  717. package/bin/internal/AgentRuntime.d.ts +0 -43
  718. package/bin/internal/AgentRuntime.d.ts.map +0 -1
  719. package/bin/internal/AgentRuntime.js +0 -179
  720. package/bin/internal/AgentRuntime.js.map +0 -1
  721. package/bin/internal/GroupRuntime.d.ts +0 -17
  722. package/bin/internal/GroupRuntime.d.ts.map +0 -1
  723. package/bin/internal/GroupRuntime.js +0 -66
  724. package/bin/internal/GroupRuntime.js.map +0 -1
  725. package/bin/internal/index.d.ts +0 -8
  726. package/bin/internal/index.d.ts.map +0 -1
  727. package/bin/internal/index.js +0 -8
  728. package/bin/internal/index.js.map +0 -1
  729. package/bin/plugin/core/ActionScheduleExecutor.d.ts +0 -19
  730. package/bin/plugin/core/ActionScheduleExecutor.d.ts.map +0 -1
  731. package/bin/plugin/core/ActionScheduleExecutor.js +0 -58
  732. package/bin/plugin/core/ActionScheduleExecutor.js.map +0 -1
  733. package/bin/plugin/core/ActionScheduleRuntime.d.ts +0 -25
  734. package/bin/plugin/core/ActionScheduleRuntime.d.ts.map +0 -1
  735. package/bin/plugin/core/ActionScheduleRuntime.js +0 -62
  736. package/bin/plugin/core/ActionScheduleRuntime.js.map +0 -1
  737. package/bin/plugin/core/ActionScheduleStore.d.ts +0 -97
  738. package/bin/plugin/core/ActionScheduleStore.d.ts.map +0 -1
  739. package/bin/plugin/core/ActionScheduleStore.js +0 -313
  740. package/bin/plugin/core/ActionScheduleStore.js.map +0 -1
  741. package/bin/plugin/core/ActionScheduleTime.d.ts +0 -32
  742. package/bin/plugin/core/ActionScheduleTime.d.ts.map +0 -1
  743. package/bin/plugin/core/ActionScheduleTime.js +0 -108
  744. package/bin/plugin/core/ActionScheduleTime.js.map +0 -1
  745. package/bin/plugin/core/BasePlugin.d.ts +0 -59
  746. package/bin/plugin/core/BasePlugin.d.ts.map +0 -1
  747. package/bin/plugin/core/BasePlugin.js +0 -40
  748. package/bin/plugin/core/BasePlugin.js.map +0 -1
  749. package/bin/plugin/core/HookRegistry.d.ts +0 -67
  750. package/bin/plugin/core/HookRegistry.d.ts.map +0 -1
  751. package/bin/plugin/core/HookRegistry.js +0 -220
  752. package/bin/plugin/core/HookRegistry.js.map +0 -1
  753. package/bin/plugin/core/PluginActionExecution.d.ts +0 -33
  754. package/bin/plugin/core/PluginActionExecution.d.ts.map +0 -1
  755. package/bin/plugin/core/PluginActionExecution.js +0 -168
  756. package/bin/plugin/core/PluginActionExecution.js.map +0 -1
  757. package/bin/plugin/core/PluginActionFactory.d.ts +0 -93
  758. package/bin/plugin/core/PluginActionFactory.d.ts.map +0 -1
  759. package/bin/plugin/core/PluginActionFactory.js +0 -56
  760. package/bin/plugin/core/PluginActionFactory.js.map +0 -1
  761. package/bin/plugin/core/PluginCatalog.d.ts +0 -57
  762. package/bin/plugin/core/PluginCatalog.d.ts.map +0 -1
  763. package/bin/plugin/core/PluginCatalog.js +0 -117
  764. package/bin/plugin/core/PluginCatalog.js.map +0 -1
  765. package/bin/plugin/core/PluginContext.d.ts +0 -42
  766. package/bin/plugin/core/PluginContext.d.ts.map +0 -1
  767. package/bin/plugin/core/PluginContext.js +0 -35
  768. package/bin/plugin/core/PluginContext.js.map +0 -1
  769. package/bin/plugin/core/PluginHttpRoutes.d.ts +0 -24
  770. package/bin/plugin/core/PluginHttpRoutes.d.ts.map +0 -1
  771. package/bin/plugin/core/PluginHttpRoutes.js +0 -35
  772. package/bin/plugin/core/PluginHttpRoutes.js.map +0 -1
  773. package/bin/plugin/core/PluginRegistry.d.ts +0 -207
  774. package/bin/plugin/core/PluginRegistry.d.ts.map +0 -1
  775. package/bin/plugin/core/PluginRegistry.js +0 -675
  776. package/bin/plugin/core/PluginRegistry.js.map +0 -1
  777. package/bin/plugin/core/PluginStateController.d.ts +0 -16
  778. package/bin/plugin/core/PluginStateController.d.ts.map +0 -1
  779. package/bin/plugin/core/PluginStateController.js +0 -14
  780. package/bin/plugin/core/PluginStateController.js.map +0 -1
  781. package/bin/plugin/tool/PluginToolRuntime.d.ts +0 -15
  782. package/bin/plugin/tool/PluginToolRuntime.d.ts.map +0 -1
  783. package/bin/plugin/tool/PluginToolRuntime.js +0 -108
  784. package/bin/plugin/tool/PluginToolRuntime.js.map +0 -1
  785. package/bin/plugin/tool/PluginToolSchemas.d.ts +0 -36
  786. package/bin/plugin/tool/PluginToolSchemas.d.ts.map +0 -1
  787. package/bin/plugin/tool/PluginToolSchemas.js +0 -42
  788. package/bin/plugin/tool/PluginToolSchemas.js.map +0 -1
  789. package/bin/plugin/tool/PluginTools.d.ts +0 -22
  790. package/bin/plugin/tool/PluginTools.d.ts.map +0 -1
  791. package/bin/plugin/tool/PluginTools.js +0 -61
  792. package/bin/plugin/tool/PluginTools.js.map +0 -1
  793. package/bin/plugin/types/ActionSchedule.d.ts +0 -91
  794. package/bin/plugin/types/ActionSchedule.d.ts.map +0 -1
  795. package/bin/plugin/types/ActionSchedule.js +0 -10
  796. package/bin/plugin/types/ActionSchedule.js.map +0 -1
  797. package/bin/plugin/types/PluginApi.d.ts +0 -79
  798. package/bin/plugin/types/PluginApi.d.ts.map +0 -1
  799. package/bin/plugin/types/PluginApi.js +0 -9
  800. package/bin/plugin/types/PluginApi.js.map +0 -1
  801. package/bin/remote/RemoteAgent.d.ts +0 -36
  802. package/bin/remote/RemoteAgent.d.ts.map +0 -1
  803. package/bin/remote/RemoteAgent.js +0 -97
  804. package/bin/remote/RemoteAgent.js.map +0 -1
  805. package/bin/remote/RemoteSession.d.ts +0 -67
  806. package/bin/remote/RemoteSession.d.ts.map +0 -1
  807. package/bin/remote/RemoteSession.js +0 -275
  808. package/bin/remote/RemoteSession.js.map +0 -1
  809. package/bin/remote/RemoteTransport.d.ts +0 -80
  810. package/bin/remote/RemoteTransport.d.ts.map +0 -1
  811. package/bin/remote/RemoteTransport.js +0 -9
  812. package/bin/remote/RemoteTransport.js.map +0 -1
  813. package/bin/remote/TransportFactory.d.ts +0 -13
  814. package/bin/remote/TransportFactory.d.ts.map +0 -1
  815. package/bin/remote/TransportFactory.js +0 -22
  816. package/bin/remote/TransportFactory.js.map +0 -1
  817. package/bin/remote/transports/HttpRemoteAgentTransport.d.ts +0 -52
  818. package/bin/remote/transports/HttpRemoteAgentTransport.d.ts.map +0 -1
  819. package/bin/remote/transports/HttpRemoteAgentTransport.js +0 -399
  820. package/bin/remote/transports/HttpRemoteAgentTransport.js.map +0 -1
  821. package/bin/remote/transports/RpcClient.d.ts +0 -168
  822. package/bin/remote/transports/RpcClient.d.ts.map +0 -1
  823. package/bin/remote/transports/RpcClient.js +0 -484
  824. package/bin/remote/transports/RpcClient.js.map +0 -1
  825. package/bin/remote/transports/RpcRemoteAgentTransport.d.ts +0 -51
  826. package/bin/remote/transports/RpcRemoteAgentTransport.d.ts.map +0 -1
  827. package/bin/remote/transports/RpcRemoteAgentTransport.js +0 -102
  828. package/bin/remote/transports/RpcRemoteAgentTransport.js.map +0 -1
  829. package/bin/session/SessionCommand.d.ts +0 -24
  830. package/bin/session/SessionCommand.d.ts.map +0 -1
  831. package/bin/session/SessionCommand.js +0 -35
  832. package/bin/session/SessionCommand.js.map +0 -1
  833. package/bin/session/messages/SessionAssistantMessageWriter.d.ts.map +0 -1
  834. package/bin/session/messages/SessionAssistantMessageWriter.js.map +0 -1
  835. package/bin/session/messages/SessionMessageCompaction.d.ts +0 -26
  836. package/bin/session/messages/SessionMessageCompaction.d.ts.map +0 -1
  837. package/bin/session/messages/SessionMessageCompaction.js +0 -118
  838. package/bin/session/messages/SessionMessageCompaction.js.map +0 -1
  839. package/bin/session/runtime/SessionCompactOperation.d.ts +0 -29
  840. package/bin/session/runtime/SessionCompactOperation.d.ts.map +0 -1
  841. package/bin/session/runtime/SessionCompactOperation.js +0 -66
  842. package/bin/session/runtime/SessionCompactOperation.js.map +0 -1
  843. package/bin/session/runtime/SessionHistoryCompaction.d.ts +0 -22
  844. package/bin/session/runtime/SessionHistoryCompaction.d.ts.map +0 -1
  845. package/bin/session/runtime/SessionHistoryCompaction.js +0 -31
  846. package/bin/session/runtime/SessionHistoryCompaction.js.map +0 -1
  847. package/bin/types/agent/RemoteAgentOptions.d.ts +0 -28
  848. package/bin/types/agent/RemoteAgentOptions.d.ts.map +0 -1
  849. package/bin/types/agent/RemoteAgentOptions.js +0 -9
  850. package/bin/types/agent/RemoteAgentOptions.js.map +0 -1
  851. package/bin/types/agent/RemoteAgentPluginAction.d.ts +0 -46
  852. package/bin/types/agent/RemoteAgentPluginAction.d.ts.map +0 -1
  853. package/bin/types/agent/RemoteAgentPluginAction.js +0 -9
  854. package/bin/types/agent/RemoteAgentPluginAction.js.map +0 -1
  855. package/bin/types/agent/WorkspaceEntryOptions.d.ts +0 -16
  856. package/bin/types/agent/WorkspaceEntryOptions.d.ts.map +0 -1
  857. package/bin/types/agent/WorkspaceEntryOptions.js +0 -8
  858. package/bin/types/agent/WorkspaceEntryOptions.js.map +0 -1
  859. package/bin/types/common/Json.d.ts +0 -32
  860. package/bin/types/common/Json.d.ts.map +0 -1
  861. package/bin/types/common/Json.js +0 -9
  862. package/bin/types/common/Json.js.map +0 -1
  863. package/bin/types/common/Template.d.ts +0 -9
  864. package/bin/types/common/Template.d.ts.map +0 -1
  865. package/bin/types/common/Template.js +0 -9
  866. package/bin/types/common/Template.js.map +0 -1
  867. package/bin/types/group/GroupDispatchSession.d.ts.map +0 -1
  868. package/bin/types/group/GroupDispatchSession.js +0 -8
  869. package/bin/types/group/GroupDispatchSession.js.map +0 -1
  870. package/bin/types/plugin/AgentPluginContext.d.ts +0 -25
  871. package/bin/types/plugin/AgentPluginContext.d.ts.map +0 -1
  872. package/bin/types/plugin/AgentPluginContext.js +0 -10
  873. package/bin/types/plugin/AgentPluginContext.js.map +0 -1
  874. package/bin/types/plugin/PluginAction.d.ts +0 -161
  875. package/bin/types/plugin/PluginAction.d.ts.map +0 -1
  876. package/bin/types/plugin/PluginAction.js +0 -9
  877. package/bin/types/plugin/PluginAction.js.map +0 -1
  878. package/bin/types/plugin/PluginActionExecution.d.ts +0 -31
  879. package/bin/types/plugin/PluginActionExecution.d.ts.map +0 -1
  880. package/bin/types/plugin/PluginActionExecution.js +0 -10
  881. package/bin/types/plugin/PluginActionExecution.js.map +0 -1
  882. package/bin/types/plugin/PluginCommand.d.ts +0 -14
  883. package/bin/types/plugin/PluginCommand.d.ts.map +0 -1
  884. package/bin/types/plugin/PluginCommand.js +0 -7
  885. package/bin/types/plugin/PluginCommand.js.map +0 -1
  886. package/bin/types/plugin/PluginContext.d.ts +0 -45
  887. package/bin/types/plugin/PluginContext.d.ts.map +0 -1
  888. package/bin/types/plugin/PluginContext.js +0 -9
  889. package/bin/types/plugin/PluginContext.js.map +0 -1
  890. package/bin/types/plugin/PluginDefinition.d.ts +0 -44
  891. package/bin/types/plugin/PluginDefinition.d.ts.map +0 -1
  892. package/bin/types/plugin/PluginDefinition.js +0 -9
  893. package/bin/types/plugin/PluginDefinition.js.map +0 -1
  894. package/bin/types/plugin/PluginExecutionContext.d.ts +0 -23
  895. package/bin/types/plugin/PluginExecutionContext.d.ts.map +0 -1
  896. package/bin/types/plugin/PluginExecutionContext.js +0 -8
  897. package/bin/types/plugin/PluginExecutionContext.js.map +0 -1
  898. package/bin/types/plugin/PluginHttp.d.ts +0 -34
  899. package/bin/types/plugin/PluginHttp.d.ts.map +0 -1
  900. package/bin/types/plugin/PluginHttp.js +0 -9
  901. package/bin/types/plugin/PluginHttp.js.map +0 -1
  902. package/bin/types/plugin/PluginNotification.d.ts +0 -31
  903. package/bin/types/plugin/PluginNotification.d.ts.map +0 -1
  904. package/bin/types/plugin/PluginNotification.js +0 -8
  905. package/bin/types/plugin/PluginNotification.js.map +0 -1
  906. package/bin/types/plugin/PluginRegistry.d.ts +0 -21
  907. package/bin/types/plugin/PluginRegistry.d.ts.map +0 -1
  908. package/bin/types/plugin/PluginRegistry.js +0 -9
  909. package/bin/types/plugin/PluginRegistry.js.map +0 -1
  910. package/bin/types/plugin/PluginRuntime.d.ts +0 -267
  911. package/bin/types/plugin/PluginRuntime.d.ts.map +0 -1
  912. package/bin/types/plugin/PluginRuntime.js +0 -9
  913. package/bin/types/plugin/PluginRuntime.js.map +0 -1
  914. package/bin/types/plugin/PluginServices.d.ts +0 -10
  915. package/bin/types/plugin/PluginServices.d.ts.map +0 -1
  916. package/bin/types/plugin/PluginServices.js +0 -3
  917. package/bin/types/plugin/PluginServices.js.map +0 -1
  918. package/bin/types/plugin/PluginState.d.ts +0 -62
  919. package/bin/types/plugin/PluginState.d.ts.map +0 -1
  920. package/bin/types/plugin/PluginState.js +0 -10
  921. package/bin/types/plugin/PluginState.js.map +0 -1
  922. package/bin/types/plugin/PluginTool.d.ts +0 -92
  923. package/bin/types/plugin/PluginTool.d.ts.map +0 -1
  924. package/bin/types/plugin/PluginTool.js +0 -9
  925. package/bin/types/plugin/PluginTool.js.map +0 -1
  926. package/bin/types/rpc/RpcProtocol.d.ts +0 -417
  927. package/bin/types/rpc/RpcProtocol.d.ts.map +0 -1
  928. package/bin/types/rpc/RpcProtocol.js +0 -10
  929. package/bin/types/rpc/RpcProtocol.js.map +0 -1
  930. package/bin/types/sdk/AgentSessionCompact.d.ts +0 -31
  931. package/bin/types/sdk/AgentSessionCompact.d.ts.map +0 -1
  932. package/bin/types/sdk/AgentSessionCompact.js +0 -8
  933. package/bin/types/sdk/AgentSessionCompact.js.map +0 -1
  934. package/bin/types/session/SessionAction.d.ts +0 -39
  935. package/bin/types/session/SessionAction.d.ts.map +0 -1
  936. package/bin/types/session/SessionAction.js +0 -8
  937. package/bin/types/session/SessionAction.js.map +0 -1
  938. package/bin/types/session/SessionContent.d.ts +0 -41
  939. package/bin/types/session/SessionContent.d.ts.map +0 -1
  940. package/bin/types/session/SessionContent.js +0 -8
  941. package/bin/types/session/SessionContent.js.map +0 -1
  942. package/bin/types/session/SessionInteraction.d.ts +0 -215
  943. package/bin/types/session/SessionInteraction.d.ts.map +0 -1
  944. package/bin/types/session/SessionInteraction.js +0 -15
  945. package/bin/types/session/SessionInteraction.js.map +0 -1
  946. package/bin/types/session/SessionMessage.d.ts +0 -268
  947. package/bin/types/session/SessionMessage.d.ts.map +0 -1
  948. package/bin/types/session/SessionMessage.js +0 -8
  949. package/bin/types/session/SessionMessage.js.map +0 -1
  950. package/bin/types/session/SessionMutation.d.ts +0 -151
  951. package/bin/types/session/SessionMutation.d.ts.map +0 -1
  952. package/bin/types/session/SessionMutation.js +0 -20
  953. package/bin/types/session/SessionMutation.js.map +0 -1
  954. package/bin/types/session/SessionOrigin.d.ts +0 -19
  955. package/bin/types/session/SessionOrigin.d.ts.map +0 -1
  956. package/bin/types/session/SessionOrigin.js +0 -8
  957. package/bin/types/session/SessionOrigin.js.map +0 -1
  958. package/bin/types/session/SessionSegment.d.ts +0 -57
  959. package/bin/types/session/SessionSegment.d.ts.map +0 -1
  960. package/bin/types/session/SessionSegment.js +0 -8
  961. package/bin/types/session/SessionSegment.js.map +0 -1
  962. package/bin/types/store/SessionDataStore.d.ts +0 -85
  963. package/bin/types/store/SessionDataStore.d.ts.map +0 -1
  964. package/bin/types/store/SessionDataStore.js +0 -9
  965. package/bin/types/store/SessionDataStore.js.map +0 -1
  966. package/bin/utils/Template.d.ts +0 -17
  967. package/bin/utils/Template.d.ts.map +0 -1
  968. package/bin/utils/Template.js +0 -24
  969. package/bin/utils/Template.js.map +0 -1
  970. package/bin/workspace/WorkspacePaths.d.ts +0 -16
  971. package/bin/workspace/WorkspacePaths.d.ts.map +0 -1
  972. package/bin/workspace/WorkspacePaths.js +0 -35
  973. package/bin/workspace/WorkspacePaths.js.map +0 -1
  974. package/bin/workspace/store/JsonlSessionMessageStore.d.ts +0 -77
  975. package/bin/workspace/store/JsonlSessionMessageStore.d.ts.map +0 -1
  976. package/bin/workspace/store/JsonlSessionMessageStore.js +0 -419
  977. package/bin/workspace/store/JsonlSessionMessageStore.js.map +0 -1
  978. package/bin/workspace/store/LocalGroupDispatchSessionDataStore.d.ts +0 -28
  979. package/bin/workspace/store/LocalGroupDispatchSessionDataStore.d.ts.map +0 -1
  980. package/bin/workspace/store/LocalGroupDispatchSessionDataStore.js +0 -102
  981. package/bin/workspace/store/LocalGroupDispatchSessionDataStore.js.map +0 -1
  982. package/bin/workspace/store/LocalGroupSessionDataStore.d.ts.map +0 -1
  983. package/bin/workspace/store/LocalGroupSessionDataStore.js.map +0 -1
  984. package/bin/workspace/store/LocalGroupSessionStore.d.ts.map +0 -1
  985. package/bin/workspace/store/LocalGroupSessionStore.js.map +0 -1
  986. package/bin/workspace/store/LocalSessionAttachmentStore.d.ts.map +0 -1
  987. package/bin/workspace/store/LocalSessionAttachmentStore.js.map +0 -1
  988. package/bin/workspace/store/LocalSessionDataStore.d.ts +0 -45
  989. package/bin/workspace/store/LocalSessionDataStore.d.ts.map +0 -1
  990. package/bin/workspace/store/LocalSessionDataStore.js +0 -100
  991. package/bin/workspace/store/LocalSessionDataStore.js.map +0 -1
  992. package/bin/workspace/store/LocalSessionStore.d.ts.map +0 -1
  993. package/bin/workspace/store/LocalSessionStore.js +0 -177
  994. package/bin/workspace/store/LocalSessionStore.js.map +0 -1
  995. package/bin/workspace/store/LocalStorePaths.d.ts +0 -35
  996. package/bin/workspace/store/LocalStorePaths.d.ts.map +0 -1
  997. package/bin/workspace/store/LocalStorePaths.js +0 -62
  998. package/bin/workspace/store/LocalStorePaths.js.map +0 -1
  999. package/bin/workspace/store/SessionMessageStoreFactory.d.ts +0 -12
  1000. package/bin/workspace/store/SessionMessageStoreFactory.d.ts.map +0 -1
  1001. package/bin/workspace/store/SessionMessageStoreFactory.js +0 -13
  1002. package/bin/workspace/store/SessionMessageStoreFactory.js.map +0 -1
  1003. package/city-test/agent-http.test.mjs +0 -326
  1004. package/city-test/city-container.test.mjs +0 -156
  1005. package/city-test/city-host-registry.test.mjs +0 -68
  1006. package/city-test/city-transport.test.mjs +0 -282
  1007. package/city-test/group.test.mjs +0 -990
  1008. package/city-test/session-model.test.mjs +0 -169
  1009. package/city-test/transport-lifecycle.test.mjs +0 -164
  1010. package/scripts/PlatformSandbox.mjs +0 -17
  1011. package/scripts/action-schedule-store.test.mjs +0 -171
  1012. package/scripts/agent-env-shell-sandbox.test.mjs +0 -94
  1013. package/scripts/agent-env.test.mjs +0 -56
  1014. package/scripts/agent-multi-workspace.test.mjs +0 -280
  1015. package/scripts/agent-ready.test.mjs +0 -296
  1016. package/scripts/agent-session-maintenance.test.mjs +0 -47
  1017. package/scripts/agent-store.test.mjs +0 -182
  1018. package/scripts/city-model-tool-loop.test.mjs +0 -95
  1019. package/scripts/file-tools.test.mjs +0 -282
  1020. package/scripts/image-plugin-job.test.mjs +0 -600
  1021. package/scripts/multi-agent-plugin-isolation.test.mjs +0 -170
  1022. package/scripts/plugin-tools.test.mjs +0 -556
  1023. package/scripts/remote-session-reconnect.test.mjs +0 -183
  1024. package/scripts/rpc-url-routing.test.mjs +0 -29
  1025. package/scripts/search-tools.test.mjs +0 -188
  1026. package/scripts/session-ask-question.test.mjs +0 -226
  1027. package/scripts/session-attachments.test.mjs +0 -104
  1028. package/scripts/session-compact-handle.test.mjs +0 -118
  1029. package/scripts/session-compaction-prompts.test.mjs +0 -49
  1030. package/scripts/session-composer.test.mjs +0 -208
  1031. package/scripts/session-config-turn-boundary.test.mjs +0 -921
  1032. package/scripts/session-dynamic-interaction.test.mjs +0 -75
  1033. package/scripts/session-fork.test.mjs +0 -35
  1034. package/scripts/session-list-title.test.mjs +0 -202
  1035. package/scripts/session-messages.test.mjs +0 -490
  1036. package/scripts/session-shell-approval.test.mjs +0 -179
  1037. package/scripts/session-title-event.test.mjs +0 -282
  1038. package/scripts/session-tool-approval.test.mjs +0 -173
  1039. package/scripts/session-turn-failure.test.mjs +0 -363
  1040. package/scripts/workspace.test.mjs +0 -260
  1041. package/src/agent/AgentModel.ts +0 -66
  1042. package/src/agent/WorkspaceEntry.ts +0 -309
  1043. package/src/city/host/CityHostRegistry.ts +0 -260
  1044. package/src/city/index.ts +0 -49
  1045. package/src/city/runtime/City.ts +0 -425
  1046. package/src/city/transport/SerializedTransport.ts +0 -65
  1047. package/src/city/transport/http/AgentHTTP.ts +0 -176
  1048. package/src/city/transport/http/CityHTTP.ts +0 -196
  1049. package/src/city/transport/http/NodeHttpAdapter.ts +0 -75
  1050. package/src/city/transport/http/routes/RuntimeRoutes.ts +0 -51
  1051. package/src/city/transport/http/routes/SessionRoutes.ts +0 -497
  1052. package/src/city/transport/rpc/AgentRPC.ts +0 -111
  1053. package/src/city/transport/rpc/CityRPC.ts +0 -138
  1054. package/src/city/transport/rpc/RpcServer.ts +0 -158
  1055. package/src/city/transport/rpc/server/InternalHandlers.ts +0 -223
  1056. package/src/city/transport/rpc/server/RequestDispatcher.ts +0 -67
  1057. package/src/city/transport/rpc/server/SdkSessionHandlers.ts +0 -166
  1058. package/src/city/transport/rpc/server/ServerTypes.ts +0 -103
  1059. package/src/city/transport/session/RemoteSessionConfig.ts +0 -34
  1060. package/src/city/transport/types/AgentHttpBinding.ts +0 -25
  1061. package/src/city/transport/types/AgentHttpRuntime.ts +0 -13
  1062. package/src/city/transport/types/AgentRpcBinding.ts +0 -28
  1063. package/src/city/transport/types/AgentRpcRuntime.ts +0 -20
  1064. package/src/city/transport/types/AgentSessionModelResolver.ts +0 -13
  1065. package/src/city/transport/types/CityHttpRuntime.ts +0 -45
  1066. package/src/city/transport/types/CityRpcRuntime.ts +0 -27
  1067. package/src/city/transport/types/RpcProtocol.ts +0 -32
  1068. package/src/city/types/City.ts +0 -99
  1069. package/src/city/types/PluginHostContext.ts +0 -44
  1070. package/src/city/types/SerializedTransport.ts +0 -19
  1071. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.ts +0 -162
  1072. package/src/executor/composer/system/SessionSystemComposer.ts +0 -25
  1073. package/src/executor/composer/system/default/DefaultSessionSystemComposer.ts +0 -76
  1074. package/src/executor/composer/system/default/PromptRenderer.ts +0 -52
  1075. package/src/executor/composer/system/default/SystemDomain.ts +0 -350
  1076. package/src/executor/composer/system/default/assets/task.prompt.ts +0 -9
  1077. package/src/executor/composer/system/default/assets/task.prompt.ts.txt +0 -33
  1078. package/src/executor/composer/system/default/variables/GeoContext.ts +0 -180
  1079. package/src/executor/composer/system/default/variables/PromptTypes.ts +0 -37
  1080. package/src/executor/composer/system/default/variables/VariableReplacer.ts +0 -154
  1081. package/src/executor/core-engine/CoreEngineMessageState.ts +0 -117
  1082. package/src/group/GroupDispatchSession.ts +0 -175
  1083. package/src/internal/AgentRuntime.ts +0 -229
  1084. package/src/internal/GroupRuntime.ts +0 -89
  1085. package/src/internal/index.ts +0 -33
  1086. package/src/plugin/core/ActionScheduleExecutor.ts +0 -68
  1087. package/src/plugin/core/ActionScheduleRuntime.ts +0 -92
  1088. package/src/plugin/core/ActionScheduleStore.ts +0 -414
  1089. package/src/plugin/core/ActionScheduleTime.ts +0 -132
  1090. package/src/plugin/core/BasePlugin.ts +0 -79
  1091. package/src/plugin/core/HookRegistry.ts +0 -297
  1092. package/src/plugin/core/PluginActionExecution.ts +0 -230
  1093. package/src/plugin/core/PluginActionFactory.ts +0 -172
  1094. package/src/plugin/core/PluginCatalog.ts +0 -153
  1095. package/src/plugin/core/PluginContext.ts +0 -71
  1096. package/src/plugin/core/PluginHttpRoutes.ts +0 -47
  1097. package/src/plugin/core/PluginRegistry.ts +0 -888
  1098. package/src/plugin/core/PluginStateController.ts +0 -19
  1099. package/src/plugin/tool/PluginToolRuntime.ts +0 -124
  1100. package/src/plugin/tool/PluginToolSchemas.ts +0 -44
  1101. package/src/plugin/tool/PluginTools.ts +0 -92
  1102. package/src/plugin/types/ActionSchedule.ts +0 -100
  1103. package/src/plugin/types/PluginApi.ts +0 -86
  1104. package/src/remote/RemoteAgent.ts +0 -130
  1105. package/src/remote/RemoteSession.ts +0 -359
  1106. package/src/remote/RemoteTransport.ts +0 -122
  1107. package/src/remote/TransportFactory.ts +0 -29
  1108. package/src/remote/transports/HttpRemoteAgentTransport.ts +0 -582
  1109. package/src/remote/transports/RpcClient.ts +0 -638
  1110. package/src/remote/transports/RpcRemoteAgentTransport.ts +0 -187
  1111. package/src/session/SessionCommand.ts +0 -42
  1112. package/src/session/messages/SessionMessageCompaction.ts +0 -147
  1113. package/src/session/runtime/SessionCompactOperation.ts +0 -93
  1114. package/src/session/runtime/SessionHistoryCompaction.ts +0 -45
  1115. package/src/types/agent/RemoteAgentOptions.ts +0 -29
  1116. package/src/types/agent/RemoteAgentPluginAction.ts +0 -52
  1117. package/src/types/agent/WorkspaceEntryOptions.ts +0 -18
  1118. package/src/types/common/Json.ts +0 -34
  1119. package/src/types/common/Template.ts +0 -9
  1120. package/src/types/plugin/AgentPluginContext.ts +0 -30
  1121. package/src/types/plugin/PluginAction.ts +0 -178
  1122. package/src/types/plugin/PluginActionExecution.ts +0 -36
  1123. package/src/types/plugin/PluginCommand.ts +0 -15
  1124. package/src/types/plugin/PluginContext.ts +0 -59
  1125. package/src/types/plugin/PluginDefinition.ts +0 -54
  1126. package/src/types/plugin/PluginExecutionContext.ts +0 -29
  1127. package/src/types/plugin/PluginHttp.ts +0 -36
  1128. package/src/types/plugin/PluginNotification.ts +0 -38
  1129. package/src/types/plugin/PluginRegistry.ts +0 -25
  1130. package/src/types/plugin/PluginRuntime.ts +0 -292
  1131. package/src/types/plugin/PluginServices.ts +0 -11
  1132. package/src/types/plugin/PluginState.ts +0 -65
  1133. package/src/types/plugin/PluginTool.ts +0 -106
  1134. package/src/types/rpc/RpcProtocol.ts +0 -464
  1135. package/src/types/sdk/AgentSessionCompact.ts +0 -36
  1136. package/src/types/session/SessionAction.ts +0 -41
  1137. package/src/types/session/SessionContent.ts +0 -52
  1138. package/src/types/session/SessionInteraction.ts +0 -268
  1139. package/src/types/session/SessionMessage.ts +0 -306
  1140. package/src/types/session/SessionMutation.ts +0 -183
  1141. package/src/types/session/SessionOrigin.ts +0 -21
  1142. package/src/types/session/SessionSegment.ts +0 -62
  1143. package/src/types/store/SessionDataStore.ts +0 -109
  1144. package/src/utils/Template.ts +0 -28
  1145. package/src/workspace/WorkspacePaths.ts +0 -37
  1146. package/src/workspace/store/JsonlSessionMessageStore.ts +0 -513
  1147. package/src/workspace/store/LocalGroupDispatchSessionDataStore.ts +0 -118
  1148. package/src/workspace/store/LocalSessionDataStore.ts +0 -169
  1149. package/src/workspace/store/LocalSessionStore.ts +0 -243
  1150. package/src/workspace/store/LocalStorePaths.ts +0 -143
  1151. package/src/workspace/store/SessionMessageStoreFactory.ts +0 -18
  1152. /package/bin/{workspace/store → group/storage}/LocalGroupSessionStore.d.ts +0 -0
@@ -4,18 +4,16 @@
4
4
  * 关键点(中文)
5
5
  * - 面向 `new Agent(...)` 的本地会话使用场景。
6
6
  * - 对外保留稳定 Session facade,把状态、turn、view 逻辑下沉到独立 service。
7
- * - 内部使用 `SessionMessages` 统一管理 Active、Segment 与流式 Assistant 草稿。
7
+ * - 内部使用 `SessionMessages` 管理 SQLite 中的 canonical Message 聚合。
8
8
  */
9
9
 
10
10
  import { Executor } from "@executor/Executor.js";
11
- import type { ModelClient } from "@downcity/type";
12
- import type { RuntimeTool as Tool } from "@downcity/type";
13
11
  import {
14
- infer_agent_model_label,
15
- normalize_agent_model,
16
- read_agent_model_context_window,
17
- type AgentModel,
18
- } from "@/agent/AgentModel.js";
12
+ type ModelClient,
13
+ read_model_context_window,
14
+ read_model_label,
15
+ type RuntimeTool as Tool,
16
+ } from "@downcity/type";
19
17
  import { SessionMessages } from "@/session/SessionMessages.js";
20
18
  import type {
21
19
  AgentSessionConfigSnapshot,
@@ -24,56 +22,52 @@ import type {
24
22
  AgentSessionStatus,
25
23
  AgentSessionSetInput,
26
24
  AgentSessionSetOptions,
27
- AgentSessionSystemBlock,
28
25
  AgentSessionSystemSnapshot,
29
26
  } from "@/types/agent/SessionTypes.js";
30
27
  import type { AgentSession } from "@/types/agent/SessionActor.js";
31
- import { resolve_system_timezone } from "@/session/storage/Metadata.js";
32
28
  import { create_runtime_session_port } from "@/session/storage/RuntimeSessionPort.js";
33
29
  import type { SessionPort } from "@/types/session/SessionPort.js";
34
- import type { SessionMutationSubscriber, SessionMutationUnsubscribe } from "@/types/session/SessionMutation.js";
30
+ import type { SessionMutationSubscriber, SessionMutationUnsubscribe } from "@downcity/type";
35
31
  import type {
36
32
  RespondSessionInteractionInput,
37
33
  SessionApprovalMode,
38
34
  SessionInteractionResult,
39
35
  SessionPendingInteraction,
40
- } from "@/types/session/SessionInteraction.js";
41
- import type { ListSessionMessagesInput, SessionMessagePage } from "@/types/session/SessionMessage.js";
36
+ } from "@downcity/type";
37
+ import type { ListSessionMessagesInput, SessionMessagePage } from "@downcity/type";
42
38
  import type { AgentSessionPromptInput } from "@/types/sdk/AgentSessionPrompt.js";
43
39
  import type { AgentSessionStopResult } from "@/types/sdk/AgentSessionStop.js";
44
- import type { AgentSessionCompactHandle } from "@/types/sdk/AgentSessionCompact.js";
45
40
  import type { AgentSessionTurnHandle } from "@/types/sdk/AgentSessionTurn.js";
46
41
  import { SessionEventHub } from "@/session/runtime/SessionEventHub.js";
47
- import { create_session_compact_operation } from "@/session/runtime/SessionCompactOperation.js";
48
- import { run_session_history_compaction } from "@/session/runtime/SessionHistoryCompaction.js";
49
- import { create_session_plugin_execution_context } from "@/session/runtime/SessionTurnContext.js";
50
- import { SessionState } from "@/session/SessionState.js";
42
+ import {
43
+ create_session_local_state,
44
+ SessionState,
45
+ } from "@/session/SessionState.js";
51
46
  import { SessionLoop } from "@/session/SessionLoop.js";
52
47
  import { SessionQueue } from "@/session/SessionQueue.js";
53
- import { SessionCommand } from "@/session/SessionCommand.js";
54
48
  import type { SessionLocalState } from "@/types/session/SessionLocalState.js";
55
49
  import type { SessionOptions } from "@/types/session/SessionOptions.js";
56
- import type { AgentPluginExecutionRuntime } from "@/types/plugin/PluginRuntime.js";
50
+ import type { SessionHookRuntime } from "@downcity/type";
57
51
  import { SessionInteractions } from "@/session/control/SessionInteractions.js";
58
52
  import { SessionShellApprovalAdapter } from "@/session/execution/tools/SessionShellApprovalAdapter.js";
59
53
  import { DefaultSessionComposer } from "@/session/DefaultSessionComposer.js";
60
- import type {
61
- SessionComposer,
62
- SessionComposeIdentity,
63
- SessionCompactionPlan,
64
- SessionComposeInput,
65
- SessionStepInput,
66
- } from "@/types/session/SessionComposer.js";
67
- import type { SessionCompactHistory } from "@/types/session/SessionExecution.js";
68
- import type { SessionTurnContext } from "@/types/executor/SessionTurnContext.js";
54
+ import type { SessionComposer } from "@/types/session/SessionComposer.js";
69
55
  import { generate_id } from "@/utils/Id.js";
70
56
  import { nanoid } from "nanoid";
71
57
  import { build_session_info } from "@/session/browse/Browse.js";
72
- import { ensure_session_title } from "@/session/SessionTitle.js";
73
- import type { SessionMessage } from "@/types/session/SessionMessage.js";
74
- import type { SessionActionEventInput } from "@/types/session/SessionAction.js";
75
- import type { SessionCommandOptions } from "@/types/session/SessionCommand.js";
76
- import type { SessionDataStore } from "@/types/store/SessionDataStore.js";
58
+ import type { SessionActionEventInput } from "@downcity/type";
59
+ import type { SessionStorage } from "@/types/store/SessionStorage.js";
60
+ import type {
61
+ AppendExternalSessionAgentMessageInput,
62
+ AppendExternalSessionUserMessageInput,
63
+ } from "@/types/session/SessionMessages.js";
64
+ import { SessionComposition } from "@/session/SessionComposition.js";
65
+ import {
66
+ relocate_fork_message_files,
67
+ resolve_session_fork_messages,
68
+ } from "@/session/messages/SessionForkMessageFiles.js";
69
+ import { create_session_model_request_warning } from "@/session/runtime/SessionModelRequestWarning.js";
70
+ import type { SessionContextRecoveryReason } from "@/types/session/SessionContextPolicy.js";
77
71
 
78
72
  /**
79
73
  * SDK 本地 Session。
@@ -84,16 +78,18 @@ export class Session implements AgentSession {
84
78
  /** 当前 Session 创建时绑定的 Workspace ID。 */
85
79
  readonly workspace_id?: string;
86
80
  /** 当前 Session 的创建来源。 */
87
- readonly origin?: SessionOptions["origin"];
81
+ readonly origin: SessionOptions["origin"];
88
82
 
89
83
  private readonly workspace_path: string;
90
- private readonly store: SessionDataStore;
91
- private readonly get_session_store: SessionOptions["get_session_store"];
92
- private readonly tools: Record<string, Tool>;
84
+ private readonly store: SessionStorage;
85
+ private readonly create_session_store: SessionOptions["create_session_store"];
86
+ private readonly register_forked_session: SessionOptions["register_forked_session"];
87
+ private readonly get_tools: SessionOptions["get_tools"];
93
88
  private readonly logger: SessionOptions["logger"];
94
89
  private readonly get_managed_plugin_system_blocks: SessionOptions["get_managed_plugin_system_blocks"];
95
90
  private readonly ensure_configured_hook?: SessionOptions["ensure_configured"];
96
91
  private readonly composer: SessionComposer;
92
+ private readonly create_composer: () => SessionComposer;
97
93
  private readonly session_messages: SessionMessages;
98
94
  private readonly executor: Executor;
99
95
  private readonly events: SessionEventHub;
@@ -102,19 +98,13 @@ export class Session implements AgentSession {
102
98
  private readonly local_state: SessionLocalState;
103
99
  private readonly get_workspace_env: SessionOptions["get_workspace_env"];
104
100
  private readonly get_agent_model: SessionOptions["get_agent_model"];
105
- private readonly get_agent_plugins: SessionOptions["get_agent_plugins"];
101
+ private readonly get_hooks: SessionOptions["get_hooks"];
106
102
  private readonly get_instruction_system_blocks:
107
103
  SessionOptions["get_instruction_system_blocks"];
108
- private effective_instruction_system_blocks: AgentSessionSystemBlock[];
109
104
  /** 当前 Session 的一次性初始化任务,避免缓存实例被重复恢复运行时状态。 */
110
105
  private initialize_promise: Promise<void> | null = null;
111
- private instruction_initialize_promise: Promise<void> | null = null;
112
- private effective_workspace_env: Record<string, string>;
113
- private effective_agent_plugins: AgentPluginExecutionRuntime;
114
- /** 当前 Session 首次生成后固定的完整 system snapshot。 */
115
- private system_snapshot_blocks: AgentSessionSystemBlock[] | null = null;
116
- /** 串行化 snapshot / syncshot 对 system 与 instruction.md 的修改。 */
117
- private system_mutation_chain: Promise<void> = Promise.resolve();
106
+ /** 当前 Session system snapshot 与 Step 组装边界。 */
107
+ private readonly session_composition: SessionComposition;
118
108
  private readonly state: SessionState;
119
109
  /** 当前 Session 独享的 Command FIFO。 */
120
110
  private readonly session_queue = new SessionQueue();
@@ -128,21 +118,19 @@ export class Session implements AgentSession {
128
118
  this.origin = options.origin;
129
119
  this.workspace_path = String(options.workspace_path || "").trim();
130
120
  this.store = options.store;
131
- this.get_session_store = options.get_session_store;
132
- this.tools = options.tools;
121
+ this.create_session_store = options.create_session_store;
122
+ this.register_forked_session = options.register_forked_session;
123
+ this.get_tools = options.get_tools;
133
124
  this.logger = options.logger;
134
125
  this.get_workspace_env = options.get_workspace_env;
135
126
  this.get_agent_model = options.get_agent_model;
136
- this.get_agent_plugins = options.get_agent_plugins;
127
+ this.get_hooks = options.get_hooks;
137
128
  this.get_instruction_system_blocks = options.get_instruction_system_blocks;
138
- this.effective_instruction_system_blocks = options
139
- .instruction_system_blocks
140
- .map((block) => ({ ...block }));
141
- this.effective_workspace_env = { ...options.get_workspace_env() };
142
- this.effective_agent_plugins = options.get_agent_plugins();
143
129
  this.get_managed_plugin_system_blocks = options.get_managed_plugin_system_blocks;
144
130
  this.ensure_configured_hook = options.ensure_configured;
145
- this.composer = options.composer || new DefaultSessionComposer();
131
+ this.create_composer = options.create_composer ||
132
+ (() => new DefaultSessionComposer());
133
+ this.composer = this.create_composer();
146
134
  if (!this.id) {
147
135
  throw new Error("Session requires a non-empty session_id");
148
136
  }
@@ -156,7 +144,7 @@ export class Session implements AgentSession {
156
144
  this.events = new SessionEventHub();
157
145
  this.session_messages = new SessionMessages({
158
146
  session_id: this.id,
159
- store: this.store.messages,
147
+ store: this.store,
160
148
  attachment_store: this.store.attachments,
161
149
  publish: (mutation) => {
162
150
  this.events.publish(mutation);
@@ -170,14 +158,32 @@ export class Session implements AgentSession {
170
158
  session_id: this.id,
171
159
  interactions: this.session_interactions,
172
160
  });
173
- this.local_state = this.create_local_state();
161
+ this.local_state = create_session_local_state();
162
+ this.session_composition = new SessionComposition({
163
+ agent_id: this.agent_id,
164
+ session_id: this.id,
165
+ session_origin: this.origin,
166
+ workspace_path: this.workspace_path,
167
+ store: this.store,
168
+ composer: this.composer,
169
+ get_tools: this.get_tools,
170
+ instruction_system_blocks: options.instruction_system_blocks,
171
+ get_instruction_system_blocks: this.get_instruction_system_blocks,
172
+ get_hooks: this.get_hooks,
173
+ get_workspace_env: this.get_workspace_env,
174
+ get_managed_plugin_system_blocks: this.get_managed_plugin_system_blocks,
175
+ get_model: () => this.get_model(),
176
+ get_model_context_window: () => this.get_model_context_window(),
177
+ get_created_at: () => this.local_state.created_at,
178
+ get_timezone: () => this.local_state.timezone,
179
+ logger: this.logger,
180
+ });
174
181
  this.executor = this.create_executor();
175
182
  this.state = new SessionState({
176
183
  agent_id: this.agent_id,
177
184
  session_id: this.id,
178
185
  origin: this.origin,
179
186
  store: this.store,
180
- messages: this.session_messages,
181
187
  state: this.local_state,
182
188
  logger: this.logger,
183
189
  ensure_configured_hook: this.ensure_configured_hook
@@ -192,9 +198,12 @@ export class Session implements AgentSession {
192
198
  });
193
199
  this.session_loop = new SessionLoop({
194
200
  session_id: this.id,
201
+ session_origin: this.origin,
195
202
  workspace_path: this.workspace_path,
196
203
  executor: this.executor,
197
- compact_history: async (input) => await this.compact_history(input),
204
+ maintain_context: async () => {
205
+ await this.recover_context("usage_pressure");
206
+ },
198
207
  state: this.state,
199
208
  events: this.events,
200
209
  logger: this.logger,
@@ -212,7 +221,7 @@ export class Session implements AgentSession {
212
221
  if (!this.initialize_promise) {
213
222
  this.initialize_promise = (async () => {
214
223
  await Promise.all([
215
- this.initialize_instruction(),
224
+ this.session_composition.initialize(),
216
225
  this.session_messages.initialize(),
217
226
  this.state.initialize(),
218
227
  ]);
@@ -221,7 +230,15 @@ export class Session implements AgentSession {
221
230
  );
222
231
  })();
223
232
  }
224
- await this.initialize_promise;
233
+ const initialize_promise = this.initialize_promise;
234
+ try {
235
+ await initialize_promise;
236
+ } catch (error) {
237
+ if (this.initialize_promise === initialize_promise) {
238
+ this.initialize_promise = null;
239
+ }
240
+ throw error;
241
+ }
225
242
  return this;
226
243
  }
227
244
 
@@ -229,40 +246,23 @@ export class Session implements AgentSession {
229
246
  * 把当前 Session 首次生成后固定的完整 system 显式固化到 instruction.md。
230
247
  *
231
248
  * 关键点(中文)
232
- * - 包含 instruction、SDK core、plugin system 与 Session context。
249
+ * - 包含 instruction、SDK core、Plugin system 与 Session context。
233
250
  * - 多个 system block 按原顺序合并为一个 Markdown 文档。
234
251
  */
235
252
  async snapshot(): Promise<void> {
236
- await this.run_system_mutation(async () => {
237
- const system_snapshot = await this.system();
238
- await this.write_system_snapshot(system_snapshot.blocks);
239
- });
253
+ await this.session_composition.snapshot();
240
254
  }
241
255
 
242
256
  /**
243
- * 使用 Agent 当前 instruction 与 plugin 重新生成一次完整 system。
257
+ * 使用 Agent 当前 instruction 与 Plugin 重新生成一次完整 system。
244
258
  *
245
259
  * 关键点(中文)
246
- * - 只替换内存 snapshot,不改变 plugin execution view。
260
+ * - 只替换内存 snapshot,不改变 Plugin execution view。
247
261
  * - instruction.md 已存在时同步覆盖;不存在时不自动创建。
248
262
  * - 当前已经发出的 provider 请求不受影响,后续 step 使用新 snapshot。
249
263
  */
250
264
  async syncshot(): Promise<void> {
251
- await this.run_system_mutation(async () => {
252
- await this.initialize_instruction();
253
- const should_persist = await this.store.has_instruction();
254
- const composed = await this.composer.compose(
255
- await this.create_compose_input(undefined, 0, true),
256
- );
257
- const next_blocks = resolve_composed_system_blocks(composed);
258
-
259
- if (should_persist) {
260
- await this.write_system_snapshot(next_blocks);
261
- }
262
- this.effective_instruction_system_blocks =
263
- this.get_instruction_system_blocks().map((block) => ({ ...block }));
264
- this.system_snapshot_blocks = next_blocks;
265
- });
265
+ await this.session_composition.syncshot();
266
266
  }
267
267
 
268
268
  /**
@@ -340,7 +340,8 @@ export class Session implements AgentSession {
340
340
  publish_mutation,
341
341
  }
342
342
  : undefined;
343
- this.enqueue_command({
343
+ this.session_loop.enqueue_command({
344
+ kind: "maintenance",
344
345
  execute: async () => {
345
346
  if (model_result) this.state.apply_model_config(model_result.config);
346
347
  if (security_changed && next_approval_mode) {
@@ -360,7 +361,7 @@ export class Session implements AgentSession {
360
361
  * 追加一条新的 Session prompt。
361
362
  */
362
363
  async prompt(input: AgentSessionPromptInput): Promise<AgentSessionTurnHandle> {
363
- await this.initialize_instruction();
364
+ await this.session_composition.initialize();
364
365
  return await this.session_loop.prompt(input);
365
366
  }
366
367
 
@@ -371,97 +372,6 @@ export class Session implements AgentSession {
371
372
  return await this.session_loop.stop();
372
373
  }
373
374
 
374
- /**
375
- * 把一次显式历史压缩加入当前 Session 的有序输入队列。
376
- */
377
- async compact(): Promise<AgentSessionCompactHandle> {
378
- await this.state.ensure_runnable();
379
- const compact_id = `compact:${this.id}:${generate_id()}`;
380
- const operation = create_session_compact_operation({
381
- compact_id,
382
- run: async () => await this.session_loop.compact_history(compact_id),
383
- log_error: async (error_message) => {
384
- await this.logger.log("warn", "[agent] session compact command failed", {
385
- session_id: this.id,
386
- compact_id,
387
- error: error_message,
388
- });
389
- },
390
- publish_finish: (final_result) => {
391
- this.events.publish({
392
- mutation_id: nanoid(),
393
- variant: "compact",
394
- type: "finish",
395
- session_id: this.id,
396
- compact_id,
397
- status: final_result.success ? "completed" : "failed",
398
- compacted: final_result.compacted,
399
- reason: final_result.reason,
400
- created_at: Date.now(),
401
- ...(final_result.error ? { error: final_result.error } : {}),
402
- });
403
- },
404
- });
405
- this.enqueue_command({
406
- execute: operation.execute,
407
- });
408
- this.events.publish({
409
- mutation_id: nanoid(),
410
- variant: "compact",
411
- type: "start",
412
- session_id: this.id,
413
- compact_id,
414
- status: "queued",
415
- created_at: Date.now(),
416
- });
417
- return operation.handle;
418
- }
419
-
420
- /** 把 Workspace env 快照加入当前 Session 的有序输入队列。 */
421
- enqueue_workspace_env(input: {
422
- /** 当前 Workspace env 修改的稳定标识。 */
423
- command_id: string;
424
- /** 下一 Session Step 使用的完整环境变量快照。 */
425
- env: Record<string, string>;
426
- }): void {
427
- this.enqueue_command({
428
- execute: async () => {
429
- this.effective_workspace_env = { ...input.env };
430
- },
431
- completion: {
432
- type: "action",
433
- id: `agent-env:${this.id}:${input.command_id}`,
434
- title: "Workspace environment updated",
435
- },
436
- });
437
- }
438
-
439
- /** 把 Agent Plugin 执行视图加入当前 Session 的有序输入队列。 */
440
- enqueue_agent_plugins(input: {
441
- /** 当前 Plugin 修改的稳定标识。 */
442
- command_id: string;
443
- /** 当前 Plugin 修改的用户可读标题。 */
444
- title: string;
445
- /** 下一 Session Step 使用的 Plugin 执行视图。 */
446
- plugins: AgentPluginExecutionRuntime;
447
- }): void {
448
- this.enqueue_command({
449
- execute: async () => {
450
- this.effective_agent_plugins = input.plugins;
451
- },
452
- completion: {
453
- type: "action",
454
- id: `agent-plugins:${this.id}:${input.command_id}`,
455
- title: input.title,
456
- },
457
- });
458
- }
459
-
460
- /** 创建一个具体 Session Command 对象并加入当前 FIFO。 */
461
- private enqueue_command(options: SessionCommandOptions): void {
462
- this.session_queue.enqueue_command(new SessionCommand(options));
463
- }
464
-
465
375
  /**
466
376
  * 订阅当前 Session 的未来事件。
467
377
  */
@@ -501,45 +411,30 @@ export class Session implements AgentSession {
501
411
  async append_user_message(input: {
502
412
  text: string;
503
413
  }): Promise<void> {
504
- const appended = await this.session_messages.append_external_user_message({
414
+ await this.append_external_user_message({
505
415
  text: String(input.text || "").trim(),
506
416
  });
507
- if (!appended) return;
508
- this.state.touch_metadata_in_background();
509
- this.state.schedule_title_generation();
510
417
  }
511
418
 
512
419
  /**
513
- * 追加一条 assistant 文本消息。
420
+ * 追加一条 Agent 文本消息。
514
421
  */
515
- async append_assistant_message(input: {
422
+ async append_agent_message(input: {
516
423
  text: string;
517
424
  }): Promise<void> {
518
- const appended = await this.session_messages.append_external_assistant_message({
425
+ await this.append_external_agent_message({
519
426
  text: String(input.text || "").trim(),
520
427
  });
521
- if (appended) await this.state.touch_metadata();
522
428
  }
523
429
 
524
430
  /**
525
431
  * 读取当前 session 详情。
526
432
  */
527
433
  async get_info(): Promise<AgentSessionInfo> {
528
- const [metadata, snapshot] = await Promise.all([
529
- this.store.read_metadata(),
530
- this.session_messages.context_snapshot(),
531
- ]);
532
- const metadata_with_title = metadata.title
533
- ? metadata
534
- : await ensure_session_title({
535
- session_id: this.id,
536
- store: this.store,
537
- messages: snapshot.messages,
538
- logger: this.logger,
539
- });
434
+ const metadata = await this.store.read_metadata();
540
435
  const model_label = String(
541
- metadata_with_title.model_label ||
542
- infer_agent_model_label(this.get_selected_model()) ||
436
+ metadata.model_label ||
437
+ read_model_label(this.get_selected_model()) ||
543
438
  "",
544
439
  ).trim();
545
440
  return build_session_info({
@@ -547,10 +442,9 @@ export class Session implements AgentSession {
547
442
  agent_id: this.agent_id,
548
443
  session_id: this.id,
549
444
  metadata: {
550
- ...metadata_with_title,
445
+ ...metadata,
551
446
  ...(model_label ? { model_label } : {}),
552
447
  },
553
- messages: snapshot.messages,
554
448
  executing: this.is_executing(),
555
449
  });
556
450
  }
@@ -566,20 +460,7 @@ export class Session implements AgentSession {
566
460
  * 读取当前 session 生效的 system 快照。
567
461
  */
568
462
  async system(): Promise<AgentSessionSystemSnapshot> {
569
- await this.initialize_instruction();
570
- const composed = await this.compose_for_view();
571
- const blocks = resolve_composed_system_blocks(composed);
572
- return {
573
- session_id: this.id,
574
- session: {
575
- agent_id: this.agent_id,
576
- session_id: this.id,
577
- project_root: this.workspace_path,
578
- created_at: new Date(this.state.get_created_at()).toISOString(),
579
- timezone: this.state.get_timezone(),
580
- },
581
- blocks,
582
- };
463
+ return await this.session_composition.read();
583
464
  }
584
465
 
585
466
  /**
@@ -599,7 +480,12 @@ export class Session implements AgentSession {
599
480
  const include_message = typeof input === "string" || input?.include_message !== false;
600
481
  const messages = await this.session_messages.list_history_messages();
601
482
  const fork_messages = message_id
602
- ? this.resolve_fork_messages(messages, message_id, include_message)
483
+ ? resolve_session_fork_messages({
484
+ session_id: this.id,
485
+ messages,
486
+ message_id,
487
+ include_message,
488
+ })
603
489
  : messages;
604
490
  const action_id = `history-forking:${this.id}:${Date.now()}:${nanoid(8)}`;
605
491
  await this.emit_action_event({
@@ -622,7 +508,9 @@ export class Session implements AgentSession {
622
508
  const approval_mode = this.state.get_approval_mode();
623
509
  await forked.state.set_approval_mode(approval_mode);
624
510
  forked.shell_approval_adapter.set_effective_mode(approval_mode);
625
- await forked.session_messages.import_messages(fork_messages);
511
+ const relocated_messages = await relocate_fork_message_files(fork_messages, this.store.attachments, forked.store.attachments);
512
+ await forked.session_messages.import_messages(relocated_messages);
513
+ this.register_forked_session(forked);
626
514
  await this.emit_action_event({
627
515
  action_id,
628
516
  action_type: "history-fork",
@@ -643,25 +531,8 @@ export class Session implements AgentSession {
643
531
  }
644
532
  }
645
533
 
646
- /** 截取 Fork 目标 Message 之前的历史,并按调用语义决定是否包含锚点。 */
647
- private resolve_fork_messages(
648
- messages: SessionMessage[],
649
- message_id: string,
650
- include_message: boolean,
651
- ): SessionMessage[] {
652
- const target_index = messages.findIndex(
653
- (message) => message.message_id === message_id,
654
- );
655
- if (target_index < 0) {
656
- throw new Error(
657
- `Cannot fork session "${this.id}": message_id "${message_id}" not found.`,
658
- );
659
- }
660
- return messages.slice(0, include_message ? target_index + 1 : target_index);
661
- }
662
-
663
534
  /**
664
- * 返回供受托管 plugin 使用的 session 端口。
535
+ * 返回供宿主运行时使用的 Session 端口。
665
536
  */
666
537
  get_runtime_port(): SessionPort {
667
538
  if (this.runtime_port) return this.runtime_port;
@@ -669,26 +540,15 @@ export class Session implements AgentSession {
669
540
  session_id: this.id,
670
541
  get_model: () => this.get_model(),
671
542
  get_executor: () => this.executor,
543
+ messages: async () => await this.session_messages.list_history_messages(),
672
544
  prompt: async (input) => await this.prompt(input),
673
545
  stop: async () => await this.stop(),
674
546
  subscribe: (subscriber) => this.subscribe(subscriber),
675
- append_user_message: async (message_params) => {
676
- const appended = await this.session_messages.append_external_user_message(
677
- message_params,
678
- );
679
- if (!appended) return;
680
- this.state.touch_metadata_in_background();
681
- this.state.schedule_title_generation();
682
- },
683
- append_assistant_message: async (message_params) => {
684
- const appended = await this.session_messages.append_external_assistant_message({
685
- parts: message_params.parts,
686
- text: message_params.text,
687
- });
688
- if (appended) await this.state.touch_metadata();
689
- },
547
+ append_user_message: async (message_params) =>
548
+ await this.append_external_user_message(message_params),
549
+ append_agent_message: async (message_params) =>
550
+ await this.append_external_agent_message(message_params),
690
551
  is_executing: () => this.is_executing(),
691
- context: async () => await this.session_messages.context_snapshot(),
692
552
  ensure_ready_for_execution: async () => {
693
553
  await this.ensure_ready_for_execution();
694
554
  },
@@ -705,7 +565,7 @@ export class Session implements AgentSession {
705
565
  * 在执行前确保 session 已完成初始化与宿主装配。
706
566
  */
707
567
  async ensure_ready_for_execution(): Promise<void> {
708
- await this.initialize_instruction();
568
+ await this.session_composition.initialize();
709
569
  await this.state.ensure_ready_for_execution();
710
570
  }
711
571
 
@@ -713,21 +573,22 @@ export class Session implements AgentSession {
713
573
  return this.create_child_session({
714
574
  agent_id: this.agent_id,
715
575
  workspace_path: this.workspace_path,
716
- store: this.get_session_store(session_id),
717
- get_session_store: this.get_session_store,
576
+ ...(this.workspace_id ? { workspace_id: this.workspace_id } : {}),
577
+ origin: this.origin,
578
+ store: this.create_session_store(session_id),
579
+ create_session_store: this.create_session_store,
580
+ register_forked_session: this.register_forked_session,
718
581
  session_id: session_id,
719
- tools: this.tools,
582
+ get_tools: this.get_tools,
720
583
  logger: this.logger,
721
- instruction_system_blocks: this.effective_instruction_system_blocks.map(
722
- (block) => ({ ...block }),
723
- ),
584
+ instruction_system_blocks: this.session_composition.instruction_blocks(),
724
585
  get_instruction_system_blocks: this.get_instruction_system_blocks,
725
586
  get_workspace_env: this.get_workspace_env,
726
- get_agent_plugins: this.get_agent_plugins,
587
+ get_hooks: this.get_hooks,
727
588
  get_managed_plugin_system_blocks: this.get_managed_plugin_system_blocks,
728
589
  ensure_configured: this.ensure_configured_hook,
729
590
  get_agent_model: this.get_agent_model,
730
- composer: this.composer,
591
+ create_composer: this.create_composer,
731
592
  });
732
593
  }
733
594
 
@@ -745,264 +606,53 @@ export class Session implements AgentSession {
745
606
  return new session_class(options) as this;
746
607
  }
747
608
 
748
- /** 恢复显式固化的完整 system snapshot;文件不存在时等待首次生成。 */
749
- private async initialize_instruction(): Promise<void> {
750
- if (!this.instruction_initialize_promise) {
751
- this.instruction_initialize_promise = (async () => {
752
- const persisted_instruction = await this.store.read_instruction();
753
- if (persisted_instruction === null) return;
754
-
755
- const instruction = persisted_instruction.trim();
756
- this.system_snapshot_blocks = instruction
757
- ? [{
758
- source: "instruction" as const,
759
- name: "snapshot",
760
- content: instruction,
761
- }]
762
- : [];
763
- const stable_system_blocks = this.effective_instruction_system_blocks
764
- .filter((block) => block.source !== "instruction")
765
- .map((block) => ({ ...block }));
766
- this.effective_instruction_system_blocks = [
767
- ...(instruction
768
- ? [{
769
- source: "instruction" as const,
770
- name: "agent",
771
- content: instruction,
772
- }]
773
- : []),
774
- ...stable_system_blocks,
775
- ];
776
- })();
777
- }
778
- await this.instruction_initialize_promise;
779
- }
780
-
781
- private create_local_state(): SessionLocalState {
782
- return {
783
- session_config: {},
784
- effective_session_config: {},
785
- configured_approval_mode: "ask",
786
- created_at: Date.now(),
787
- timezone: resolve_system_timezone(),
788
- initialize_promise: null,
789
- ensure_configured_promise: null,
790
- };
791
- }
792
-
793
609
  /** 创建只依赖统一 Composer 的 Turn Executor。 */
794
610
  private create_executor(): Executor {
795
611
  return new Executor({
796
612
  session_id: this.id,
797
613
  composer: this.composer,
798
614
  get_compose_input: async (turn_context, retry_count) =>
799
- await this.create_compose_input(turn_context, retry_count),
800
- compact_history: async (input) => await this.compact_history(input),
801
- get_model: () => this.get_model(),
615
+ await this.session_composition.create_compose_input(
616
+ turn_context,
617
+ retry_count,
618
+ ),
619
+ recover_context: async (reason) => await this.recover_context(reason),
802
620
  logger: this.logger,
803
- get_plugins: () => this.effective_agent_plugins,
804
- apply_system_snapshot: (input) => this.apply_system_snapshot(input),
621
+ get_hooks: () => this.get_hooks(),
622
+ apply_system_snapshot: (input) => this.session_composition.apply_snapshot(input),
805
623
  });
806
624
  }
807
625
 
808
- /** Composer 创建当前 Step 的只读 Session 快照。 */
809
- private async create_compose_input(
810
- turn_context: SessionTurnContext | undefined,
811
- retry_count: number,
812
- refresh_system = false,
813
- ): Promise<SessionComposeInput> {
814
- const instruction_system_blocks = refresh_system
815
- ? this.get_instruction_system_blocks().map((block) => ({ ...block }))
816
- : this.effective_instruction_system_blocks.map((block) => ({ ...block }));
817
- // 关键点(中文):Plugin system 本身参与 Compose,必须先让它看到当前检查点
818
- // 已确定的 env 与 instruction;Executor 会在 Compose 返回后提交最终 Step 快照。
819
- turn_context?.step.commit({
820
- workspace_env: this.effective_workspace_env,
821
- agent_systems: instruction_system_blocks.map((block) => block.content),
822
- });
823
- const plugin_execution_context =
824
- turn_context?.step.plugin_execution_context() ||
825
- create_session_plugin_execution_context({
826
- session_id: this.id,
827
- project_root: this.workspace_path,
828
- workspace_env: this.effective_workspace_env,
829
- agent_systems: this.effective_instruction_system_blocks.map(
830
- (block) => block.content,
831
- ),
832
- });
833
- const plugin_system_blocks = this.system_snapshot_blocks && !refresh_system
834
- ? []
835
- : refresh_system
836
- ? await this.get_agent_plugins().system_blocks(plugin_execution_context)
837
- : turn_context?.step.plugins
838
- ? await turn_context.step.plugins.system_blocks(
839
- plugin_execution_context,
840
- )
841
- : await this.effective_agent_plugins.system_blocks(
842
- plugin_execution_context,
843
- );
844
- return {
845
- session: this.create_compose_identity(),
846
- state: {
847
- model: this.get_model(),
848
- model_context_window: this.get_model_context_window(),
849
- env: Object.freeze({ ...this.effective_workspace_env }),
850
- systems: Object.freeze(
851
- instruction_system_blocks.map((block) => block.content),
852
- ),
853
- tools: Object.freeze({ ...this.tools }),
854
- instruction_system_blocks,
855
- managed_plugin_system_blocks:
856
- this.system_snapshot_blocks && !refresh_system
857
- ? []
858
- : await this.get_managed_plugin_system_blocks(),
859
- plugin_system_blocks,
860
- },
861
- history: await this.session_messages.context_snapshot(),
862
- turn: {
863
- ...(turn_context
864
- ? { turn_id: turn_context.session.turn_id }
865
- : {}),
866
- retry_count,
867
- },
868
- };
869
- }
870
-
871
- /** 创建 Composer 共用的稳定 Session 身份快照。 */
872
- private create_compose_identity(): SessionComposeIdentity {
873
- return {
874
- agent_id: this.agent_id,
875
- session_id: this.id,
876
- project_root: this.workspace_path,
877
- created_at: this.local_state.created_at,
878
- timezone: this.local_state.timezone,
879
- };
880
- }
881
-
882
- /** 生成并提交 canonical 历史压缩;该职责不进入 Executor。 */
883
- private async compact_history(
884
- input: Parameters<SessionCompactHistory>[0],
885
- ): ReturnType<SessionCompactHistory> {
886
- return await run_session_history_compaction({
887
- turn_id: input.turn_id,
888
- create_plan: async () => await this.composer.compact({
889
- session: this.create_compose_identity(),
890
- model: this.get_model(),
891
- history: await this.session_messages.context_snapshot(),
892
- }),
893
- commit_plan: async (plan) => {
894
- await this.commit_compaction_plan(plan, input.turn_id);
895
- },
896
- log_error: async (error_message) => {
897
- await this.logger.log("warn", "[agent] session history compaction failed", {
626
+ /** Composer Context Policy 尝试推进派生上下文状态。 */
627
+ private async recover_context(
628
+ reason: SessionContextRecoveryReason,
629
+ ): Promise<boolean> {
630
+ return await this.composer.recover_context({
631
+ session: this.session_composition.compose_identity(),
632
+ model: this.get_model(),
633
+ storage: this.store,
634
+ reason,
635
+ on_model_request_failure: (notice) => {
636
+ this.events.publish(create_session_model_request_warning({
898
637
  session_id: this.id,
899
- ...(input.turn_id ? { turn_id: input.turn_id } : {}),
900
- error: error_message,
901
- });
638
+ turn_id: this.session_loop.current_turn_id(),
639
+ notice,
640
+ }));
902
641
  },
903
642
  });
904
643
  }
905
644
 
906
- /** 使用统一 Composer 生成只读 system/history 查询结果。 */
907
- private async compose_for_view(): Promise<SessionStepInput> {
908
- const composed = await this.composer.compose(
909
- await this.create_compose_input(undefined, 0),
910
- );
911
- return this.apply_system_snapshot(composed);
912
- }
913
-
914
- /** 固定或应用当前 Session 的 system snapshot。 */
915
- private apply_system_snapshot(input: SessionStepInput): SessionStepInput {
916
- if (!this.system_snapshot_blocks) {
917
- this.system_snapshot_blocks = resolve_composed_system_blocks(input);
918
- }
919
-
920
- return {
921
- ...input,
922
- system: this.system_snapshot_blocks.map((block) => ({
923
- role: "system" as const,
924
- content: block.content,
925
- })),
926
- system_blocks: this.system_snapshot_blocks.map((block) => ({ ...block })),
927
- };
928
- }
929
-
930
- /** 串行执行一次 Session system 修改。 */
931
- private async run_system_mutation(
932
- operation: () => Promise<void>,
933
- ): Promise<void> {
934
- const next = this.system_mutation_chain.then(operation, operation);
935
- this.system_mutation_chain = next.catch(() => undefined);
936
- await next;
937
- }
938
-
939
- /** 把指定完整 system blocks 原子写入 instruction.md。 */
940
- private async write_system_snapshot(
941
- blocks: readonly AgentSessionSystemBlock[],
942
- ): Promise<void> {
943
- await this.store.write_instruction(
944
- blocks.map((block) => block.content).join("\n\n"),
945
- );
946
- }
947
-
948
- /** 提交 Composer 生成的 Segment 压缩计划。 */
949
- private async commit_compaction_plan(
950
- plan: SessionCompactionPlan,
951
- turn_id?: string,
952
- ): Promise<void> {
953
- const action_id = `compacting:${this.id}:${generate_id()}`;
954
- await this.emit_action_event({
955
- action_id,
956
- action_type: "history-compaction",
957
- title: "Compacting session messages",
958
- status: "running",
959
- ...(turn_id
960
- ? { turn_id }
961
- : {}),
962
- });
963
- try {
964
- await this.session_messages.compact_active({
965
- through_sequence: plan.through_sequence,
966
- summary: plan.summary,
967
- });
968
- await this.emit_action_event({
969
- action_id,
970
- action_type: "history-compaction",
971
- title: "Session messages compacted",
972
- description: `Closed Active through Message ${plan.boundary_message_id}.`,
973
- status: "completed",
974
- ...(turn_id
975
- ? { turn_id }
976
- : {}),
977
- });
978
- await this.state.touch_metadata();
979
- } catch (error) {
980
- await this.emit_action_event({
981
- action_id,
982
- action_type: "history-compaction",
983
- title: "Session messages compact failed",
984
- description: error instanceof Error ? error.message : String(error),
985
- status: "failed",
986
- ...(turn_id
987
- ? { turn_id }
988
- : {}),
989
- });
990
- throw error;
991
- }
992
- }
993
-
994
645
  /**
995
646
  * 返回当前 Session 实际使用的模型实例。
996
647
  *
997
648
  * 解析顺序固定为 Session 覆盖模型,其次回退到 Agent 模型。
998
649
  */
999
650
  get_model(): ModelClient | undefined {
1000
- const model = this.get_selected_model();
1001
- return model ? normalize_agent_model(model) : undefined;
651
+ return this.get_selected_model();
1002
652
  }
1003
653
 
1004
- /** 按 Session 优先、Agent 兜底规则读取当前配置的 AgentModel。 */
1005
- private get_selected_model(): AgentModel | undefined {
654
+ /** 按 Session 优先、Agent 兜底规则读取当前配置的 ModelClient。 */
655
+ private get_selected_model(): ModelClient | undefined {
1006
656
  return (
1007
657
  this.local_state.effective_session_config.model ||
1008
658
  this.local_state.session_config.model ||
@@ -1015,11 +665,31 @@ export class Session implements AgentSession {
1015
665
  return (
1016
666
  this.local_state.effective_session_config.model_context_window ||
1017
667
  this.local_state.session_config.model_context_window ||
1018
- read_agent_model_context_window(this.get_selected_model())
668
+ read_model_context_window(this.get_selected_model())
669
+ );
670
+ }
671
+
672
+ /** 追加外部 User Message,并统一触发 Metadata 与标题更新。 */
673
+ private async append_external_user_message(
674
+ input: AppendExternalSessionUserMessageInput,
675
+ ): Promise<void> {
676
+ const appended = await this.session_messages.append_external_user_message(
677
+ input,
678
+ );
679
+ if (!appended) return;
680
+ this.state.schedule_title_generation();
681
+ }
682
+
683
+ /** 追加外部 Assistant Message,并统一提交 Metadata。 */
684
+ private async append_external_agent_message(
685
+ input: AppendExternalSessionAgentMessageInput,
686
+ ): Promise<void> {
687
+ await this.session_messages.append_external_agent_message(
688
+ input,
1019
689
  );
1020
690
  }
1021
691
 
1022
- /** 持久化并发布一条 canonical Action Message。 */
692
+ /** 持久化并发布一条只包含 Action Part 的 canonical Agent Message。 */
1023
693
  private async emit_action_event(input: SessionActionEventInput): Promise<void> {
1024
694
  const action_id = String(input.action_id || "").trim() ||
1025
695
  `action:${this.id}:${Date.now()}`;
@@ -1031,38 +701,6 @@ export class Session implements AgentSession {
1031
701
  ...(input.description ? { description: input.description } : {}),
1032
702
  status: input.status,
1033
703
  });
1034
- await this.state.touch_metadata();
1035
- }
1036
-
1037
- }
1038
-
1039
- /** 把自定义 Composer 的 system content 转为可展示文本。 */
1040
- function stringify_system_content(content: unknown): string {
1041
- if (typeof content === "string") return content.trim();
1042
- if (content === null || content === undefined) return "";
1043
- try {
1044
- return JSON.stringify(content);
1045
- } catch {
1046
- return String(content || "").trim();
1047
704
  }
1048
- }
1049
705
 
1050
- /** 以实际模型输入为准,保留仍与其一致的 system block 来源信息。 */
1051
- function resolve_composed_system_blocks(
1052
- composed: SessionStepInput,
1053
- ): AgentSessionSystemBlock[] {
1054
- const declared_blocks = composed.system_blocks || [];
1055
- return composed.system.flatMap((message, index) => {
1056
- const content = stringify_system_content(message.content);
1057
- if (!content) return [];
1058
- const declared = declared_blocks[index];
1059
- if (declared && declared.content.trim() === content) {
1060
- return [{ ...declared, content }];
1061
- }
1062
- return [{
1063
- source: "session" as const,
1064
- name: `custom_system:${index + 1}`,
1065
- content,
1066
- }];
1067
- });
1068
706
  }