@downcity/agent 1.1.437 → 1.1.445

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 (702) hide show
  1. package/README.md +25 -18
  2. package/bin/agent/Agent.d.ts +44 -20
  3. package/bin/agent/Agent.d.ts.map +1 -1
  4. package/bin/agent/Agent.js +114 -69
  5. package/bin/agent/Agent.js.map +1 -1
  6. package/bin/agent/AgentInstructions.d.ts +18 -4
  7. package/bin/agent/AgentInstructions.d.ts.map +1 -1
  8. package/bin/agent/AgentInstructions.js +33 -14
  9. package/bin/agent/AgentInstructions.js.map +1 -1
  10. package/bin/agent/AgentMemoryStorage.d.ts +1 -1
  11. package/bin/agent/AgentMemoryStorage.d.ts.map +1 -1
  12. package/bin/agent/AgentMemoryStorage.js.map +1 -1
  13. package/bin/agent/AgentSessions.d.ts +29 -16
  14. package/bin/agent/AgentSessions.d.ts.map +1 -1
  15. package/bin/agent/AgentSessions.js +42 -22
  16. package/bin/agent/AgentSessions.js.map +1 -1
  17. package/bin/group/Group.d.ts +13 -12
  18. package/bin/group/Group.d.ts.map +1 -1
  19. package/bin/group/Group.js +24 -23
  20. package/bin/group/Group.js.map +1 -1
  21. package/bin/group/GroupSession.d.ts.map +1 -1
  22. package/bin/group/GroupSession.js +13 -9
  23. package/bin/group/GroupSession.js.map +1 -1
  24. package/bin/group/GroupSessions.d.ts +27 -2
  25. package/bin/group/GroupSessions.d.ts.map +1 -1
  26. package/bin/group/GroupSessions.js +68 -21
  27. package/bin/group/GroupSessions.js.map +1 -1
  28. package/bin/group/storage/LocalGroupSessionDataStore.d.ts +8 -0
  29. package/bin/group/storage/LocalGroupSessionDataStore.d.ts.map +1 -1
  30. package/bin/group/storage/LocalGroupSessionDataStore.js +1 -1
  31. package/bin/group/storage/LocalGroupSessionDataStore.js.map +1 -1
  32. package/bin/group/storage/LocalGroupSessionStore.d.ts +64 -5
  33. package/bin/group/storage/LocalGroupSessionStore.d.ts.map +1 -1
  34. package/bin/group/storage/LocalGroupSessionStore.js +114 -23
  35. package/bin/group/storage/LocalGroupSessionStore.js.map +1 -1
  36. package/bin/index.d.ts +25 -30
  37. package/bin/index.d.ts.map +1 -1
  38. package/bin/index.js +14 -14
  39. package/bin/index.js.map +1 -1
  40. package/bin/{executor/model → model}/ModelGenerate.d.ts +1 -1
  41. package/bin/model/ModelGenerate.d.ts.map +1 -0
  42. package/bin/model/ModelGenerate.js.map +1 -0
  43. package/bin/{executor/model → model}/ModelRequestRunner.d.ts +1 -1
  44. package/bin/model/ModelRequestRunner.d.ts.map +1 -0
  45. package/bin/model/ModelRequestRunner.js.map +1 -0
  46. package/bin/{executor/model → model}/ModelStepRunner.d.ts +6 -7
  47. package/bin/model/ModelStepRunner.d.ts.map +1 -0
  48. package/bin/{executor/model → model}/ModelStepRunner.js +16 -10
  49. package/bin/model/ModelStepRunner.js.map +1 -0
  50. package/bin/model/ModelStreamConsumer.d.ts.map +1 -0
  51. package/bin/model/ModelStreamConsumer.js.map +1 -0
  52. package/bin/model/ModelStreamFailure.d.ts.map +1 -0
  53. package/bin/model/ModelStreamFailure.js.map +1 -0
  54. package/bin/model/ToolInputValidation.d.ts +28 -0
  55. package/bin/model/ToolInputValidation.d.ts.map +1 -0
  56. package/bin/model/ToolInputValidation.js +37 -0
  57. package/bin/model/ToolInputValidation.js.map +1 -0
  58. package/bin/model/messages/ChatMessageMarkup.d.ts.map +1 -0
  59. package/bin/model/messages/ChatMessageMarkup.js.map +1 -0
  60. package/bin/{executor → model}/messages/ChatMessageMarkupTypes.d.ts +1 -1
  61. package/bin/model/messages/ChatMessageMarkupTypes.d.ts.map +1 -0
  62. package/bin/{executor → model}/messages/ChatMessageMarkupTypes.js +1 -1
  63. package/bin/model/messages/ChatMessageMarkupTypes.js.map +1 -0
  64. package/bin/model/messages/SessionAttachmentMapper.d.ts.map +1 -0
  65. package/bin/model/messages/SessionAttachmentMapper.js.map +1 -0
  66. package/bin/model/messages/SessionMessageLog.d.ts.map +1 -0
  67. package/bin/model/messages/SessionMessageLog.js.map +1 -0
  68. package/bin/model/messages/SessionModelMessages.d.ts.map +1 -0
  69. package/bin/{executor → model}/messages/SessionModelMessages.js +0 -1
  70. package/bin/model/messages/SessionModelMessages.js.map +1 -0
  71. package/bin/model/prompts/SystemPromptAssets.d.ts.map +1 -0
  72. package/bin/{executor/composer/system/default → model/prompts}/SystemPromptAssets.js +1 -1
  73. package/bin/model/prompts/SystemPromptAssets.js.map +1 -0
  74. package/bin/model/prompts/assets/core.prompt.d.ts +7 -0
  75. package/bin/model/prompts/assets/core.prompt.d.ts.map +1 -0
  76. package/bin/model/prompts/assets/core.prompt.js +8 -0
  77. package/bin/model/prompts/assets/core.prompt.js.map +1 -0
  78. package/bin/session/Session.d.ts +29 -17
  79. package/bin/session/Session.d.ts.map +1 -1
  80. package/bin/session/Session.js +161 -134
  81. package/bin/session/Session.js.map +1 -1
  82. package/bin/session/input/SessionHookRunner.d.ts +52 -0
  83. package/bin/session/input/SessionHookRunner.d.ts.map +1 -0
  84. package/bin/session/input/SessionHookRunner.js +51 -0
  85. package/bin/session/input/SessionHookRunner.js.map +1 -0
  86. package/bin/session/input/SessionSystem.d.ts +26 -0
  87. package/bin/session/input/SessionSystem.d.ts.map +1 -0
  88. package/bin/session/{SessionSystem.js → input/SessionSystem.js} +27 -23
  89. package/bin/session/input/SessionSystem.js.map +1 -0
  90. package/bin/session/input/StepInput.d.ts +77 -0
  91. package/bin/session/input/StepInput.d.ts.map +1 -0
  92. package/bin/session/input/StepInput.js +429 -0
  93. package/bin/session/input/StepInput.js.map +1 -0
  94. package/bin/session/input/composer/AdaptiveContextCheckpoint.d.ts +33 -0
  95. package/bin/session/input/composer/AdaptiveContextCheckpoint.d.ts.map +1 -0
  96. package/bin/session/input/composer/AdaptiveContextCheckpoint.js +83 -0
  97. package/bin/session/input/composer/AdaptiveContextCheckpoint.js.map +1 -0
  98. package/bin/session/input/composer/AdaptiveContextParts.d.ts +26 -0
  99. package/bin/session/input/composer/AdaptiveContextParts.d.ts.map +1 -0
  100. package/bin/session/input/composer/AdaptiveContextParts.js +124 -0
  101. package/bin/session/input/composer/AdaptiveContextParts.js.map +1 -0
  102. package/bin/session/input/composer/ComposerAssembly.d.ts +21 -0
  103. package/bin/session/input/composer/ComposerAssembly.d.ts.map +1 -0
  104. package/bin/session/input/composer/ComposerAssembly.js +64 -0
  105. package/bin/session/input/composer/ComposerAssembly.js.map +1 -0
  106. package/bin/session/{composer/policies/SessionSummaryPrompts.d.ts → input/composer/ContextSummaryPrompts.d.ts} +5 -3
  107. package/bin/session/input/composer/ContextSummaryPrompts.d.ts.map +1 -0
  108. package/bin/session/{composer/policies/SessionSummaryPrompts.js → input/composer/ContextSummaryPrompts.js} +5 -3
  109. package/bin/session/input/composer/ContextSummaryPrompts.js.map +1 -0
  110. package/bin/session/input/composer/DefaultSessionComposer.d.ts +24 -0
  111. package/bin/session/input/composer/DefaultSessionComposer.d.ts.map +1 -0
  112. package/bin/session/input/composer/DefaultSessionComposer.js +108 -0
  113. package/bin/session/input/composer/DefaultSessionComposer.js.map +1 -0
  114. package/bin/session/input/composer/FullHistorySessionComposer.d.ts +19 -0
  115. package/bin/session/input/composer/FullHistorySessionComposer.d.ts.map +1 -0
  116. package/bin/session/input/composer/FullHistorySessionComposer.js +36 -0
  117. package/bin/session/input/composer/FullHistorySessionComposer.js.map +1 -0
  118. package/bin/session/{SessionLoop.d.ts → loop/SessionLoop.d.ts} +34 -7
  119. package/bin/session/loop/SessionLoop.d.ts.map +1 -0
  120. package/bin/session/{SessionLoop.js → loop/SessionLoop.js} +79 -16
  121. package/bin/session/loop/SessionLoop.js.map +1 -0
  122. package/bin/session/{SessionQueue.d.ts → loop/SessionQueue.d.ts} +9 -1
  123. package/bin/session/loop/SessionQueue.d.ts.map +1 -0
  124. package/bin/session/{SessionQueue.js → loop/SessionQueue.js} +19 -0
  125. package/bin/session/loop/SessionQueue.js.map +1 -0
  126. package/bin/session/{SessionState.d.ts → loop/SessionState.d.ts} +4 -5
  127. package/bin/session/loop/SessionState.d.ts.map +1 -0
  128. package/bin/session/{SessionState.js → loop/SessionState.js} +6 -25
  129. package/bin/session/loop/SessionState.js.map +1 -0
  130. package/bin/session/{SessionTitle.d.ts → loop/SessionTitle.d.ts} +4 -4
  131. package/bin/session/loop/SessionTitle.d.ts.map +1 -0
  132. package/bin/session/{SessionTitle.js → loop/SessionTitle.js} +3 -3
  133. package/bin/session/loop/SessionTitle.js.map +1 -0
  134. package/bin/session/loop/SessionTitleTask.d.ts.map +1 -0
  135. package/bin/session/loop/SessionTitleTask.js.map +1 -0
  136. package/bin/session/{runtime → loop}/SessionTurnCompletion.d.ts +7 -0
  137. package/bin/session/loop/SessionTurnCompletion.d.ts.map +1 -0
  138. package/bin/session/{runtime → loop}/SessionTurnCompletion.js +25 -6
  139. package/bin/session/loop/SessionTurnCompletion.js.map +1 -0
  140. package/bin/session/loop/SessionTurnContext.d.ts +12 -0
  141. package/bin/session/loop/SessionTurnContext.d.ts.map +1 -0
  142. package/bin/session/{runtime → loop}/SessionTurnContext.js +14 -67
  143. package/bin/session/loop/SessionTurnContext.js.map +1 -0
  144. package/bin/session/loop/SessionTurnFileDiff.d.ts.map +1 -0
  145. package/bin/session/{runtime → loop}/SessionTurnFileDiff.js +1 -1
  146. package/bin/session/loop/SessionTurnFileDiff.js.map +1 -0
  147. package/bin/session/{messages → loop}/SessionTurnFileDiffBuilder.d.ts +3 -3
  148. package/bin/session/loop/SessionTurnFileDiffBuilder.d.ts.map +1 -0
  149. package/bin/session/loop/SessionTurnFileDiffBuilder.js.map +1 -0
  150. package/bin/session/messages/ApprovalInteraction.d.ts +30 -0
  151. package/bin/session/messages/ApprovalInteraction.d.ts.map +1 -0
  152. package/bin/session/messages/ApprovalInteraction.js +61 -0
  153. package/bin/session/messages/ApprovalInteraction.js.map +1 -0
  154. package/bin/session/messages/SessionAgentMessageState.d.ts +47 -18
  155. package/bin/session/messages/SessionAgentMessageState.d.ts.map +1 -1
  156. package/bin/session/messages/SessionAgentMessageState.js +224 -86
  157. package/bin/session/messages/SessionAgentMessageState.js.map +1 -1
  158. package/bin/session/messages/SessionAgentMessageWriter.d.ts +15 -4
  159. package/bin/session/messages/SessionAgentMessageWriter.d.ts.map +1 -1
  160. package/bin/session/messages/SessionAgentMessageWriter.js +57 -37
  161. package/bin/session/messages/SessionAgentMessageWriter.js.map +1 -1
  162. package/bin/session/messages/SessionAgentParts.d.ts +14 -0
  163. package/bin/session/messages/SessionAgentParts.d.ts.map +1 -0
  164. package/bin/session/messages/SessionAgentParts.js +20 -0
  165. package/bin/session/messages/SessionAgentParts.js.map +1 -0
  166. package/bin/session/{execution → messages}/SessionAssistantOutputAdapter.d.ts +2 -2
  167. package/bin/session/messages/SessionAssistantOutputAdapter.d.ts.map +1 -0
  168. package/bin/session/messages/SessionAssistantOutputAdapter.js.map +1 -0
  169. package/bin/session/messages/SessionEventHub.d.ts.map +1 -0
  170. package/bin/session/messages/SessionEventHub.js.map +1 -0
  171. package/bin/session/messages/SessionInteractions.d.ts +57 -0
  172. package/bin/session/messages/SessionInteractions.d.ts.map +1 -0
  173. package/bin/session/messages/SessionInteractions.js +178 -0
  174. package/bin/session/messages/SessionInteractions.js.map +1 -0
  175. package/bin/session/messages/SessionJsonValue.d.ts +1 -3
  176. package/bin/session/messages/SessionJsonValue.d.ts.map +1 -1
  177. package/bin/session/messages/SessionJsonValue.js +0 -19
  178. package/bin/session/messages/SessionJsonValue.js.map +1 -1
  179. package/bin/session/messages/SessionMessageCache.d.ts +55 -0
  180. package/bin/session/messages/SessionMessageCache.d.ts.map +1 -0
  181. package/bin/session/messages/SessionMessageCache.js +133 -0
  182. package/bin/session/messages/SessionMessageCache.js.map +1 -0
  183. package/bin/session/messages/SessionMessageState.d.ts +17 -0
  184. package/bin/session/messages/SessionMessageState.d.ts.map +1 -0
  185. package/bin/session/messages/SessionMessageState.js +34 -0
  186. package/bin/session/messages/SessionMessageState.js.map +1 -0
  187. package/bin/session/messages/SessionMessageTimeline.d.ts.map +1 -0
  188. package/bin/session/{browse → messages}/SessionMessageTimeline.js +0 -1
  189. package/bin/session/messages/SessionMessageTimeline.js.map +1 -0
  190. package/bin/session/{SessionMessages.d.ts → messages/SessionMessages.d.ts} +35 -43
  191. package/bin/session/messages/SessionMessages.d.ts.map +1 -0
  192. package/bin/session/{SessionMessages.js → messages/SessionMessages.js} +178 -196
  193. package/bin/session/messages/SessionMessages.js.map +1 -0
  194. package/bin/session/messages/SessionModelRequestWarning.d.ts.map +1 -0
  195. package/bin/session/messages/SessionModelRequestWarning.js.map +1 -0
  196. package/bin/session/messages/SessionMutationFactory.d.ts +26 -0
  197. package/bin/session/messages/SessionMutationFactory.d.ts.map +1 -0
  198. package/bin/session/messages/SessionMutationFactory.js +38 -0
  199. package/bin/session/messages/SessionMutationFactory.js.map +1 -0
  200. package/bin/session/messages/SessionUserMessage.d.ts +5 -7
  201. package/bin/session/messages/SessionUserMessage.d.ts.map +1 -1
  202. package/bin/session/messages/SessionUserMessage.js +5 -28
  203. package/bin/session/messages/SessionUserMessage.js.map +1 -1
  204. package/bin/{executor/core-engine/CoreEngineSignals.d.ts → session/runner/AssistantParts.d.ts} +4 -9
  205. package/bin/session/runner/AssistantParts.d.ts.map +1 -0
  206. package/bin/{executor/core-engine/CoreEngineSignals.js → session/runner/AssistantParts.js} +4 -17
  207. package/bin/session/runner/AssistantParts.js.map +1 -0
  208. package/bin/session/runner/ContextPressure.d.ts +15 -0
  209. package/bin/session/runner/ContextPressure.d.ts.map +1 -0
  210. package/bin/{executor/core-engine/CoreEngineContextCompaction.js → session/runner/ContextPressure.js} +11 -11
  211. package/bin/session/runner/ContextPressure.js.map +1 -0
  212. package/bin/session/runner/ContextRetry.d.ts +39 -0
  213. package/bin/session/runner/ContextRetry.d.ts.map +1 -0
  214. package/bin/{executor/services/ExecutorRecoveryPolicy.js → session/runner/ContextRetry.js} +19 -19
  215. package/bin/session/runner/ContextRetry.js.map +1 -0
  216. package/bin/{executor/core-engine/CoreEngineError.d.ts → session/runner/ModelFailure.d.ts} +4 -4
  217. package/bin/session/runner/ModelFailure.d.ts.map +1 -0
  218. package/bin/{executor/core-engine/CoreEngineError.js → session/runner/ModelFailure.js} +4 -4
  219. package/bin/session/runner/ModelFailure.js.map +1 -0
  220. package/bin/session/runner/SessionExecutor.d.ts +108 -0
  221. package/bin/session/runner/SessionExecutor.d.ts.map +1 -0
  222. package/bin/session/runner/SessionExecutor.js +430 -0
  223. package/bin/session/runner/SessionExecutor.js.map +1 -0
  224. package/bin/session/runner/ToolLoopDecision.d.ts +60 -0
  225. package/bin/session/runner/ToolLoopDecision.d.ts.map +1 -0
  226. package/bin/{executor/core-engine/CoreEngineLoopDecision.js → session/runner/ToolLoopDecision.js} +5 -5
  227. package/bin/session/runner/ToolLoopDecision.js.map +1 -0
  228. package/bin/session/runner/ToolLoopLimits.d.ts +30 -0
  229. package/bin/session/runner/ToolLoopLimits.d.ts.map +1 -0
  230. package/bin/session/runner/ToolLoopLimits.js +46 -0
  231. package/bin/session/runner/ToolLoopLimits.js.map +1 -0
  232. package/bin/session/{browse → storage}/Browse.d.ts +1 -1
  233. package/bin/session/storage/Browse.d.ts.map +1 -0
  234. package/bin/session/{browse → storage}/Browse.js +1 -1
  235. package/bin/session/storage/Browse.js.map +1 -0
  236. package/bin/session/storage/LocalSessionStore.js +1 -1
  237. package/bin/session/storage/LocalSessionStore.js.map +1 -1
  238. package/bin/session/storage/LocalStorePaths.d.ts +0 -2
  239. package/bin/session/storage/LocalStorePaths.d.ts.map +1 -1
  240. package/bin/session/storage/LocalStorePaths.js +1 -1
  241. package/bin/session/storage/LocalStorePaths.js.map +1 -1
  242. package/bin/session/storage/Metadata.d.ts +1 -23
  243. package/bin/session/storage/Metadata.d.ts.map +1 -1
  244. package/bin/session/storage/Metadata.js +0 -18
  245. package/bin/session/storage/Metadata.js.map +1 -1
  246. package/bin/session/storage/RuntimeSessionPort.d.ts +0 -4
  247. package/bin/session/storage/RuntimeSessionPort.d.ts.map +1 -1
  248. package/bin/session/storage/RuntimeSessionPort.js +0 -1
  249. package/bin/session/storage/RuntimeSessionPort.js.map +1 -1
  250. package/bin/session/{preview → storage}/SessionMessagePreview.d.ts.map +1 -1
  251. package/bin/session/{preview → storage}/SessionMessagePreview.js +0 -1
  252. package/bin/session/{preview → storage}/SessionMessagePreview.js.map +1 -1
  253. package/bin/session/storage/SessionStorageCodec.d.ts.map +1 -1
  254. package/bin/session/storage/SessionStorageCodec.js +36 -18
  255. package/bin/session/storage/SessionStorageCodec.js.map +1 -1
  256. package/bin/session/storage/SessionStorageSchema.d.ts +1 -1
  257. package/bin/session/storage/SessionStorageSchema.js +1 -1
  258. package/bin/session/storage/SqliteSessionStorage.d.ts +6 -4
  259. package/bin/session/storage/SqliteSessionStorage.d.ts.map +1 -1
  260. package/bin/session/storage/SqliteSessionStorage.js +21 -18
  261. package/bin/session/storage/SqliteSessionStorage.js.map +1 -1
  262. package/bin/tools/ask/AskQuestionAnswers.d.ts +20 -0
  263. package/bin/tools/ask/AskQuestionAnswers.d.ts.map +1 -0
  264. package/bin/tools/ask/AskQuestionAnswers.js +99 -0
  265. package/bin/tools/ask/AskQuestionAnswers.js.map +1 -0
  266. package/bin/tools/ask/AskQuestionsTool.d.ts +5 -2
  267. package/bin/tools/ask/AskQuestionsTool.d.ts.map +1 -1
  268. package/bin/tools/ask/AskQuestionsTool.js +23 -31
  269. package/bin/tools/ask/AskQuestionsTool.js.map +1 -1
  270. package/bin/tools/ask/AskQuestionsToolSchemas.d.ts +1 -1
  271. package/bin/types/agent/AgentOptions.d.ts +16 -8
  272. package/bin/types/agent/AgentOptions.d.ts.map +1 -1
  273. package/bin/types/agent/AgentSessionCollection.d.ts +8 -0
  274. package/bin/types/agent/AgentSessionCollection.d.ts.map +1 -1
  275. package/bin/types/agent/SessionActor.d.ts +3 -3
  276. package/bin/types/agent/SessionActor.d.ts.map +1 -1
  277. package/bin/types/group/DispatchStrategy.js +1 -1
  278. package/bin/types/group/DispatchStrategy.js.map +1 -1
  279. package/bin/types/group/GroupSession.d.ts +41 -1
  280. package/bin/types/group/GroupSession.d.ts.map +1 -1
  281. package/bin/types/group/GroupSessionStore.d.ts +30 -3
  282. package/bin/types/group/GroupSessionStore.d.ts.map +1 -1
  283. package/bin/types/model/ModelRequest.d.ts.map +1 -0
  284. package/bin/types/model/ModelRequest.js.map +1 -0
  285. package/bin/types/sdk/AgentSessionAction.d.ts +1 -9
  286. package/bin/types/sdk/AgentSessionAction.d.ts.map +1 -1
  287. package/bin/types/session/{AdaptivePartContextPolicy.d.ts → ContextCheckpoint.d.ts} +10 -9
  288. package/bin/types/session/ContextCheckpoint.d.ts.map +1 -0
  289. package/bin/types/session/ContextCheckpoint.js +8 -0
  290. package/bin/types/session/ContextCheckpoint.js.map +1 -0
  291. package/bin/types/session/SessionAgentMessageState.d.ts +6 -10
  292. package/bin/types/session/SessionAgentMessageState.d.ts.map +1 -1
  293. package/bin/types/session/SessionAgentMessageState.js +3 -2
  294. package/bin/types/session/SessionAgentMessageState.js.map +1 -1
  295. package/bin/types/session/SessionComposer.d.ts +65 -36
  296. package/bin/types/session/SessionComposer.d.ts.map +1 -1
  297. package/bin/types/session/SessionComposer.js +7 -2
  298. package/bin/types/session/SessionComposer.js.map +1 -1
  299. package/bin/types/session/SessionExecution.d.ts +15 -11
  300. package/bin/types/session/SessionExecution.d.ts.map +1 -1
  301. package/bin/types/session/SessionExecution.js +1 -1
  302. package/bin/types/session/SessionInteractions.d.ts +0 -2
  303. package/bin/types/session/SessionInteractions.d.ts.map +1 -1
  304. package/bin/types/session/SessionLocalState.d.ts +0 -4
  305. package/bin/types/session/SessionLocalState.d.ts.map +1 -1
  306. package/bin/types/session/SessionLoop.d.ts +33 -12
  307. package/bin/types/session/SessionLoop.d.ts.map +1 -1
  308. package/bin/types/session/SessionMessages.d.ts +3 -29
  309. package/bin/types/session/SessionMessages.d.ts.map +1 -1
  310. package/bin/types/session/SessionOptions.d.ts +16 -13
  311. package/bin/types/session/SessionOptions.d.ts.map +1 -1
  312. package/bin/types/session/SessionPort.d.ts +0 -3
  313. package/bin/types/session/SessionPort.d.ts.map +1 -1
  314. package/bin/types/session/SessionState.d.ts +0 -1
  315. package/bin/types/session/SessionState.d.ts.map +1 -1
  316. package/bin/types/session/SessionSystem.d.ts +10 -12
  317. package/bin/types/session/SessionSystem.d.ts.map +1 -1
  318. package/bin/types/session/SessionTool.d.ts +2 -2
  319. package/bin/types/session/SessionTool.d.ts.map +1 -1
  320. package/bin/types/session/SessionTurnCompletion.d.ts +12 -2
  321. package/bin/types/session/SessionTurnCompletion.d.ts.map +1 -1
  322. package/bin/types/session/SessionTurnFileDiff.d.ts +4 -4
  323. package/bin/types/session/SessionTurnFileDiff.d.ts.map +1 -1
  324. package/bin/types/session/{SessionComposition.d.ts → StepInput.d.ts} +17 -15
  325. package/bin/types/session/StepInput.d.ts.map +1 -0
  326. package/bin/types/session/StepInput.js +8 -0
  327. package/bin/types/session/StepInput.js.map +1 -0
  328. package/bin/types/store/SessionHistoryMeta.d.ts.map +1 -0
  329. package/bin/types/store/SessionHistoryMeta.js.map +1 -0
  330. package/bin/types/store/SessionStorage.d.ts +17 -12
  331. package/bin/types/store/SessionStorage.d.ts.map +1 -1
  332. package/bin/types/tool/BoundAgentTool.d.ts +36 -0
  333. package/bin/types/tool/BoundAgentTool.d.ts.map +1 -0
  334. package/bin/types/tool/BoundAgentTool.js +13 -0
  335. package/bin/types/tool/BoundAgentTool.js.map +1 -0
  336. package/bin/types/tools/ask/AskQuestionsTool.d.ts +9 -13
  337. package/bin/types/tools/ask/AskQuestionsTool.d.ts.map +1 -1
  338. package/bin/types/tools/ask/AskQuestionsTool.js +3 -2
  339. package/bin/types/tools/ask/AskQuestionsTool.js.map +1 -1
  340. package/bin/types/turn/SessionAssistantOutput.d.ts.map +1 -0
  341. package/bin/types/turn/SessionAssistantOutput.js.map +1 -0
  342. package/bin/types/{executor → turn}/SessionTurnContext.d.ts +10 -28
  343. package/bin/types/turn/SessionTurnContext.d.ts.map +1 -0
  344. package/bin/types/turn/SessionTurnContext.js.map +1 -0
  345. package/bin/{executor/ids/resolveSessionId.d.ts → utils/ResolveSessionId.d.ts} +1 -1
  346. package/bin/utils/ResolveSessionId.d.ts.map +1 -0
  347. package/bin/{executor/ids/resolveSessionId.js → utils/ResolveSessionId.js} +1 -1
  348. package/bin/utils/ResolveSessionId.js.map +1 -0
  349. package/bin/utils/Time.d.ts +5 -8
  350. package/bin/utils/Time.d.ts.map +1 -1
  351. package/bin/utils/Time.js +5 -54
  352. package/bin/utils/Time.js.map +1 -1
  353. package/package.json +2 -2
  354. package/scripts/ask-question-answers.test.mjs +132 -0
  355. package/scripts/group-session-archive.test.mjs +193 -0
  356. package/scripts/{core-engine-model-stream.test.mjs → model-step-runner.test.mjs} +97 -4
  357. package/scripts/rewrite-build-aliases.mjs +3 -4
  358. package/scripts/session-action-part.test.mjs +172 -0
  359. package/scripts/session-agent-message-part-order.test.mjs +13 -7
  360. package/scripts/{core-engine-context-compaction.test.mjs → session-executor-context-pressure.test.mjs} +40 -32
  361. package/scripts/{executor-failure-result.test.mjs → session-executor-failure-result.test.mjs} +17 -14
  362. package/scripts/session-executor-max-steps.test.mjs +143 -0
  363. package/scripts/session-initialization.test.mjs +3 -4
  364. package/scripts/session-interaction-migration.test.mjs +145 -0
  365. package/scripts/session-interaction-mutation.test.mjs +202 -0
  366. package/scripts/session-messages-error-part.test.mjs +1 -1
  367. package/scripts/session-messages-error.test.mjs +1 -1
  368. package/scripts/session-prompt-idempotency.test.mjs +4 -2
  369. package/scripts/session-queue.test.mjs +21 -1
  370. package/scripts/session-storage-sqlite.test.mjs +3 -3
  371. package/scripts/session-system-blocks.test.mjs +61 -39
  372. package/scripts/session-turn-context.test.mjs +37 -40
  373. package/scripts/verify-build-aliases.mjs +1 -1
  374. package/src/agent/Agent.ts +137 -80
  375. package/src/agent/AgentInstructions.ts +48 -15
  376. package/src/agent/AgentMemoryStorage.ts +1 -1
  377. package/src/agent/AgentSessions.ts +60 -38
  378. package/src/group/Group.ts +27 -24
  379. package/src/group/GroupSession.ts +12 -8
  380. package/src/group/GroupSessions.ts +79 -20
  381. package/src/group/storage/LocalGroupSessionDataStore.ts +9 -1
  382. package/src/group/storage/LocalGroupSessionStore.ts +138 -28
  383. package/src/index.ts +35 -52
  384. package/src/{executor/model → model}/ModelGenerate.ts +3 -3
  385. package/src/{executor/model → model}/ModelRequestRunner.ts +2 -2
  386. package/src/{executor/model → model}/ModelStepRunner.ts +22 -19
  387. package/src/{executor/model → model}/ModelStreamConsumer.ts +1 -1
  388. package/src/model/README.md +117 -0
  389. package/src/model/ToolInputValidation.ts +58 -0
  390. package/src/{executor → model}/messages/ChatMessageMarkupTypes.ts +1 -1
  391. package/src/{executor → model}/messages/SessionModelMessages.ts +0 -1
  392. package/src/{executor/composer/system/default → model/prompts}/SystemPromptAssets.ts +1 -1
  393. package/src/model/prompts/assets/core.prompt.ts +9 -0
  394. package/src/{executor/composer/system/default → model/prompts}/assets/core.prompt.ts.txt +26 -25
  395. package/src/session/Session.ts +185 -151
  396. package/src/session/input/SessionHookRunner.ts +100 -0
  397. package/src/session/{SessionSystem.ts → input/SessionSystem.ts} +31 -29
  398. package/src/session/input/StepInput.ts +507 -0
  399. package/src/session/input/composer/AdaptiveContextCheckpoint.ts +115 -0
  400. package/src/session/input/composer/AdaptiveContextParts.ts +166 -0
  401. package/src/session/input/composer/ComposerAssembly.ts +81 -0
  402. package/src/session/{composer/policies/SessionSummaryPrompts.ts → input/composer/ContextSummaryPrompts.ts} +5 -2
  403. package/src/session/input/composer/DefaultSessionComposer.ts +147 -0
  404. package/src/session/input/composer/FullHistorySessionComposer.ts +55 -0
  405. package/src/session/loop/README.md +28 -0
  406. package/src/session/{SessionLoop.ts → loop/SessionLoop.ts} +100 -24
  407. package/src/session/{SessionQueue.ts → loop/SessionQueue.ts} +18 -0
  408. package/src/session/{SessionState.ts → loop/SessionState.ts} +4 -21
  409. package/src/session/{SessionTitle.ts → loop/SessionTitle.ts} +3 -3
  410. package/src/session/{runtime → loop}/SessionTurnCompletion.ts +27 -8
  411. package/src/session/{runtime → loop}/SessionTurnContext.ts +19 -93
  412. package/src/session/{runtime → loop}/SessionTurnFileDiff.ts +1 -1
  413. package/src/session/{messages → loop}/SessionTurnFileDiffBuilder.ts +4 -4
  414. package/src/session/messages/ApprovalInteraction.ts +77 -0
  415. package/src/session/messages/README.md +27 -0
  416. package/src/session/messages/SessionAgentMessageState.ts +324 -113
  417. package/src/session/messages/SessionAgentMessageWriter.ts +82 -45
  418. package/src/session/messages/SessionAgentParts.ts +39 -0
  419. package/src/session/{execution → messages}/SessionAssistantOutputAdapter.ts +2 -2
  420. package/src/session/messages/SessionInteractions.ts +227 -0
  421. package/src/session/messages/SessionJsonValue.ts +1 -18
  422. package/src/session/messages/SessionMessageCache.ts +171 -0
  423. package/src/session/messages/SessionMessageState.ts +42 -0
  424. package/src/session/{browse → messages}/SessionMessageTimeline.ts +0 -1
  425. package/src/session/{SessionMessages.ts → messages/SessionMessages.ts} +225 -284
  426. package/src/session/messages/SessionMutationFactory.ts +58 -0
  427. package/src/session/messages/SessionUserMessage.ts +7 -32
  428. package/src/{executor/core-engine/CoreEngineSignals.ts → session/runner/AssistantParts.ts} +3 -21
  429. package/src/{executor/core-engine/CoreEngineContextCompaction.ts → session/runner/ContextPressure.ts} +10 -10
  430. package/src/{executor/services/ExecutorRecoveryPolicy.ts → session/runner/ContextRetry.ts} +25 -25
  431. package/src/{executor/core-engine/CoreEngineError.ts → session/runner/ModelFailure.ts} +3 -3
  432. package/src/session/runner/SessionExecutor.ts +633 -0
  433. package/src/session/runner/ToolLoopDecision.ts +98 -0
  434. package/src/session/runner/ToolLoopLimits.ts +53 -0
  435. package/src/session/{browse → storage}/Browse.ts +2 -2
  436. package/src/session/storage/LocalSessionStore.ts +1 -1
  437. package/src/session/storage/LocalStorePaths.ts +1 -1
  438. package/src/session/storage/Metadata.ts +1 -44
  439. package/src/session/storage/RuntimeSessionPort.ts +0 -5
  440. package/src/session/{preview → storage}/SessionMessagePreview.ts +0 -1
  441. package/src/session/storage/SessionStorageCodec.ts +54 -28
  442. package/src/session/storage/SessionStorageSchema.ts +1 -1
  443. package/src/session/storage/SqliteSessionStorage.ts +29 -22
  444. package/src/tools/ask/AskQuestionAnswers.ts +125 -0
  445. package/src/tools/ask/AskQuestionsTool.ts +32 -37
  446. package/src/types/agent/AgentOptions.ts +17 -8
  447. package/src/types/agent/AgentSessionCollection.ts +9 -0
  448. package/src/types/agent/SessionActor.ts +3 -4
  449. package/src/types/group/DispatchStrategy.ts +1 -1
  450. package/src/types/group/GroupSession.ts +44 -1
  451. package/src/types/group/GroupSessionStore.ts +30 -3
  452. package/src/types/sdk/AgentSessionAction.ts +1 -14
  453. package/src/types/session/{AdaptivePartContextPolicy.ts → ContextCheckpoint.ts} +9 -8
  454. package/src/types/session/SessionAgentMessageState.ts +6 -16
  455. package/src/types/session/SessionComposer.ts +67 -39
  456. package/src/types/session/SessionExecution.ts +15 -13
  457. package/src/types/session/SessionInteractions.ts +0 -2
  458. package/src/types/session/SessionLocalState.ts +0 -5
  459. package/src/types/session/SessionLoop.ts +37 -12
  460. package/src/types/session/SessionMessages.ts +3 -34
  461. package/src/types/session/SessionOptions.ts +18 -13
  462. package/src/types/session/SessionPort.ts +0 -4
  463. package/src/types/session/SessionState.ts +0 -1
  464. package/src/types/session/SessionSystem.ts +10 -16
  465. package/src/types/session/SessionTool.ts +2 -2
  466. package/src/types/session/SessionTurnCompletion.ts +12 -2
  467. package/src/types/session/SessionTurnFileDiff.ts +4 -4
  468. package/src/types/session/{SessionComposition.ts → StepInput.ts} +22 -14
  469. package/src/types/store/SessionStorage.ts +17 -12
  470. package/src/types/tool/BoundAgentTool.ts +38 -0
  471. package/src/types/tools/ask/AskQuestionsTool.ts +11 -13
  472. package/src/types/{executor → turn}/SessionTurnContext.ts +8 -34
  473. package/src/utils/Time.ts +12 -64
  474. package/tsconfig.json +1 -2
  475. package/tsconfig.tsbuildinfo +1 -1
  476. package/bin/executor/Executor.d.ts +0 -92
  477. package/bin/executor/Executor.d.ts.map +0 -1
  478. package/bin/executor/Executor.js +0 -232
  479. package/bin/executor/Executor.js.map +0 -1
  480. package/bin/executor/composer/system/default/SystemPromptAssets.d.ts.map +0 -1
  481. package/bin/executor/composer/system/default/SystemPromptAssets.js.map +0 -1
  482. package/bin/executor/composer/system/default/assets/core.prompt.d.ts +0 -7
  483. package/bin/executor/composer/system/default/assets/core.prompt.d.ts.map +0 -1
  484. package/bin/executor/composer/system/default/assets/core.prompt.js +0 -8
  485. package/bin/executor/composer/system/default/assets/core.prompt.js.map +0 -1
  486. package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts +0 -15
  487. package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts.map +0 -1
  488. package/bin/executor/core-engine/CoreEngineContextCompaction.js.map +0 -1
  489. package/bin/executor/core-engine/CoreEngineError.d.ts.map +0 -1
  490. package/bin/executor/core-engine/CoreEngineError.js.map +0 -1
  491. package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts +0 -26
  492. package/bin/executor/core-engine/CoreEngineLoopDecision.d.ts.map +0 -1
  493. package/bin/executor/core-engine/CoreEngineLoopDecision.js.map +0 -1
  494. package/bin/executor/core-engine/CoreEngineRunner.d.ts +0 -48
  495. package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +0 -1
  496. package/bin/executor/core-engine/CoreEngineRunner.js +0 -343
  497. package/bin/executor/core-engine/CoreEngineRunner.js.map +0 -1
  498. package/bin/executor/core-engine/CoreEngineSignals.d.ts.map +0 -1
  499. package/bin/executor/core-engine/CoreEngineSignals.js.map +0 -1
  500. package/bin/executor/ids/resolveSessionId.d.ts.map +0 -1
  501. package/bin/executor/ids/resolveSessionId.js.map +0 -1
  502. package/bin/executor/messages/ChatMessageMarkup.d.ts.map +0 -1
  503. package/bin/executor/messages/ChatMessageMarkup.js.map +0 -1
  504. package/bin/executor/messages/ChatMessageMarkupTypes.d.ts.map +0 -1
  505. package/bin/executor/messages/ChatMessageMarkupTypes.js.map +0 -1
  506. package/bin/executor/messages/SessionAttachmentMapper.d.ts.map +0 -1
  507. package/bin/executor/messages/SessionAttachmentMapper.js.map +0 -1
  508. package/bin/executor/messages/SessionMessageLog.d.ts.map +0 -1
  509. package/bin/executor/messages/SessionMessageLog.js.map +0 -1
  510. package/bin/executor/messages/SessionModelMessages.d.ts.map +0 -1
  511. package/bin/executor/messages/SessionModelMessages.js.map +0 -1
  512. package/bin/executor/model/ModelGenerate.d.ts.map +0 -1
  513. package/bin/executor/model/ModelGenerate.js.map +0 -1
  514. package/bin/executor/model/ModelRequestRunner.d.ts.map +0 -1
  515. package/bin/executor/model/ModelRequestRunner.js.map +0 -1
  516. package/bin/executor/model/ModelStepRunner.d.ts.map +0 -1
  517. package/bin/executor/model/ModelStepRunner.js.map +0 -1
  518. package/bin/executor/model/ModelStreamConsumer.d.ts.map +0 -1
  519. package/bin/executor/model/ModelStreamConsumer.js.map +0 -1
  520. package/bin/executor/model/ModelStreamFailure.d.ts.map +0 -1
  521. package/bin/executor/model/ModelStreamFailure.js.map +0 -1
  522. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +0 -39
  523. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +0 -1
  524. package/bin/executor/services/ExecutorRecoveryPolicy.js.map +0 -1
  525. package/bin/executor/types/SessionHistoryMeta.d.ts.map +0 -1
  526. package/bin/executor/types/SessionHistoryMeta.js.map +0 -1
  527. package/bin/executor/types/SessionLoop.d.ts +0 -59
  528. package/bin/executor/types/SessionLoop.d.ts.map +0 -1
  529. package/bin/executor/types/SessionLoop.js +0 -9
  530. package/bin/executor/types/SessionLoop.js.map +0 -1
  531. package/bin/executor/types/SessionPrompts.d.ts +0 -14
  532. package/bin/executor/types/SessionPrompts.d.ts.map +0 -1
  533. package/bin/executor/types/SessionPrompts.js +0 -8
  534. package/bin/executor/types/SessionPrompts.js.map +0 -1
  535. package/bin/session/DefaultSessionComposer.d.ts +0 -24
  536. package/bin/session/DefaultSessionComposer.d.ts.map +0 -1
  537. package/bin/session/DefaultSessionComposer.js +0 -99
  538. package/bin/session/DefaultSessionComposer.js.map +0 -1
  539. package/bin/session/SessionComposition.d.ts +0 -49
  540. package/bin/session/SessionComposition.d.ts.map +0 -1
  541. package/bin/session/SessionComposition.js +0 -309
  542. package/bin/session/SessionComposition.js.map +0 -1
  543. package/bin/session/SessionHookPoints.d.ts +0 -15
  544. package/bin/session/SessionHookPoints.d.ts.map +0 -1
  545. package/bin/session/SessionHookPoints.js +0 -15
  546. package/bin/session/SessionHookPoints.js.map +0 -1
  547. package/bin/session/SessionHooks.d.ts +0 -38
  548. package/bin/session/SessionHooks.d.ts.map +0 -1
  549. package/bin/session/SessionHooks.js +0 -71
  550. package/bin/session/SessionHooks.js.map +0 -1
  551. package/bin/session/SessionLoop.d.ts.map +0 -1
  552. package/bin/session/SessionLoop.js.map +0 -1
  553. package/bin/session/SessionMessages.d.ts.map +0 -1
  554. package/bin/session/SessionMessages.js.map +0 -1
  555. package/bin/session/SessionQueue.d.ts.map +0 -1
  556. package/bin/session/SessionQueue.js.map +0 -1
  557. package/bin/session/SessionState.d.ts.map +0 -1
  558. package/bin/session/SessionState.js.map +0 -1
  559. package/bin/session/SessionSystem.d.ts +0 -19
  560. package/bin/session/SessionSystem.d.ts.map +0 -1
  561. package/bin/session/SessionSystem.js.map +0 -1
  562. package/bin/session/SessionTitle.d.ts.map +0 -1
  563. package/bin/session/SessionTitle.js.map +0 -1
  564. package/bin/session/browse/Browse.d.ts.map +0 -1
  565. package/bin/session/browse/Browse.js.map +0 -1
  566. package/bin/session/browse/SessionMessageTimeline.d.ts.map +0 -1
  567. package/bin/session/browse/SessionMessageTimeline.js.map +0 -1
  568. package/bin/session/composer/policies/AdaptivePartContextPolicy.d.ts +0 -35
  569. package/bin/session/composer/policies/AdaptivePartContextPolicy.d.ts.map +0 -1
  570. package/bin/session/composer/policies/AdaptivePartContextPolicy.js +0 -256
  571. package/bin/session/composer/policies/AdaptivePartContextPolicy.js.map +0 -1
  572. package/bin/session/composer/policies/FullHistoryContextPolicy.d.ts +0 -24
  573. package/bin/session/composer/policies/FullHistoryContextPolicy.d.ts.map +0 -1
  574. package/bin/session/composer/policies/FullHistoryContextPolicy.js +0 -31
  575. package/bin/session/composer/policies/FullHistoryContextPolicy.js.map +0 -1
  576. package/bin/session/composer/policies/SessionSummaryPrompts.d.ts.map +0 -1
  577. package/bin/session/composer/policies/SessionSummaryPrompts.js.map +0 -1
  578. package/bin/session/control/SessionInteractions.d.ts +0 -39
  579. package/bin/session/control/SessionInteractions.d.ts.map +0 -1
  580. package/bin/session/control/SessionInteractions.js +0 -255
  581. package/bin/session/control/SessionInteractions.js.map +0 -1
  582. package/bin/session/execution/SessionAssistantOutputAdapter.d.ts.map +0 -1
  583. package/bin/session/execution/SessionAssistantOutputAdapter.js.map +0 -1
  584. package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts +0 -28
  585. package/bin/session/execution/tools/SessionShellApprovalAdapter.d.ts.map +0 -1
  586. package/bin/session/execution/tools/SessionShellApprovalAdapter.js +0 -87
  587. package/bin/session/execution/tools/SessionShellApprovalAdapter.js.map +0 -1
  588. package/bin/session/messages/SessionAgentActionPartWriter.d.ts +0 -22
  589. package/bin/session/messages/SessionAgentActionPartWriter.d.ts.map +0 -1
  590. package/bin/session/messages/SessionAgentActionPartWriter.js +0 -36
  591. package/bin/session/messages/SessionAgentActionPartWriter.js.map +0 -1
  592. package/bin/session/messages/SessionMessageInteractionWriter.d.ts +0 -46
  593. package/bin/session/messages/SessionMessageInteractionWriter.d.ts.map +0 -1
  594. package/bin/session/messages/SessionMessageInteractionWriter.js +0 -183
  595. package/bin/session/messages/SessionMessageInteractionWriter.js.map +0 -1
  596. package/bin/session/messages/SessionTurnFileDiffBuilder.d.ts.map +0 -1
  597. package/bin/session/messages/SessionTurnFileDiffBuilder.js.map +0 -1
  598. package/bin/session/runtime/SessionEventHub.d.ts.map +0 -1
  599. package/bin/session/runtime/SessionEventHub.js.map +0 -1
  600. package/bin/session/runtime/SessionModelRequestWarning.d.ts.map +0 -1
  601. package/bin/session/runtime/SessionModelRequestWarning.js.map +0 -1
  602. package/bin/session/runtime/SessionTitleTask.d.ts.map +0 -1
  603. package/bin/session/runtime/SessionTitleTask.js.map +0 -1
  604. package/bin/session/runtime/SessionTurnCompletion.d.ts.map +0 -1
  605. package/bin/session/runtime/SessionTurnCompletion.js.map +0 -1
  606. package/bin/session/runtime/SessionTurnContext.d.ts +0 -29
  607. package/bin/session/runtime/SessionTurnContext.d.ts.map +0 -1
  608. package/bin/session/runtime/SessionTurnContext.js.map +0 -1
  609. package/bin/session/runtime/SessionTurnFileDiff.d.ts.map +0 -1
  610. package/bin/session/runtime/SessionTurnFileDiff.js.map +0 -1
  611. package/bin/types/action/ActionResult.d.ts +0 -35
  612. package/bin/types/action/ActionResult.d.ts.map +0 -1
  613. package/bin/types/action/ActionResult.js +0 -18
  614. package/bin/types/action/ActionResult.js.map +0 -1
  615. package/bin/types/executor/ModelRequest.d.ts.map +0 -1
  616. package/bin/types/executor/ModelRequest.js.map +0 -1
  617. package/bin/types/executor/SessionAssistantOutput.d.ts.map +0 -1
  618. package/bin/types/executor/SessionAssistantOutput.js.map +0 -1
  619. package/bin/types/executor/SessionToolExecutionContext.d.ts +0 -23
  620. package/bin/types/executor/SessionToolExecutionContext.d.ts.map +0 -1
  621. package/bin/types/executor/SessionToolExecutionContext.js +0 -10
  622. package/bin/types/executor/SessionToolExecutionContext.js.map +0 -1
  623. package/bin/types/executor/SessionTurnContext.d.ts.map +0 -1
  624. package/bin/types/executor/SessionTurnContext.js.map +0 -1
  625. package/bin/types/session/AdaptivePartContextPolicy.d.ts.map +0 -1
  626. package/bin/types/session/AdaptivePartContextPolicy.js +0 -7
  627. package/bin/types/session/AdaptivePartContextPolicy.js.map +0 -1
  628. package/bin/types/session/SessionComposition.d.ts.map +0 -1
  629. package/bin/types/session/SessionComposition.js +0 -8
  630. package/bin/types/session/SessionComposition.js.map +0 -1
  631. package/bin/types/session/SessionContextPolicy.d.ts +0 -70
  632. package/bin/types/session/SessionContextPolicy.d.ts.map +0 -1
  633. package/bin/types/session/SessionContextPolicy.js +0 -8
  634. package/bin/types/session/SessionContextPolicy.js.map +0 -1
  635. package/bin/types/tools/ToolActionExecutionContext.d.ts +0 -30
  636. package/bin/types/tools/ToolActionExecutionContext.d.ts.map +0 -1
  637. package/bin/types/tools/ToolActionExecutionContext.js +0 -8
  638. package/bin/types/tools/ToolActionExecutionContext.js.map +0 -1
  639. package/src/executor/Executor.ts +0 -319
  640. package/src/executor/README.md +0 -92
  641. package/src/executor/composer/system/default/assets/core.prompt.ts +0 -9
  642. package/src/executor/core-engine/CoreEngineLoopDecision.ts +0 -63
  643. package/src/executor/core-engine/CoreEngineRunner.ts +0 -458
  644. package/src/executor/types/SessionLoop.ts +0 -69
  645. package/src/executor/types/SessionPrompts.ts +0 -14
  646. package/src/session/DefaultSessionComposer.ts +0 -123
  647. package/src/session/SessionComposition.ts +0 -370
  648. package/src/session/SessionHookPoints.ts +0 -17
  649. package/src/session/SessionHooks.ts +0 -85
  650. package/src/session/composer/policies/AdaptivePartContextPolicy.ts +0 -307
  651. package/src/session/composer/policies/FullHistoryContextPolicy.ts +0 -36
  652. package/src/session/control/SessionInteractions.ts +0 -311
  653. package/src/session/execution/tools/SessionShellApprovalAdapter.ts +0 -105
  654. package/src/session/messages/SessionAgentActionPartWriter.ts +0 -54
  655. package/src/session/messages/SessionMessageInteractionWriter.ts +0 -279
  656. package/src/types/action/ActionResult.ts +0 -50
  657. package/src/types/executor/SessionToolExecutionContext.ts +0 -26
  658. package/src/types/session/SessionContextPolicy.ts +0 -77
  659. package/src/types/tools/ToolActionExecutionContext.ts +0 -32
  660. /package/bin/{executor/model → model}/ModelGenerate.js +0 -0
  661. /package/bin/{executor/model → model}/ModelRequestRunner.js +0 -0
  662. /package/bin/{executor/model → model}/ModelStreamConsumer.d.ts +0 -0
  663. /package/bin/{executor/model → model}/ModelStreamConsumer.js +0 -0
  664. /package/bin/{executor/model → model}/ModelStreamFailure.d.ts +0 -0
  665. /package/bin/{executor/model → model}/ModelStreamFailure.js +0 -0
  666. /package/bin/{executor → model}/messages/ChatMessageMarkup.d.ts +0 -0
  667. /package/bin/{executor → model}/messages/ChatMessageMarkup.js +0 -0
  668. /package/bin/{executor → model}/messages/SessionAttachmentMapper.d.ts +0 -0
  669. /package/bin/{executor → model}/messages/SessionAttachmentMapper.js +0 -0
  670. /package/bin/{executor → model}/messages/SessionMessageLog.d.ts +0 -0
  671. /package/bin/{executor → model}/messages/SessionMessageLog.js +0 -0
  672. /package/bin/{executor → model}/messages/SessionModelMessages.d.ts +0 -0
  673. /package/bin/{executor/composer/system/default → model/prompts}/SystemPromptAssets.d.ts +0 -0
  674. /package/bin/session/{runtime → loop}/SessionTitleTask.d.ts +0 -0
  675. /package/bin/session/{runtime → loop}/SessionTitleTask.js +0 -0
  676. /package/bin/session/{runtime → loop}/SessionTurnFileDiff.d.ts +0 -0
  677. /package/bin/session/{messages → loop}/SessionTurnFileDiffBuilder.js +0 -0
  678. /package/bin/session/{execution → messages}/SessionAssistantOutputAdapter.js +0 -0
  679. /package/bin/session/{runtime → messages}/SessionEventHub.d.ts +0 -0
  680. /package/bin/session/{runtime → messages}/SessionEventHub.js +0 -0
  681. /package/bin/session/{browse → messages}/SessionMessageTimeline.d.ts +0 -0
  682. /package/bin/session/{runtime → messages}/SessionModelRequestWarning.d.ts +0 -0
  683. /package/bin/session/{runtime → messages}/SessionModelRequestWarning.js +0 -0
  684. /package/bin/session/{preview → storage}/SessionMessagePreview.d.ts +0 -0
  685. /package/bin/types/{executor → model}/ModelRequest.d.ts +0 -0
  686. /package/bin/types/{executor → model}/ModelRequest.js +0 -0
  687. /package/bin/{executor/types → types/store}/SessionHistoryMeta.d.ts +0 -0
  688. /package/bin/{executor/types → types/store}/SessionHistoryMeta.js +0 -0
  689. /package/bin/types/{executor → turn}/SessionAssistantOutput.d.ts +0 -0
  690. /package/bin/types/{executor → turn}/SessionAssistantOutput.js +0 -0
  691. /package/bin/types/{executor → turn}/SessionTurnContext.js +0 -0
  692. /package/src/{executor/model → model}/ModelStreamFailure.ts +0 -0
  693. /package/src/{executor → model}/messages/ChatMessageMarkup.ts +0 -0
  694. /package/src/{executor → model}/messages/SessionAttachmentMapper.ts +0 -0
  695. /package/src/{executor → model}/messages/SessionMessageLog.ts +0 -0
  696. /package/src/session/{runtime → loop}/SessionTitleTask.ts +0 -0
  697. /package/src/session/{runtime → messages}/SessionEventHub.ts +0 -0
  698. /package/src/session/{runtime → messages}/SessionModelRequestWarning.ts +0 -0
  699. /package/src/types/{executor → model}/ModelRequest.ts +0 -0
  700. /package/src/{executor/types → types/store}/SessionHistoryMeta.ts +0 -0
  701. /package/src/types/{executor → turn}/SessionAssistantOutput.ts +0 -0
  702. /package/src/{executor/ids/resolveSessionId.ts → utils/ResolveSessionId.ts} +0 -0
