@stigmer/react 3.0.9-dev.20260616060535 → 3.1.0

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 (426) hide show
  1. package/execution/ApprovalCard.d.ts +47 -3
  2. package/execution/ApprovalCard.d.ts.map +1 -1
  3. package/execution/ApprovalCard.js +138 -70
  4. package/execution/ApprovalCard.js.map +1 -1
  5. package/execution/ApprovalContext.d.ts +72 -0
  6. package/execution/ApprovalContext.d.ts.map +1 -0
  7. package/execution/ApprovalContext.js +41 -0
  8. package/execution/ApprovalContext.js.map +1 -0
  9. package/execution/ArtifactCard.d.ts.map +1 -1
  10. package/execution/ArtifactCard.js +3 -1
  11. package/execution/ArtifactCard.js.map +1 -1
  12. package/execution/ArtifactPreviewModal.d.ts.map +1 -1
  13. package/execution/ArtifactPreviewModal.js +5 -3
  14. package/execution/ArtifactPreviewModal.js.map +1 -1
  15. package/execution/EmptyChangeNotice.d.ts +38 -0
  16. package/execution/EmptyChangeNotice.d.ts.map +1 -0
  17. package/execution/EmptyChangeNotice.js +27 -0
  18. package/execution/EmptyChangeNotice.js.map +1 -0
  19. package/execution/FileChangesView.d.ts +81 -0
  20. package/execution/FileChangesView.d.ts.map +1 -0
  21. package/execution/FileChangesView.js +164 -0
  22. package/execution/FileChangesView.js.map +1 -0
  23. package/execution/FilePathLink.d.ts +24 -4
  24. package/execution/FilePathLink.d.ts.map +1 -1
  25. package/execution/FilePathLink.js +31 -9
  26. package/execution/FilePathLink.js.map +1 -1
  27. package/execution/FileReviewCard.d.ts +111 -0
  28. package/execution/FileReviewCard.d.ts.map +1 -0
  29. package/execution/FileReviewCard.js +558 -0
  30. package/execution/FileReviewCard.js.map +1 -0
  31. package/execution/FileReviewContext.d.ts +35 -0
  32. package/execution/FileReviewContext.d.ts.map +1 -0
  33. package/execution/FileReviewContext.js +23 -0
  34. package/execution/FileReviewContext.js.map +1 -0
  35. package/execution/FileReviewDock.d.ts +73 -0
  36. package/execution/FileReviewDock.d.ts.map +1 -0
  37. package/execution/FileReviewDock.js +65 -0
  38. package/execution/FileReviewDock.js.map +1 -0
  39. package/execution/McpToolDetail.d.ts.map +1 -1
  40. package/execution/McpToolDetail.js +38 -5
  41. package/execution/McpToolDetail.js.map +1 -1
  42. package/execution/MessageThread.d.ts +42 -3
  43. package/execution/MessageThread.d.ts.map +1 -1
  44. package/execution/MessageThread.js +263 -18
  45. package/execution/MessageThread.js.map +1 -1
  46. package/execution/PlanArtifactCard.d.ts.map +1 -1
  47. package/execution/PlanArtifactCard.js +3 -1
  48. package/execution/PlanArtifactCard.js.map +1 -1
  49. package/execution/PlanCompletionCard.d.ts +1 -1
  50. package/execution/PlanCompletionCard.js +1 -1
  51. package/execution/ResultView.d.ts +19 -1
  52. package/execution/ResultView.d.ts.map +1 -1
  53. package/execution/ResultView.js +141 -40
  54. package/execution/ResultView.js.map +1 -1
  55. package/execution/SubAgentSection.d.ts.map +1 -1
  56. package/execution/SubAgentSection.js +45 -6
  57. package/execution/SubAgentSection.js.map +1 -1
  58. package/execution/TerminalSession.d.ts +34 -0
  59. package/execution/TerminalSession.d.ts.map +1 -0
  60. package/execution/TerminalSession.js +34 -0
  61. package/execution/TerminalSession.js.map +1 -0
  62. package/execution/TodoCard.d.ts +53 -0
  63. package/execution/TodoCard.d.ts.map +1 -0
  64. package/execution/TodoCard.js +77 -0
  65. package/execution/TodoCard.js.map +1 -0
  66. package/execution/ToolArgsView.d.ts +7 -1
  67. package/execution/ToolArgsView.d.ts.map +1 -1
  68. package/execution/ToolArgsView.js +10 -9
  69. package/execution/ToolArgsView.js.map +1 -1
  70. package/execution/ToolCallDetail.d.ts +10 -1
  71. package/execution/ToolCallDetail.d.ts.map +1 -1
  72. package/execution/ToolCallDetail.js +66 -19
  73. package/execution/ToolCallDetail.js.map +1 -1
  74. package/execution/ToolCallGroup.d.ts +28 -18
  75. package/execution/ToolCallGroup.d.ts.map +1 -1
  76. package/execution/ToolCallGroup.js +39 -148
  77. package/execution/ToolCallGroup.js.map +1 -1
  78. package/execution/ToolCallItem.d.ts +36 -8
  79. package/execution/ToolCallItem.d.ts.map +1 -1
  80. package/execution/ToolCallItem.js +140 -21
  81. package/execution/ToolCallItem.js.map +1 -1
  82. package/execution/ToolRunGroup.d.ts +48 -0
  83. package/execution/ToolRunGroup.d.ts.map +1 -0
  84. package/execution/ToolRunGroup.js +168 -0
  85. package/execution/ToolRunGroup.js.map +1 -0
  86. package/execution/approval-provenance.d.ts +2 -0
  87. package/execution/approval-provenance.d.ts.map +1 -0
  88. package/execution/approval-provenance.js +6 -0
  89. package/execution/approval-provenance.js.map +1 -0
  90. package/execution/artifact-utils.d.ts +0 -10
  91. package/execution/artifact-utils.d.ts.map +1 -1
  92. package/execution/artifact-utils.js +0 -17
  93. package/execution/artifact-utils.js.map +1 -1
  94. package/execution/execution-phases.d.ts +1 -6
  95. package/execution/execution-phases.d.ts.map +1 -1
  96. package/execution/execution-phases.js +4 -14
  97. package/execution/execution-phases.js.map +1 -1
  98. package/execution/file-path-resolver.d.ts +28 -0
  99. package/execution/file-path-resolver.d.ts.map +1 -1
  100. package/execution/file-path-resolver.js +24 -0
  101. package/execution/file-path-resolver.js.map +1 -1
  102. package/execution/file-review-status.d.ts +127 -0
  103. package/execution/file-review-status.d.ts.map +1 -0
  104. package/execution/file-review-status.js +135 -0
  105. package/execution/file-review-status.js.map +1 -0
  106. package/execution/index.d.ts +39 -5
  107. package/execution/index.d.ts.map +1 -1
  108. package/execution/index.js +23 -3
  109. package/execution/index.js.map +1 -1
  110. package/execution/segment-tool-calls.d.ts +46 -0
  111. package/execution/segment-tool-calls.d.ts.map +1 -0
  112. package/execution/segment-tool-calls.js +71 -0
  113. package/execution/segment-tool-calls.js.map +1 -0
  114. package/execution/tool-categories.d.ts +62 -1
  115. package/execution/tool-categories.d.ts.map +1 -1
  116. package/execution/tool-categories.js +96 -2
  117. package/execution/tool-categories.js.map +1 -1
  118. package/execution/tool-presenter.d.ts +38 -2
  119. package/execution/tool-presenter.d.ts.map +1 -1
  120. package/execution/tool-presenter.js +23 -1
  121. package/execution/tool-presenter.js.map +1 -1
  122. package/execution/tool-rendering-primitives.d.ts.map +1 -1
  123. package/execution/tool-rendering-primitives.js +3 -2
  124. package/execution/tool-rendering-primitives.js.map +1 -1
  125. package/execution/useArtifactDownload.d.ts +44 -0
  126. package/execution/useArtifactDownload.d.ts.map +1 -0
  127. package/execution/useArtifactDownload.js +80 -0
  128. package/execution/useArtifactDownload.js.map +1 -0
  129. package/execution/useArtifactDownloadUrl.d.ts +67 -0
  130. package/execution/useArtifactDownloadUrl.d.ts.map +1 -0
  131. package/execution/useArtifactDownloadUrl.js +59 -0
  132. package/execution/useArtifactDownloadUrl.js.map +1 -0
  133. package/execution/useFileChangeContent.d.ts +61 -0
  134. package/execution/useFileChangeContent.d.ts.map +1 -0
  135. package/execution/useFileChangeContent.js +89 -0
  136. package/execution/useFileChangeContent.js.map +1 -0
  137. package/execution/useFileReview.d.ts +89 -0
  138. package/execution/useFileReview.d.ts.map +1 -0
  139. package/execution/useFileReview.js +106 -0
  140. package/execution/useFileReview.js.map +1 -0
  141. package/execution/useSubmitApproval.d.ts +17 -2
  142. package/execution/useSubmitApproval.d.ts.map +1 -1
  143. package/execution/useSubmitApproval.js +27 -23
  144. package/execution/useSubmitApproval.js.map +1 -1
  145. package/execution/useToolOutputContent.d.ts +44 -0
  146. package/execution/useToolOutputContent.d.ts.map +1 -0
  147. package/execution/useToolOutputContent.js +31 -0
  148. package/execution/useToolOutputContent.js.map +1 -0
  149. package/index.d.ts +6 -6
  150. package/index.d.ts.map +1 -1
  151. package/index.js +3 -3
  152. package/index.js.map +1 -1
  153. package/internal/ApprovalPeekBar.d.ts +23 -0
  154. package/internal/ApprovalPeekBar.d.ts.map +1 -0
  155. package/internal/ApprovalPeekBar.js +25 -0
  156. package/internal/ApprovalPeekBar.js.map +1 -0
  157. package/internal/BoundedContent.d.ts +49 -0
  158. package/internal/BoundedContent.d.ts.map +1 -0
  159. package/internal/BoundedContent.js +50 -0
  160. package/internal/BoundedContent.js.map +1 -0
  161. package/internal/DecisionButton.d.ts +47 -0
  162. package/internal/DecisionButton.d.ts.map +1 -0
  163. package/internal/DecisionButton.js +42 -0
  164. package/internal/DecisionButton.js.map +1 -0
  165. package/internal/InCardDecisionError.d.ts +31 -0
  166. package/internal/InCardDecisionError.d.ts.map +1 -0
  167. package/internal/InCardDecisionError.js +23 -0
  168. package/internal/InCardDecisionError.js.map +1 -0
  169. package/internal/RevealToggle.d.ts +36 -0
  170. package/internal/RevealToggle.d.ts.map +1 -0
  171. package/internal/RevealToggle.js +32 -0
  172. package/internal/RevealToggle.js.map +1 -0
  173. package/internal/VirtualizedThread.d.ts +7 -1
  174. package/internal/VirtualizedThread.d.ts.map +1 -1
  175. package/internal/VirtualizedThread.js +7 -3
  176. package/internal/VirtualizedThread.js.map +1 -1
  177. package/internal/useAutoDisclosure.d.ts +34 -0
  178. package/internal/useAutoDisclosure.d.ts.map +1 -0
  179. package/internal/useAutoDisclosure.js +53 -0
  180. package/internal/useAutoDisclosure.js.map +1 -0
  181. package/internal/useElapsedSince.d.ts +30 -0
  182. package/internal/useElapsedSince.d.ts.map +1 -0
  183. package/internal/useElapsedSince.js +70 -0
  184. package/internal/useElapsedSince.js.map +1 -0
  185. package/internal/useIsOverflowing.d.ts +30 -0
  186. package/internal/useIsOverflowing.d.ts.map +1 -0
  187. package/internal/useIsOverflowing.js +47 -0
  188. package/internal/useIsOverflowing.js.map +1 -0
  189. package/internal/useIsTextTruncated.d.ts +24 -0
  190. package/internal/useIsTextTruncated.d.ts.map +1 -0
  191. package/internal/useIsTextTruncated.js +41 -0
  192. package/internal/useIsTextTruncated.js.map +1 -0
  193. package/internal/useKeyedSubmission.d.ts +49 -0
  194. package/internal/useKeyedSubmission.d.ts.map +1 -0
  195. package/internal/useKeyedSubmission.js +67 -0
  196. package/internal/useKeyedSubmission.js.map +1 -0
  197. package/package.json +4 -4
  198. package/session/SessionViewer.d.ts +2 -2
  199. package/session/SessionViewer.d.ts.map +1 -1
  200. package/session/SessionViewer.js +10 -4
  201. package/session/SessionViewer.js.map +1 -1
  202. package/session/index.d.ts +2 -0
  203. package/session/index.d.ts.map +1 -1
  204. package/session/index.js +1 -0
  205. package/session/index.js.map +1 -1
  206. package/session/inspector/ChangesTab.d.ts +8 -5
  207. package/session/inspector/ChangesTab.d.ts.map +1 -1
  208. package/session/inspector/ChangesTab.js +11 -8
  209. package/session/inspector/ChangesTab.js.map +1 -1
  210. package/session/inspector/SessionInspector.d.ts +4 -4
  211. package/session/inspector/SessionInspector.d.ts.map +1 -1
  212. package/session/inspector/SessionInspector.js +4 -4
  213. package/session/inspector/SessionInspector.js.map +1 -1
  214. package/session/inspector/index.d.ts +0 -2
  215. package/session/inspector/index.d.ts.map +1 -1
  216. package/session/inspector/index.js +0 -1
  217. package/session/inspector/index.js.map +1 -1
  218. package/session/inspector/useSessionInspector.d.ts +8 -4
  219. package/session/inspector/useSessionInspector.d.ts.map +1 -1
  220. package/session/inspector/useSessionInspector.js +27 -20
  221. package/session/inspector/useSessionInspector.js.map +1 -1
  222. package/session/useSessionConversation.d.ts +37 -3
  223. package/session/useSessionConversation.d.ts.map +1 -1
  224. package/session/useSessionConversation.js +18 -2
  225. package/session/useSessionConversation.js.map +1 -1
  226. package/session/useSessionFileChanges.d.ts +74 -0
  227. package/session/useSessionFileChanges.d.ts.map +1 -0
  228. package/session/useSessionFileChanges.js +178 -0
  229. package/session/useSessionFileChanges.js.map +1 -0
  230. package/src/__tests__/styles-border-layer-invariant.test.ts +105 -0
  231. package/src/execution/ApprovalCard.tsx +368 -230
  232. package/src/execution/ApprovalContext.ts +109 -0
  233. package/src/execution/ArtifactCard.tsx +10 -6
  234. package/src/execution/ArtifactPreviewModal.tsx +12 -6
  235. package/src/execution/EmptyChangeNotice.tsx +62 -0
  236. package/src/execution/FileChangesView.tsx +383 -0
  237. package/src/execution/FilePathLink.tsx +65 -12
  238. package/src/execution/FileReviewCard.tsx +1118 -0
  239. package/src/execution/FileReviewContext.ts +53 -0
  240. package/src/execution/FileReviewDock.tsx +157 -0
  241. package/src/execution/McpToolDetail.tsx +98 -32
  242. package/src/execution/MessageThread.tsx +374 -9
  243. package/src/execution/PlanArtifactCard.tsx +9 -6
  244. package/src/execution/PlanCompletionCard.tsx +1 -1
  245. package/src/execution/ResultView.tsx +333 -162
  246. package/src/execution/SubAgentSection.tsx +58 -11
  247. package/src/execution/TerminalSession.tsx +91 -0
  248. package/src/execution/TodoCard.tsx +186 -0
  249. package/src/execution/ToolArgsView.tsx +28 -17
  250. package/src/execution/ToolCallDetail.tsx +137 -26
  251. package/src/execution/ToolCallGroup.tsx +68 -296
  252. package/src/execution/ToolCallItem.tsx +265 -67
  253. package/src/execution/ToolRunGroup.tsx +302 -0
  254. package/src/execution/__tests__/ApprovalCard.test.tsx +395 -5
  255. package/src/execution/__tests__/ArtifactPreviewModal.test.tsx +0 -1
  256. package/src/execution/__tests__/EmptyChangeNotice.test.tsx +24 -0
  257. package/src/execution/__tests__/FileChangesView.test.tsx +296 -0
  258. package/src/execution/__tests__/FilePathLink.test.tsx +92 -0
  259. package/src/execution/__tests__/FileReviewCard.test.tsx +1044 -0
  260. package/src/execution/__tests__/FileReviewDock.test.tsx +134 -0
  261. package/src/execution/__tests__/McpToolDetail.test.tsx +79 -0
  262. package/src/execution/__tests__/MessageThread.test.tsx +324 -0
  263. package/src/execution/__tests__/PlanArtifactCard.test.tsx +37 -16
  264. package/src/execution/__tests__/ResultView.test.tsx +280 -2
  265. package/src/execution/__tests__/SubAgentSection.test.tsx +180 -0
  266. package/src/execution/__tests__/TerminalSession.test.tsx +72 -0
  267. package/src/execution/__tests__/TodoCard.test.tsx +102 -0
  268. package/src/execution/__tests__/ToolArgsView.test.tsx +48 -0
  269. package/src/execution/__tests__/ToolCallDetail.test.tsx +195 -0
  270. package/src/execution/__tests__/ToolCallGroup.test.tsx +132 -0
  271. package/src/execution/__tests__/ToolCallItem.test.tsx +521 -0
  272. package/src/execution/__tests__/ToolRunGroup.test.tsx +137 -0
  273. package/src/execution/__tests__/blanked-narration.test.tsx +149 -0
  274. package/src/execution/__tests__/buildThreadItems-approvals.test.ts +304 -0
  275. package/src/execution/__tests__/buildThreadItems-file-review.test.ts +331 -0
  276. package/src/execution/__tests__/file-path-resolver.test.ts +44 -0
  277. package/src/execution/__tests__/file-review-status.test.ts +343 -0
  278. package/src/execution/__tests__/segment-tool-calls.test.ts +124 -0
  279. package/src/execution/__tests__/subagent-file-review-badge.test.tsx +273 -0
  280. package/src/execution/__tests__/thread-keys.test.ts +195 -0
  281. package/src/execution/__tests__/tool-presenter.test.tsx +95 -0
  282. package/src/execution/__tests__/useArtifactDownload.test.tsx +67 -0
  283. package/src/execution/__tests__/useArtifactDownloadUrl.test.tsx +51 -0
  284. package/src/execution/__tests__/useFileChangeContent.test.tsx +240 -0
  285. package/src/execution/__tests__/useFileReview.test.tsx +236 -0
  286. package/src/execution/__tests__/useSubmitApproval.test.tsx +165 -0
  287. package/src/execution/__tests__/useToolOutputContent.test.tsx +82 -0
  288. package/src/execution/approval-provenance.ts +8 -0
  289. package/src/execution/artifact-utils.ts +0 -18
  290. package/src/execution/execution-phases.ts +4 -16
  291. package/src/execution/file-path-resolver.ts +38 -0
  292. package/src/execution/file-review-status.ts +219 -0
  293. package/src/execution/index.ts +84 -4
  294. package/src/execution/segment-tool-calls.ts +101 -0
  295. package/src/execution/tool-categories.ts +128 -1
  296. package/src/execution/tool-presenter.ts +58 -3
  297. package/src/execution/tool-rendering-primitives.tsx +11 -14
  298. package/src/execution/useArtifactDownload.ts +109 -0
  299. package/src/execution/useArtifactDownloadUrl.ts +116 -0
  300. package/src/execution/useFileChangeContent.ts +149 -0
  301. package/src/execution/useFileReview.ts +197 -0
  302. package/src/execution/useSubmitApproval.ts +49 -27
  303. package/src/execution/useToolOutputContent.ts +70 -0
  304. package/src/index.ts +60 -1
  305. package/src/internal/ApprovalPeekBar.tsx +73 -0
  306. package/src/internal/BoundedContent.tsx +97 -0
  307. package/src/internal/DecisionButton.tsx +127 -0
  308. package/src/internal/InCardDecisionError.tsx +47 -0
  309. package/src/internal/RevealToggle.tsx +91 -0
  310. package/src/internal/VirtualizedThread.tsx +28 -2
  311. package/src/internal/__tests__/ApprovalPeekBar.test.tsx +34 -0
  312. package/src/internal/__tests__/BoundedContent.test.tsx +92 -0
  313. package/src/internal/__tests__/DecisionButton.test.tsx +107 -0
  314. package/src/internal/__tests__/RevealToggle.test.tsx +61 -0
  315. package/src/internal/__tests__/useAutoDisclosure.test.ts +74 -0
  316. package/src/internal/__tests__/useElapsedSince.test.tsx +68 -0
  317. package/src/internal/__tests__/useIsOverflowing.test.ts +36 -0
  318. package/src/internal/__tests__/useKeyedSubmission.test.tsx +126 -0
  319. package/src/internal/useAutoDisclosure.ts +58 -0
  320. package/src/internal/useElapsedSince.ts +72 -0
  321. package/src/internal/useIsOverflowing.ts +61 -0
  322. package/src/internal/useIsTextTruncated.ts +55 -0
  323. package/src/internal/useKeyedSubmission.ts +101 -0
  324. package/src/session/SessionViewer.tsx +21 -4
  325. package/src/session/__tests__/SessionViewer-fileReviewDock.test.tsx +198 -0
  326. package/src/session/__tests__/audienceWiring.test.tsx +4 -0
  327. package/src/session/__tests__/useSessionFileChanges.test.ts +303 -0
  328. package/src/session/index.ts +3 -0
  329. package/src/session/inspector/ChangesTab.tsx +20 -17
  330. package/src/session/inspector/SessionInspector.tsx +12 -10
  331. package/src/session/inspector/__tests__/ArtifactsTab.test.tsx +0 -1
  332. package/src/session/inspector/__tests__/ChangesTab.test.tsx +38 -0
  333. package/src/session/inspector/__tests__/useSessionInspector.test.ts +46 -61
  334. package/src/session/inspector/index.ts +0 -3
  335. package/src/session/inspector/useSessionInspector.ts +27 -20
  336. package/src/session/useSessionConversation.ts +80 -3
  337. package/src/session/useSessionFileChanges.ts +207 -0
  338. package/src/styles.css +35 -10
  339. package/src/version-history/DiffViewer.tsx +10 -7
  340. package/src/version-history/UnifiedDiffView.tsx +66 -0
  341. package/src/version-history/__tests__/DiffViewer.test.tsx +57 -0
  342. package/src/version-history/__tests__/UnifiedDiffView.test.tsx +50 -0
  343. package/src/version-history/__tests__/computeDiff.test.ts +35 -0
  344. package/src/version-history/__tests__/parseUnifiedDiff.test.ts +82 -0
  345. package/src/version-history/computeDiff.ts +6 -37
  346. package/src/version-history/diff-hunks.ts +63 -0
  347. package/src/version-history/index.ts +1 -0
  348. package/src/version-history/parseUnifiedDiff.ts +34 -0
  349. package/src/workflow/WorkflowExecutionApprovalCard.tsx +49 -24
  350. package/src/workflow/WorkflowExecutionTimeline.tsx +15 -4
  351. package/src/workflow/WorkflowExecutionTimelineEvent.tsx +8 -3
  352. package/src/workflow/WorkflowExecutionViewer.tsx +72 -28
  353. package/src/workflow/WorkflowFileReviewList.tsx +152 -0
  354. package/src/workflow/WorkflowTaskApprovalCard.tsx +37 -85
  355. package/src/workflow/__tests__/ExecutionInspector.test.tsx +30 -2
  356. package/src/workflow/__tests__/WorkflowExecutionApprovalCard.test.tsx +129 -0
  357. package/src/workflow/__tests__/WorkflowFileReviewList.test.tsx +129 -0
  358. package/src/workflow/__tests__/WorkflowTaskApprovalCard.test.tsx +43 -11
  359. package/src/workflow/__tests__/useWorkflowExecutionActions.test.tsx +276 -0
  360. package/src/workflow/execution-inspector/ExecutionInspector.tsx +42 -18
  361. package/src/workflow/index.ts +5 -0
  362. package/src/workflow/useWorkflowExecutionActions.ts +177 -29
  363. package/styles.css +1 -1
  364. package/version-history/DiffViewer.d.ts.map +1 -1
  365. package/version-history/DiffViewer.js +9 -3
  366. package/version-history/DiffViewer.js.map +1 -1
  367. package/version-history/UnifiedDiffView.d.ts +29 -0
  368. package/version-history/UnifiedDiffView.d.ts.map +1 -0
  369. package/version-history/UnifiedDiffView.js +36 -0
  370. package/version-history/UnifiedDiffView.js.map +1 -0
  371. package/version-history/computeDiff.d.ts +3 -1
  372. package/version-history/computeDiff.d.ts.map +1 -1
  373. package/version-history/computeDiff.js +5 -35
  374. package/version-history/computeDiff.js.map +1 -1
  375. package/version-history/diff-hunks.d.ts +21 -0
  376. package/version-history/diff-hunks.d.ts.map +1 -0
  377. package/version-history/diff-hunks.js +58 -0
  378. package/version-history/diff-hunks.js.map +1 -0
  379. package/version-history/index.d.ts +1 -0
  380. package/version-history/index.d.ts.map +1 -1
  381. package/version-history/index.js +1 -0
  382. package/version-history/index.js.map +1 -1
  383. package/version-history/parseUnifiedDiff.d.ts +22 -0
  384. package/version-history/parseUnifiedDiff.d.ts.map +1 -0
  385. package/version-history/parseUnifiedDiff.js +34 -0
  386. package/version-history/parseUnifiedDiff.js.map +1 -0
  387. package/workflow/WorkflowExecutionApprovalCard.d.ts +8 -1
  388. package/workflow/WorkflowExecutionApprovalCard.d.ts.map +1 -1
  389. package/workflow/WorkflowExecutionApprovalCard.js +17 -3
  390. package/workflow/WorkflowExecutionApprovalCard.js.map +1 -1
  391. package/workflow/WorkflowExecutionTimeline.d.ts +11 -2
  392. package/workflow/WorkflowExecutionTimeline.d.ts.map +1 -1
  393. package/workflow/WorkflowExecutionTimeline.js +2 -2
  394. package/workflow/WorkflowExecutionTimeline.js.map +1 -1
  395. package/workflow/WorkflowExecutionTimelineEvent.d.ts +4 -1
  396. package/workflow/WorkflowExecutionTimelineEvent.d.ts.map +1 -1
  397. package/workflow/WorkflowExecutionTimelineEvent.js +2 -2
  398. package/workflow/WorkflowExecutionTimelineEvent.js.map +1 -1
  399. package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
  400. package/workflow/WorkflowExecutionViewer.js +18 -10
  401. package/workflow/WorkflowExecutionViewer.js.map +1 -1
  402. package/workflow/WorkflowFileReviewList.d.ts +46 -0
  403. package/workflow/WorkflowFileReviewList.d.ts.map +1 -0
  404. package/workflow/WorkflowFileReviewList.js +48 -0
  405. package/workflow/WorkflowFileReviewList.js.map +1 -0
  406. package/workflow/WorkflowTaskApprovalCard.d.ts +8 -1
  407. package/workflow/WorkflowTaskApprovalCard.d.ts.map +1 -1
  408. package/workflow/WorkflowTaskApprovalCard.js +12 -19
  409. package/workflow/WorkflowTaskApprovalCard.js.map +1 -1
  410. package/workflow/execution-inspector/ExecutionInspector.d.ts +21 -4
  411. package/workflow/execution-inspector/ExecutionInspector.d.ts.map +1 -1
  412. package/workflow/execution-inspector/ExecutionInspector.js +6 -3
  413. package/workflow/execution-inspector/ExecutionInspector.js.map +1 -1
  414. package/workflow/index.d.ts +1 -0
  415. package/workflow/index.d.ts.map +1 -1
  416. package/workflow/index.js +1 -0
  417. package/workflow/index.js.map +1 -1
  418. package/workflow/useWorkflowExecutionActions.d.ts +62 -4
  419. package/workflow/useWorkflowExecutionActions.d.ts.map +1 -1
  420. package/workflow/useWorkflowExecutionActions.js +94 -18
  421. package/workflow/useWorkflowExecutionActions.js.map +1 -1
  422. package/session/inspector/PlanTab.d.ts +0 -15
  423. package/session/inspector/PlanTab.d.ts.map +0 -1
  424. package/session/inspector/PlanTab.js +0 -19
  425. package/session/inspector/PlanTab.js.map +0 -1
  426. package/src/session/inspector/PlanTab.tsx +0 -31
