@downcity/agent 1.1.430 → 1.1.438

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 (488) hide show
  1. package/README.md +13 -11
  2. package/bin/agent/Agent.d.ts +3 -3
  3. package/bin/agent/Agent.d.ts.map +1 -1
  4. package/bin/agent/Agent.js +38 -8
  5. package/bin/agent/Agent.js.map +1 -1
  6. package/bin/agent/AgentInstructions.js +2 -2
  7. package/bin/agent/AgentInstructions.js.map +1 -1
  8. package/bin/agent/AgentMemoryStorage.d.ts.map +1 -1
  9. package/bin/agent/AgentMemoryStorage.js +1 -0
  10. package/bin/agent/AgentMemoryStorage.js.map +1 -1
  11. package/bin/agent/AgentSessions.d.ts +5 -1
  12. package/bin/agent/AgentSessions.d.ts.map +1 -1
  13. package/bin/agent/AgentSessions.js +17 -9
  14. package/bin/agent/AgentSessions.js.map +1 -1
  15. package/bin/executor/Executor.d.ts +9 -27
  16. package/bin/executor/Executor.d.ts.map +1 -1
  17. package/bin/executor/Executor.js +32 -127
  18. package/bin/executor/Executor.js.map +1 -1
  19. package/bin/executor/composer/system/default/SystemPromptAssets.d.ts +0 -4
  20. package/bin/executor/composer/system/default/SystemPromptAssets.d.ts.map +1 -1
  21. package/bin/executor/composer/system/default/SystemPromptAssets.js +0 -5
  22. package/bin/executor/composer/system/default/SystemPromptAssets.js.map +1 -1
  23. package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts +3 -9
  24. package/bin/executor/core-engine/CoreEngineContextCompaction.d.ts.map +1 -1
  25. package/bin/executor/core-engine/CoreEngineContextCompaction.js +4 -130
  26. package/bin/executor/core-engine/CoreEngineContextCompaction.js.map +1 -1
  27. package/bin/executor/core-engine/CoreEngineRunner.d.ts +3 -30
  28. package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -1
  29. package/bin/executor/core-engine/CoreEngineRunner.js +38 -194
  30. package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
  31. package/bin/executor/core-engine/CoreEngineSignals.d.ts +6 -6
  32. package/bin/executor/core-engine/CoreEngineSignals.d.ts.map +1 -1
  33. package/bin/executor/core-engine/CoreEngineSignals.js +1 -1
  34. package/bin/executor/core-engine/CoreEngineSignals.js.map +1 -1
  35. package/bin/executor/messages/SessionAttachmentMapper.d.ts +2 -2
  36. package/bin/executor/messages/SessionAttachmentMapper.d.ts.map +1 -1
  37. package/bin/executor/messages/SessionAttachmentMapper.js.map +1 -1
  38. package/bin/executor/messages/SessionMessageLog.d.ts +3 -3
  39. package/bin/executor/messages/SessionMessageLog.d.ts.map +1 -1
  40. package/bin/executor/messages/SessionMessageLog.js.map +1 -1
  41. package/bin/executor/messages/SessionModelMessages.d.ts +0 -3
  42. package/bin/executor/messages/SessionModelMessages.d.ts.map +1 -1
  43. package/bin/executor/messages/SessionModelMessages.js +80 -97
  44. package/bin/executor/messages/SessionModelMessages.js.map +1 -1
  45. package/bin/executor/model/ModelStepRunner.d.ts +2 -6
  46. package/bin/executor/model/ModelStepRunner.d.ts.map +1 -1
  47. package/bin/executor/model/ModelStepRunner.js +0 -28
  48. package/bin/executor/model/ModelStepRunner.js.map +1 -1
  49. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts +7 -64
  50. package/bin/executor/services/ExecutorRecoveryPolicy.d.ts.map +1 -1
  51. package/bin/executor/services/ExecutorRecoveryPolicy.js +29 -45
  52. package/bin/executor/services/ExecutorRecoveryPolicy.js.map +1 -1
  53. package/bin/executor/types/SessionHistoryMeta.d.ts +1 -3
  54. package/bin/executor/types/SessionHistoryMeta.d.ts.map +1 -1
  55. package/bin/executor/types/SessionHistoryMeta.js +1 -1
  56. package/bin/index.d.ts +9 -13
  57. package/bin/index.d.ts.map +1 -1
  58. package/bin/index.js +2 -4
  59. package/bin/index.js.map +1 -1
  60. package/bin/session/DefaultSessionComposer.d.ts +13 -7
  61. package/bin/session/DefaultSessionComposer.d.ts.map +1 -1
  62. package/bin/session/DefaultSessionComposer.js +26 -21
  63. package/bin/session/DefaultSessionComposer.js.map +1 -1
  64. package/bin/session/Session.d.ts +12 -19
  65. package/bin/session/Session.d.ts.map +1 -1
  66. package/bin/session/Session.js +70 -202
  67. package/bin/session/Session.js.map +1 -1
  68. package/bin/session/SessionComposition.d.ts +0 -2
  69. package/bin/session/SessionComposition.d.ts.map +1 -1
  70. package/bin/session/SessionComposition.js +30 -54
  71. package/bin/session/SessionComposition.js.map +1 -1
  72. package/bin/session/SessionLoop.d.ts +17 -16
  73. package/bin/session/SessionLoop.d.ts.map +1 -1
  74. package/bin/session/SessionLoop.js +217 -320
  75. package/bin/session/SessionLoop.js.map +1 -1
  76. package/bin/session/SessionMessages.d.ts +52 -44
  77. package/bin/session/SessionMessages.d.ts.map +1 -1
  78. package/bin/session/SessionMessages.js +285 -187
  79. package/bin/session/SessionMessages.js.map +1 -1
  80. package/bin/session/SessionQueue.d.ts +1 -1
  81. package/bin/session/SessionQueue.d.ts.map +1 -1
  82. package/bin/session/SessionQueue.js +2 -1
  83. package/bin/session/SessionQueue.js.map +1 -1
  84. package/bin/session/SessionState.d.ts +3 -7
  85. package/bin/session/SessionState.d.ts.map +1 -1
  86. package/bin/session/SessionState.js +50 -89
  87. package/bin/session/SessionState.js.map +1 -1
  88. package/bin/session/SessionSystem.d.ts +5 -1
  89. package/bin/session/SessionSystem.d.ts.map +1 -1
  90. package/bin/session/SessionSystem.js +40 -0
  91. package/bin/session/SessionSystem.js.map +1 -1
  92. package/bin/session/SessionTitle.d.ts +3 -3
  93. package/bin/session/SessionTitle.d.ts.map +1 -1
  94. package/bin/session/SessionTitle.js +2 -2
  95. package/bin/session/browse/Browse.d.ts +32 -46
  96. package/bin/session/browse/Browse.d.ts.map +1 -1
  97. package/bin/session/browse/Browse.js +104 -360
  98. package/bin/session/browse/Browse.js.map +1 -1
  99. package/bin/session/browse/SessionMessageTimeline.d.ts.map +1 -1
  100. package/bin/session/browse/SessionMessageTimeline.js +61 -37
  101. package/bin/session/browse/SessionMessageTimeline.js.map +1 -1
  102. package/bin/session/composer/policies/AdaptivePartContextPolicy.d.ts +35 -0
  103. package/bin/session/composer/policies/AdaptivePartContextPolicy.d.ts.map +1 -0
  104. package/bin/session/composer/policies/AdaptivePartContextPolicy.js +256 -0
  105. package/bin/session/composer/policies/AdaptivePartContextPolicy.js.map +1 -0
  106. package/bin/session/composer/policies/FullHistoryContextPolicy.d.ts +24 -0
  107. package/bin/session/composer/policies/FullHistoryContextPolicy.d.ts.map +1 -0
  108. package/bin/session/composer/policies/FullHistoryContextPolicy.js +31 -0
  109. package/bin/session/composer/policies/FullHistoryContextPolicy.js.map +1 -0
  110. package/bin/session/composer/policies/SessionSummaryPrompts.d.ts +16 -0
  111. package/bin/session/composer/policies/SessionSummaryPrompts.d.ts.map +1 -0
  112. package/bin/session/composer/policies/SessionSummaryPrompts.js +32 -0
  113. package/bin/session/composer/policies/SessionSummaryPrompts.js.map +1 -0
  114. package/bin/session/execution/SessionAssistantOutputAdapter.d.ts +15 -4
  115. package/bin/session/execution/SessionAssistantOutputAdapter.d.ts.map +1 -1
  116. package/bin/session/execution/SessionAssistantOutputAdapter.js +7 -3
  117. package/bin/session/execution/SessionAssistantOutputAdapter.js.map +1 -1
  118. package/bin/session/messages/{SessionActionMessageWriter.d.ts → SessionAgentActionPartWriter.d.ts} +7 -7
  119. package/bin/session/messages/SessionAgentActionPartWriter.d.ts.map +1 -0
  120. package/bin/session/messages/{SessionActionMessageWriter.js → SessionAgentActionPartWriter.js} +7 -7
  121. package/bin/session/messages/SessionAgentActionPartWriter.js.map +1 -0
  122. package/bin/session/messages/SessionAgentContent.d.ts +10 -0
  123. package/bin/session/messages/SessionAgentContent.d.ts.map +1 -0
  124. package/bin/session/messages/SessionAgentContent.js +44 -0
  125. package/bin/session/messages/SessionAgentContent.js.map +1 -0
  126. package/bin/session/messages/SessionAgentMessageState.d.ts +50 -0
  127. package/bin/session/messages/SessionAgentMessageState.d.ts.map +1 -0
  128. package/bin/session/messages/SessionAgentMessageState.js +283 -0
  129. package/bin/session/messages/SessionAgentMessageState.js.map +1 -0
  130. package/bin/session/messages/{SessionAssistantMessageWriter.d.ts → SessionAgentMessageWriter.d.ts} +22 -8
  131. package/bin/session/messages/SessionAgentMessageWriter.d.ts.map +1 -0
  132. package/bin/session/messages/{SessionAssistantMessageWriter.js → SessionAgentMessageWriter.js} +54 -42
  133. package/bin/session/messages/SessionAgentMessageWriter.js.map +1 -0
  134. package/bin/session/messages/SessionForkMessageFiles.d.ts +11 -0
  135. package/bin/session/messages/SessionForkMessageFiles.d.ts.map +1 -1
  136. package/bin/session/messages/SessionForkMessageFiles.js +8 -2
  137. package/bin/session/messages/SessionForkMessageFiles.js.map +1 -1
  138. package/bin/session/messages/SessionMessageInteractionWriter.d.ts +6 -6
  139. package/bin/session/messages/SessionMessageInteractionWriter.d.ts.map +1 -1
  140. package/bin/session/messages/SessionMessageInteractionWriter.js +4 -4
  141. package/bin/session/messages/SessionMessageInteractionWriter.js.map +1 -1
  142. package/bin/session/messages/SessionMessageText.d.ts +3 -3
  143. package/bin/session/messages/SessionMessageText.d.ts.map +1 -1
  144. package/bin/session/messages/SessionMessageText.js +0 -2
  145. package/bin/session/messages/SessionMessageText.js.map +1 -1
  146. package/bin/session/messages/SessionTurnFileDiffData.d.ts +3 -3
  147. package/bin/session/messages/SessionTurnFileDiffData.d.ts.map +1 -1
  148. package/bin/session/messages/SessionTurnFileDiffData.js.map +1 -1
  149. package/bin/session/messages/SessionUserMessage.d.ts +3 -3
  150. package/bin/session/messages/SessionUserMessage.d.ts.map +1 -1
  151. package/bin/session/messages/SessionUserMessage.js +6 -3
  152. package/bin/session/messages/SessionUserMessage.js.map +1 -1
  153. package/bin/session/preview/SessionMessagePreview.d.ts.map +1 -1
  154. package/bin/session/preview/SessionMessagePreview.js +25 -9
  155. package/bin/session/preview/SessionMessagePreview.js.map +1 -1
  156. package/bin/session/runtime/SessionTurnCompletion.d.ts +15 -0
  157. package/bin/session/runtime/SessionTurnCompletion.d.ts.map +1 -0
  158. package/bin/session/runtime/SessionTurnCompletion.js +126 -0
  159. package/bin/session/runtime/SessionTurnCompletion.js.map +1 -0
  160. package/bin/session/runtime/SessionTurnContext.d.ts.map +1 -1
  161. package/bin/session/runtime/SessionTurnContext.js +14 -19
  162. package/bin/session/runtime/SessionTurnContext.js.map +1 -1
  163. package/bin/session/runtime/SessionTurnFileDiff.d.ts +12 -0
  164. package/bin/session/runtime/SessionTurnFileDiff.d.ts.map +1 -0
  165. package/bin/session/runtime/SessionTurnFileDiff.js +71 -0
  166. package/bin/session/runtime/SessionTurnFileDiff.js.map +1 -0
  167. package/bin/session/storage/LocalSessionDataStore.d.ts +6 -41
  168. package/bin/session/storage/LocalSessionDataStore.d.ts.map +1 -1
  169. package/bin/session/storage/LocalSessionDataStore.js +19 -101
  170. package/bin/session/storage/LocalSessionDataStore.js.map +1 -1
  171. package/bin/session/storage/LocalSessionStore.d.ts +13 -5
  172. package/bin/session/storage/LocalSessionStore.d.ts.map +1 -1
  173. package/bin/session/storage/LocalSessionStore.js +153 -30
  174. package/bin/session/storage/LocalSessionStore.js.map +1 -1
  175. package/bin/session/storage/LocalStorePaths.d.ts +4 -16
  176. package/bin/session/storage/LocalStorePaths.d.ts.map +1 -1
  177. package/bin/session/storage/LocalStorePaths.js +7 -31
  178. package/bin/session/storage/LocalStorePaths.js.map +1 -1
  179. package/bin/session/storage/Metadata.d.ts +4 -4
  180. package/bin/session/storage/Metadata.d.ts.map +1 -1
  181. package/bin/session/storage/Metadata.js +3 -11
  182. package/bin/session/storage/Metadata.js.map +1 -1
  183. package/bin/session/storage/RuntimeSessionPort.d.ts +4 -4
  184. package/bin/session/storage/RuntimeSessionPort.d.ts.map +1 -1
  185. package/bin/session/storage/RuntimeSessionPort.js +3 -3
  186. package/bin/session/storage/RuntimeSessionPort.js.map +1 -1
  187. package/bin/session/storage/SessionStorageCodec.d.ts +59 -0
  188. package/bin/session/storage/SessionStorageCodec.d.ts.map +1 -0
  189. package/bin/session/storage/SessionStorageCodec.js +331 -0
  190. package/bin/session/storage/SessionStorageCodec.js.map +1 -0
  191. package/bin/session/storage/SessionStorageSchema.d.ts +11 -0
  192. package/bin/session/storage/SessionStorageSchema.d.ts.map +1 -0
  193. package/bin/session/storage/SessionStorageSchema.js +131 -0
  194. package/bin/session/storage/SessionStorageSchema.js.map +1 -0
  195. package/bin/session/storage/SqliteSessionStorage.d.ts +120 -0
  196. package/bin/session/storage/SqliteSessionStorage.d.ts.map +1 -0
  197. package/bin/session/storage/SqliteSessionStorage.js +581 -0
  198. package/bin/session/storage/SqliteSessionStorage.js.map +1 -0
  199. package/bin/tools/ask/AskQuestionsTool.d.ts.map +1 -1
  200. package/bin/tools/ask/AskQuestionsTool.js +3 -1
  201. package/bin/tools/ask/AskQuestionsTool.js.map +1 -1
  202. package/bin/types/action/ActionResult.d.ts +9 -9
  203. package/bin/types/action/ActionResult.d.ts.map +1 -1
  204. package/bin/types/action/ActionResult.js +1 -1
  205. package/bin/types/agent/AgentOptions.d.ts +10 -0
  206. package/bin/types/agent/AgentOptions.d.ts.map +1 -1
  207. package/bin/types/agent/AgentStorage.d.ts +3 -1
  208. package/bin/types/agent/AgentStorage.d.ts.map +1 -1
  209. package/bin/types/agent/SessionActor.d.ts +0 -9
  210. package/bin/types/agent/SessionActor.d.ts.map +1 -1
  211. package/bin/types/agent/SessionTypes.d.ts +5 -5
  212. package/bin/types/agent/SessionTypes.d.ts.map +1 -1
  213. package/bin/types/executor/SessionAssistantOutput.d.ts +15 -4
  214. package/bin/types/executor/SessionAssistantOutput.d.ts.map +1 -1
  215. package/bin/types/executor/SessionTurnContext.d.ts +17 -19
  216. package/bin/types/executor/SessionTurnContext.d.ts.map +1 -1
  217. package/bin/types/sdk/AgentSessionAction.d.ts +1 -1
  218. package/bin/types/sdk/AgentSessionAction.js +1 -1
  219. package/bin/types/sdk/AgentSessionPrompt.d.ts +14 -5
  220. package/bin/types/sdk/AgentSessionPrompt.d.ts.map +1 -1
  221. package/bin/types/sdk/AgentSessionPrompt.js +1 -1
  222. package/bin/types/sdk/AgentSessionPrompt.js.map +1 -1
  223. package/bin/types/session/AdaptivePartContextPolicy.d.ts +31 -0
  224. package/bin/types/session/AdaptivePartContextPolicy.d.ts.map +1 -0
  225. package/bin/types/session/AdaptivePartContextPolicy.js +7 -0
  226. package/bin/types/session/AdaptivePartContextPolicy.js.map +1 -0
  227. package/bin/types/session/{SessionAssistantMessageState.d.ts → SessionAgentMessageState.d.ts} +7 -7
  228. package/bin/types/session/SessionAgentMessageState.d.ts.map +1 -0
  229. package/bin/types/session/{SessionAssistantMessageState.js → SessionAgentMessageState.js} +1 -1
  230. package/bin/types/session/SessionAgentMessageState.js.map +1 -0
  231. package/bin/types/session/SessionCommand.d.ts +19 -7
  232. package/bin/types/session/SessionCommand.d.ts.map +1 -1
  233. package/bin/types/session/SessionComposer.d.ts +43 -43
  234. package/bin/types/session/SessionComposer.d.ts.map +1 -1
  235. package/bin/types/session/SessionComposer.js +2 -2
  236. package/bin/types/session/SessionComposition.d.ts +2 -5
  237. package/bin/types/session/SessionComposition.d.ts.map +1 -1
  238. package/bin/types/session/SessionContextPolicy.d.ts +70 -0
  239. package/bin/types/session/SessionContextPolicy.d.ts.map +1 -0
  240. package/bin/types/session/SessionContextPolicy.js +8 -0
  241. package/bin/types/session/SessionContextPolicy.js.map +1 -0
  242. package/bin/types/session/SessionExecution.d.ts +5 -32
  243. package/bin/types/session/SessionExecution.d.ts.map +1 -1
  244. package/bin/types/session/SessionLoop.d.ts +3 -5
  245. package/bin/types/session/SessionLoop.d.ts.map +1 -1
  246. package/bin/types/session/SessionMessages.d.ts +18 -28
  247. package/bin/types/session/SessionMessages.d.ts.map +1 -1
  248. package/bin/types/session/SessionOptions.d.ts +5 -5
  249. package/bin/types/session/SessionOptions.d.ts.map +1 -1
  250. package/bin/types/session/SessionPort.d.ts +8 -9
  251. package/bin/types/session/SessionPort.d.ts.map +1 -1
  252. package/bin/types/session/SessionState.d.ts +2 -5
  253. package/bin/types/session/SessionState.d.ts.map +1 -1
  254. package/bin/types/session/SessionSystem.d.ts +14 -0
  255. package/bin/types/session/SessionSystem.d.ts.map +1 -1
  256. package/bin/types/session/SessionTool.d.ts +2 -2
  257. package/bin/types/session/SessionTool.d.ts.map +1 -1
  258. package/bin/types/session/SessionTurnCompletion.d.ts +23 -0
  259. package/bin/types/session/SessionTurnCompletion.d.ts.map +1 -0
  260. package/bin/types/session/SessionTurnCompletion.js +8 -0
  261. package/bin/types/session/SessionTurnCompletion.js.map +1 -0
  262. package/bin/types/session/SessionTurnFileDiff.d.ts +42 -0
  263. package/bin/types/session/SessionTurnFileDiff.d.ts.map +1 -0
  264. package/bin/types/session/SessionTurnFileDiff.js +8 -0
  265. package/bin/types/session/SessionTurnFileDiff.js.map +1 -0
  266. package/bin/types/store/LocalStore.d.ts +6 -13
  267. package/bin/types/store/LocalStore.d.ts.map +1 -1
  268. package/bin/types/store/LocalStore.js +1 -1
  269. package/bin/types/store/SessionStorage.d.ts +103 -0
  270. package/bin/types/store/SessionStorage.d.ts.map +1 -0
  271. package/bin/types/store/SessionStorage.js +8 -0
  272. package/bin/types/store/SessionStorage.js.map +1 -0
  273. package/bin/types/store/SessionStore.d.ts +5 -3
  274. package/bin/types/store/SessionStore.d.ts.map +1 -1
  275. package/package.json +2 -2
  276. package/scripts/core-engine-context-compaction.test.mjs +96 -219
  277. package/scripts/core-engine-model-stream.test.mjs +2 -4
  278. package/scripts/executor-failure-result.test.mjs +14 -17
  279. package/scripts/session-agent-message-part-order.test.mjs +63 -0
  280. package/scripts/session-initialization.test.mjs +141 -0
  281. package/scripts/session-message-timeline.test.mjs +5 -6
  282. package/scripts/session-messages-error-part.test.mjs +175 -0
  283. package/scripts/session-messages-error.test.mjs +47 -6
  284. package/scripts/session-prompt-idempotency.test.mjs +91 -0
  285. package/scripts/session-queue.test.mjs +13 -12
  286. package/scripts/session-storage-sqlite.test.mjs +209 -0
  287. package/scripts/session-turn-context.test.mjs +21 -33
  288. package/src/agent/Agent.ts +48 -12
  289. package/src/agent/AgentInstructions.ts +2 -2
  290. package/src/agent/AgentMemoryStorage.ts +1 -0
  291. package/src/agent/AgentSessions.ts +31 -12
  292. package/src/executor/Executor.ts +47 -184
  293. package/src/executor/README.md +12 -13
  294. package/src/executor/composer/system/default/SystemPromptAssets.ts +0 -6
  295. package/src/executor/core-engine/CoreEngineContextCompaction.ts +3 -135
  296. package/src/executor/core-engine/CoreEngineRunner.ts +51 -273
  297. package/src/executor/core-engine/CoreEngineSignals.ts +9 -9
  298. package/src/executor/messages/SessionAttachmentMapper.ts +4 -4
  299. package/src/executor/messages/SessionMessageLog.ts +3 -3
  300. package/src/executor/messages/SessionModelMessages.ts +85 -103
  301. package/src/executor/model/ModelStepRunner.ts +9 -41
  302. package/src/executor/services/ExecutorRecoveryPolicy.ts +34 -127
  303. package/src/executor/types/SessionHistoryMeta.ts +1 -3
  304. package/src/index.ts +39 -47
  305. package/src/session/DefaultSessionComposer.ts +33 -30
  306. package/src/session/Session.ts +96 -227
  307. package/src/session/SessionComposition.ts +28 -65
  308. package/src/session/SessionLoop.ts +267 -370
  309. package/src/session/SessionMessages.ts +363 -242
  310. package/src/session/SessionQueue.ts +3 -2
  311. package/src/session/SessionState.ts +55 -101
  312. package/src/session/SessionSystem.ts +51 -1
  313. package/src/session/SessionTitle.ts +4 -4
  314. package/src/session/browse/Browse.ts +182 -468
  315. package/src/session/browse/SessionMessageTimeline.ts +63 -38
  316. package/src/session/composer/policies/AdaptivePartContextPolicy.ts +307 -0
  317. package/src/session/composer/policies/FullHistoryContextPolicy.ts +36 -0
  318. package/src/session/composer/policies/SessionSummaryPrompts.ts +42 -0
  319. package/src/session/execution/SessionAssistantOutputAdapter.ts +25 -11
  320. package/src/session/messages/{SessionActionMessageWriter.ts → SessionAgentActionPartWriter.ts} +8 -8
  321. package/src/session/messages/SessionAgentContent.ts +56 -0
  322. package/src/session/messages/SessionAgentMessageState.ts +378 -0
  323. package/src/session/messages/{SessionAssistantMessageWriter.ts → SessionAgentMessageWriter.ts} +89 -60
  324. package/src/session/messages/SessionForkMessageFiles.ts +25 -1
  325. package/src/session/messages/SessionMessageInteractionWriter.ts +19 -19
  326. package/src/session/messages/SessionMessageText.ts +3 -4
  327. package/src/session/messages/SessionTurnFileDiffData.ts +3 -3
  328. package/src/session/messages/SessionUserMessage.ts +10 -7
  329. package/src/session/preview/SessionMessagePreview.ts +26 -9
  330. package/src/session/runtime/SessionTurnCompletion.ts +159 -0
  331. package/src/session/runtime/SessionTurnContext.ts +20 -21
  332. package/src/session/runtime/SessionTurnFileDiff.ts +105 -0
  333. package/src/session/storage/LocalSessionDataStore.ts +27 -176
  334. package/src/session/storage/LocalSessionStore.ts +170 -38
  335. package/src/session/storage/LocalStorePaths.ts +14 -86
  336. package/src/session/storage/Metadata.ts +4 -13
  337. package/src/session/storage/RuntimeSessionPort.ts +7 -7
  338. package/src/session/storage/SessionStorageCodec.ts +465 -0
  339. package/src/session/storage/SessionStorageSchema.ts +132 -0
  340. package/src/session/storage/SqliteSessionStorage.ts +776 -0
  341. package/src/tools/ask/AskQuestionsTool.ts +3 -1
  342. package/src/types/action/ActionResult.ts +10 -10
  343. package/src/types/agent/AgentOptions.ts +11 -0
  344. package/src/types/agent/AgentStorage.ts +3 -1
  345. package/src/types/agent/SessionActor.ts +0 -10
  346. package/src/types/agent/SessionTypes.ts +5 -5
  347. package/src/types/executor/SessionAssistantOutput.ts +15 -4
  348. package/src/types/executor/SessionTurnContext.ts +25 -22
  349. package/src/types/sdk/AgentSessionAction.ts +1 -1
  350. package/src/types/sdk/AgentSessionPrompt.ts +15 -5
  351. package/src/types/session/AdaptivePartContextPolicy.ts +37 -0
  352. package/src/types/session/{SessionAssistantMessageState.ts → SessionAgentMessageState.ts} +6 -6
  353. package/src/types/session/SessionCommand.ts +21 -7
  354. package/src/types/session/SessionComposer.ts +48 -48
  355. package/src/types/session/SessionComposition.ts +2 -5
  356. package/src/types/session/SessionContextPolicy.ts +77 -0
  357. package/src/types/session/SessionExecution.ts +11 -36
  358. package/src/types/session/SessionLoop.ts +3 -8
  359. package/src/types/session/SessionMessages.ts +19 -29
  360. package/src/types/session/SessionOptions.ts +5 -5
  361. package/src/types/session/SessionPort.ts +10 -10
  362. package/src/types/session/SessionState.ts +2 -5
  363. package/src/types/session/SessionSystem.ts +19 -0
  364. package/src/types/session/SessionTool.ts +2 -2
  365. package/src/types/session/SessionTurnCompletion.ts +24 -0
  366. package/src/types/session/SessionTurnFileDiff.ts +44 -0
  367. package/src/types/store/LocalStore.ts +6 -14
  368. package/src/types/store/SessionStorage.ts +121 -0
  369. package/src/types/store/SessionStore.ts +6 -3
  370. package/tsconfig.tsbuildinfo +1 -1
  371. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.d.ts +0 -45
  372. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.d.ts.map +0 -1
  373. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.js +0 -144
  374. package/bin/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.js.map +0 -1
  375. package/bin/executor/composer/system/SessionSystemComposer.d.ts +0 -23
  376. package/bin/executor/composer/system/SessionSystemComposer.d.ts.map +0 -1
  377. package/bin/executor/composer/system/SessionSystemComposer.js +0 -9
  378. package/bin/executor/composer/system/SessionSystemComposer.js.map +0 -1
  379. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts +0 -43
  380. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.d.ts.map +0 -1
  381. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js +0 -42
  382. package/bin/executor/composer/system/default/DefaultSessionSystemComposer.js.map +0 -1
  383. package/bin/executor/composer/system/default/PromptRenderer.d.ts +0 -35
  384. package/bin/executor/composer/system/default/PromptRenderer.d.ts.map +0 -1
  385. package/bin/executor/composer/system/default/PromptRenderer.js +0 -23
  386. package/bin/executor/composer/system/default/PromptRenderer.js.map +0 -1
  387. package/bin/executor/composer/system/default/SystemDomain.d.ts +0 -151
  388. package/bin/executor/composer/system/default/SystemDomain.d.ts.map +0 -1
  389. package/bin/executor/composer/system/default/SystemDomain.js +0 -162
  390. package/bin/executor/composer/system/default/SystemDomain.js.map +0 -1
  391. package/bin/executor/composer/system/default/assets/task.prompt.d.ts +0 -7
  392. package/bin/executor/composer/system/default/assets/task.prompt.d.ts.map +0 -1
  393. package/bin/executor/composer/system/default/assets/task.prompt.js +0 -8
  394. package/bin/executor/composer/system/default/assets/task.prompt.js.map +0 -1
  395. package/bin/executor/composer/system/default/variables/GeoContext.d.ts +0 -14
  396. package/bin/executor/composer/system/default/variables/GeoContext.d.ts.map +0 -1
  397. package/bin/executor/composer/system/default/variables/GeoContext.js +0 -150
  398. package/bin/executor/composer/system/default/variables/GeoContext.js.map +0 -1
  399. package/bin/executor/composer/system/default/variables/PromptTypes.d.ts +0 -36
  400. package/bin/executor/composer/system/default/variables/PromptTypes.d.ts.map +0 -1
  401. package/bin/executor/composer/system/default/variables/PromptTypes.js +0 -9
  402. package/bin/executor/composer/system/default/variables/PromptTypes.js.map +0 -1
  403. package/bin/executor/composer/system/default/variables/VariableReplacer.d.ts +0 -61
  404. package/bin/executor/composer/system/default/variables/VariableReplacer.d.ts.map +0 -1
  405. package/bin/executor/composer/system/default/variables/VariableReplacer.js +0 -93
  406. package/bin/executor/composer/system/default/variables/VariableReplacer.js.map +0 -1
  407. package/bin/executor/core-engine/CoreEngineMessageState.d.ts +0 -63
  408. package/bin/executor/core-engine/CoreEngineMessageState.d.ts.map +0 -1
  409. package/bin/executor/core-engine/CoreEngineMessageState.js +0 -81
  410. package/bin/executor/core-engine/CoreEngineMessageState.js.map +0 -1
  411. package/bin/session/SessionCommand.d.ts +0 -24
  412. package/bin/session/SessionCommand.d.ts.map +0 -1
  413. package/bin/session/SessionCommand.js +0 -35
  414. package/bin/session/SessionCommand.js.map +0 -1
  415. package/bin/session/messages/SessionActionMessageWriter.d.ts.map +0 -1
  416. package/bin/session/messages/SessionActionMessageWriter.js.map +0 -1
  417. package/bin/session/messages/SessionAssistantMessageState.d.ts +0 -49
  418. package/bin/session/messages/SessionAssistantMessageState.d.ts.map +0 -1
  419. package/bin/session/messages/SessionAssistantMessageState.js +0 -296
  420. package/bin/session/messages/SessionAssistantMessageState.js.map +0 -1
  421. package/bin/session/messages/SessionAssistantMessageWriter.d.ts.map +0 -1
  422. package/bin/session/messages/SessionAssistantMessageWriter.js.map +0 -1
  423. package/bin/session/messages/SessionMessageCompaction.d.ts +0 -29
  424. package/bin/session/messages/SessionMessageCompaction.d.ts.map +0 -1
  425. package/bin/session/messages/SessionMessageCompaction.js +0 -128
  426. package/bin/session/messages/SessionMessageCompaction.js.map +0 -1
  427. package/bin/session/runtime/SessionCompactOperation.d.ts +0 -29
  428. package/bin/session/runtime/SessionCompactOperation.d.ts.map +0 -1
  429. package/bin/session/runtime/SessionCompactOperation.js +0 -66
  430. package/bin/session/runtime/SessionCompactOperation.js.map +0 -1
  431. package/bin/session/runtime/SessionHistoryCompaction.d.ts +0 -22
  432. package/bin/session/runtime/SessionHistoryCompaction.d.ts.map +0 -1
  433. package/bin/session/runtime/SessionHistoryCompaction.js +0 -31
  434. package/bin/session/runtime/SessionHistoryCompaction.js.map +0 -1
  435. package/bin/session/storage/JsonlSessionMessageStore.d.ts +0 -77
  436. package/bin/session/storage/JsonlSessionMessageStore.d.ts.map +0 -1
  437. package/bin/session/storage/JsonlSessionMessageStore.js +0 -419
  438. package/bin/session/storage/JsonlSessionMessageStore.js.map +0 -1
  439. package/bin/session/storage/SessionMessageStoreFactory.d.ts +0 -12
  440. package/bin/session/storage/SessionMessageStoreFactory.d.ts.map +0 -1
  441. package/bin/session/storage/SessionMessageStoreFactory.js +0 -13
  442. package/bin/session/storage/SessionMessageStoreFactory.js.map +0 -1
  443. package/bin/types/common/Template.d.ts +0 -9
  444. package/bin/types/common/Template.d.ts.map +0 -1
  445. package/bin/types/common/Template.js +0 -9
  446. package/bin/types/common/Template.js.map +0 -1
  447. package/bin/types/sdk/AgentSessionCompact.d.ts +0 -30
  448. package/bin/types/sdk/AgentSessionCompact.d.ts.map +0 -1
  449. package/bin/types/sdk/AgentSessionCompact.js +0 -8
  450. package/bin/types/sdk/AgentSessionCompact.js.map +0 -1
  451. package/bin/types/session/SessionAssistantMessageState.d.ts.map +0 -1
  452. package/bin/types/session/SessionAssistantMessageState.js.map +0 -1
  453. package/bin/types/session/SessionSegment.d.ts +0 -57
  454. package/bin/types/session/SessionSegment.d.ts.map +0 -1
  455. package/bin/types/session/SessionSegment.js +0 -8
  456. package/bin/types/session/SessionSegment.js.map +0 -1
  457. package/bin/types/store/SessionDataStore.d.ts +0 -88
  458. package/bin/types/store/SessionDataStore.d.ts.map +0 -1
  459. package/bin/types/store/SessionDataStore.js +0 -9
  460. package/bin/types/store/SessionDataStore.js.map +0 -1
  461. package/bin/utils/Template.d.ts +0 -17
  462. package/bin/utils/Template.d.ts.map +0 -1
  463. package/bin/utils/Template.js +0 -24
  464. package/bin/utils/Template.js.map +0 -1
  465. package/scripts/session-compaction-prompts.test.mjs +0 -49
  466. package/src/executor/composer/compaction/jsonl/JsonlSessionCompactionPrompts.ts +0 -162
  467. package/src/executor/composer/system/SessionSystemComposer.ts +0 -25
  468. package/src/executor/composer/system/default/DefaultSessionSystemComposer.ts +0 -76
  469. package/src/executor/composer/system/default/PromptRenderer.ts +0 -52
  470. package/src/executor/composer/system/default/SystemDomain.ts +0 -301
  471. package/src/executor/composer/system/default/assets/task.prompt.ts +0 -9
  472. package/src/executor/composer/system/default/assets/task.prompt.ts.txt +0 -33
  473. package/src/executor/composer/system/default/variables/GeoContext.ts +0 -180
  474. package/src/executor/composer/system/default/variables/PromptTypes.ts +0 -37
  475. package/src/executor/composer/system/default/variables/VariableReplacer.ts +0 -154
  476. package/src/executor/core-engine/CoreEngineMessageState.ts +0 -117
  477. package/src/session/SessionCommand.ts +0 -42
  478. package/src/session/messages/SessionAssistantMessageState.ts +0 -392
  479. package/src/session/messages/SessionMessageCompaction.ts +0 -160
  480. package/src/session/runtime/SessionCompactOperation.ts +0 -93
  481. package/src/session/runtime/SessionHistoryCompaction.ts +0 -45
  482. package/src/session/storage/JsonlSessionMessageStore.ts +0 -513
  483. package/src/session/storage/SessionMessageStoreFactory.ts +0 -18
  484. package/src/types/common/Template.ts +0 -9
  485. package/src/types/sdk/AgentSessionCompact.ts +0 -32
  486. package/src/types/session/SessionSegment.ts +0 -62
  487. package/src/types/store/SessionDataStore.ts +0 -113
  488. package/src/utils/Template.ts +0 -28