@@ -4,22 +4,28 @@
4
4
  * 该 Tool 只负责把模型的结构化 Tool Call 映射到当前 Session 的 Question
5
5
  * Interaction。Session 是交互状态和生命周期的唯一拥有者;Tool 等待 Session 返回终态,
6
6
  * 再把用户答案作为 Tool Result 交回同一 Turn 的后续模型 Step。
7
+ *
8
+ * Interaction 的 `payload` 由生产者解释,所以问题与回答的校验都在这里:入参先过
9
+ * Schema,回答再过 {@link resolve_ask_question_answers},核心不参与业务字段。
7
10
  */
8
11
 
9
12
  import {
10
- define_runtime_tool,
11
- type RuntimeToolExecutionOptions as ToolExecutionOptions,
13
+ define_agent_tool,
14
+ type ToolCallContext,
12
15
  } from "@downcity/type";
13
16
  import { ask_questions_input_schema } from "./AskQuestionsToolSchemas.js";
17
+ import {
18
+ read_ask_question_note,
19
+ resolve_ask_question_answers,
20
+ } from "./AskQuestionAnswers.js";
14
21
  import type {
15
22
  AskQuestionsToolInput,
16
23
  AskQuestionsToolOutput,
17
24
  } from "@/types/tools/ask/AskQuestionsTool.js";
