@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.
- package/execution/ApprovalCard.d.ts +47 -3
- package/execution/ApprovalCard.d.ts.map +1 -1
- package/execution/ApprovalCard.js +138 -70
- package/execution/ApprovalCard.js.map +1 -1
- package/execution/ApprovalContext.d.ts +72 -0
- package/execution/ApprovalContext.d.ts.map +1 -0
- package/execution/ApprovalContext.js +41 -0
- package/execution/ApprovalContext.js.map +1 -0
- package/execution/ArtifactCard.d.ts.map +1 -1
- package/execution/ArtifactCard.js +3 -1
- package/execution/ArtifactCard.js.map +1 -1
- package/execution/ArtifactPreviewModal.d.ts.map +1 -1
- package/execution/ArtifactPreviewModal.js +5 -3
- package/execution/ArtifactPreviewModal.js.map +1 -1
- package/execution/EmptyChangeNotice.d.ts +38 -0
- package/execution/EmptyChangeNotice.d.ts.map +1 -0
- package/execution/EmptyChangeNotice.js +27 -0
- package/execution/EmptyChangeNotice.js.map +1 -0
- package/execution/FileChangesView.d.ts +81 -0
- package/execution/FileChangesView.d.ts.map +1 -0
- package/execution/FileChangesView.js +164 -0
- package/execution/FileChangesView.js.map +1 -0
- package/execution/FilePathLink.d.ts +24 -4
- package/execution/FilePathLink.d.ts.map +1 -1
- package/execution/FilePathLink.js +31 -9
- package/execution/FilePathLink.js.map +1 -1
- package/execution/FileReviewCard.d.ts +111 -0
- package/execution/FileReviewCard.d.ts.map +1 -0
- package/execution/FileReviewCard.js +558 -0
- package/execution/FileReviewCard.js.map +1 -0
- package/execution/FileReviewContext.d.ts +35 -0
- package/execution/FileReviewContext.d.ts.map +1 -0
- package/execution/FileReviewContext.js +23 -0
- package/execution/FileReviewContext.js.map +1 -0
- package/execution/FileReviewDock.d.ts +73 -0
- package/execution/FileReviewDock.d.ts.map +1 -0
- package/execution/FileReviewDock.js +65 -0
- package/execution/FileReviewDock.js.map +1 -0
- package/execution/McpToolDetail.d.ts.map +1 -1
- package/execution/McpToolDetail.js +38 -5
- package/execution/McpToolDetail.js.map +1 -1
- package/execution/MessageThread.d.ts +42 -3
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +263 -18
- package/execution/MessageThread.js.map +1 -1
- package/execution/PlanArtifactCard.d.ts.map +1 -1
- package/execution/PlanArtifactCard.js +3 -1
- package/execution/PlanArtifactCard.js.map +1 -1
- package/execution/PlanCompletionCard.d.ts +1 -1
- package/execution/PlanCompletionCard.js +1 -1
- package/execution/ResultView.d.ts +19 -1
- package/execution/ResultView.d.ts.map +1 -1
- package/execution/ResultView.js +141 -40
- package/execution/ResultView.js.map +1 -1
- package/execution/SubAgentSection.d.ts.map +1 -1
- package/execution/SubAgentSection.js +45 -6
- package/execution/SubAgentSection.js.map +1 -1
- package/execution/TerminalSession.d.ts +34 -0
- package/execution/TerminalSession.d.ts.map +1 -0
- package/execution/TerminalSession.js +34 -0
- package/execution/TerminalSession.js.map +1 -0
- package/execution/TodoCard.d.ts +53 -0
- package/execution/TodoCard.d.ts.map +1 -0
- package/execution/TodoCard.js +77 -0
- package/execution/TodoCard.js.map +1 -0
- package/execution/ToolArgsView.d.ts +7 -1
- package/execution/ToolArgsView.d.ts.map +1 -1
- package/execution/ToolArgsView.js +10 -9
- package/execution/ToolArgsView.js.map +1 -1
- package/execution/ToolCallDetail.d.ts +10 -1
- package/execution/ToolCallDetail.d.ts.map +1 -1
- package/execution/ToolCallDetail.js +66 -19
- package/execution/ToolCallDetail.js.map +1 -1
- package/execution/ToolCallGroup.d.ts +28 -18
- package/execution/ToolCallGroup.d.ts.map +1 -1
- package/execution/ToolCallGroup.js +39 -148
- package/execution/ToolCallGroup.js.map +1 -1
- package/execution/ToolCallItem.d.ts +36 -8
- package/execution/ToolCallItem.d.ts.map +1 -1
- package/execution/ToolCallItem.js +140 -21
- package/execution/ToolCallItem.js.map +1 -1
- package/execution/ToolRunGroup.d.ts +48 -0
- package/execution/ToolRunGroup.d.ts.map +1 -0
- package/execution/ToolRunGroup.js +168 -0
- package/execution/ToolRunGroup.js.map +1 -0
- package/execution/approval-provenance.d.ts +2 -0
- package/execution/approval-provenance.d.ts.map +1 -0
- package/execution/approval-provenance.js +6 -0
- package/execution/approval-provenance.js.map +1 -0
- package/execution/artifact-utils.d.ts +0 -10
- package/execution/artifact-utils.d.ts.map +1 -1
- package/execution/artifact-utils.js +0 -17
- package/execution/artifact-utils.js.map +1 -1
- package/execution/execution-phases.d.ts +1 -6
- package/execution/execution-phases.d.ts.map +1 -1
- package/execution/execution-phases.js +4 -14
- package/execution/execution-phases.js.map +1 -1
- package/execution/file-path-resolver.d.ts +28 -0
- package/execution/file-path-resolver.d.ts.map +1 -1
- package/execution/file-path-resolver.js +24 -0
- package/execution/file-path-resolver.js.map +1 -1
- package/execution/file-review-status.d.ts +127 -0
- package/execution/file-review-status.d.ts.map +1 -0
- package/execution/file-review-status.js +135 -0
- package/execution/file-review-status.js.map +1 -0
- package/execution/index.d.ts +39 -5
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js +23 -3
- package/execution/index.js.map +1 -1
- package/execution/segment-tool-calls.d.ts +46 -0
- package/execution/segment-tool-calls.d.ts.map +1 -0
- package/execution/segment-tool-calls.js +71 -0
- package/execution/segment-tool-calls.js.map +1 -0
- package/execution/tool-categories.d.ts +62 -1
- package/execution/tool-categories.d.ts.map +1 -1
- package/execution/tool-categories.js +96 -2
- package/execution/tool-categories.js.map +1 -1
- package/execution/tool-presenter.d.ts +38 -2
- package/execution/tool-presenter.d.ts.map +1 -1
- package/execution/tool-presenter.js +23 -1
- package/execution/tool-presenter.js.map +1 -1
- package/execution/tool-rendering-primitives.d.ts.map +1 -1
- package/execution/tool-rendering-primitives.js +3 -2
- package/execution/tool-rendering-primitives.js.map +1 -1
- package/execution/useArtifactDownload.d.ts +44 -0
- package/execution/useArtifactDownload.d.ts.map +1 -0
- package/execution/useArtifactDownload.js +80 -0
- package/execution/useArtifactDownload.js.map +1 -0
- package/execution/useArtifactDownloadUrl.d.ts +67 -0
- package/execution/useArtifactDownloadUrl.d.ts.map +1 -0
- package/execution/useArtifactDownloadUrl.js +59 -0
- package/execution/useArtifactDownloadUrl.js.map +1 -0
- package/execution/useFileChangeContent.d.ts +61 -0
- package/execution/useFileChangeContent.d.ts.map +1 -0
- package/execution/useFileChangeContent.js +89 -0
- package/execution/useFileChangeContent.js.map +1 -0
- package/execution/useFileReview.d.ts +89 -0
- package/execution/useFileReview.d.ts.map +1 -0
- package/execution/useFileReview.js +106 -0
- package/execution/useFileReview.js.map +1 -0
- package/execution/useSubmitApproval.d.ts +17 -2
- package/execution/useSubmitApproval.d.ts.map +1 -1
- package/execution/useSubmitApproval.js +27 -23
- package/execution/useSubmitApproval.js.map +1 -1
- package/execution/useToolOutputContent.d.ts +44 -0
- package/execution/useToolOutputContent.d.ts.map +1 -0
- package/execution/useToolOutputContent.js +31 -0
- package/execution/useToolOutputContent.js.map +1 -0
- package/index.d.ts +6 -6
- package/index.d.ts.map +1 -1
- package/index.js +3 -3
- package/index.js.map +1 -1
- package/internal/ApprovalPeekBar.d.ts +23 -0
- package/internal/ApprovalPeekBar.d.ts.map +1 -0
- package/internal/ApprovalPeekBar.js +25 -0
- package/internal/ApprovalPeekBar.js.map +1 -0
- package/internal/BoundedContent.d.ts +49 -0
- package/internal/BoundedContent.d.ts.map +1 -0
- package/internal/BoundedContent.js +50 -0
- package/internal/BoundedContent.js.map +1 -0
- package/internal/DecisionButton.d.ts +47 -0
- package/internal/DecisionButton.d.ts.map +1 -0
- package/internal/DecisionButton.js +42 -0
- package/internal/DecisionButton.js.map +1 -0
- package/internal/InCardDecisionError.d.ts +31 -0
- package/internal/InCardDecisionError.d.ts.map +1 -0
- package/internal/InCardDecisionError.js +23 -0
- package/internal/InCardDecisionError.js.map +1 -0
- package/internal/RevealToggle.d.ts +36 -0
- package/internal/RevealToggle.d.ts.map +1 -0
- package/internal/RevealToggle.js +32 -0
- package/internal/RevealToggle.js.map +1 -0
- package/internal/VirtualizedThread.d.ts +7 -1
- package/internal/VirtualizedThread.d.ts.map +1 -1
- package/internal/VirtualizedThread.js +7 -3
- package/internal/VirtualizedThread.js.map +1 -1
- package/internal/useAutoDisclosure.d.ts +34 -0
- package/internal/useAutoDisclosure.d.ts.map +1 -0
- package/internal/useAutoDisclosure.js +53 -0
- package/internal/useAutoDisclosure.js.map +1 -0
- package/internal/useElapsedSince.d.ts +30 -0
- package/internal/useElapsedSince.d.ts.map +1 -0
- package/internal/useElapsedSince.js +70 -0
- package/internal/useElapsedSince.js.map +1 -0
- package/internal/useIsOverflowing.d.ts +30 -0
- package/internal/useIsOverflowing.d.ts.map +1 -0
- package/internal/useIsOverflowing.js +47 -0
- package/internal/useIsOverflowing.js.map +1 -0
- package/internal/useIsTextTruncated.d.ts +24 -0
- package/internal/useIsTextTruncated.d.ts.map +1 -0
- package/internal/useIsTextTruncated.js +41 -0
- package/internal/useIsTextTruncated.js.map +1 -0
- package/internal/useKeyedSubmission.d.ts +49 -0
- package/internal/useKeyedSubmission.d.ts.map +1 -0
- package/internal/useKeyedSubmission.js +67 -0
- package/internal/useKeyedSubmission.js.map +1 -0
- package/package.json +4 -4
- package/session/SessionViewer.d.ts +2 -2
- package/session/SessionViewer.d.ts.map +1 -1
- package/session/SessionViewer.js +10 -4
- package/session/SessionViewer.js.map +1 -1
- package/session/index.d.ts +2 -0
- package/session/index.d.ts.map +1 -1
- package/session/index.js +1 -0
- package/session/index.js.map +1 -1
- package/session/inspector/ChangesTab.d.ts +8 -5
- package/session/inspector/ChangesTab.d.ts.map +1 -1
- package/session/inspector/ChangesTab.js +11 -8
- package/session/inspector/ChangesTab.js.map +1 -1
- package/session/inspector/SessionInspector.d.ts +4 -4
- package/session/inspector/SessionInspector.d.ts.map +1 -1
- package/session/inspector/SessionInspector.js +4 -4
- package/session/inspector/SessionInspector.js.map +1 -1
- package/session/inspector/index.d.ts +0 -2
- package/session/inspector/index.d.ts.map +1 -1
- package/session/inspector/index.js +0 -1
- package/session/inspector/index.js.map +1 -1
- package/session/inspector/useSessionInspector.d.ts +8 -4
- package/session/inspector/useSessionInspector.d.ts.map +1 -1
- package/session/inspector/useSessionInspector.js +27 -20
- package/session/inspector/useSessionInspector.js.map +1 -1
- package/session/useSessionConversation.d.ts +37 -3
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +18 -2
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionFileChanges.d.ts +74 -0
- package/session/useSessionFileChanges.d.ts.map +1 -0
- package/session/useSessionFileChanges.js +178 -0
- package/session/useSessionFileChanges.js.map +1 -0
- package/src/__tests__/styles-border-layer-invariant.test.ts +105 -0
- package/src/execution/ApprovalCard.tsx +368 -230
- package/src/execution/ApprovalContext.ts +109 -0
- package/src/execution/ArtifactCard.tsx +10 -6
- package/src/execution/ArtifactPreviewModal.tsx +12 -6
- package/src/execution/EmptyChangeNotice.tsx +62 -0
- package/src/execution/FileChangesView.tsx +383 -0
- package/src/execution/FilePathLink.tsx +65 -12
- package/src/execution/FileReviewCard.tsx +1118 -0
- package/src/execution/FileReviewContext.ts +53 -0
- package/src/execution/FileReviewDock.tsx +157 -0
- package/src/execution/McpToolDetail.tsx +98 -32
- package/src/execution/MessageThread.tsx +374 -9
- package/src/execution/PlanArtifactCard.tsx +9 -6
- package/src/execution/PlanCompletionCard.tsx +1 -1
- package/src/execution/ResultView.tsx +333 -162
- package/src/execution/SubAgentSection.tsx +58 -11
- package/src/execution/TerminalSession.tsx +91 -0
- package/src/execution/TodoCard.tsx +186 -0
- package/src/execution/ToolArgsView.tsx +28 -17
- package/src/execution/ToolCallDetail.tsx +137 -26
- package/src/execution/ToolCallGroup.tsx +68 -296
- package/src/execution/ToolCallItem.tsx +265 -67
- package/src/execution/ToolRunGroup.tsx +302 -0
- package/src/execution/__tests__/ApprovalCard.test.tsx +395 -5
- package/src/execution/__tests__/ArtifactPreviewModal.test.tsx +0 -1
- package/src/execution/__tests__/EmptyChangeNotice.test.tsx +24 -0
- package/src/execution/__tests__/FileChangesView.test.tsx +296 -0
- package/src/execution/__tests__/FilePathLink.test.tsx +92 -0
- package/src/execution/__tests__/FileReviewCard.test.tsx +1044 -0
- package/src/execution/__tests__/FileReviewDock.test.tsx +134 -0
- package/src/execution/__tests__/McpToolDetail.test.tsx +79 -0
- package/src/execution/__tests__/MessageThread.test.tsx +324 -0
- package/src/execution/__tests__/PlanArtifactCard.test.tsx +37 -16
- package/src/execution/__tests__/ResultView.test.tsx +280 -2
- package/src/execution/__tests__/SubAgentSection.test.tsx +180 -0
- package/src/execution/__tests__/TerminalSession.test.tsx +72 -0
- package/src/execution/__tests__/TodoCard.test.tsx +102 -0
- package/src/execution/__tests__/ToolArgsView.test.tsx +48 -0
- package/src/execution/__tests__/ToolCallDetail.test.tsx +195 -0
- package/src/execution/__tests__/ToolCallGroup.test.tsx +132 -0
- package/src/execution/__tests__/ToolCallItem.test.tsx +521 -0
- package/src/execution/__tests__/ToolRunGroup.test.tsx +137 -0
- package/src/execution/__tests__/blanked-narration.test.tsx +149 -0
- package/src/execution/__tests__/buildThreadItems-approvals.test.ts +304 -0
- package/src/execution/__tests__/buildThreadItems-file-review.test.ts +331 -0
- package/src/execution/__tests__/file-path-resolver.test.ts +44 -0
- package/src/execution/__tests__/file-review-status.test.ts +343 -0
- package/src/execution/__tests__/segment-tool-calls.test.ts +124 -0
- package/src/execution/__tests__/subagent-file-review-badge.test.tsx +273 -0
- package/src/execution/__tests__/thread-keys.test.ts +195 -0
- package/src/execution/__tests__/tool-presenter.test.tsx +95 -0
- package/src/execution/__tests__/useArtifactDownload.test.tsx +67 -0
- package/src/execution/__tests__/useArtifactDownloadUrl.test.tsx +51 -0
- package/src/execution/__tests__/useFileChangeContent.test.tsx +240 -0
- package/src/execution/__tests__/useFileReview.test.tsx +236 -0
- package/src/execution/__tests__/useSubmitApproval.test.tsx +165 -0
- package/src/execution/__tests__/useToolOutputContent.test.tsx +82 -0
- package/src/execution/approval-provenance.ts +8 -0
- package/src/execution/artifact-utils.ts +0 -18
- package/src/execution/execution-phases.ts +4 -16
- package/src/execution/file-path-resolver.ts +38 -0
- package/src/execution/file-review-status.ts +219 -0
- package/src/execution/index.ts +84 -4
- package/src/execution/segment-tool-calls.ts +101 -0
- package/src/execution/tool-categories.ts +128 -1
- package/src/execution/tool-presenter.ts +58 -3
- package/src/execution/tool-rendering-primitives.tsx +11 -14
- package/src/execution/useArtifactDownload.ts +109 -0
- package/src/execution/useArtifactDownloadUrl.ts +116 -0
- package/src/execution/useFileChangeContent.ts +149 -0
- package/src/execution/useFileReview.ts +197 -0
- package/src/execution/useSubmitApproval.ts +49 -27
- package/src/execution/useToolOutputContent.ts +70 -0
- package/src/index.ts +60 -1
- package/src/internal/ApprovalPeekBar.tsx +73 -0
- package/src/internal/BoundedContent.tsx +97 -0
- package/src/internal/DecisionButton.tsx +127 -0
- package/src/internal/InCardDecisionError.tsx +47 -0
- package/src/internal/RevealToggle.tsx +91 -0
- package/src/internal/VirtualizedThread.tsx +28 -2
- package/src/internal/__tests__/ApprovalPeekBar.test.tsx +34 -0
- package/src/internal/__tests__/BoundedContent.test.tsx +92 -0
- package/src/internal/__tests__/DecisionButton.test.tsx +107 -0
- package/src/internal/__tests__/RevealToggle.test.tsx +61 -0
- package/src/internal/__tests__/useAutoDisclosure.test.ts +74 -0
- package/src/internal/__tests__/useElapsedSince.test.tsx +68 -0
- package/src/internal/__tests__/useIsOverflowing.test.ts +36 -0
- package/src/internal/__tests__/useKeyedSubmission.test.tsx +126 -0
- package/src/internal/useAutoDisclosure.ts +58 -0
- package/src/internal/useElapsedSince.ts +72 -0
- package/src/internal/useIsOverflowing.ts +61 -0
- package/src/internal/useIsTextTruncated.ts +55 -0
- package/src/internal/useKeyedSubmission.ts +101 -0
- package/src/session/SessionViewer.tsx +21 -4
- package/src/session/__tests__/SessionViewer-fileReviewDock.test.tsx +198 -0
- package/src/session/__tests__/audienceWiring.test.tsx +4 -0
- package/src/session/__tests__/useSessionFileChanges.test.ts +303 -0
- package/src/session/index.ts +3 -0
- package/src/session/inspector/ChangesTab.tsx +20 -17
- package/src/session/inspector/SessionInspector.tsx +12 -10
- package/src/session/inspector/__tests__/ArtifactsTab.test.tsx +0 -1
- package/src/session/inspector/__tests__/ChangesTab.test.tsx +38 -0
- package/src/session/inspector/__tests__/useSessionInspector.test.ts +46 -61
- package/src/session/inspector/index.ts +0 -3
- package/src/session/inspector/useSessionInspector.ts +27 -20
- package/src/session/useSessionConversation.ts +80 -3
- package/src/session/useSessionFileChanges.ts +207 -0
- package/src/styles.css +35 -10
- package/src/version-history/DiffViewer.tsx +10 -7
- package/src/version-history/UnifiedDiffView.tsx +66 -0
- package/src/version-history/__tests__/DiffViewer.test.tsx +57 -0
- package/src/version-history/__tests__/UnifiedDiffView.test.tsx +50 -0
- package/src/version-history/__tests__/computeDiff.test.ts +35 -0
- package/src/version-history/__tests__/parseUnifiedDiff.test.ts +82 -0
- package/src/version-history/computeDiff.ts +6 -37
- package/src/version-history/diff-hunks.ts +63 -0
- package/src/version-history/index.ts +1 -0
- package/src/version-history/parseUnifiedDiff.ts +34 -0
- package/src/workflow/WorkflowExecutionApprovalCard.tsx +49 -24
- package/src/workflow/WorkflowExecutionTimeline.tsx +15 -4
- package/src/workflow/WorkflowExecutionTimelineEvent.tsx +8 -3
- package/src/workflow/WorkflowExecutionViewer.tsx +72 -28
- package/src/workflow/WorkflowFileReviewList.tsx +152 -0
- package/src/workflow/WorkflowTaskApprovalCard.tsx +37 -85
- package/src/workflow/__tests__/ExecutionInspector.test.tsx +30 -2
- package/src/workflow/__tests__/WorkflowExecutionApprovalCard.test.tsx +129 -0
- package/src/workflow/__tests__/WorkflowFileReviewList.test.tsx +129 -0
- package/src/workflow/__tests__/WorkflowTaskApprovalCard.test.tsx +43 -11
- package/src/workflow/__tests__/useWorkflowExecutionActions.test.tsx +276 -0
- package/src/workflow/execution-inspector/ExecutionInspector.tsx +42 -18
- package/src/workflow/index.ts +5 -0
- package/src/workflow/useWorkflowExecutionActions.ts +177 -29
- package/styles.css +1 -1
- package/version-history/DiffViewer.d.ts.map +1 -1
- package/version-history/DiffViewer.js +9 -3
- package/version-history/DiffViewer.js.map +1 -1
- package/version-history/UnifiedDiffView.d.ts +29 -0
- package/version-history/UnifiedDiffView.d.ts.map +1 -0
- package/version-history/UnifiedDiffView.js +36 -0
- package/version-history/UnifiedDiffView.js.map +1 -0
- package/version-history/computeDiff.d.ts +3 -1
- package/version-history/computeDiff.d.ts.map +1 -1
- package/version-history/computeDiff.js +5 -35
- package/version-history/computeDiff.js.map +1 -1
- package/version-history/diff-hunks.d.ts +21 -0
- package/version-history/diff-hunks.d.ts.map +1 -0
- package/version-history/diff-hunks.js +58 -0
- package/version-history/diff-hunks.js.map +1 -0
- package/version-history/index.d.ts +1 -0
- package/version-history/index.d.ts.map +1 -1
- package/version-history/index.js +1 -0
- package/version-history/index.js.map +1 -1
- package/version-history/parseUnifiedDiff.d.ts +22 -0
- package/version-history/parseUnifiedDiff.d.ts.map +1 -0
- package/version-history/parseUnifiedDiff.js +34 -0
- package/version-history/parseUnifiedDiff.js.map +1 -0
- package/workflow/WorkflowExecutionApprovalCard.d.ts +8 -1
- package/workflow/WorkflowExecutionApprovalCard.d.ts.map +1 -1
- package/workflow/WorkflowExecutionApprovalCard.js +17 -3
- package/workflow/WorkflowExecutionApprovalCard.js.map +1 -1
- package/workflow/WorkflowExecutionTimeline.d.ts +11 -2
- package/workflow/WorkflowExecutionTimeline.d.ts.map +1 -1
- package/workflow/WorkflowExecutionTimeline.js +2 -2
- package/workflow/WorkflowExecutionTimeline.js.map +1 -1
- package/workflow/WorkflowExecutionTimelineEvent.d.ts +4 -1
- package/workflow/WorkflowExecutionTimelineEvent.d.ts.map +1 -1
- package/workflow/WorkflowExecutionTimelineEvent.js +2 -2
- package/workflow/WorkflowExecutionTimelineEvent.js.map +1 -1
- package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
- package/workflow/WorkflowExecutionViewer.js +18 -10
- package/workflow/WorkflowExecutionViewer.js.map +1 -1
- package/workflow/WorkflowFileReviewList.d.ts +46 -0
- package/workflow/WorkflowFileReviewList.d.ts.map +1 -0
- package/workflow/WorkflowFileReviewList.js +48 -0
- package/workflow/WorkflowFileReviewList.js.map +1 -0
- package/workflow/WorkflowTaskApprovalCard.d.ts +8 -1
- package/workflow/WorkflowTaskApprovalCard.d.ts.map +1 -1
- package/workflow/WorkflowTaskApprovalCard.js +12 -19
- package/workflow/WorkflowTaskApprovalCard.js.map +1 -1
- package/workflow/execution-inspector/ExecutionInspector.d.ts +21 -4
- package/workflow/execution-inspector/ExecutionInspector.d.ts.map +1 -1
- package/workflow/execution-inspector/ExecutionInspector.js +6 -3
- package/workflow/execution-inspector/ExecutionInspector.js.map +1 -1
- package/workflow/index.d.ts +1 -0
- package/workflow/index.d.ts.map +1 -1
- package/workflow/index.js +1 -0
- package/workflow/index.js.map +1 -1
- package/workflow/useWorkflowExecutionActions.d.ts +62 -4
- package/workflow/useWorkflowExecutionActions.d.ts.map +1 -1
- package/workflow/useWorkflowExecutionActions.js +94 -18
- package/workflow/useWorkflowExecutionActions.js.map +1 -1
- package/session/inspector/PlanTab.d.ts +0 -15
- package/session/inspector/PlanTab.d.ts.map +0 -1
- package/session/inspector/PlanTab.js +0 -19
- package/session/inspector/PlanTab.js.map +0 -1
- 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
|
-
? [
|
|
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
|
-
|
|
136
|
-
|
|
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
|
|
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:
|
|
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;
|
|
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("
|
|
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;
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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 —
|