@@ -0,0 +1,581 @@
1
+ /**
2
+ * 单个 Session 的 SQLite 持久化实现。
3
+ *
4
+ * 本模块拥有数据库连接和事务;Message 领域只接收聚合对象,不感知 messages 与
5
+ * message_parts 的关系结构。Composer 只能通过带 namespace 的派生存储操作自己的表。
6
+ */
7
+ import path from "node:path";
8
+ import { DatabaseSync } from "node:sqlite";
9
+ import { restore_session_origin } from "@downcity/type";
10
+ import { normalize_session_metadata, resolve_system_timezone } from "../../session/storage/Metadata.js";
11
+ import { resolve_session_message_preview } from "../../session/preview/SessionMessagePreview.js";
12
+ import { decode_session_message, encode_session_message_row, encode_session_part_row, } from "../../session/storage/SessionStorageCodec.js";
13
+ import { SESSION_STORAGE_SCHEMA_SQL, SESSION_STORAGE_SCHEMA_VERSION, } from "../../session/storage/SessionStorageSchema.js";
14
+ /** 单个 Session 的 SQLite 存储。 */
15
+ export class SqliteSessionStorage {
16
+ session_id;
17
+ origin;
18
+ attachments;
19
+ agent_id;
20
+ workspace_id;
21
+ database_path;
22
+ database_location;
23
+ files;
24
+ database = null;
25
+ initialize_promise = null;
26
+ disposed = false;
27
+ constructor(options) {
28
+ this.session_id = String(options.session_id || "").trim();
29
+ this.agent_id = String(options.agent_id || "").trim();
30
+ this.workspace_id = String(options.workspace_id || "").trim() || undefined;
31
+ this.origin = structuredClone(options.origin);
32
+ this.database_path = path.resolve(options.database_path);
33
+ this.database_location = options.database_location;
34
+ this.files = options.files;
35
+ this.attachments = options.attachments;
36
+ if (!this.session_id || !this.agent_id) {
37
+ throw new Error("SqliteSessionStorage requires session_id and agent_id");
38
+ }
39
+ }
40
+ /** 初始化数据库 schema 并校验 Session 身份。 */
41
+ async initialize() {
42
+ if (!this.initialize_promise)
43
+ this.initialize_promise = this.initialize_storage();
44
+ const initialize_promise = this.initialize_promise;
45
+ try {
46
+ await initialize_promise;
47
+ }
48
+ catch (error) {
49
+ if (this.initialize_promise === initialize_promise)
50
+ this.initialize_promise = null;
51
+ throw error;
52
+ }
53
+ }
54
+ /** 读取当前 Session metadata 投影。 */
55
+ async read_metadata() {
56
+ await this.initialize();
57
+ const row = this.require_database().prepare(`
58
+ SELECT session_id, agent_id, workspace_id, origin, timezone, title,
59
+ model_label, approval_mode, message_count, preview_text,
60
+ created_at, updated_at
61
+ FROM session_state WHERE singleton_id = 1
62
+ `).get();
63
+ if (!row)
64
+ throw new Error(`Session state does not exist: ${this.session_id}`);
65
+ return normalize_session_metadata({
66
+ v: 2,
67
+ session_id: row.session_id,
68
+ agent_id: row.agent_id,
69
+ ...(row.workspace_id ? { workspace_id: row.workspace_id } : {}),
70
+ origin: restore_session_origin(JSON.parse(row.origin), this.origin.type),
71
+ timezone: row.timezone,
72
+ ...(row.title ? { title: row.title } : {}),
73
+ ...(row.model_label ? { model_label: row.model_label } : {}),
74
+ ...(row.approval_mode ? { approval_mode: row.approval_mode } : {}),
75
+ message_count: row.message_count,
76
+ ...(row.preview_text ? { preview_text: row.preview_text } : {}),
77
+ created_at: row.created_at,
78
+ updated_at: row.updated_at,
79
+ }, this.session_id, this.agent_id, this.origin, row.workspace_id || undefined);
80
+ }
81
+ /** 原子覆盖 configured metadata,同时保持数据库身份不变量。 */
82
+ async write_metadata(metadata) {
83
+ await this.initialize();
84
+ const normalized = normalize_session_metadata(metadata, this.session_id, this.agent_id, this.origin, metadata.workspace_id);
85
+ this.run_transaction(() => {
86
+ const result = this.require_database().prepare(`
87
+ UPDATE session_state SET
88
+ workspace_id = ?, timezone = ?, title = ?, model_label = ?,
89
+ approval_mode = ?,
90
+ revision = revision + 1, updated_at = ?
91
+ WHERE singleton_id = 1 AND session_id = ? AND agent_id = ? AND origin = ?
92
+ `).run(normalized.workspace_id ?? null, normalized.timezone ?? resolve_system_timezone(), normalized.title ?? null, normalized.model_label ?? null, normalized.approval_mode ?? null, normalized.updated_at, this.session_id, this.agent_id, JSON.stringify(this.origin));
93
+ if (result.changes !== 1)
94
+ throw new Error(`Session identity mismatch: ${this.session_id}`);
95
+ });
96
+ }
97
+ /** 判断是否存在显式 system snapshot。 */
98
+ async has_instruction() {
99
+ return (await this.read_instruction()) !== null;
100
+ }
101
+ /** 读取显式 system snapshot。 */
102
+ async read_instruction() {
103
+ await this.initialize();
104
+ const row = this.require_database().prepare("SELECT system_snapshot FROM session_state WHERE singleton_id = 1").get();
105
+ return row?.system_snapshot ?? null;
106
+ }
107
+ /** 原子写入显式 system snapshot。 */
108
+ async write_instruction(instruction) {
109
+ await this.initialize();
110
+ const value = String(instruction || "").trim();
111
+ if (!value)
112
+ throw new Error("Session system snapshot cannot be empty");
113
+ this.run_transaction(() => {
114
+ this.require_database().prepare(`
115
+ UPDATE session_state
116
+ SET system_snapshot = ?, revision = revision + 1, updated_at = ?
117
+ WHERE singleton_id = 1
118
+ `).run(value, Date.now());
119
+ });
120
+ }
121
+ /** 读取全部 Message 聚合。 */
122
+ async list_messages() {
123
+ await this.initialize();
124
+ const rows = this.require_database().prepare("SELECT * FROM messages ORDER BY sequence ASC").all();
125
+ return this.read_aggregates(rows);
126
+ }
127
+ /** 读取指定 Message 聚合。 */
128
+ async read_message(message_id) {
129
+ await this.initialize();
130
+ const row = this.require_database().prepare("SELECT * FROM messages WHERE message_id = ?").get(message_id);
131
+ return row ? this.read_aggregates([row])[0] ?? null : null;
132
+ }
133
+ /** 只读取标题生成所需的最早一条 User Message。 */
134
+ async read_first_user_message() {
135
+ await this.initialize();
136
+ const row = this.require_database().prepare("SELECT * FROM messages WHERE role = 'user' ORDER BY sequence ASC LIMIT 1").get();
137
+ if (!row)
138
+ return null;
139
+ const message = this.read_aggregates([row])[0];
140
+ return message?.role === "user" ? message : null;
141
+ }
142
+ /** 分配全局 sequence 并创建完整 Message 聚合。 */
143
+ async create_message(build_message) {
144
+ await this.initialize();
145
+ return this.run_transaction(() => {
146
+ const sequence_row = this.require_database().prepare("SELECT COALESCE(MAX(sequence), 0) + 1 AS next_sequence FROM messages").get();
147
+ const message = build_message({
148
+ message_sequence: sequence_row.next_sequence,
149
+ });
150
+ this.validate_new_message(message, sequence_row.next_sequence);
151
+ this.insert_message_unsafe(message);
152
+ this.update_message_projection_unsafe(message, true);
153
+ return structuredClone(message);
154
+ });
155
+ }
156
+ /** 原子更新 Message envelope,并只写入调用方声明变化的 Part。 */
157
+ async update_message(input) {
158
+ await this.initialize();
159
+ this.run_transaction(() => {
160
+ this.validate_message_update_unsafe(input);
161
+ this.update_message_envelope_unsafe(input.message, input.expected_revision);
162
+ for (const part of input.changed_parts) {
163
+ this.upsert_part_unsafe(input.message, part);
164
+ }
165
+ this.update_message_projection_unsafe(input.message, false);
166
+ });
167
+ }
168
+ /** 按 Message sequence 向前分页并返回升序聚合。 */
169
+ async list_message_page(input) {
170
+ await this.initialize();
171
+ const limit = Math.min(Math.max(input?.limit ?? 50, 1), 201);
172
+ const before_sequence = input?.before_sequence;
173
+ const include_internal = input?.include_internal === true;
174
+ const rows = this.require_database().prepare(`
175
+ SELECT * FROM messages
176
+ WHERE (? = 1 OR visibility = 'visible')
177
+ AND (? IS NULL OR sequence < ?)
178
+ ORDER BY sequence DESC
179
+ LIMIT ?
180
+ `).all(include_internal ? 1 : 0, before_sequence ?? null, before_sequence ?? null, limit);
181
+ return this.read_aggregates(rows.reverse());
182
+ }
183
+ /** 只读取上次进程中断后需要收口的 Agent Message。 */
184
+ async list_recoverable_agent_messages() {
185
+ await this.initialize();
186
+ const rows = this.require_database().prepare(`
187
+ SELECT messages.*
188
+ FROM messages
189
+ WHERE messages.role = 'agent'
190
+ AND messages.state = 'streaming'
191
+ ORDER BY messages.sequence ASC
192
+ `).all();
193
+ return this.read_aggregates(rows).filter((message) => message.role === "agent");
194
+ }
195
+ /** 读取指定 Turn 或整个 Session 的最后一条 Agent Message。 */
196
+ async read_latest_agent_message(turn_id) {
197
+ await this.initialize();
198
+ const row = turn_id
199
+ ? this.require_database().prepare(`
200
+ SELECT * FROM messages
201
+ WHERE role = 'agent' AND turn_id = ?
202
+ ORDER BY sequence DESC LIMIT 1
203
+ `).get(turn_id)
204
+ : this.require_database().prepare(`
205
+ SELECT * FROM messages
206
+ WHERE role = 'agent'
207
+ ORDER BY sequence DESC LIMIT 1
208
+ `).get();
209
+ const message = row
210
+ ? this.read_aggregates([row])[0] ?? null
211
+ : null;
212
+ return message?.role === "agent" ? message : null;
213
+ }
214
+ /** 读取当前 Message 数量、数据库大小与最新 Message。 */
215
+ async message_stats() {
216
+ await this.initialize();
217
+ const count_row = this.require_database().prepare("SELECT message_count FROM session_state WHERE singleton_id = 1").get();
218
+ const latest_row = this.require_database().prepare("SELECT * FROM messages ORDER BY sequence DESC LIMIT 1").get();
219
+ const storage_bytes = this.database_location.type === "file"
220
+ ? await this.files.file_size(this.database_path).catch(() => 0)
221
+ : 0;
222
+ return {
223
+ message_count: count_row.message_count,
224
+ storage_bytes,
225
+ latest_message: latest_row ? this.read_aggregates([latest_row])[0] ?? null : null,
226
+ };
227
+ }
228
+ /** 清空 Message;外键负责同步删除 Part 与正确关联的派生数据。 */
229
+ async clear_messages() {
230
+ await this.initialize();
231
+ this.run_transaction(() => {
232
+ this.require_database().exec("DELETE FROM messages");
233
+ this.require_database().prepare(`
234
+ UPDATE session_state SET
235
+ message_count = 0, preview_text = NULL,
236
+ revision = revision + 1, updated_at = ?
237
+ WHERE singleton_id = 1
238
+ `).run(Date.now());
239
+ });
240
+ }
241
+ /** 创建只允许当前 namespace 派生表的 Composer 存储。 */
242
+ composer_storage(namespace) {
243
+ const normalized_namespace = normalize_composer_namespace(namespace);
244
+ const table_prefix = `composer_${normalized_namespace}_`;
245
+ return {
246
+ list_messages: async () => await this.list_messages(),
247
+ transaction: async (operation) => {
248
+ await this.initialize();
249
+ return this.run_transaction(() => operation({
250
+ execute: (sql, parameters) => {
251
+ assert_policy_sql(sql, table_prefix);
252
+ this.run_statement(sql, parameters);
253
+ },
254
+ get: (sql, parameters) => {
255
+ assert_policy_sql(sql, table_prefix);
256
+ return this.get_statement(sql, parameters) ?? null;
257
+ },
258
+ all: (sql, parameters) => {
259
+ assert_policy_sql(sql, table_prefix);
260
+ return this.all_statement(sql, parameters);
261
+ },
262
+ }));
263
+ },
264
+ };
265
+ }
266
+ /** 关闭 SQLite 连接。 */
267
+ async dispose() {
268
+ if (this.disposed)
269
+ return;
270
+ this.disposed = true;
271
+ const database = this.database;
272
+ this.database = null;
273
+ if (database)
274
+ database.close();
275
+ }
276
+ /** 执行一次完整初始化。 */
277
+ async initialize_storage() {
278
+ if (this.disposed)
279
+ throw new Error(`SessionStorage is disposed: ${this.session_id}`);
280
+ if (this.database_location.type === "file") {
281
+ await this.files.ensure_directory(path.dirname(this.database_path));
282
+ }
283
+ const database = new DatabaseSync(this.database_location.type === "file" ? this.database_path : ":memory:");
284
+ this.database = database;
285
+ try {
286
+ database.exec("PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000;");
287
+ if (this.database_location.type === "file") {
288
+ database.exec("PRAGMA journal_mode = WAL; PRAGMA synchronous = NORMAL;");
289
+ }
290
+ const version = Number(database.prepare("PRAGMA user_version").get()?.user_version ?? 0);
291
+ if (version > SESSION_STORAGE_SCHEMA_VERSION) {
292
+ throw new Error(`Unsupported Session schema version: ${String(version)}`);
293
+ }
294
+ if (version > 0 && version < SESSION_STORAGE_SCHEMA_VERSION) {
295
+ throw new Error(`Session schema version ${String(version)} requires the external migration script`);
296
+ }
297
+ database.exec(SESSION_STORAGE_SCHEMA_SQL);
298
+ database.exec(`PRAGMA user_version = ${String(SESSION_STORAGE_SCHEMA_VERSION)}`);
299
+ this.initialize_identity_unsafe();
300
+ }
301
+ catch (error) {
302
+ if (this.database === database)
303
+ this.database = null;
304
+ try {
305
+ database.close();
306
+ }
307
+ catch {
308
+ // 初始化错误优先;关闭失败不覆盖真正原因。
309
+ }
310
+ throw error;
311
+ }
312
+ }
313
+ /** 创建或验证 Session 唯一状态行。 */
314
+ initialize_identity_unsafe() {
315
+ this.run_transaction(() => {
316
+ const database = this.require_database();
317
+ const current = database.prepare("SELECT session_id, agent_id, workspace_id, origin FROM session_state WHERE singleton_id = 1").get();
318
+ if (!current) {
319
+ const created_at = Date.now();
320
+ database.prepare(`
321
+ INSERT INTO session_state (
322
+ singleton_id, session_id, agent_id, workspace_id, origin, timezone,
323
+ message_count, revision, created_at, updated_at
324
+ ) VALUES (1, ?, ?, ?, ?, ?, 0, 1, ?, ?)
325
+ `).run(this.session_id, this.agent_id, this.workspace_id ?? null, JSON.stringify(this.origin), resolve_system_timezone(), created_at, created_at);
326
+ return;
327
+ }
328
+ if (current.session_id !== this.session_id ||
329
+ current.agent_id !== this.agent_id ||
330
+ current.origin !== JSON.stringify(this.origin)) {
331
+ throw new Error(`Session identity mismatch: ${this.session_id}`);
332
+ }
333
+ });
334
+ }
335
+ /** 批量读取 Message rows 对应的所有 Parts 并组装聚合。 */
336
+ read_aggregates(rows) {
337
+ if (rows.length === 0)
338
+ return [];
339
+ const placeholders = rows.map(() => "?").join(", ");
340
+ const part_rows = this.require_database().prepare(`
341
+ SELECT * FROM message_parts
342
+ WHERE message_id IN (${placeholders})
343
+ ORDER BY message_id ASC, sequence ASC
344
+ `).all(...rows.map((row) => row.message_id));
345
+ const parts_by_message = new Map();
346
+ for (const part of part_rows) {
347
+ const parts = parts_by_message.get(part.message_id) || [];
348
+ parts.push(part);
349
+ parts_by_message.set(part.message_id, parts);
350
+ }
351
+ return rows.map((row) => decode_session_message(row, parts_by_message.get(row.message_id) || [], this.session_id));
352
+ }
353
+ /** 插入 Message envelope 与全部 Parts。 */
354
+ insert_message_unsafe(message) {
355
+ const row = encode_session_message_row(message);
356
+ this.require_database().prepare(`
357
+ INSERT INTO messages (
358
+ message_id, turn_id, sequence, revision, role, state,
359
+ visibility, origin_session_id, origin_message_id, origin_turn_id,
360
+ created_at, updated_at
361
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
362
+ `).run(row.message_id, row.turn_id, row.sequence, row.revision, row.role, row.state, row.visibility, row.origin_session_id, row.origin_message_id, row.origin_turn_id, row.created_at, row.updated_at);
363
+ for (const part of message.parts)
364
+ this.insert_part_unsafe(message, part);
365
+ }
366
+ /** 使用 revision 乐观锁更新 Message envelope。 */
367
+ update_message_envelope_unsafe(message, expected_revision) {
368
+ const row = encode_session_message_row(message);
369
+ const result = this.require_database().prepare(`
370
+ UPDATE messages SET
371
+ turn_id = ?, revision = ?, state = ?, visibility = ?,
372
+ updated_at = ?
373
+ WHERE message_id = ? AND revision = ? AND role = ? AND sequence = ?
374
+ `).run(row.turn_id, row.revision, row.state, row.visibility, row.updated_at, row.message_id, expected_revision, row.role, row.sequence);
375
+ if (result.changes !== 1) {
376
+ throw new Error(`Session Message revision conflict: ${message.message_id}`);
377
+ }
378
+ }
379
+ /** 插入或替换单个明确变化的 Part,不扫描同 Message 的其他 Part。 */
380
+ upsert_part_unsafe(message, part) {
381
+ const row = encode_session_part_row(message, part);
382
+ const result = this.require_database().prepare(`
383
+ INSERT INTO message_parts (
384
+ part_id, message_id, sequence, step_id, type, content, created_at, updated_at
385
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
386
+ ON CONFLICT(part_id) DO UPDATE SET
387
+ sequence = excluded.sequence,
388
+ step_id = excluded.step_id,
389
+ type = excluded.type,
390
+ content = excluded.content,
391
+ updated_at = excluded.updated_at
392
+ WHERE message_parts.message_id = excluded.message_id
393
+ `).run(row.part_id, row.message_id, row.sequence, row.step_id, row.type, row.content, row.created_at, row.updated_at);
394
+ if (result.changes !== 1) {
395
+ throw new Error(`Session Part belongs to another Message: ${part.part_id}`);
396
+ }
397
+ }
398
+ /** 插入一个领域 Part。 */
399
+ insert_part_unsafe(message, part) {
400
+ this.insert_part_row_unsafe(encode_session_part_row(message, part));
401
+ }
402
+ /** 插入已经编码的 Part row。 */
403
+ insert_part_row_unsafe(row) {
404
+ this.require_database().prepare(`
405
+ INSERT INTO message_parts (
406
+ part_id, message_id, sequence, step_id, type, content, created_at, updated_at
407
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
408
+ `).run(row.part_id, row.message_id, row.sequence, row.step_id, row.type, row.content, row.created_at, row.updated_at);
409
+ }
410
+ /** 以当前已知 Message 增量维护列表投影,不反查完整历史。 */
411
+ update_message_projection_unsafe(message, created) {
412
+ if (!created && message.role === "agent" && message.state === "streaming") {
413
+ return;
414
+ }
415
+ const preview_text = resolve_session_message_preview(message).trim().slice(0, 180);
416
+ this.require_database().prepare(`
417
+ UPDATE session_state SET
418
+ message_count = message_count + ?,
419
+ preview_text = CASE
420
+ WHEN (SELECT MAX(sequence) FROM messages) = ? THEN ?
421
+ ELSE preview_text
422
+ END,
423
+ revision = revision + 1, updated_at = ?
424
+ WHERE singleton_id = 1
425
+ `).run(created ? 1 : 0, message.sequence, preview_text || null, message.updated_at);
426
+ }
427
+ /** 校验新 Message 身份、顺序和 Part 结构。 */
428
+ validate_new_message(message, next_sequence) {
429
+ if (message.session_id !== this.session_id)
430
+ throw new Error("Session Message session_id mismatch");
431
+ if (message.sequence !== next_sequence || message.revision !== 1) {
432
+ throw new Error("New Session Message requires the next sequence and revision 1");
433
+ }
434
+ this.validate_parts(message);
435
+ }
436
+ /** 只读取 envelope,校验定向更新没有改变聚合身份。 */
437
+ validate_message_update_unsafe(input) {
438
+ const message = input.message;
439
+ const current = this.require_database().prepare("SELECT * FROM messages WHERE message_id = ?").get(message.message_id);
440
+ if (!current)
441
+ throw new Error(`Session Message not found: ${message.message_id}`);
442
+ if (message.session_id !== this.session_id ||
443
+ message.sequence !== current.sequence ||
444
+ message.role !== current.role ||
445
+ current.revision !== input.expected_revision ||
446
+ message.revision !== input.expected_revision + 1 ||
447
+ message.created_at !== current.created_at ||
448
+ message.origin?.session_id !== (current.origin_session_id ?? undefined) ||
449
+ message.origin?.message_id !== (current.origin_message_id ?? undefined) ||
450
+ message.origin?.turn_id !== (current.origin_turn_id ?? undefined)) {
451
+ if (current.revision !== input.expected_revision) {
452
+ throw new Error(`Session Message revision conflict: ${message.message_id}`);
453
+ }
454
+ throw new Error(`Session Message update changed immutable identity: ${message.message_id}`);
455
+ }
456
+ this.validate_parts(message);
457
+ const message_parts = new Map();
458
+ for (const part of message.parts)
459
+ message_parts.set(part.part_id, part);
460
+ const changed_ids = new Set();
461
+ for (const part of input.changed_parts) {
462
+ if (changed_ids.has(part.part_id) ||
463
+ JSON.stringify(message_parts.get(part.part_id)) !== JSON.stringify(part)) {
464
+ throw new Error(`Invalid changed Session Part: ${part.part_id}`);
465
+ }
466
+ changed_ids.add(part.part_id);
467
+ }
468
+ }
469
+ /** 校验 Part identity、类型和连续顺序。 */
470
+ validate_parts(message) {
471
+ const ids = new Set();
472
+ for (let index = 0; index < message.parts.length; index += 1) {
473
+ const part = message.parts[index];
474
+ if (!part.part_id || ids.has(part.part_id) || part.sequence !== index + 1) {
475
+ throw new Error(`Invalid Session Part identity or sequence: ${part.part_id || "unknown"}`);
476
+ }
477
+ ids.add(part.part_id);
478
+ const user_type = part.type === "text" || part.type === "context" || part.type === "file" || part.type === "data";
479
+ if (message.role === "user" && !user_type) {
480
+ throw new Error(`User Message cannot contain ${part.type} Part`);
481
+ }
482
+ }
483
+ if (message.role !== "agent")
484
+ return;
485
+ const has_non_terminal_part = message.parts.some((part) => {
486
+ if (part.type === "text" || part.type === "reasoning") {
487
+ return part.state === "streaming";
488
+ }
489
+ if (part.type === "tool") {
490
+ return part.state !== "completed" && part.state !== "failed";
491
+ }
492
+ if (part.type === "interaction")
493
+ return part.status === "pending";
494
+ if (part.type === "action")
495
+ return part.state === "running";
496
+ return false;
497
+ });
498
+ if (has_non_terminal_part && message.state !== "streaming") {
499
+ throw new Error(`Non-terminal Agent Part requires a streaming Message: ${message.message_id}`);
500
+ }
501
+ }
502
+ /** 在当前连接上执行短同步事务。 */
503
+ run_transaction(operation) {
504
+ const database = this.require_database();
505
+ database.exec("BEGIN IMMEDIATE");
506
+ try {
507
+ const result = operation();
508
+ database.exec("COMMIT");
509
+ return result;
510
+ }
511
+ catch (error) {
512
+ try {
513
+ database.exec("ROLLBACK");
514
+ }
515
+ catch {
516
+ // 原始事务错误优先,ROLLBACK 失败由 SQLite 下次打开时恢复。
517
+ }
518
+ throw error;
519
+ }
520
+ }
521
+ /** 执行带参数 SQL。 */
522
+ run_statement(sql, parameters) {
523
+ this.require_database().prepare(sql).run(...to_sql_values(parameters));
524
+ }
525
+ /** 读取一条带参数 SQL。 */
526
+ get_statement(sql, parameters) {
527
+ return this.require_database().prepare(sql).get(...to_sql_values(parameters));
528
+ }
529
+ /** 读取多条带参数 SQL。 */
530
+ all_statement(sql, parameters) {
531
+ return this.require_database().prepare(sql).all(...to_sql_values(parameters));
532
+ }
533
+ /** 返回已经初始化且尚未释放的数据库连接。 */
534
+ require_database() {
535
+ if (this.disposed)
536
+ throw new Error(`SessionStorage is disposed: ${this.session_id}`);
537
+ if (!this.database)
538
+ throw new Error(`SessionStorage is not initialized: ${this.session_id}`);
539
+ return this.database;
540
+ }
541
+ }
542
+ /** 校验 Composer 派生表 namespace。 */
543
+ function normalize_composer_namespace(value) {
544
+ const namespace = String(value || "").trim();
545
+ if (!/^[a-z][a-z0-9_]*$/u.test(namespace)) {
546
+ throw new Error("Composer storage namespace must use lowercase snake_case");
547
+ }
548
+ return namespace;
549
+ }
550
+ /** 限制派生 SQL 的写目标,避免内置 Policy 修改 canonical 表。 */
551
+ function assert_policy_sql(sql, table_prefix) {
552
+ const source = String(sql || "").trim();
553
+ if (!source)
554
+ throw new Error("Composer storage SQL cannot be empty");
555
+ if (/\b(?:ATTACH|DETACH|VACUUM|PRAGMA|REINDEX|ANALYZE|ALTER)\b/iu.test(source) ||
556
+ /\bCREATE\s+(?:UNIQUE\s+)?INDEX\b/iu.test(source) ||
557
+ /\bCREATE\s+TRIGGER\b/iu.test(source) ||
558
+ /\bDROP\s+(?:INDEX|TRIGGER)\b/iu.test(source)) {
559
+ throw new Error("Composer Policy cannot execute database control statements");
560
+ }
561
+ const mutation_targets = [
562
+ ...source.matchAll(/\bCREATE\s+TABLE(?:\s+IF\s+NOT\s+EXISTS)?\s+([a-zA-Z_][a-zA-Z0-9_]*)/giu),
563
+ ...source.matchAll(/\bINSERT(?:\s+OR\s+(?:ROLLBACK|ABORT|REPLACE|FAIL|IGNORE))?\s+INTO\s+([a-zA-Z_][a-zA-Z0-9_]*)/giu),
564
+ ...source.matchAll(/\bREPLACE\s+INTO\s+([a-zA-Z_][a-zA-Z0-9_]*)/giu),
565
+ ...source.matchAll(/\bUPDATE(?:\s+OR\s+(?:ROLLBACK|ABORT|REPLACE|FAIL|IGNORE))?\s+([a-zA-Z_][a-zA-Z0-9_]*)/giu),
566
+ ...source.matchAll(/\bDELETE\s+FROM\s+([a-zA-Z_][a-zA-Z0-9_]*)/giu),
567
+ ...source.matchAll(/\bDROP\s+TABLE(?:\s+IF\s+EXISTS)?\s+([a-zA-Z_][a-zA-Z0-9_]*)/giu),
568
+ ].map((match) => match[1] || "");
569
+ const mutates_database = /\b(?:CREATE|INSERT|REPLACE|UPDATE|DELETE|DROP|ALTER)\b/iu.test(source);
570
+ if (mutates_database && mutation_targets.length === 0) {
571
+ throw new Error("Composer Policy SQL mutation is not supported");
572
+ }
573
+ if (mutation_targets.some((table_name) => !table_name.startsWith(table_prefix))) {
574
+ throw new Error(`Composer Policy can only mutate ${table_prefix}* tables`);
575
+ }
576
+ }
577
+ /** 把领域 SQL 标量转换为 node:sqlite 参数。 */
578
+ function to_sql_values(values) {
579
+ return (values || []).map((value) => value);
580
+ }
581
+ //# sourceMappingURL=SqliteSessionStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteSessionStorage.js","sourceRoot":"","sources":["../../../src/session/storage/SqliteSessionStorage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AskQuestionsTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ask/AskQuestionsTool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAInE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,mGAiE3B,CAAC"}
1
+ {"version":3,"file":"AskQuestionsTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ask/AskQuestionsTool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAInE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,mGAmE3B,CAAC"}
@@ -64,10 +64,12 @@ export const AskQuestionsTool = define_runtime_tool({
64
64
  result.response.outcome !== "resolved") {
65
65
  throw new Error("ask_question received an incompatible Interaction response");
66
66
  }
67
+ const response_payload = result.response.payload;
67
68
  return {
68
69
  output: {
69
70
  status: "resolved",
70
- answers: result.response.payload.answers,
71
+ answers: response_payload.answers,
72
+ ...(response_payload.note ? { note: response_payload.note } : {}),
71
73
  },
72
74
  messages: [],
73
75
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AskQuestionsTool.js","sourceRoot":"","sources":["../../../src/tools/ask/AskQuestionsTool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,mBAAmB,GAEpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAM1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAA8D;IAC/G,WAAW,EACT,kcAAkc;IACpc,YAAY,EAAE,0BAA0B;IACxC,OAAO,EAAE,KAAK,EACZ,KAA4B,EAC5B,iBAAuC,EACQ,EAAE;QACjD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,OAE/B,CAAC;QACd,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,wBAAwB,CAAC;QACrE,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,OAAO,CAAC,YAAY,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvE,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpE,IAAI,CAAC,gBAAgB,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC;YAC5C,cAAc,EAAE,eAAe,WAAW,EAAE,EAAE;YAC9C,OAAO;YACP,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,YAAY;gBACZ,SAAS,EAAE,cAAc;aAC1B;YACD,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE;gBACP,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAC5C,WAAW,EAAE,YAAY,WAAW,EAAE,EAAE;oBACxC,MAAM,EAAE,QAAQ,CAAC,QAAQ;oBACzB,aAAa,EAAE,QAAQ,CAAC,IAAI;oBAC5B,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3D,CAAC,CAAC;aACoB;YACzB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,IACE,MAAM,CAAC,MAAM,KAAK,UAAU;YAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU;YACnC,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK,UAAU,EACtC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE;gBACN,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAG,MAAM,CAAC,QAAQ,CAAC,OAA8D,CAAC,OAAO;aACjG;YACD,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"AskQuestionsTool.js","sourceRoot":"","sources":["../../../src/tools/ask/AskQuestionsTool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,mBAAmB,GAEpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAM1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAA8D;IAC/G,WAAW,EACT,kcAAkc;IACpc,YAAY,EAAE,0BAA0B;IACxC,OAAO,EAAE,KAAK,EACZ,KAA4B,EAC5B,iBAAuC,EACQ,EAAE;QACjD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,OAE/B,CAAC;QACd,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,wBAAwB,CAAC;QACrE,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,OAAO,CAAC,YAAY,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvE,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpE,IAAI,CAAC,gBAAgB,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC;YAC5C,cAAc,EAAE,eAAe,WAAW,EAAE,EAAE;YAC9C,OAAO;YACP,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,YAAY;gBACZ,SAAS,EAAE,cAAc;aAC1B;YACD,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE;gBACP,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAC5C,WAAW,EAAE,YAAY,WAAW,EAAE,EAAE;oBACxC,MAAM,EAAE,QAAQ,CAAC,QAAQ;oBACzB,aAAa,EAAE,QAAQ,CAAC,IAAI;oBAC5B,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3D,CAAC,CAAC;aACoB;YACzB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,IACE,MAAM,CAAC,MAAM,KAAK,UAAU;YAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU;YACnC,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK,UAAU,EACtC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,OAA4E,CAAC;QACtH,OAAO;YACL,MAAM,EAAE;gBACN,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,gBAAgB,CAAC,OAAO;gBACjC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClE;YACD,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}