@@ -3,7 +3,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { lazy, memo, Suspense, useCallback, useMemo, useState } from "react";
4
4
  import { create } from "@bufbuild/protobuf";
5
5
  import { AgentMessageSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
6
- import { ExecutionPhase, InteractionMode, MessageType, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
6
+ import { ExecutionPhase, FileChangeSetStatus, InteractionMode, MessageType, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
7
+ import { displayFileChangeSets } from "@stigmer/sdk";
7
8
  import { cn } from "@stigmer/theme";
8
9
  import { isTerminalPhase } from "./execution-phases";
9
10
  import { MessageEntry } from "./MessageEntry";
@@ -12,20 +13,29 @@ import { SubAgentSection } from "./SubAgentSection";
12
13
  import { ExecutionPhaseBadge } from "./ExecutionPhaseBadge";
13
14
  import { SetupProgress } from "./SetupProgress";
14
15
  import { ApprovalCard } from "./ApprovalCard";
16
+ import { FileReviewCard } from "./FileReviewCard";
15
17
  import { SummarizationCard } from "./SummarizationCard";
16
18
  import { PlanCompletionCard } from "./PlanCompletionCard";
17
19
  import { PlanArtifactCard } from "./PlanArtifactCard";
20
+ import { TodoCard } from "./TodoCard";
18
21
  import { findPlanArtifact } from "../library/detect-plan-artifact";
19
- import { isInternalTool } from "./tool-categories";
22
+ import { isInternalTool, isCollapsedToolCall } from "./tool-categories";
20
23
  import { FilePathContext } from "./FilePathContext";
21
24
  import { SandboxContext } from "./SandboxContext";
25
+ import { ApprovalContext } from "./ApprovalContext";
26
+ import { FileReviewContext } from "./FileReviewContext";
22
27
  import { useRenderTracer, useKeyStability, useDomNodeCount, DevProfiler } from "../internal/dev";
23
28
  import { useAutoScroll } from "../internal/useAutoScroll";
24
29
  import { JumpToLatestButton } from "../internal/JumpToLatestButton";
30
+ import { ApprovalPeekBar } from "../internal/ApprovalPeekBar";
25
31
  import { ThreadItemWrapper } from "../internal/ThreadItemWrapper";
26
32
  const LazyVirtualizedThread = lazy(() => import("../internal/VirtualizedThread").then((m) => ({
27
33
  default: m.VirtualizedThread,
28
34
  })));
35
+ /** Stable empty collections so an approval-free thread keeps referential identity. */
36
+ const EMPTY_APPROVALS = [];
37
+ const EMPTY_SUBMITTING_IDS = new Set();
38
+ const EMPTY_APPROVAL_ERRORS = new Map();
29
39
  /**
30
40
  * True once the agent has produced any real, renderable response for this turn —
31
41
  * assistant text, a tool call (running or terminal), or streamed model thinking.
@@ -53,6 +63,81 @@ function hasStartedResponding(execution) {
53
63
  return false;
54
64
  });
55
65
  }
66
+ /**
67
+ * Adds the tool-call ids that a sub-agent renders as nested rows (the same
68
+ * non-internal AI tool calls {@link SubAgentSection} surfaces) to `target`,
69
+ * so their approvals are treated as inline and skip the bottom backstop.
70
+ */
71
+ function collectSubAgentInlineToolCallIds(sub, target) {
72
+ for (const msg of sub.messages) {
73
+ if (msg.type !== MessageType.MESSAGE_AI)
74
+ continue;
75
+ for (const tc of msg.toolCalls) {
76
+ if (tc.id && !isInternalTool(tc.name))
77
+ target.add(tc.id);
78
+ }
79
+ }
80
+ }
81
+ /**
82
+ * Records, for each change set referenced by a just-pushed tool-group item, the
83
+ * item's index — later groups overwrite, so the map converges on each set's
84
+ * LAST stamped row. That index is where the set's decision bar anchors: the
85
+ * review surface appears where the turn's editing activity ended, not at the
86
+ * thread tail.
87
+ */
88
+ function recordFileReviewAnchors(toolCalls, itemIndex, anchorIndexBySetId) {
89
+ for (const tc of toolCalls) {
90
+ if (tc.fileChangeSetId)
91
+ anchorIndexBySetId.set(tc.fileChangeSetId, itemIndex);
92
+ }
93
+ }
94
+ /**
95
+ * Inserts one execution's settled file-review records into its own thread
96
+ * segment: each change set's read-only `file-review-record` item is spliced
97
+ * immediately after the set's last stamped tool row
98
+ * ({@link recordFileReviewAnchors}); a set with no stamped row (its changes
99
+ * were made by shell commands, or the rows predate stamping) falls back to the
100
+ * segment's tail — this record is that set's ONLY in-thread trace, so it is
101
+ * never dropped.
102
+ *
103
+ * A *pending* set — AWAITING_REVIEW on a live (non-terminal) execution — is
104
+ * deliberately NOT emitted: its decision surface is the composer-docked
105
+ * `FileReviewDock`, which cannot scroll out of view, and the stamped rows'
106
+ * badges carry the pending state in place. The same set re-enters here as a
107
+ * record the moment it settles (or its execution terminates mid-review — an
108
+ * honest "not reviewed" record). A CAPTURING set (baseline only, no diff yet)
109
+ * has nothing to show and is skipped.
110
+ */
111
+ function insertFileReviewItems(items, changeSets, anchorIndexBySetId, execTerminal) {
112
+ const anchored = [];
113
+ const tail = [];
114
+ for (const changeSet of changeSets) {
115
+ if (changeSet.changes.length === 0)
116
+ continue;
117
+ const pending = !execTerminal && changeSet.status === FileChangeSetStatus.AWAITING_REVIEW;
118
+ if (pending)
119
+ continue;
120
+ const item = {
121
+ kind: "file-review-record",
122
+ fileChangeSet: changeSet,
123
+ key: `file-review-${changeSet.id}`,
124
+ };
125
+ const index = anchorIndexBySetId.get(changeSet.id);
126
+ if (index !== undefined)
127
+ anchored.push({ index, item });
128
+ else
129
+ tail.push(item);
130
+ }
131
+ // Splice in ascending anchor order with a running offset so earlier inserts
132
+ // do not displace later anchors.
133
+ anchored.sort((a, b) => a.index - b.index);
134
+ let offset = 0;
135
+ for (const { index, item } of anchored) {
136
+ items.splice(index + 1 + offset, 0, item);
137
+ offset++;
138
+ }
139
+ items.push(...tail);
140
+ }
56
141
  /**
57
142
  * Builds a flat list of renderable thread items from execution data.
58
143
  *
@@ -61,10 +146,29 @@ function hasStartedResponding(execution) {
61
146
  *
62
147
  * @internal Exported for testing — not part of the public API.
63
148
  */
64
- export function buildThreadItems(executions, activeStreamExecution, pendingUserMessage, includeApprovals, workspaceEntries, summarizationEvents, pendingMessageFailed = false, editableActiveTurn = false) {
149
+ export function buildThreadItems(executions, activeStreamExecution, pendingUserMessage, includeApprovals, workspaceEntries, summarizationEvents, pendingMessageFailed = false, editableActiveTurn = false, includeFileReviewRecords = false) {
65
150
  const items = [];
151
+ // Tool-call ids that render as an inline-approval-capable ToolCallItem (a
152
+ // regular parent tool, or a sub-agent's nested tool). Their approvals show
153
+ // inline on the row, so they are excluded from the bottom backstop below —
154
+ // a task-spawn call (rendered as a SubAgentSection, not a tool row) is NOT
155
+ // collected, so its spawn-gate approval still surfaces at the bottom.
156
+ const inlineToolCallIds = new Set();
157
+ // Dedupe by execution id, with activeStreamExecution authoritative for its own
158
+ // id. The hook passes `completedExecutions` (filtered on activeExecutionId),
159
+ // but that filter and activeStreamExecution (stream.execution ??
160
+ // fetchedActiveExecution) derive from different sources, so a transient skew
161
+ // can leave the active execution in BOTH lists. Concatenating blindly then
162
+ // emits the same execution twice → duplicate React keys → React silently drops
163
+ // one subtree, intermittently the one carrying a live ApprovalCard (the gate
164
+ // buttons vanish). Dropping any prior entry sharing the active id keeps the
165
+ // streamed copy as the single source of truth and the append-at-end invariant
166
+ // (activeStreamIndex === last) intact.
66
167
  const allExecutions = activeStreamExecution
67
- ? [...executions, activeStreamExecution]
168
+ ? [
169
+ ...executions.filter((e) => e.metadata?.id !== activeStreamExecution.metadata?.id),
170
+ activeStreamExecution,
171
+ ]
68
172
  : executions;
69
173
  const activeStreamIndex = activeStreamExecution
70
174
  ? allExecutions.length - 1
@@ -96,6 +200,35 @@ export function buildThreadItems(executions, activeStreamExecution, pendingUserM
96
200
  const isActiveStreamExec = ei === activeStreamIndex;
97
201
  const messages = exec.status?.messages ?? [];
98
202
  const subAgents = exec.status?.subAgentExecutions ?? [];
203
+ // This execution's settled change sets render as read-only records inside
204
+ // its own segment, anchored to the last stamped edit row of each set. The
205
+ // display seam reads the server's live projection when present and folds
206
+ // the durable ledger for a terminal execution (whose projection is nil),
207
+ // so records surface for EVERY execution, not just the last. Pending sets
208
+ // are excluded inside insertFileReviewItems — the composer dock owns them.
209
+ const execChangeSets = includeFileReviewRecords
210
+ ? displayFileChangeSets(exec.status)
211
+ : [];
212
+ const fileReviewAnchors = new Map();
213
+ // The agent's plan renders as one inline card per turn, anchored to the
214
+ // first of: the opening AI/thinking message, the first unit of work
215
+ // (tool-group / sub-agent), or — as a backstop — the turn's tail. We carry
216
+ // the live `status.todos` reference (structural sharing keeps it stable),
217
+ // so the card updates in place and a settled card skips re-renders.
218
+ const execTodos = exec.status?.todos;
219
+ const hasTodos = execTodos != null && Object.keys(execTodos).length > 0;
220
+ let todosEmitted = false;
221
+ function emitTodos() {
222
+ if (todosEmitted || !hasTodos)
223
+ return;
224
+ todosEmitted = true;
225
+ items.push({
226
+ kind: "todos",
227
+ executionId: execId,
228
+ todos: execTodos,
229
+ key: `${execId}-todos`,
230
+ });
231
+ }
99
232
  const specMessage = exec.spec?.message;
100
233
  if (specMessage && specMessage !== "execute") {
101
234
  const syntheticHumanMsg = create(AgentMessageSchema);
@@ -130,14 +263,32 @@ export function buildThreadItems(executions, activeStreamExecution, pendingUserM
130
263
  message: msg,
131
264
  key: `${execId}-m${mi}`,
132
265
  });
266
+ // Anchor (1): the plan sits right under the agent's opening narration.
267
+ if (msg.type === MessageType.MESSAGE_AI ||
268
+ msg.type === MessageType.MESSAGE_THINKING) {
269
+ emitTodos();
270
+ }
133
271
  }
272
+ // Runner-collapsed duplicates (a superseded same-turn denial twin of an
273
+ // approval gate) are not rendered — they are kept in the transcript only to
274
+ // satisfy the backend's append-only guard. Filtering them here keeps a
275
+ // message whose tool calls are ALL collapsed from emitting an empty group.
276
+ // Preserve the original array reference when nothing is collapsed (the
277
+ // common case) so structural sharing / memoization (T04) is not defeated by
278
+ // a fresh array on every build.
279
+ const renderableToolCalls = msg.type === MessageType.MESSAGE_AI && msg.toolCalls.some(isCollapsedToolCall)
280
+ ? msg.toolCalls.filter((tc) => !isCollapsedToolCall(tc))
281
+ : msg.toolCalls;
134
282
  if (msg.type === MessageType.MESSAGE_AI &&
135
- msg.toolCalls.length > 0) {
136
- const needsSplit = msg.toolCalls.some((tc) => tc.name === "task" || isInternalTool(tc.name));
283
+ renderableToolCalls.length > 0) {
284
+ // Anchor (2): if work begins before any rendered narration, the plan
285
+ // still leads it.
286
+ emitTodos();
287
+ const needsSplit = renderableToolCalls.some((tc) => tc.name === "task" || isInternalTool(tc.name));
137
288
  if (needsSplit) {
138
289
  const regularTools = [];
139
290
  const matchedSubAgents = [];
140
- for (const tc of msg.toolCalls) {
291
+ for (const tc of renderableToolCalls) {
141
292
  if (tc.name === "task") {
142
293
  const matched = subAgents.find((sa) => sa.id === tc.id);
143
294
  if (matched)
@@ -154,6 +305,11 @@ export function buildThreadItems(executions, activeStreamExecution, pendingUserM
154
305
  subAgentExecutions: subAgents,
155
306
  key: `${execId}-m${mi}-tc`,
156
307
  });
308
+ recordFileReviewAnchors(regularTools, items.length - 1, fileReviewAnchors);
309
+ for (const tc of regularTools) {
310
+ if (tc.id)
311
+ inlineToolCallIds.add(tc.id);
312
+ }
157
313
  }
158
314
  for (const sa of matchedSubAgents) {
159
315
  items.push({
@@ -161,18 +317,31 @@ export function buildThreadItems(executions, activeStreamExecution, pendingUserM
161
317
  subAgentExecution: sa,
162
318
  key: `sa-${sa.id}`,
163
319
  });
320
+ collectSubAgentInlineToolCallIds(sa, inlineToolCallIds);
164
321
  }
165
322
  }
166
323
  else {
167
324
  items.push({
168
325
  kind: "tool-group",
169
- toolCalls: msg.toolCalls,
326
+ toolCalls: renderableToolCalls,
170
327
  subAgentExecutions: subAgents,
171
328
  key: `${execId}-m${mi}-tc`,
172
329
  });
330
+ recordFileReviewAnchors(renderableToolCalls, items.length - 1, fileReviewAnchors);
331
+ for (const tc of renderableToolCalls) {
332
+ if (tc.id)
333
+ inlineToolCallIds.add(tc.id);
334
+ }
173
335
  }
174
336
  }
175
337
  }
338
+ // Anchor (3): a plan that produced no rendered narration or work item still
339
+ // surfaces — never silently dropped.
340
+ emitTodos();
341
+ // Settled records land inside this execution's segment, at their anchors.
342
+ if (execChangeSets.length > 0) {
343
+ insertFileReviewItems(items, execChangeSets, fileReviewAnchors, isTerminalPhase(exec.status?.phase ?? ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED));
344
+ }
176
345
  }
177
346
  // Flush any remaining summarization events that occurred after all messages
178
347
  while (eventCursor < pendingEvents.length) {
@@ -240,9 +409,17 @@ export function buildThreadItems(executions, activeStreamExecution, pendingUserM
240
409
  });
241
410
  }
242
411
  if (includeApprovals) {
412
+ // Backstop only: an approval whose tool call renders inline shows its gate
413
+ // on that row (see ApprovalContext / ToolCallItem). We emit a bottom card
414
+ // ONLY for an approval with no inline home — a true orphan, or a task-spawn
415
+ // approval that precedes its SubAgentExecution — so a pending gate is never
416
+ // invisible, and never duplicated.
243
417
  const allApprovals = lastExec?.status?.pendingApprovals ?? [];
244
418
  for (let ai = 0; ai < allApprovals.length; ai++) {
245
419
  const approval = allApprovals[ai];
420
+ if (approval.toolCallId && inlineToolCallIds.has(approval.toolCallId)) {
421
+ continue;
422
+ }
246
423
  items.push({
247
424
  kind: "approval-request",
248
425
  pendingApproval: approval,
@@ -250,6 +427,10 @@ export function buildThreadItems(executions, activeStreamExecution, pendingUserM
250
427
  });
251
428
  }
252
429
  }
430
+ // File-review records are emitted inside each execution's segment (see
431
+ // insertFileReviewItems in the loop above) — anchored to the last stamped
432
+ // edit row, never appended at the thread tail. Pending decision bars are
433
+ // not thread items at all: they live in the composer-docked FileReviewDock.
253
434
  if (pendingUserMessage) {
254
435
  const alreadySynthesized = lastExec?.spec?.message === pendingUserMessage;
255
436
  if (!alreadySynthesized) {
@@ -292,26 +473,70 @@ export function buildThreadItems(executions, activeStreamExecution, pendingUserM
292
473
  * />
293
474
  * ```
294
475
  */
295
- export function MessageThread({ executions, activeStreamExecution, pendingUserMessage, pendingMessageFailed = false, onRetrySend, onRetryExecution, onEditMessage, className, formatToolCallSummary, onApprovalSubmit, submittingApprovalIds, workspaceEntries, onFilePathClick, sandboxWorkspaceRoot, summarizationEvents, virtualized = false, onBuildFromPlan, org, planActionsDisabled, centerContent = false, }) {
476
+ export function MessageThread({ executions, activeStreamExecution, pendingUserMessage, pendingMessageFailed = false, onRetrySend, onRetryExecution, onEditMessage, className, formatToolCallSummary, onApprovalSubmit, submittingApprovalIds, approvalErrors, showFileReviewRecords = false, workspaceEntries, onFilePathClick, sandboxWorkspaceRoot, summarizationEvents, virtualized = false, onBuildFromPlan, org, planActionsDisabled, centerContent = false, }) {
296
477
  useRenderTracer("MessageThread", { executions, activeStreamExecution });
297
478
  const includeApprovals = onApprovalSubmit != null;
298
479
  const editableActiveTurn = onEditMessage != null;
299
- const items = useMemo(() => buildThreadItems(executions, activeStreamExecution, pendingUserMessage, includeApprovals, workspaceEntries, summarizationEvents, pendingMessageFailed, editableActiveTurn), [executions, activeStreamExecution, pendingUserMessage, includeApprovals, workspaceEntries, summarizationEvents, pendingMessageFailed, editableActiveTurn]);
480
+ const items = useMemo(() => buildThreadItems(executions, activeStreamExecution, pendingUserMessage, includeApprovals, workspaceEntries, summarizationEvents, pendingMessageFailed, editableActiveTurn, showFileReviewRecords), [executions, activeStreamExecution, pendingUserMessage, includeApprovals, workspaceEntries, summarizationEvents, pendingMessageFailed, editableActiveTurn, showFileReviewRecords]);
300
481
  useKeyStability(items);
301
482
  const filePathCtx = useMemo(() => ({
302
483
  workspaceEntries: workspaceEntries ?? [],
303
484
  onFilePathClick,
304
485
  }), [workspaceEntries, onFilePathClick]);
305
486
  const sandboxCtx = useMemo(() => ({ sandboxWorkspaceRoot: sandboxWorkspaceRoot ?? "" }), [sandboxWorkspaceRoot]);
487
+ // Pending approvals live on the latest execution. We project them into a
488
+ // tool-call-id-keyed map so each gated tool row can render its own approval
489
+ // inline (see ApprovalContext); buildThreadItems still emits a bottom card
490
+ // for any approval with no matching inline row (orphan backstop).
491
+ const lastExec = activeStreamExecution ?? executions[executions.length - 1];
492
+ const pendingApprovals = includeApprovals
493
+ ? lastExec?.status?.pendingApprovals ?? EMPTY_APPROVALS
494
+ : EMPTY_APPROVALS;
495
+ const approvalsByToolCallId = useMemo(() => {
496
+ const map = new Map();
497
+ for (const approval of pendingApprovals) {
498
+ if (approval.toolCallId)
499
+ map.set(approval.toolCallId, approval);
500
+ }
501
+ return map;
502
+ }, [pendingApprovals]);
503
+ const approvalCtx = useMemo(() => ({
504
+ approvalsByToolCallId,
505
+ onSubmit: onApprovalSubmit,
506
+ submittingIds: submittingApprovalIds ?? EMPTY_SUBMITTING_IDS,
507
+ errorsByToolCallId: approvalErrors ?? EMPTY_APPROVAL_ERRORS,
508
+ }), [approvalsByToolCallId, onApprovalSubmit, submittingApprovalIds, approvalErrors]);
509
+ // Every displayable change set across the session, keyed by id, so a stamped
510
+ // edit row (ToolCall.file_change_set_id) can badge its set's live review
511
+ // state wherever it renders (parent thread or nested groups). The map is
512
+ // rebuilt only when the execution list reference changes; structural sharing
513
+ // keeps each FileChangeSet reference stable across streaming frames, so
514
+ // subscribing rows re-render on review events, not every snapshot.
515
+ const fileReviewCtx = useMemo(() => {
516
+ const map = new Map();
517
+ const all = activeStreamExecution
518
+ ? [...executions, activeStreamExecution]
519
+ : executions;
520
+ for (const exec of all) {
521
+ for (const changeSet of displayFileChangeSets(exec.status)) {
522
+ // Later wins: the active stream's copy supersedes a stale fetched one.
523
+ map.set(changeSet.id, changeSet);
524
+ }
525
+ }
526
+ return { changeSetsById: map };
527
+ }, [executions, activeStreamExecution]);
528
+ // Drives the global "approval needed" peek affordance — a count, not the
529
+ // cards, so the bar reuses the existing scroll machine without a new observer.
530
+ const unresolvedApprovalCount = pendingApprovals.length;
306
531
  if (virtualized) {
307
- return (_jsx("div", { className: cn("relative min-h-0", className), children: _jsx(Suspense, { fallback: null, children: _jsx(LazyVirtualizedThread, { items: items, formatToolCallSummary: formatToolCallSummary, onApprovalSubmit: onApprovalSubmit, submittingApprovalIds: submittingApprovalIds, filePathCtx: filePathCtx, sandboxCtx: sandboxCtx, onBuildFromPlan: onBuildFromPlan, org: org, planActionsDisabled: planActionsDisabled, centerContent: centerContent, onRetrySend: onRetrySend, onRetryExecution: onRetryExecution, onEditMessage: onEditMessage }) }) }));
532
+ return (_jsx("div", { className: cn("relative min-h-0", className), children: _jsx(Suspense, { fallback: null, children: _jsx(LazyVirtualizedThread, { items: items, formatToolCallSummary: formatToolCallSummary, onApprovalSubmit: onApprovalSubmit, submittingApprovalIds: submittingApprovalIds, approvalErrors: approvalErrors, filePathCtx: filePathCtx, sandboxCtx: sandboxCtx, approvalCtx: approvalCtx, fileReviewCtx: fileReviewCtx, unresolvedApprovalCount: unresolvedApprovalCount, onBuildFromPlan: onBuildFromPlan, org: org, planActionsDisabled: planActionsDisabled, centerContent: centerContent, onRetrySend: onRetrySend, onRetryExecution: onRetryExecution, onEditMessage: onEditMessage }) }) }));
308
533
  }
309
- return (_jsx(NonVirtualizedThread, { items: items, className: className, centerContent: centerContent, formatToolCallSummary: formatToolCallSummary, onApprovalSubmit: onApprovalSubmit, submittingApprovalIds: submittingApprovalIds, filePathCtx: filePathCtx, sandboxCtx: sandboxCtx, onBuildFromPlan: onBuildFromPlan, org: org, planActionsDisabled: planActionsDisabled, onRetrySend: onRetrySend, onRetryExecution: onRetryExecution, onEditMessage: onEditMessage }));
534
+ return (_jsx(NonVirtualizedThread, { items: items, className: className, centerContent: centerContent, formatToolCallSummary: formatToolCallSummary, onApprovalSubmit: onApprovalSubmit, submittingApprovalIds: submittingApprovalIds, approvalErrors: approvalErrors, filePathCtx: filePathCtx, sandboxCtx: sandboxCtx, approvalCtx: approvalCtx, fileReviewCtx: fileReviewCtx, unresolvedApprovalCount: unresolvedApprovalCount, onBuildFromPlan: onBuildFromPlan, org: org, planActionsDisabled: planActionsDisabled, onRetrySend: onRetrySend, onRetryExecution: onRetryExecution, onEditMessage: onEditMessage }));
310
535
  }
311
- function NonVirtualizedThread({ items, className, centerContent, formatToolCallSummary, onApprovalSubmit, submittingApprovalIds, filePathCtx, sandboxCtx, onBuildFromPlan, org, planActionsDisabled, onRetrySend, onRetryExecution, onEditMessage, }) {
536
+ function NonVirtualizedThread({ items, className, centerContent, formatToolCallSummary, onApprovalSubmit, submittingApprovalIds, approvalErrors, filePathCtx, sandboxCtx, approvalCtx, fileReviewCtx, unresolvedApprovalCount, onBuildFromPlan, org, planActionsDisabled, onRetrySend, onRetryExecution, onEditMessage, }) {
312
537
  const { scrollRef, sentinelRef, contentRef, isFollowing, jumpToLatest } = useAutoScroll();
313
538
  useDomNodeCount(scrollRef, "MessageThread");
314
- return (_jsxs("div", { className: cn("relative min-h-0", className), children: [_jsxs("div", { ref: scrollRef, role: "log", "aria-live": "polite", "aria-relevant": "additions", className: cn("h-full overflow-y-auto pt-6 pb-4 [overflow-anchor:none]", "[scrollbar-width:thin] [scrollbar-color:var(--color-border)_transparent]", "[&::-webkit-scrollbar]:w-1.5", "[&::-webkit-scrollbar-track]:bg-transparent", "[&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-border/40"), children: [_jsx(SandboxContext.Provider, { value: sandboxCtx, children: _jsx(FilePathContext.Provider, { value: filePathCtx, children: _jsx(DevProfiler, { id: "MessageThread", children: _jsx("div", { ref: contentRef, className: cn("flex flex-col gap-4", centerContent && "mx-auto w-full max-w-3xl px-4"), children: items.map((item) => (_jsx(ThreadItemWrapper, { animate: true, children: _jsx(ThreadItemRenderer, { item: item, formatToolCallSummary: formatToolCallSummary, onApprovalSubmit: onApprovalSubmit, submittingApprovalIds: submittingApprovalIds, onBuildFromPlan: onBuildFromPlan, org: org, planActionsDisabled: planActionsDisabled, onRetrySend: onRetrySend, onRetryExecution: onRetryExecution, onEditMessage: onEditMessage }) }, item.key))) }) }) }) }), _jsx("div", { ref: sentinelRef, "aria-hidden": "true" })] }), _jsx(JumpToLatestButton, { onClick: jumpToLatest, visible: !isFollowing })] }));
539
+ return (_jsxs("div", { className: cn("relative min-h-0", className), children: [_jsxs("div", { ref: scrollRef, role: "log", "aria-live": "polite", "aria-relevant": "additions", className: cn("h-full overflow-y-auto pt-6 pb-4 [overflow-anchor:none]", "[scrollbar-width:thin] [scrollbar-color:var(--color-border)_transparent]", "[&::-webkit-scrollbar]:w-1.5", "[&::-webkit-scrollbar-track]:bg-transparent", "[&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-border/40"), children: [_jsx(SandboxContext.Provider, { value: sandboxCtx, children: _jsx(FilePathContext.Provider, { value: filePathCtx, children: _jsx(ApprovalContext.Provider, { value: approvalCtx, children: _jsx(FileReviewContext.Provider, { value: fileReviewCtx, children: _jsx(DevProfiler, { id: "MessageThread", children: _jsx("div", { ref: contentRef, className: cn("flex flex-col gap-4", centerContent && "mx-auto w-full max-w-3xl px-4"), children: items.map((item) => (_jsx(ThreadItemWrapper, { animate: true, children: _jsx(ThreadItemRenderer, { item: item, formatToolCallSummary: formatToolCallSummary, onApprovalSubmit: onApprovalSubmit, submittingApprovalIds: submittingApprovalIds, approvalErrors: approvalErrors, onBuildFromPlan: onBuildFromPlan, org: org, planActionsDisabled: planActionsDisabled, onRetrySend: onRetrySend, onRetryExecution: onRetryExecution, onEditMessage: onEditMessage }) }, item.key))) }) }) }) }) }) }), _jsx("div", { ref: sentinelRef, "aria-hidden": "true" })] }), _jsx(JumpToLatestButton, { onClick: jumpToLatest, visible: !isFollowing && unresolvedApprovalCount === 0 }), _jsx(ApprovalPeekBar, { visible: !isFollowing && unresolvedApprovalCount > 0, count: unresolvedApprovalCount, onClick: jumpToLatest })] }));
315
540
  }
316
541
  /**
317
542
  * Renders a single thread item by discriminated `kind`. Used by both
@@ -324,7 +549,7 @@ function NonVirtualizedThread({ items, className, centerContent, formatToolCallS
324
549
  * @internal Exported for internal use by `VirtualizedThread` — not
325
550
  * part of the public API.
326
551
  */
327
- export function ThreadItemRenderer({ item, formatToolCallSummary, onApprovalSubmit, submittingApprovalIds, onBuildFromPlan, org, planActionsDisabled, onRetrySend, onRetryExecution, onEditMessage, }) {
552
+ export function ThreadItemRenderer({ item, formatToolCallSummary, onApprovalSubmit, submittingApprovalIds, approvalErrors, onBuildFromPlan, org, planActionsDisabled, onRetrySend, onRetryExecution, onEditMessage, }) {
328
553
  switch (item.kind) {
329
554
  case "message":
330
555
  if (item.isFailed) {
@@ -342,11 +567,15 @@ export function ThreadItemRenderer({ item, formatToolCallSummary, onApprovalSubm
342
567
  case "execution-error":
343
568
  return (_jsx(ExecutionErrorNotice, { error: item.error, retryMessage: item.retryMessage, onRetry: onRetryExecution }));
344
569
  case "approval-request":
345
- return (_jsx(ApprovalCardRow, { pendingApproval: item.pendingApproval, onApprovalSubmit: onApprovalSubmit, isSubmitting: submittingApprovalIds?.has(item.pendingApproval.toolCallId) ?? false }));
570
+ return (_jsx(ApprovalCardRow, { pendingApproval: item.pendingApproval, onApprovalSubmit: onApprovalSubmit, isSubmitting: submittingApprovalIds?.has(item.pendingApproval.toolCallId) ?? false, error: approvalErrors?.get(item.pendingApproval.toolCallId) ?? null }));
571
+ case "file-review-record":
572
+ return _jsx(FileReviewRecordRow, { fileChangeSet: item.fileChangeSet });
346
573
  case "setup-progress":
347
574
  return (_jsx(SetupProgress, { workspaceEntries: item.workspaceEntries, serverPhase: item.serverPhase, isAwaitingResponse: item.isAwaitingResponse }));
348
575
  case "context-compacted":
349
576
  return _jsx(SummarizationCard, { event: item.event });
577
+ case "todos":
578
+ return _jsx(TodoCard, { todos: item.todos, className: "mx-4" });
350
579
  case "plan-completion":
351
580
  // When the plan was published as an artifact, show the richer reviewable
352
581
  // card (preview / copy / download / implement). Otherwise fall back to the
@@ -398,10 +627,26 @@ function ExecutionErrorNotice({ error, retryMessage, onRetry, }) {
398
627
  const interrupted = isInterruptedError(error);
399
628
  return (_jsxs("div", { role: interrupted ? "status" : "alert", className: cn("mx-4 flex flex-col gap-1.5 rounded-md px-3 py-2", interrupted ? "bg-muted" : "bg-destructive-subtle"), children: [_jsx("p", { className: cn("text-xs whitespace-pre-wrap break-words", interrupted ? "text-foreground" : "text-destructive", !expanded && "line-clamp-3"), children: error }), _jsxs("div", { className: "flex items-center gap-3 text-xs", children: [_jsx("button", { type: "button", onClick: () => setExpanded((v) => !v), className: "font-medium text-muted-foreground underline-offset-2 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: expanded ? "Show less" : "Show more" }), canRetry && (_jsx("button", { type: "button", onClick: () => onRetry(retryMessage), className: "font-medium text-foreground underline-offset-2 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: interrupted ? "Resume" : "Retry" }))] })] }));
400
629
  }
401
- const ApprovalCardRow = memo(function ApprovalCardRow({ pendingApproval, onApprovalSubmit, isSubmitting, }) {
630
+ const ApprovalCardRow = memo(function ApprovalCardRow({ pendingApproval, onApprovalSubmit, isSubmitting, error = null, }) {
402
631
  const handleSubmit = useCallback((action, comment) => {
403
632
  onApprovalSubmit(pendingApproval.toolCallId, action, comment);
404
633
  }, [onApprovalSubmit, pendingApproval.toolCallId]);
405
- return (_jsx(ApprovalCard, { pendingApproval: pendingApproval, onSubmit: handleSubmit, isSubmitting: isSubmitting, className: "mx-4" }));
634
+ return (_jsx(ApprovalCard, { pendingApproval: pendingApproval, onSubmit: handleSubmit, isSubmitting: isSubmitting, error: error, className: "mx-4" }));
635
+ });
636
+ // ---------------------------------------------------------------------------
637
+ // FileReviewRecordRow — a settled change set's read-only in-thread record
638
+ // ---------------------------------------------------------------------------
639
+ /**
640
+ * Renders a settled change set as a read-only record at its position in the
641
+ * transcript — what changed and how it was decided ("2 kept · 1 discarded").
642
+ * Never interactive: the pending decision surface is the composer-docked
643
+ * `FileReviewDock`, not a thread item (see {@link insertFileReviewItems}).
644
+ */
645
+ const FileReviewRecordRow = memo(function FileReviewRecordRow({ fileChangeSet, }) {
646
+ return (_jsx(FileReviewCard, { fileChangeSet: fileChangeSet, interactive: false,
647
+ // The thread's stamped edit rows already show every diff in place, so
648
+ // the record renders its compact file-list body — the history never
649
+ // duplicates the transcript's diffs.
650
+ showDiffs: false, className: "mx-4" }));
406
651
  });
407
652
  //# sourceMappingURL=MessageThread.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageThread.js","sourceRoot":"","sources":["../../src/execution/MessageThread.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAIrG,OAAO,EAEL,cAAc,EACd,eAAe,EACf,WAAW,GACZ,MAAM,8DAA8D,CAAC;AAEtE,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAA6B,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAAE,cAAc,EAA4B,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CACtC,MAAM,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC,iBAAiB;CAC7B,CAAC,CAAC,CACJ,CAAC;AAwLF;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAAC,SAAyB;IACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,2EAA2E;QAC3E,+BAA+B;QAC/B,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClF,6EAA6E;QAC7E,2EAA2E;QAC3E,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,gBAAgB,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACxF,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAqC,EACrC,qBAAwD,EACxD,kBAA6C,EAC7C,gBAAyB,EACzB,gBAAuD,EACvD,mBAAuD,EACvD,oBAAoB,GAAG,KAAK,EAC5B,kBAAkB,GAAG,KAAK;IAE1B,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,qBAAqB;QACzC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,qBAAqB,CAAC;QACxC,CAAC,CAAC,UAAU,CAAC;IACf,MAAM,iBAAiB,GAAG,qBAAqB;QAC7C,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,CAAC,CAAC,CAAC;IAEP,oEAAoE;IACpE,wDAAwD;IACxD,MAAM,aAAa,GAAG,mBAAmB,EAAE,MAAM;QAC/C,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;QAC1B,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,SAAS,gBAAgB,CAAC,gBAAoC;QAC5D,IAAI,CAAC,gBAAgB,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC5D,OACE,WAAW,GAAG,aAAa,CAAC,MAAM;YAClC,aAAa,CAAC,WAAW,CAAC,CAAC,SAAS;YACpC,aAAa,CAAC,WAAW,CAAC,CAAC,SAAS,IAAI,gBAAgB,EACxD,CAAC;YACD,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,GAAG;gBACV,GAAG,EAAE,aAAa,GAAG,CAAC,SAAS,EAAE;aAClC,CAAC,CAAC;YACH,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE,CAAC;QAC9C,MAAM,kBAAkB,GAAG,EAAE,KAAK,iBAAiB,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,kBAAkB,IAAI,EAAE,CAAC;QAExD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;QACvC,IAAI,WAAW,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,iBAAiB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACrD,iBAAiB,CAAC,IAAI,GAAG,WAAW,CAAC,aAAa,CAAC;YACnD,iBAAiB,CAAC,OAAO,GAAG,WAAW,CAAC;YAExC,8DAA8D;YAC9D,2DAA2D;YAC3D,6DAA6D;YAC7D,MAAM,aAAa,GACjB,kBAAkB;gBAClB,kBAAkB,IAAI,IAAI;gBAC1B,WAAW,KAAK,kBAAkB,CAAC;YAErC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,iBAAiB;gBAC1B,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO;gBAC3D,wEAAwE;gBACxE,qEAAqE;gBACrE,UAAU,EAAE,kBAAkB,IAAI,kBAAkB;aACrD,CAAC,CAAC;QACL,CAAC;QAED,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;YAEzB,mEAAmE;YACnE,6DAA6D;YAC7D,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,YAAY;gBAAE,SAAS;YAEpD,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEhC,MAAM,SAAS,GACb,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAE7D,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,GAAG;oBACZ,GAAG,EAAE,GAAG,MAAM,KAAK,EAAE,EAAE;iBACxB,CAAC,CAAC;YACL,CAAC;YAED,IACE,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,UAAU;gBACnC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EACxB,CAAC;gBACD,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CACnC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CACtD,CAAC;gBAEF,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,YAAY,GAAe,EAAE,CAAC;oBACpC,MAAM,gBAAgB,GAAwB,EAAE,CAAC;oBACjD,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;wBAC/B,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BACvB,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;4BACxD,IAAI,OAAO;gCAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC9C,CAAC;6BAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;4BACpC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACxB,CAAC;oBACH,CAAC;oBACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,KAAK,CAAC,IAAI,CAAC;4BACT,IAAI,EAAE,YAAY;4BAClB,SAAS,EAAE,YAAY;4BACvB,kBAAkB,EAAE,SAAS;4BAC7B,GAAG,EAAE,GAAG,MAAM,KAAK,EAAE,KAAK;yBAC3B,CAAC,CAAC;oBACL,CAAC;oBACD,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;wBAClC,KAAK,CAAC,IAAI,CAAC;4BACT,IAAI,EAAE,WAAW;4BACjB,iBAAiB,EAAE,EAAE;4BACrB,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;yBACnB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE,YAAY;wBAClB,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,kBAAkB,EAAE,SAAS;wBAC7B,GAAG,EAAE,GAAG,MAAM,KAAK,EAAE,KAAK;qBAC3B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,OAAO,WAAW,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,GAAG;YACV,GAAG,EAAE,aAAa,GAAG,CAAC,SAAS,EAAE;SAClC,CAAC,CAAC;QACH,WAAW,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,SAAS,GACb,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,cAAc,CAAC,2BAA2B,CAAC;IAExE,IAAI,qBAAqB,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1E,MAAM,SAAS,GACb,SAAS,KAAK,cAAc,CAAC,iBAAiB;YAC9C,SAAS,KAAK,cAAc,CAAC,2BAA2B,CAAC;QAC3D,MAAM,sBAAsB,GAC1B,SAAS,KAAK,cAAc,CAAC,qBAAqB,CAAC;QAErD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,WAAW,GACf,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,IAAI,SAAS,CAAC;YACzE,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,gBAAgB;gBACtB,gBAAgB,EAAE,gBAAgB,IAAI,EAAE;gBACxC,WAAW;gBACX,GAAG,EAAE,gBAAgB;aACtB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,sBAAsB,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,gBAAgB;gBACtB,gBAAgB,EAAE,gBAAgB,IAAI,EAAE;gBACxC,kBAAkB,EAAE,IAAI;gBACxB,GAAG,EAAE,gBAAgB;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IACE,eAAe,CAAC,SAAS,CAAC;QAC1B,SAAS,KAAK,cAAc,CAAC,mBAAmB,EAChD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS,SAAS,EAAE;SAC1B,CAAC,CAAC;QAEH,2EAA2E;QAC3E,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;QACvC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,WAAW,GAAG,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,MAAM;gBACb,YAAY,EACV,WAAW,IAAI,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;gBACpE,GAAG,EAAE,mBAAmB,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,SAAS,EAAE;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IACE,SAAS,KAAK,cAAc,CAAC,mBAAmB;QAChD,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,KAAK,eAAe,CAAC,IAAI,EACzE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,iBAAiB;YACvB,GAAG,EAAE,iBAAiB;YACtB,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE;YACzC,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG,QAAQ,EAAE,MAAM,EAAE,gBAAgB,IAAI,EAAE,CAAC;QAC9D,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,kBAAkB;gBACxB,eAAe,EAAE,QAAQ;gBACzB,GAAG,EAAE,YAAY,QAAQ,CAAC,UAAU,IAAI,EAAE,EAAE;aAC7C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,kBAAkB,GACtB,QAAQ,EAAE,IAAI,EAAE,OAAO,KAAK,kBAAkB,CAAC;QACjD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACpD,gBAAgB,CAAC,IAAI,GAAG,WAAW,CAAC,aAAa,CAAC;YAClD,gBAAgB,CAAC,OAAO,GAAG,kBAAkB,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,gBAAgB;gBACzB,GAAG,EAAE,mBAAmB;gBACxB,6DAA6D;gBAC7D,kDAAkD;gBAClD,SAAS,EAAE,CAAC,oBAAoB;gBAChC,QAAQ,EAAE,oBAAoB;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,UAAU,EACV,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GAAG,KAAK,EAC5B,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,GAAG,KAAK,EACnB,eAAe,EACf,GAAG,EACH,mBAAmB,EACnB,aAAa,GAAG,KAAK,GACF;IACnB,eAAe,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAExE,MAAM,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,CAAC;IAClD,MAAM,kBAAkB,GAAG,aAAa,IAAI,IAAI,CAAC;IACjD,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,EAChL,CAAC,UAAU,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,CAC3J,CAAC;IAEF,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvB,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,CAAC;QACL,gBAAgB,EAAE,gBAAgB,IAAI,EAAE;QACxC,eAAe;KAChB,CAAC,EACF,CAAC,gBAAgB,EAAE,eAAe,CAAC,CACpC,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,CAAC,EAAE,oBAAoB,EAAE,oBAAoB,IAAI,EAAE,EAAE,CAAC,EAC5D,CAAC,oBAAoB,CAAC,CACvB,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,YAC/C,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACtB,KAAC,qBAAqB,IACpB,KAAK,EAAE,KAAK,EACZ,qBAAqB,EAAE,qBAAqB,EAC5C,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,GAAG,EACR,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,GAC5B,GACO,GACP,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,qBAAqB,EAAE,qBAAqB,EAC5C,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,GAAG,EACR,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC;AACJ,CAAC;AA2BD,SAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,eAAe,EACf,GAAG,EACH,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,aAAa,GACa;IAC1B,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GACrE,aAAa,EAAE,CAAC;IAElB,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAE5C,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,aAC/C,eACE,GAAG,EAAE,SAAS,EACd,IAAI,EAAC,KAAK,eACA,QAAQ,mBACJ,WAAW,EACzB,SAAS,EAAE,EAAE,CACX,yDAAyD,EACzD,0EAA0E,EAC1E,8BAA8B,EAC9B,6CAA6C,EAC7C,qFAAqF,CACtF,aAED,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,UAAU,YAC1C,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,WAAW,YAC5C,KAAC,WAAW,IAAC,EAAE,EAAC,eAAe,YAC7B,cAAK,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,aAAa,IAAI,+BAA+B,CAAC,YACzG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,iBAAiB,IAAgB,OAAO,kBACvC,KAAC,kBAAkB,IACjB,IAAI,EAAE,IAAI,EACV,qBAAqB,EAAE,qBAAqB,EAC5C,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,GAAG,EACR,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,GAC5B,IAZoB,IAAI,CAAC,GAAG,CAaZ,CACrB,CAAC,GACE,GACM,GACa,GACD,EAC1B,cAAK,GAAG,EAAE,WAAW,iBAAc,MAAM,GAAG,IACxC,EACN,KAAC,kBAAkB,IAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,WAAW,GAAI,IAChE,CACP,CAAC;AACJ,CAAC;AA6BD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,GAAG,EACH,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,aAAa,GACW;IACxB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,SAAS;YACZ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO,CACL,KAAC,iBAAiB,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,GAAI,CACnE,CAAC;YACJ,CAAC;YACD,OAAO,CACL,KAAC,YAAY,IACX,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EACpD,MAAM,EACJ,IAAI,CAAC,UAAU,IAAI,aAAa;oBAC9B,CAAC,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;oBAC3C,CAAC,CAAC,SAAS,GAEf,CACH,CAAC;QACJ,KAAK,YAAY;YACf,OAAO,CACL,KAAC,aAAa,IACZ,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAC3C,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAC,MAAM,GAChB,CACH,CAAC;QACJ,KAAK,WAAW;YACd,OAAO,CACL,KAAC,eAAe,IACd,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,SAAS,EAAC,MAAM,GAChB,CACH,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,YACvC,KAAC,mBAAmB,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAI,GACtC,CACP,CAAC;QACJ,KAAK,iBAAiB;YACpB,OAAO,CACL,KAAC,oBAAoB,IACnB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,OAAO,EAAE,gBAAgB,GACzB,CACH,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO,CACL,KAAC,eAAe,IACd,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,gBAAgB,EAAE,gBAAiB,EACnC,YAAY,EAAE,qBAAqB,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,KAAK,GAClF,CACH,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO,CACL,KAAC,aAAa,IACZ,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,GAC3C,CACH,CAAC;QACJ,KAAK,mBAAmB;YACtB,OAAO,KAAC,iBAAiB,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAI,CAAC;QAClD,KAAK,iBAAiB;YACpB,yEAAyE;YACzE,2EAA2E;YAC3E,2EAA2E;YAC3E,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAC7C,KAAC,gBAAgB,IACf,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,eAAe,EAC5B,QAAQ,EAAE,mBAAmB,GAC7B,CACH,CAAC,CAAC,CAAC,CACF,KAAC,kBAAkB,IACjB,WAAW,EAAE,eAAe,EAC5B,QAAQ,EAAE,mBAAmB,GAC7B,CACH,CAAC;IACN,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,wDAAwD;AACxD,8EAA8E;AAE9E;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,EACzB,OAAO,EACP,OAAO,GAIR;IACC,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,GAAI,EAClC,eACE,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,uDAAuD,aAEjE,eAAM,SAAS,EAAC,yBAAyB,oCAA4B,EACpE,OAAO,IAAI,CACV,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,yIAAyI,sBAG5I,CACV,IACG,IACF,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAE9E;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,8DAA8D,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,YAAY,EACZ,OAAO,GAKR;IACC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,YAAY,CAAC;IAC7C,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE9C,OAAO,CACL,eACE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EACtC,SAAS,EAAE,EAAE,CACX,iDAAiD,EACjD,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,uBAAuB,CACnD,aAED,YACE,SAAS,EAAE,EAAE,CACX,yCAAyC,EACzC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,EACpD,CAAC,QAAQ,IAAI,cAAc,CAC5B,YAEA,KAAK,GACJ,EACJ,eAAK,SAAS,EAAC,iCAAiC,aAC9C,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACrC,SAAS,EAAC,8IAA8I,YAEvJ,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,GAC9B,EACR,QAAQ,IAAI,CACX,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,OAAQ,CAAC,YAAa,CAAC,EACtC,SAAS,EAAC,wIAAwI,YAEjJ,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,GAC1B,CACV,IACG,IACF,CACP,CAAC;AACJ,CAAC;AAgBD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,eAAe,CAAC,EACpD,eAAe,EACf,gBAAgB,EAChB,YAAY,GACS;IACrB,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,MAAsB,EAAE,OAAgB,EAAE,EAAE;QAC3C,gBAAgB,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC,EACD,CAAC,gBAAgB,EAAE,eAAe,CAAC,UAAU,CAAC,CAC/C,CAAC;IAEF,OAAO,CACL,KAAC,YAAY,IACX,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAC,MAAM,GAChB,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"MessageThread.js","sourceRoot":"","sources":["../../src/execution/MessageThread.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlanArtifactCard.d.ts","sourceRoot":"","sources":["../../src/execution/PlanArtifactCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAK1G,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,6DAyF3B,CAAC"}
1
+ {"version":3,"file":"PlanArtifactCard.d.ts","sourceRoot":"","sources":["../../src/execution/PlanArtifactCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAM1G,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,6DA2F3B,CAAC"}
@@ -4,6 +4,7 @@ import { memo, useState } from "react";
4
4
  import { cn } from "@stigmer/theme";
5
5
  import { ArtifactPreviewModal } from "./ArtifactPreviewModal";
6
6
  import { formatArtifactSize } from "./artifact-utils";
7
+ import { useArtifactDownload } from "./useArtifactDownload";
7
8
  import { useBuildFromPlanHotkey } from "./use-build-from-plan-hotkey";
8
9
  /**
9
10
  * Action surface for a plan that a completed Plan-mode execution published as a
@@ -33,10 +34,11 @@ import { useBuildFromPlanHotkey } from "./use-build-from-plan-hotkey";
33
34
  export const PlanArtifactCard = memo(function PlanArtifactCard({ executionId, artifact, org, onImplement, disabled, className, }) {
34
35
  const [previewOpen, setPreviewOpen] = useState(false);
35
36
  const handleKeyDown = useBuildFromPlanHotkey(onImplement, disabled);
37
+ const { download, isDownloading } = useArtifactDownload(executionId);
36
38
  return (_jsxs("div", { role: "region", "aria-label": "Plan actions", onKeyDown: handleKeyDown, className: cn(
37
39
  // `-mt-2` tightens the thread's `gap-4` so the bar attaches to the
38
40
  // plan message above it, reading as one first-class plan block.
39
- "mx-4 -mt-2 flex flex-wrap items-center gap-x-3 gap-y-2 rounded-md", "border border-border-muted bg-muted-faint px-3 py-2", className), children: [_jsx(PlanIcon, {}), _jsx("span", { className: "text-xs font-medium text-foreground", children: "Plan" }), _jsx("span", { className: "text-xs tabular-nums text-muted-foreground-faint", children: formatArtifactSize(artifact.sizeBytes) }), _jsxs("div", { className: "ml-auto flex flex-wrap items-center gap-x-3 gap-y-1.5", children: [org && (_jsxs("button", { type: "button", onClick: () => setPreviewOpen(true), className: cn("inline-flex items-center gap-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground", FOCUS_RING), children: [_jsx(ExpandIcon, {}), "Open full"] })), _jsxs("a", { href: artifact.downloadUrl, download: artifact.name, className: cn("inline-flex items-center gap-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground", FOCUS_RING), children: [_jsx(DownloadIcon, {}), "Download"] }), onImplement && (_jsxs("button", { type: "button", disabled: disabled, onClick: onImplement, className: cn("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5", "text-xs font-medium transition-colors", "bg-primary text-primary-foreground hover:bg-primary-hover", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50"), children: [_jsx(ImplementIcon, {}), "Build from plan"] }))] }), org && previewOpen && (_jsx(ArtifactPreviewModal, { artifact: artifact, executionId: executionId, org: org, isTerminal: true, open: true, onClose: () => setPreviewOpen(false), onImplement: onImplement }))] }));
41
+ "mx-4 -mt-2 flex flex-wrap items-center gap-x-3 gap-y-2 rounded-md", "border border-border-muted bg-muted-faint px-3 py-2", className), children: [_jsx(PlanIcon, {}), _jsx("span", { className: "text-xs font-medium text-foreground", children: "Plan" }), _jsx("span", { className: "text-xs tabular-nums text-muted-foreground-faint", children: formatArtifactSize(artifact.sizeBytes) }), _jsxs("div", { className: "ml-auto flex flex-wrap items-center gap-x-3 gap-y-1.5", children: [org && (_jsxs("button", { type: "button", onClick: () => setPreviewOpen(true), className: cn("inline-flex items-center gap-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground", FOCUS_RING), children: [_jsx(ExpandIcon, {}), "Open full"] })), _jsxs("button", { type: "button", onClick: () => download(artifact.storageKey, artifact.name), disabled: isDownloading, className: cn("inline-flex items-center gap-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground disabled:opacity-50", FOCUS_RING), children: [_jsx(DownloadIcon, {}), isDownloading ? "Preparing…" : "Download"] }), onImplement && (_jsxs("button", { type: "button", disabled: disabled, onClick: onImplement, className: cn("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5", "text-xs font-medium transition-colors", "bg-primary text-primary-foreground hover:bg-primary-hover", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50"), children: [_jsx(ImplementIcon, {}), "Build from plan"] }))] }), org && previewOpen && (_jsx(ArtifactPreviewModal, { artifact: artifact, executionId: executionId, org: org, isTerminal: true, open: true, onClose: () => setPreviewOpen(false), onImplement: onImplement }))] }));
40
42
  });
41
43
  const FOCUS_RING = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:rounded-sm";
42
44
  function PlanIcon() {
@@ -1 +1 @@
1
- {"version":3,"file":"PlanArtifactCard.js","sourceRoot":"","sources":["../../src/execution/PlanArtifactCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAuBtE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,gBAAgB,CAAC,EAC7D,WAAW,EACX,QAAQ,EACR,GAAG,EACH,WAAW,EACX,QAAQ,EACR,SAAS,GACa;IACtB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,sBAAsB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEpE,OAAO,CACL,eACE,IAAI,EAAC,QAAQ,gBACF,cAAc,EACzB,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,EAAE;QACX,mEAAmE;QACnE,gEAAgE;QAChE,mEAAmE,EACnE,qDAAqD,EACrD,SAAS,CACV,aAED,KAAC,QAAQ,KAAG,EACZ,eAAM,SAAS,EAAC,qCAAqC,qBAAY,EACjE,eAAM,SAAS,EAAC,kDAAkD,YAC/D,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAClC,EAEP,eAAK,SAAS,EAAC,uDAAuD,aACnE,GAAG,IAAI,CACN,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EACnC,SAAS,EAAE,EAAE,CACX,kHAAkH,EAClH,UAAU,CACX,aAED,KAAC,UAAU,KAAG,iBAEP,CACV,EACD,aACE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAC1B,QAAQ,EAAE,QAAQ,CAAC,IAAI,EACvB,SAAS,EAAE,EAAE,CACX,kHAAkH,EAClH,UAAU,CACX,aAED,KAAC,YAAY,KAAG,gBAEd,EACH,WAAW,IAAI,CACd,kBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,EAAE,CACX,yDAAyD,EACzD,uCAAuC,EACvC,2DAA2D,EAC3D,yEAAyE,EACzE,kDAAkD,CACnD,aAED,KAAC,aAAa,KAAG,uBAEV,CACV,IACG,EAIL,GAAG,IAAI,WAAW,IAAI,CACrB,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,GAAG,EACR,UAAU,QACV,IAAI,QACJ,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EACpC,WAAW,EAAE,WAAW,GACxB,CACH,IACG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,GACd,kGAAkG,CAAC;AAErG,SAAS,QAAQ;IACf,OAAO,CACL,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,SAAS,EAAC,sCAAsC,iBACpC,MAAM,aAElB,eAAM,CAAC,EAAC,sBAAsB,GAAG,EACjC,eAAM,CAAC,EAAC,4BAA4B,GAAG,IACnC,CACP,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,CACL,cACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACV,MAAM,YAElB,eAAM,CAAC,EAAC,oBAAoB,GAAG,GAC3B,CACP,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,CACL,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,SAAS,EAAC,UAAU,iBACR,MAAM,aAElB,eAAM,CAAC,EAAC,YAAY,GAAG,EACvB,eAAM,CAAC,EAAC,cAAc,GAAG,EACzB,eAAM,CAAC,EAAC,YAAY,GAAG,IACnB,CACP,CAAC;AACJ,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,CACL,cACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,SAAS,EAAC,UAAU,iBACR,MAAM,YAElB,eAAM,CAAC,EAAC,yDAAyD,GAAG,GAChE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"PlanArtifactCard.js","sourceRoot":"","sources":["../../src/execution/PlanArtifactCard.tsx"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export interface PlanCompletionCardProps {
11
11
  * Fallback CTA shown in the {@link MessageThread} after a completed Plan-mode
12
12
  * execution that did **not** publish a `plan.md` artifact (older executions, or
13
13
  * a plan whose upload failed). When a plan artifact exists, the richer
14
- * {@link PlanArtifactCard} is shown instead.
14
+ * `PlanArtifactCard` is shown instead.
15
15
  *
16
16
  * Mirrors `PlanArtifactCard`'s hierarchy — one prominent, themeable "Build from
17
17
  * plan" primary action with the same card-scoped `Cmd/Ctrl+Enter` accelerator —
@@ -7,7 +7,7 @@ import { useBuildFromPlanHotkey } from "./use-build-from-plan-hotkey";
7
7
  * Fallback CTA shown in the {@link MessageThread} after a completed Plan-mode
8
8
  * execution that did **not** publish a `plan.md` artifact (older executions, or
9
9
  * a plan whose upload failed). When a plan artifact exists, the richer
10
- * {@link PlanArtifactCard} is shown instead.
10
+ * `PlanArtifactCard` is shown instead.
11
11
  *
12
12
  * Mirrors `PlanArtifactCard`'s hierarchy — one prominent, themeable "Build from
13
13
  * plan" primary action with the same card-scoped `Cmd/Ctrl+Enter` accelerator —