18
- import type { SessionToolExecutionContext } from "@/types/executor/SessionToolExecutionContext.js";
25
+ import type { ActionResult } from "@downcity/type";
19
26
  import { generate_id } from "@/utils/Id.js";
20
- import type { ActionResult } from "@/types/action/ActionResult.js";
21
27
  import type { JsonValue } from "@downcity/type";
22
- import type { SessionInteractionAnswer } from "@downcity/type";
28
+ import type { SessionInteractionQuestion } from "@downcity/type";
23
29
 
24
30
  /**
25
31
  * 由调用方显式注册、按当前 Session Turn 上下文执行的提问 Tool。
@@ -33,54 +39,42 @@ import type { SessionInteractionAnswer } from "@downcity/type";
33
39
  * });
34
40
  * ```
35
41
  */
36
- export const AskQuestionsTool = define_runtime_tool<AskQuestionsToolInput, ActionResult<AskQuestionsToolOutput>>({
42
+ export const AskQuestionsTool = define_agent_tool<AskQuestionsToolInput, ActionResult<AskQuestionsToolOutput>>({
37
43
  description:
38
44
  "Ask the user one or more questions when missing information would materially change the outcome. The call waits for every answer, then returns them so you can continue the same task. Do not use it for information that can be inferred safely. For single_select and multi_select questions, every option MUST contain both a machine-readable value and a user-visible label; never omit value or use label as value. Example: { value: 'cn', label: '中国' }.",
39
45
  input_schema: ask_questions_input_schema,
40
46
  execute: async (
41
47
  input: AskQuestionsToolInput,
42
- execution_options: ToolExecutionOptions,
48
+ context: ToolCallContext,
43
49
  ): Promise<ActionResult<AskQuestionsToolOutput>> => {
44
- const execution_context = execution_options.context as
45
- | Partial<SessionToolExecutionContext>
46
- | undefined;
47
- const action_execution = execution_context?.action_execution_context;
48
- const interaction_port = action_execution?.session.interactions;
49
- const turn_id = String(action_execution?.session.turn_id || "").trim();
50
- const tool_call_id = String(action_execution?.call_id || "").trim();
50
+ const interaction_port = context.interactions;
51
+ const turn_id = String(context.turn_id || "").trim();
52
+ const tool_call_id = String(context.tool_call_id || "").trim();
51
53
  if (!interaction_port || !turn_id || !tool_call_id) {
52
54
  throw new Error(
53
55
  "ask_question requires an active Session tool execution context",
54
56
  );
55
57
  }
56
58
 
59
+ // 入参先过 Schema:模型漏写 type 这类缺陷在发起交互之前就暴露,不会落成待响应卡片。
60
+ const parsed = ask_questions_input_schema.parse(input);
61
+ // 问题只在模型输入上补一个 Session 生成的 question_id,其余字段原样落库。
62
+ const questions: SessionInteractionQuestion[] = parsed.questions.map(
63
+ (question) => ({ ...question, question_id: `question:${generate_id()}` }),
64
+ );
65
+
57
66
  const handle = await interaction_port.request({
58
- interaction_id: `interaction:${generate_id()}`,
59
- turn_id,
60
67
  type: "question",
61
- source: {
62
- type: "tool",
63
- tool_call_id,
64
- tool_name: "ask_question",
65
- },
66
- title: input.title,
67
- payload: {
68
- questions: input.questions.map((question) => ({
69
- question_id: `question:${generate_id()}`,
70
- prompt: question.question,
71
- response_type: question.type,
72
- ...(question.options ? { options: question.options } : {}),
73
- })),
74
- } as unknown as JsonValue,
75
- created_at: Date.now(),
68
+ turn_id,
69
+ tool_call_id,
70
+ tool_name: "ask_question",
71
+ ...(parsed.title ? { title: parsed.title } : {}),
72
+ payload: { questions } as unknown as JsonValue,
76
73
  });
77
74
  const result = await handle.result;
78
75
  if (result.status === "cancelled") {
79
76
  throw new Error(`ask_question was cancelled: ${result.reason}`);
80
77
  }
81
- if (result.status === "expired") {
82
- throw new Error("ask_question expired before the user responded");
83
- }
84
78
  if (
85
79
  result.status !== "resolved" ||
86
80
  result.response.type !== "question" ||
@@ -90,12 +84,13 @@ export const AskQuestionsTool = define_runtime_tool<AskQuestionsToolInput, Actio
90
84
  "ask_question received an incompatible Interaction response",
91
85
  );
92
86
  }
93
- const response_payload = result.response.payload as unknown as { answers: SessionInteractionAnswer[]; note?: string };
87
+ const answers = resolve_ask_question_answers(questions, result.response.payload);
88
+ const note = read_ask_question_note(result.response.payload);
94
89
  return {
95
90
  output: {
96
91
  status: "resolved",
97
- answers: response_payload.answers,
98
- ...(response_payload.note ? { note: response_payload.note } : {}),
92
+ answers,
93
+ ...(note ? { note } : {}),
99
94
  },
100
95
  messages: [],
101
96
  };
@@ -6,7 +6,7 @@
6
6
  * - RemoteAgent 与 Session 数据结构拆到独立类型文件。
7
7
  */
8
8
 
9
- import type { ModelClient, RuntimeTool as Tool } from "@downcity/type";
9
+ import type { ModelClient, AgentTool as Tool, ToolHookSet } from "@downcity/type";
10
10
  import type {
11
11
  AgentManagedSession,
12
12
  SessionOptions,
@@ -52,14 +52,23 @@ export interface AgentOptions {
52
52
  description?: string;
53
53
 
54
54
  /**
55
- * 当前 agent 默认可用的工具集合。
55
+ * 当前 agent 自有的工具集合。
56
56
  *
57
57
  * 关键点(中文)
58
58
  * - tools 归属于 agent 级,而不是 session 级。
59
- * - session 运行时会直接复用这份工具集合。
59
+ * - 与 Workspace 工具、容器 Power 工具在 Session 创建时合并;同名冲突立即失败。
60
60
  */
61
61
  tools?: Record<string, Tool>;
62
62
 
63
+ /**
64
+ * 当前 agent 自有的检查点处理器集合。
65
+ *
66
+ * 关键点(中文)
67
+ * - 与容器提供的 Power hooks 合并;同名检查点按「容器在前、自有在后」顺序执行。
68
+ * - 不传入时只使用容器提供的 hooks。
69
+ */
70
+ hooks?: ToolHookSet;
71
+
63
72
  /**
64
73
  * 调用方显式传入的静态基础指令。
65
74
  *
@@ -90,13 +99,13 @@ export interface AgentOptions {
90
99
  session_class?: AgentSessionConstructor;
91
100
 
92
101
  /**
93
- * 为每个 Session 创建独立 Composer 的工厂。
102
+ * 当前 Agent 使用的 Session Composer。
94
103
  *
95
104
  * 关键点(中文)
96
- * - 每次创建、恢复或 fork Session 都会调用一次,禁止返回共享实例。
97
- * - 省略时创建默认 `DefaultSessionComposer`。
98
- * - Context Policy 应在工厂内部随 Composer 一起创建,避免跨 Session 共享派生状态。
105
+ * - Composer 描述「这个 Agent 怎么和模型说话」,属于 Agent 级特性,被其所有 Session 共享。
106
+ * - 实现必须无状态:全部 Session 与上下文都由 `compose(input)` 参数传入,派生数据写入传入的 `derived` 存储。
107
+ * - 省略时使用默认 `DefaultSessionComposer`。
99
108
  */
100
- session_composer?: () => SessionComposer;
109
+ session_composer?: SessionComposer;
101
110
 
102
111
  }
@@ -68,4 +68,13 @@ export interface AgentSessionCollection {
68
68
 
69
69
  /** 清空 Session 消息。 */
70
70
  clear_messages(session_id: string, origin_type?: string): Promise<boolean>;
71
+
72
+ /**
73
+ * 释放一个空闲 Session 的运行时实例。
74
+ *
75
+ * 只影响内存缓存;消息与元数据仍在 Store 中,下次 `get()` 会重新恢复。
76
+ * 正在执行的 Session 不会被释放,返回是否真的释放。
77
+ * 调用方必须先解除对该实例的订阅,否则重新 `get()` 得到的新实例不会再被订阅。
78
+ */
79
+ release(session_id: string, origin_type?: string): boolean;
71
80
  }
@@ -31,7 +31,7 @@ import type {
31
31
  import type {
32
32
  RespondSessionInteractionInput,
33
33
  SessionInteractionResult,
34
- SessionPendingInteraction,
34
+ SessionInteractionRequest,
35
35
  } from "@downcity/type";
36
36
  import type {
37
37
  ListSessionMessagesInput,
@@ -63,7 +63,6 @@ export interface AgentSessions<TSession extends AgentSessionActor = AgentSession
63
63
 
64
64
  /** 永久清空已归档 session。 */
65
65
  clean_archive(): Promise<AgentCleanArchiveResult>;
66
-
67
66
  }
68
67
 
69
68
  /**
@@ -99,7 +98,7 @@ export interface AgentSessionActor {
99
98
  system(): Promise<AgentSessionSystemSnapshot>;
100
99
 
101
100
  /** 列出当前 Session 正在等待用户响应的 Interaction。 */
102
- interactions(): Promise<SessionPendingInteraction[]>;
101
+ interactions(): Promise<SessionInteractionRequest[]>;
103
102
 
104
103
  /** 读取当前 Session 的运行与安全状态。 */
105
104
  status(): Promise<AgentSessionStatus>;
@@ -127,7 +126,7 @@ export interface AgentSession extends AgentSessionActor {
127
126
  /** 把当前 Session 首次生成后固定的完整 system 显式固化到 instruction.md。 */
128
127
  snapshot(): Promise<void>;
129
128
 
130
- /** 使用 Agent 当前 instruction 与 Plugin 显式重新生成 Session system。 */
129
+ /** 使用 Agent 当前 instruction 与 Power 显式重新生成 Session system。 */
131
130
  syncshot(): Promise<void>;
132
131
 
133
132
  /** 从当前 session 创建一个分叉会话。 */
@@ -12,7 +12,7 @@ import type {
12
12
  ModelJsonValue,
13
13
  ModelMessage,
14
14
  } from "@downcity/type";
15
- import { generate_model } from "@executor/model/ModelGenerate.js";
15
+ import { generate_model } from "@/model/ModelGenerate.js";
16
16
  import { z } from "zod";
17
17
 
18
18
  /** 本次调度的触发来源。 */
@@ -84,6 +84,31 @@ export interface GroupSessionListInput {
84
84
  readonly workspace_id?: string;
85
85
  }
86
86
 
87
+ /**
88
+ * 归档一个 GroupSession 的结果。
89
+ *
90
+ * 归档是一次**目录搬迁**(活动区 → 归档区),不是打标记:
91
+ * 它让「活动列表」天然只含活动项,不需要在每次查询里过滤。
92
+ */
93
+ export interface GroupSessionArchiveResult {
94
+ /** 被归档的 GroupSession 标识。 */
95
+ readonly session_id: string;
96
+ /** 归档发生的时间戳。 */
97
+ readonly archived_at: number;
98
+ }
99
+
100
+ /** 列出已归档 GroupSession 的过滤条件。 */
101
+ export interface GroupSessionArchiveListInput {
102
+ /** 只返回绑定到指定 Workspace 的归档群聊。 */
103
+ readonly workspace_id?: string;
104
+ }
105
+
106
+ /** 清空归档后的结果。 */
107
+ export interface GroupSessionCleanArchiveResult {
108
+ /** 被永久删除的归档 GroupSession 标识。 */
109
+ readonly removed_session_ids: readonly string[];
110
+ }
111
+
87
112
  /** GroupSession 公开能力。 */
88
113
  export interface GroupSessionContract {
89
114
  /** 当前群聊上下文的稳定标识。 */
@@ -117,10 +142,28 @@ export interface GroupSessions {
117
142
  create(input?: GroupSessionCreateInput): Promise<GroupSession>;
118
143
  /** 从 Storage 恢复当前 Group 的一个群聊上下文。 */
119
144
  get(session_id: string, input?: GroupSessionGetInput): Promise<GroupSession | null>;
120
- /** 从 Storage 恢复当前 Group 的全部群聊上下文。 */
145
+ /** 从 Storage 恢复当前 Group 的全部群聊上下文(不含已归档)。 */
121
146
  list(input?: GroupSessionListInput): Promise<readonly GroupSessionSummary[]>;
122
147
  /** 释放并移除指定群聊上下文。 */
123
148
  remove(session_id: string, input?: GroupSessionGetInput): Promise<GroupSession | null>;
149
+ /**
150
+ * 归档指定群聊上下文:从活动区迁入归档区。
151
+ *
152
+ * 与 `remove` 的区别是**可逆性**:归档只是收起来,数据仍在归档区;
153
+ * 而 `remove` 是永久删除。因此正在执行的群聊不能归档(先停再归档)。
154
+ */
155
+ archive(session_id: string): Promise<GroupSessionArchiveResult>;
156
+ /** 列出已归档的群聊上下文摘要。 */
157
+ archived(input?: GroupSessionArchiveListInput): Promise<readonly GroupSessionSummary[]>;
158
+ /** 永久清空当前 Group 的全部归档。 */
159
+ clean_archive(): Promise<GroupSessionCleanArchiveResult>;
160
+ /**
161
+ * 永久删除当前 Group 的全部群聊数据(活动区 + 归档区)。
162
+ *
163
+ * 它服务于「Group 被删除」:Group 是群聊的**所有者**,所有者消失时它拥有的数据
164
+ * 不该继续存在。与 `dispose` 的区别:那个只释放运行时实例,数据仍在磁盘上。
165
+ */
166
+ purge(): Promise<void>;
124
167
  }
125
168
 
126
169
  /** GroupSession 的内部依赖快照。 */
@@ -2,6 +2,7 @@
2
2
 
3
3
  import type { GroupMessage } from "@/types/group/Group.js";
4
4
  import type { GroupDispatchTurnRecord } from "@/types/group/GroupDispatch.js";
5
+ import type { GroupSessionArchiveResult, GroupSessionCleanArchiveResult } from "@/types/group/GroupSession.js";
5
6
  import type { FileSystem } from "@downcity/type";
6
7
 
7
8
  /** GroupSession 的持久化元数据。 */
@@ -70,12 +71,38 @@ export interface GroupSessionDataStore {
70
71
  export interface GroupSessionStore {
71
72
  /** 返回指定 GroupSession 的持久化视图。 */
72
73
  session(session_id: string): GroupSessionDataStore;
73
- /** 判断指定 GroupSession 是否存在。 */
74
+ /** 判断指定 GroupSession 是否存在(活动区)。 */
74
75
  has_session(session_id: string): Promise<boolean>;
75
- /** 列出当前 Group 的持久化 Session metadata。 */
76
+ /** 列出当前 Group 活动区的 Session metadata(不含已归档)。 */
76
77
  list_session_metadata(): Promise<GroupSessionHistoryMeta[]>;
77
- /** 删除指定 GroupSession 的全部数据。 */
78
+ /** 删除指定 GroupSession 的全部数据(活动区)。 */
78
79
  remove_session(session_id: string): Promise<boolean>;
80
+ /**
81
+ * 把一个活动 GroupSession 迁入归档区。
82
+ *
83
+ * 与 Agent Session 的归档同形(`LocalSessionStore.archive_session`),只有一处差别:
84
+ * **不接受 `origin_type`**——群聊的来源只有一种,多一个参数只会让人猜该传什么。
85
+ *
86
+ * 不变量(两个方向都不允许静默成功):
87
+ *
88
+ * - 源不存在 → 报错;
89
+ * - 目标已存在 → 报错(覆盖会丢掉一份真实数据)。
90
+ */
91
+ archive_session(session_id: string): Promise<GroupSessionArchiveResult>;
92
+ /** 列出归档区的 Session metadata。 */
93
+ list_archived_session_metadata(): Promise<GroupSessionHistoryMeta[]>;
94
+ /** 删除归档区中的指定 Session。 */
95
+ remove_archived_session(session_id: string): Promise<boolean>;
96
+ /** 永久清空归档区。 */
97
+ clean_archive(): Promise<GroupSessionCleanArchiveResult>;
98
+ /**
99
+ * 永久删除当前 Group 的**全部** GroupSession 数据(活动区 + 归档区)。
100
+ *
101
+ * 与 `clean_archive` 的区别:那个只动归档区,这个连活动区一起删。
102
+ * 它服务于「Group 被删除」——Group 是群聊的**所有者**,所有者消失时它拥有的数据不该继续存在。
103
+ * 没有它时删掉一个 Group 会在磁盘上留下无人认领的孤儿目录。
104
+ */
105
+ purge(): Promise<void>;
79
106
  /** 释放当前 Store 持有的资源。 */
80
107
  dispose(): Promise<void>;
81
108
  }
@@ -6,20 +6,7 @@
6
6
  * - Action 不进入模型输入。
7
7
  */
8
8
 
9
- import type {
10
- SessionActionEvent,
11
- SessionActionStatus,
12
- } from "@downcity/type";
13
-
14
- /**
15
- * Session action 当前状态。
16
- */
17
- export type AgentSessionActionState = SessionActionStatus;
18
-
19
- /**
20
- * Session action 记录。
21
- */
22
- export type AgentSessionActionRecord = SessionActionEvent;
9
+ import type { SessionActionEvent } from "@downcity/type";
23
10
 
24
11
  /**
25
12
  * Session action 订阅事件。
@@ -1,7 +1,8 @@
1
1
  /**
2
- * AdaptivePartContextPolicy 内部持久化与候选类型。
2
+ * Composer 上下文 checkpoint 派生类型。
3
3
  *
4
- * 类型集中在 types 目录,策略模块只保留上下文选择行为。
4
+ * checkpoint 记录「累计摘要已经覆盖到哪个 canonical Part」,属于 Composer 自己的派生
5
+ * 数据:可以随时删除并从 canonical history 重新累积,不参与 Session Message 语义。
5
6
  */
6
7
 
7
8
  import type {
@@ -11,25 +12,25 @@ import type {
11
12
  } from "@downcity/type";
12
13
 
13
14
  /** Part 级累计摘要 checkpoint。 */
14
- export interface AdaptivePartCheckpointRow {
15
+ export interface ContextCheckpointRow {
15
16
  /** checkpoint 稳定标识。 */
16
17
  checkpoint_id: string;
17
18
  /** 边界所属 Message 标识。 */
18
19
  through_message_id: string;
19
20
  /** 边界所属 Message sequence。 */
20
21
  through_message_sequence: number;
21
- /** 边界 Part sequence。 */
22
+ /** 边界 Part sequence;边界可以落在单个 Message 内部。 */
22
23
  through_part_sequence: number;
23
- /** 累计摘要正文。 */
24
+ /** 截至边界的累计摘要正文。 */
24
25
  summary: string;
25
- /** 生成派生结果的策略版本。 */
26
- policy_version: number;
26
+ /** 生成派生结果时的 schema 版本;不兼容的旧表会被重建。 */
27
+ schema_version: number;
27
28
  /** 派生记录创建时间。 */
28
29
  created_at: number;
29
30
  }
30
31
 
31
32
  /** 可参与摘要的稳定 Part 及其 canonical 位置。 */
32
- export interface StablePartCandidate {
33
+ export interface StableContextPart {
33
34
  /** Part 所属完整 Message。 */
34
35
  message: SessionMessage;
35
36
  /** 具体 canonical Part。 */
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * Assistant Message 状态转换器的依赖类型。
3
3
  *
4
- * 该类型只暴露 canonical Message 所有者允许使用的最小能力,避免内部协作者
5
- * 复制 SessionMessages 的消息索引或 Mutation 发布状态。
4
+ * 该类型只暴露 canonical Message 运行时真正需要的协作能力:持久化边界与
5
+ * Message 缓存。缓存是 SessionMessages 与本模块共享的唯一边界,两者都单向依赖它,
6
+ * 不再需要互相回指的闭包。
6
7
  */
7
8
 
8
9
  import type { SessionStorage } from "@/types/store/SessionStorage.js";
9
- import type { SessionMessage } from "@downcity/type";
10
- import type { SessionMutation } from "@downcity/type";
10
+ import type { SessionMessageCache } from "@/session/messages/SessionMessageCache.js";
11
11
 
12
12
  /** Assistant Message 状态转换器的构造参数。 */
13
13
  export interface SessionAgentMessageStateOptions {
@@ -15,16 +15,6 @@ export interface SessionAgentMessageStateOptions {
15
15
  session_id: string;
16
16
  /** 负责持久化 canonical Message 稳定检查点的 Store。 */
17
17
  store: SessionStorage;
18
- /** 读取 SessionMessages 当前持有的 canonical Message 集合。 */
19
- list_messages: () => Iterable<SessionMessage>;
20
- /** 接受已持久化的完整 Message 快照,并按需发布 Mutation。 */
21
- accept_message: (
22
- message: SessionMessage,
23
- publish_mutation?: boolean,
24
- ) => void;
25
- /** 接受未持久化的实时 Mutation,并只更新当前运行投影。 */
26
- project_mutation: (
27
- mutation: SessionMutation,
28
- message: SessionMessage,
29
- ) => void;
18
+ /** Message 运行缓存与 Mutation 发布边界。 */
19
+ cache: SessionMessageCache;
30
20
  }
@@ -1,20 +1,21 @@
1
1
  /**
2
2
  * Session Composer 类型。
3
3
  *
4
- * Composer 是最终模型输入的唯一生成者:它组合运行快照、canonical history 与内部
5
- * Context Policy;不拥有 Message、Turn 或数据库连接生命周期。
4
+ * Composer 是唯一回答「这一步模型看到什么」的组件:它把运行快照、canonical history
5
+ * 快照与自己的派生状态组装成一次模型 Step 输入,并在上下文压力出现时推进派生状态。
6
+ *
7
+ * 关键点(中文)
8
+ * - canonical history 与派生存储都由调用方传入,Composer 不主动访问 Session 存储。
9
+ * - 「压缩」不是独立概念,只是 `advance_context()` 的一种实现;不做任何推进也是合法实现。
10
+ * - Composer 不拥有 Message、Turn 或数据库连接生命周期,也不修改 canonical history。
6
11
  */
7
12
 
8
- import type { ModelClient, ModelMessage, RuntimeTool as Tool } from "@downcity/type";
9
- import type { SessionSystemMessage } from "@/executor/types/SessionPrompts.js";
13
+ import type { ModelClient, ModelMessage, AgentTool } from "@downcity/type";
14
+ import type { SessionSystemMessage } from "@downcity/type";
10
15
  import type { AgentSessionSystemBlock } from "@/types/agent/SessionTypes.js";
11
- import type { SessionHookContextBlock } from "@downcity/type";
12
- import type { ModelRequestFailureReporter } from "@/types/executor/ModelRequest.js";
13
- import type { SessionStorage } from "@/types/store/SessionStorage.js";
14
- import type {
15
- SessionContextRecoveryReason,
16
- SessionResolvedContextDiagnostics,
17
- } from "@/types/session/SessionContextPolicy.js";
16
+ import type { SessionHookContextBlock, SessionMessage } from "@downcity/type";
17
+ import type { ModelRequestFailureReporter } from "@/types/model/ModelRequest.js";
18
+ import type { SessionDerivedStore } from "@/types/store/SessionStorage.js";
18
19
 
19
20
  /** Composer 可读取的 Session 身份快照。 */
20
21
  export interface SessionComposeIdentity {
@@ -41,29 +42,27 @@ export interface SessionComposeState {
41
42
  /** 当前 Step 生效的 Agent instruction 文本。 */
42
43
  systems: readonly string[];
43
44
  /** 当前 Step 可使用的工具集合。 */
44
- tools: Readonly<Record<string, Tool>>;
45
+ tools: Readonly<Record<string, AgentTool>>;
45
46
  /** 当前 Step 生效的 instruction system blocks。 */
46
47
  instruction_system_blocks: readonly AgentSessionSystemBlock[];
47
- /** 宿主注入的受托管 Plugin system blocks。 */
48
- managed_plugin_system_blocks: readonly AgentSessionSystemBlock[];
49
- /** 当前 Step 捕获的 Plugin system blocks。 */
50
- plugin_system_blocks: readonly AgentSessionSystemBlock[];
51
- /** 当前 Turn 冻结的 Plugin 动态上下文。 */
52
- plugin_context_blocks: readonly SessionHookContextBlock[];
48
+ /** 当前 Step 捕获的扩展 system blocks。 */
49
+ power_system_blocks: readonly AgentSessionSystemBlock[];
50
+ /** 当前 Turn 冻结的 Power 动态上下文。 */
51
+ power_context_blocks: readonly SessionHookContextBlock[];
53
52
  }
54
53
 
55
54
  /** Composer 可读取的当前 Turn 快照。 */
56
55
  export interface SessionComposeTurn {
57
56
  /** 当前 Turn 标识;只读查询时允许为空。 */
58
57
  turn_id?: string;
59
- /** 当前执行已进行的上下文恢复次数。 */
60
- retry_count: number;
58
+ /** 当前执行已进行的上下文推进次数。 */
59
+ advance_count: number;
61
60
  }
62
61
 
63
62
  /** Composer 初始化输入。 */
64
63
  export interface SessionComposerInitializeInput {
65
- /** 当前 Session 的统一持久化边界。 */
66
- storage: SessionStorage;
64
+ /** 当前 Composer 命名空间内的派生表事务。 */
65
+ derived: SessionDerivedStore;
67
66
  }
68
67
 
69
68
  /** 单次模型输入组装参数。 */
@@ -72,26 +71,51 @@ export interface SessionComposeInput {
72
71
  session: SessionComposeIdentity;
73
72
  /** 当前 Step 已生效的运行状态。 */
74
73
  state: SessionComposeState;
75
- /** 当前 Session 的统一持久化边界。 */
76
- storage: SessionStorage;
74
+ /** 调用方读取的 canonical history 只读快照,按 sequence 升序。 */
75
+ history: readonly SessionMessage[];
76
+ /** 当前 Composer 命名空间内的派生表事务。 */
77
+ derived: SessionDerivedStore;
77
78
  /** 当前 Turn 快照。 */
78
79
  turn: SessionComposeTurn;
79
80
  }
80
81
 
81
- /** 上下文超限后的恢复输入。 */
82
- export interface SessionContextRecoveryInput {
82
+ /** 触发一次派生上下文推进的稳定领域原因。 */
83
+ export type SessionContextAdvanceTrigger =
84
+ /** Provider 明确拒绝超出上下文窗口的请求。 */
85
+ | "provider_context_limit"
86
+ /** Provider usage 已达到主动推进阈值。 */
87
+ | "usage_pressure";
88
+
89
+ /** 上下文推进输入。 */
90
+ export interface SessionContextAdvanceInput {
83
91
  /** 当前 Session 身份快照。 */
84
92
  session: SessionComposeIdentity;
85
- /** 当前 Session 使用的模型。 */
93
+ /** 调用方读取的 canonical history 只读快照,按 sequence 升序。 */
94
+ history: readonly SessionMessage[];
95
+ /** 当前 Composer 命名空间内的派生表事务。 */
96
+ derived: SessionDerivedStore;
97
+ /** 触发本次推进的稳定领域原因。 */
98
+ trigger: SessionContextAdvanceTrigger;
99
+ /** 用于生成派生摘要的当前模型。 */
86
100
  model?: ModelClient;
87
- /** 当前 Session 的统一持久化边界。 */
88
- storage: SessionStorage;
89
- /** 触发当前恢复的稳定领域原因。 */
90
- reason: SessionContextRecoveryReason;
91
101
  /** 模型请求逐次失败的可选观测入口。 */
92
102
  on_model_request_failure?: ModelRequestFailureReporter;
93
103
  }
94
104
 
105
+ /** Composer 对本次模型上下文的只读诊断。 */
106
+ export interface SessionContextDiagnostics {
107
+ /** 生成当前上下文的 Composer 名称。 */
108
+ composer_name: string;
109
+ /** 当前上下文覆盖到的最新 canonical Message sequence。 */
110
+ through_sequence?: number;
111
+ /** 当前派生边界在 Message 内覆盖到的 Part sequence。 */
112
+ through_part_sequence?: number;
113
+ /** 当前上下文是否使用了派生摘要。 */
114
+ derived: boolean;
115
+ /** 当前使用的可选派生记录标识。 */
116
+ derivation_id?: string;
117
+ }
118
+
95
119
  /** Composer 为一次模型 Step 生成的完整输入。 */
96
120
  export interface SessionStepInput {
97
121
  /** 当前 Step 的 system messages。 */
@@ -100,20 +124,24 @@ export interface SessionStepInput {
100
124
  system_blocks?: AgentSessionSystemBlock[];
101
125
  /** 当前 Step 已转换完成的标准模型消息。 */
102
126
  messages: ModelMessage[];
103
- /** 当前 Step 可调用的工具集合。 */
104
- tools: Record<string, Tool>;
105
- /** 本次上下文策略诊断。 */
106
- context_diagnostics?: SessionResolvedContextDiagnostics;
127
+ /** 当前 Step 可调用的工具集合;执行前由 StepInput 绑定调用环境。 */
128
+ tools: Record<string, AgentTool>;
129
+ /** 本次上下文组装诊断。 */
130
+ context_diagnostics?: SessionContextDiagnostics;
107
131
  }
108
132
 
109
133
  /** Session 级可替换 Composer。 */
110
134
  export interface SessionComposer {
111
- /** Composer 的稳定可读名称。 */
135
+ /**
136
+ * Composer 稳定名称。
137
+ *
138
+ * 关键点(中文):该值同时作为派生表命名空间,派生表前缀固定为 `composer_<name>_`。
139
+ */
112
140
  readonly name: string;
113
- /** 初始化 Composer 及其内部 Policy。 */
141
+ /** 初始化当前 Composer 的派生 schema;没有派生状态时可以是空实现。 */
114
142
  initialize(input: SessionComposerInitializeInput): Promise<void>;
115
143
  /** 组装一次模型 Step 使用的最终输入。 */
116
144
  compose(input: SessionComposeInput): Promise<SessionStepInput>;
117
- /** 尝试推进上下文派生状态;有效推进时返回 true。 */
118
- recover_context(input: SessionContextRecoveryInput): Promise<boolean>;
145
+ /** 尝试推进派生上下文状态;发生有效推进时返回 true。 */
146
+ advance_context(input: SessionContextAdvanceInput): Promise<boolean>;
119
147
  }