@stigmer/react 3.1.2 → 3.1.3
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/composer/SessionComposer.d.ts +6 -5
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +1 -1
- package/composer/SessionComposer.js.map +1 -1
- package/execution/ArtifactPreviewModal.d.ts +5 -5
- package/execution/ArtifactPreviewModal.js +4 -4
- package/execution/ArtifactPreviewModal.js.map +1 -1
- package/execution/FileChangeProgressBar.d.ts +47 -0
- package/execution/FileChangeProgressBar.d.ts.map +1 -0
- package/execution/FileChangeProgressBar.js +49 -0
- package/execution/FileChangeProgressBar.js.map +1 -0
- package/execution/FileChangesView.d.ts.map +1 -1
- package/execution/FileChangesView.js +19 -4
- package/execution/FileChangesView.js.map +1 -1
- package/execution/FileReviewAtoms.d.ts +27 -0
- package/execution/FileReviewAtoms.d.ts.map +1 -0
- package/execution/FileReviewAtoms.js +64 -0
- package/execution/FileReviewAtoms.js.map +1 -0
- package/execution/FileReviewCard.d.ts +2 -2
- package/execution/FileReviewCard.d.ts.map +1 -1
- package/execution/FileReviewCard.js +32 -62
- package/execution/FileReviewCard.js.map +1 -1
- package/execution/MessageEntry.d.ts +0 -9
- package/execution/MessageEntry.d.ts.map +1 -1
- package/execution/MessageEntry.js +1 -11
- package/execution/MessageEntry.js.map +1 -1
- package/execution/MessageThread.d.ts +3 -4
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +25 -11
- package/execution/MessageThread.js.map +1 -1
- package/execution/PlanArtifactCard.d.ts +16 -10
- package/execution/PlanArtifactCard.d.ts.map +1 -1
- package/execution/PlanArtifactCard.js +31 -7
- package/execution/PlanArtifactCard.js.map +1 -1
- package/execution/PlanCompletionCard.d.ts +4 -4
- package/execution/PlanCompletionCard.d.ts.map +1 -1
- package/execution/PlanCompletionCard.js +4 -4
- package/execution/PlanCompletionCard.js.map +1 -1
- package/execution/PlanStreamingCard.d.ts +7 -2
- package/execution/PlanStreamingCard.d.ts.map +1 -1
- package/execution/PlanStreamingCard.js +11 -6
- package/execution/PlanStreamingCard.js.map +1 -1
- package/execution/index.d.ts +4 -0
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js +2 -0
- package/execution/index.js.map +1 -1
- package/execution/use-build-from-plan-hotkey.d.ts +1 -1
- package/execution/use-build-from-plan-hotkey.js +1 -1
- package/execution/useArtifactCopy.d.ts +51 -0
- package/execution/useArtifactCopy.d.ts.map +1 -0
- package/execution/useArtifactCopy.js +75 -0
- package/execution/useArtifactCopy.js.map +1 -0
- package/execution/useArtifactDownload.d.ts.map +1 -1
- package/execution/useArtifactDownload.js +17 -5
- package/execution/useArtifactDownload.js.map +1 -1
- package/execution/useCreateAgentExecution.d.ts +5 -3
- package/execution/useCreateAgentExecution.d.ts.map +1 -1
- package/execution/useCreateAgentExecution.js.map +1 -1
- package/index.d.ts +3 -3
- package/index.d.ts.map +1 -1
- package/index.js +2 -2
- package/index.js.map +1 -1
- package/internal/file-tree/FileTreeNode.d.ts.map +1 -1
- package/internal/file-tree/FileTreeNode.js +2 -2
- package/internal/file-tree/FileTreeNode.js.map +1 -1
- package/library/detect-plan-artifact.d.ts +27 -9
- package/library/detect-plan-artifact.d.ts.map +1 -1
- package/library/detect-plan-artifact.js +26 -6
- package/library/detect-plan-artifact.js.map +1 -1
- package/library/index.d.ts +1 -1
- package/library/index.d.ts.map +1 -1
- package/library/index.js +1 -1
- package/library/index.js.map +1 -1
- package/package.json +4 -4
- package/session/PlanEditor.js +1 -1
- package/session/PlanEditor.js.map +1 -1
- package/session/SessionViewer.d.ts.map +1 -1
- package/session/SessionViewer.js +32 -13
- package/session/SessionViewer.js.map +1 -1
- package/session/plan-document.d.ts +14 -2
- package/session/plan-document.d.ts.map +1 -1
- package/session/plan-document.js +14 -3
- package/session/plan-document.js.map +1 -1
- package/session/usePlanDraft.d.ts +1 -1
- package/session/useSessionConversation.d.ts +9 -2
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +19 -2
- package/session/useSessionConversation.js.map +1 -1
- package/src/composer/SessionComposer.tsx +7 -6
- package/src/execution/ArtifactPreviewModal.tsx +9 -9
- package/src/execution/FileChangeProgressBar.tsx +121 -0
- package/src/execution/FileChangesView.tsx +18 -4
- package/src/execution/FileReviewAtoms.tsx +89 -0
- package/src/execution/FileReviewCard.tsx +57 -90
- package/src/execution/MessageEntry.tsx +0 -62
- package/src/execution/MessageThread.tsx +29 -15
- package/src/execution/PlanArtifactCard.tsx +130 -52
- package/src/execution/PlanCompletionCard.tsx +5 -5
- package/src/execution/PlanStreamingCard.tsx +15 -11
- package/src/execution/__tests__/ArtifactPreviewModal.test.tsx +6 -6
- package/src/execution/__tests__/FileChangeProgressBar.test.tsx +125 -0
- package/src/execution/__tests__/FileReviewCard.test.tsx +66 -7
- package/src/execution/__tests__/MessageThread.test.tsx +1 -1
- package/src/execution/__tests__/PlanArtifactCard.test.tsx +52 -18
- package/src/execution/__tests__/PlanCompletionCard.test.tsx +2 -2
- package/src/execution/__tests__/PlanStreamingCard.test.tsx +11 -4
- package/src/execution/__tests__/buildThreadItems-plan-completion.test.ts +104 -8
- package/src/execution/__tests__/message-entry.test.tsx +6 -37
- package/src/execution/__tests__/useArtifactCopy.test.tsx +90 -0
- package/src/execution/__tests__/useArtifactDownload.test.tsx +2 -0
- package/src/execution/index.ts +6 -0
- package/src/execution/use-build-from-plan-hotkey.ts +1 -1
- package/src/execution/useArtifactCopy.ts +109 -0
- package/src/execution/useArtifactDownload.ts +17 -5
- package/src/execution/useCreateAgentExecution.ts +5 -3
- package/src/index.ts +6 -0
- package/src/internal/file-tree/FileTreeNode.tsx +13 -2
- package/src/library/__tests__/detect-plan-artifact.test.ts +21 -0
- package/src/library/detect-plan-artifact.ts +32 -10
- package/src/library/index.ts +2 -0
- package/src/session/PlanEditor.tsx +1 -1
- package/src/session/SessionViewer.tsx +50 -18
- package/src/session/__tests__/PlanEditor.test.tsx +4 -4
- package/src/session/__tests__/PlanStreamingDocument.test.tsx +1 -1
- package/src/session/__tests__/SessionViewer-fileReviewDock.test.tsx +57 -0
- package/src/session/__tests__/useSessionConversation.test.tsx +44 -0
- package/src/session/facets/__tests__/ArtifactsTab.test.tsx +7 -7
- package/src/session/plan-document.ts +14 -3
- package/src/session/usePlanDraft.ts +1 -1
- package/src/session/useSessionConversation.ts +32 -4
- package/src/workspace/EditorTabs.tsx +38 -9
- package/src/workspace/ExplorerTree.tsx +10 -4
- package/src/workspace/FileViewer.tsx +27 -6
- package/src/workspace/WorkspaceContentSearch.tsx +44 -20
- package/src/workspace/WorkspaceEditor.tsx +19 -16
- package/src/workspace/WorkspaceFileSearch.tsx +51 -28
- package/src/workspace/WorkspaceSurface.tsx +106 -48
- package/src/workspace/__tests__/EditorTabs.test.tsx +4 -2
- package/src/workspace/__tests__/ExplorerTree.test.tsx +52 -0
- package/src/workspace/__tests__/FileViewer.test.tsx +18 -0
- package/src/workspace/__tests__/WorkspaceContentSearch.test.tsx +38 -5
- package/src/workspace/__tests__/WorkspaceEditor-initialPanel.test.tsx +19 -0
- package/src/workspace/__tests__/WorkspaceFileSearch.test.tsx +27 -6
- package/src/workspace/__tests__/WorkspaceSurface.test.tsx +70 -0
- package/src/workspace/__tests__/a11y/harness.tsx +140 -0
- package/src/workspace/__tests__/a11y/mock-capabilities.ts +138 -0
- package/src/workspace/__tests__/a11y/workspace-editor.a11y.test.tsx +65 -0
- package/src/workspace/__tests__/a11y/workspace-explorer-search.a11y.test.tsx +112 -0
- package/src/workspace/__tests__/a11y/workspace-viewer-tabs.a11y.test.tsx +69 -0
- package/styles.css +1 -1
- package/workspace/EditorTabs.d.ts +21 -3
- package/workspace/EditorTabs.d.ts.map +1 -1
- package/workspace/EditorTabs.js +18 -6
- package/workspace/EditorTabs.js.map +1 -1
- package/workspace/ExplorerTree.js +8 -4
- package/workspace/ExplorerTree.js.map +1 -1
- package/workspace/FileViewer.d.ts.map +1 -1
- package/workspace/FileViewer.js +19 -8
- package/workspace/FileViewer.js.map +1 -1
- package/workspace/WorkspaceContentSearch.d.ts.map +1 -1
- package/workspace/WorkspaceContentSearch.js +23 -2
- package/workspace/WorkspaceContentSearch.js.map +1 -1
- package/workspace/WorkspaceEditor.d.ts.map +1 -1
- package/workspace/WorkspaceEditor.js +8 -10
- package/workspace/WorkspaceEditor.js.map +1 -1
- package/workspace/WorkspaceFileSearch.d.ts.map +1 -1
- package/workspace/WorkspaceFileSearch.js +23 -3
- package/workspace/WorkspaceFileSearch.js.map +1 -1
- package/workspace/WorkspaceSurface.d.ts.map +1 -1
- package/workspace/WorkspaceSurface.js +54 -18
- package/workspace/WorkspaceSurface.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionConversation.js","sourceRoot":"","sources":["../../src/session/useSessionConversation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSessionConversation.js","sourceRoot":"","sources":["../../src/session/useSessionConversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,8 +90,9 @@ export interface SessionComposerHandle {
|
|
|
90
90
|
* plan" to deliver the approved `plan.md` to the implement execution.
|
|
91
91
|
* @param options.buildFromPlan - Marks this submission as the implement
|
|
92
92
|
* turn of a Plan → Build handoff (`execution_config.build_from_plan`).
|
|
93
|
-
* The runner injects the implement-plan directive and the thread
|
|
94
|
-
* the turn
|
|
93
|
+
* The runner injects the implement-plan directive and the thread hides
|
|
94
|
+
* the turn's message; the message stays a short label for surfaces
|
|
95
|
+
* without that treatment (the CLI, history).
|
|
95
96
|
*/
|
|
96
97
|
submit(
|
|
97
98
|
message: string,
|
|
@@ -156,13 +157,13 @@ export interface SessionComposerSubmitContext {
|
|
|
156
157
|
*/
|
|
157
158
|
readonly workspaceFileRefs?: string[];
|
|
158
159
|
/**
|
|
159
|
-
* The submission is a
|
|
160
|
+
* The submission is a Build-from-plan turn.
|
|
160
161
|
*
|
|
161
162
|
* Only ever set through {@link SessionComposerHandle.submit} (the thread
|
|
162
163
|
* card / plan editor CTA) — there is no composer UI for it. Pass to
|
|
163
164
|
* execution creation as `execution_config.build_from_plan`; the runner
|
|
164
|
-
* injects the implement-plan directive and the thread
|
|
165
|
-
*
|
|
165
|
+
* injects the implement-plan directive and the thread hides the turn's
|
|
166
|
+
* machine-written message (the plan card above it is the visible cause).
|
|
166
167
|
*
|
|
167
168
|
* `undefined` for ordinary submissions.
|
|
168
169
|
*/
|
|
@@ -796,7 +797,7 @@ const SessionComposerInner = forwardRef<SessionComposerHandle, SessionComposerPr
|
|
|
796
797
|
}
|
|
797
798
|
|
|
798
799
|
// Composer-attached files plus caller-supplied extras (e.g. the approved
|
|
799
|
-
// plan.md from
|
|
800
|
+
// plan.md from a Build-from-plan turn) travel as one attachment list.
|
|
800
801
|
const composerAttachments = enableAttachments
|
|
801
802
|
? attachments.toAttachmentInputs()
|
|
802
803
|
: [];
|
|
@@ -47,10 +47,10 @@ export interface ArtifactPreviewContentProps {
|
|
|
47
47
|
*/
|
|
48
48
|
readonly onApplied?: (result: ApplyResourceResult) => void;
|
|
49
49
|
/**
|
|
50
|
-
* Optional plan-build action. When provided, a "Build
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
50
|
+
* Optional plan-build action. When provided, a "Build" primary button
|
|
51
|
+
* appears in the action bar (used for plan artifacts: turn the plan into
|
|
52
|
+
* an Agent run). Clicking it calls `onImplement` then closes the modal.
|
|
53
|
+
* Omit for non-actionable artifacts.
|
|
54
54
|
*/
|
|
55
55
|
readonly onImplement?: () => void;
|
|
56
56
|
/** Additional CSS classes for the root container. */
|
|
@@ -228,9 +228,9 @@ export function ArtifactPreviewContent({
|
|
|
228
228
|
ctaLabel = `Push Skill to ${org}`;
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
-
// "Build
|
|
232
|
-
//
|
|
233
|
-
//
|
|
231
|
+
// "Build" runs the plan; closing the modal lets the host's submit pipeline
|
|
232
|
+
// take over (switch to Agent + send). Single combined handler keeps the
|
|
233
|
+
// caller's contract simple ("just give me onImplement").
|
|
234
234
|
const handleImplement = useCallback(() => {
|
|
235
235
|
onImplement?.();
|
|
236
236
|
onClose();
|
|
@@ -329,7 +329,7 @@ export interface ArtifactPreviewModalProps {
|
|
|
329
329
|
readonly onApplied?: (result: ApplyResourceResult) => void;
|
|
330
330
|
/**
|
|
331
331
|
* Optional plan-build action (see {@link ArtifactPreviewContentProps.onImplement}).
|
|
332
|
-
* When provided, a "Build
|
|
332
|
+
* When provided, a "Build" primary button appears; clicking it calls
|
|
333
333
|
* `onImplement` then closes the modal.
|
|
334
334
|
*/
|
|
335
335
|
readonly onImplement?: () => void;
|
|
@@ -701,7 +701,7 @@ function ActionBar({
|
|
|
701
701
|
)}
|
|
702
702
|
>
|
|
703
703
|
<ImplementIcon />
|
|
704
|
-
Build
|
|
704
|
+
Build
|
|
705
705
|
</button>
|
|
706
706
|
)}
|
|
707
707
|
{applyResult ? (
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { memo, useState } from "react";
|
|
4
|
+
import type { FileChangeProgress } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
|
|
5
|
+
import { cn } from "@stigmer/theme";
|
|
6
|
+
import { FileKindBadge, FileLineStats } from "./FileReviewAtoms.js";
|
|
7
|
+
import { FilePathLink } from "./FilePathLink.js";
|
|
8
|
+
|
|
9
|
+
/** Props for {@link FileChangeProgressBar}. */
|
|
10
|
+
export interface FileChangeProgressBarProps {
|
|
11
|
+
/**
|
|
12
|
+
* The transient mid-run progress snapshot for the active turn (DD-32). Feed
|
|
13
|
+
* this from `useSessionConversation().fileChangeProgress`. Renders nothing when
|
|
14
|
+
* undefined or when no files have changed yet — the server clears it once the
|
|
15
|
+
* turn's change set leaves CAPTURING, so the bar disappears exactly when the
|
|
16
|
+
* decision surface ({@link FileReviewDock}) takes over.
|
|
17
|
+
*/
|
|
18
|
+
readonly progress: FileChangeProgress | undefined;
|
|
19
|
+
/** Additional CSS class names for the root container. */
|
|
20
|
+
readonly className?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The live "N files changed so far" strip for a turn that is still running.
|
|
25
|
+
*
|
|
26
|
+
* WHY IT EXISTS. The transcript streams per-edit tool rows, but a change made by
|
|
27
|
+
* a shell command (a `sed`, a build step) has no tool row, and there is no
|
|
28
|
+
* running net-of-many-edits rollup until the turn ends. This bar fills that gap:
|
|
29
|
+
* a compact, NON-INTERACTIVE count of the workspace delta accumulating during
|
|
30
|
+
* the turn, pinned above the composer where the {@link FileReviewDock} will later
|
|
31
|
+
* appear. The two are mutually exclusive per turn (progress shows while CAPTURING;
|
|
32
|
+
* the dock shows once AWAITING_REVIEW), so the bar hands off cleanly to the dock.
|
|
33
|
+
*
|
|
34
|
+
* NEVER A DECISION SURFACE. Progress is non-authoritative and carries no file
|
|
35
|
+
* bodies — it is never reviewable or decidable. The reviewed diff is the
|
|
36
|
+
* turn-boundary candidate ({@link FileReviewDock} / the stamped transcript rows).
|
|
37
|
+
* A secret-like path is surfaced by name with its counts withheld (zeroed), so
|
|
38
|
+
* `FileLineStats` renders nothing for it.
|
|
39
|
+
*
|
|
40
|
+
* A11Y. Only the summary count is an `aria-live` region — the per-file list is
|
|
41
|
+
* not — so a screen reader hears "3 files changing" as the count moves, not a
|
|
42
|
+
* per-file barrage on every ~2s refresh.
|
|
43
|
+
*
|
|
44
|
+
* Purely presentational (headless-first, DD-003): the data lives in
|
|
45
|
+
* `useSessionConversation().fileChangeProgress`. `SessionViewer` mounts it above
|
|
46
|
+
* the dock by default.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```tsx
|
|
50
|
+
* const conv = useSessionConversation(sessionId);
|
|
51
|
+
* <FileChangeProgressBar progress={conv.fileChangeProgress} />
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export const FileChangeProgressBar = memo(function FileChangeProgressBar({
|
|
55
|
+
progress,
|
|
56
|
+
className,
|
|
57
|
+
}: FileChangeProgressBarProps) {
|
|
58
|
+
const [expanded, setExpanded] = useState(false);
|
|
59
|
+
|
|
60
|
+
if (!progress || progress.filesChanged === 0) return null;
|
|
61
|
+
|
|
62
|
+
const { filesChanged, linesAdded, linesRemoved, entries } = progress;
|
|
63
|
+
const hiddenCount = filesChanged - entries.length;
|
|
64
|
+
|
|
65
|
+
return (
|
|
66
|
+
<div
|
|
67
|
+
role="region"
|
|
68
|
+
aria-label="File changes in progress"
|
|
69
|
+
data-cursor-target="file-change-progress-bar"
|
|
70
|
+
className={cn("border-t border-border-muted px-4 py-2", className)}
|
|
71
|
+
>
|
|
72
|
+
<div className="flex items-center gap-2">
|
|
73
|
+
<button
|
|
74
|
+
type="button"
|
|
75
|
+
onClick={() => setExpanded((prev) => !prev)}
|
|
76
|
+
aria-expanded={expanded}
|
|
77
|
+
className="flex min-w-0 flex-1 items-center gap-2 text-left text-xs text-muted-foreground hover:text-foreground"
|
|
78
|
+
>
|
|
79
|
+
<span
|
|
80
|
+
aria-hidden="true"
|
|
81
|
+
className={cn("shrink-0 transition-transform", expanded && "rotate-90")}
|
|
82
|
+
>
|
|
83
|
+
▸
|
|
84
|
+
</span>
|
|
85
|
+
{/* Only the count is live: a screen reader hears the aggregate move,
|
|
86
|
+
not a per-file announcement on every refresh. */}
|
|
87
|
+
<span aria-live="polite" className="min-w-0 truncate">
|
|
88
|
+
{filesChanged} {filesChanged === 1 ? "file" : "files"} changing…
|
|
89
|
+
</span>
|
|
90
|
+
</button>
|
|
91
|
+
<FileLineStats linesAdded={linesAdded} linesRemoved={linesRemoved} />
|
|
92
|
+
</div>
|
|
93
|
+
{expanded && (
|
|
94
|
+
<ul className="mt-2 max-h-[30vh] space-y-1 overflow-y-auto">
|
|
95
|
+
{entries.map((entry) => {
|
|
96
|
+
const path = entry.pathAfter || entry.pathBefore;
|
|
97
|
+
return (
|
|
98
|
+
<li key={path} className="flex items-center gap-2">
|
|
99
|
+
<FileKindBadge kind={entry.kind} />
|
|
100
|
+
<FilePathLink
|
|
101
|
+
path={path}
|
|
102
|
+
dirDisplay="dim"
|
|
103
|
+
className="min-w-0 flex-1 text-xs"
|
|
104
|
+
/>
|
|
105
|
+
<FileLineStats
|
|
106
|
+
linesAdded={entry.linesAdded}
|
|
107
|
+
linesRemoved={entry.linesRemoved}
|
|
108
|
+
/>
|
|
109
|
+
</li>
|
|
110
|
+
);
|
|
111
|
+
})}
|
|
112
|
+
{hiddenCount > 0 && (
|
|
113
|
+
<li className="text-xs text-muted-foreground-faint">
|
|
114
|
+
… and {hiddenCount} more
|
|
115
|
+
</li>
|
|
116
|
+
)}
|
|
117
|
+
</ul>
|
|
118
|
+
)}
|
|
119
|
+
</div>
|
|
120
|
+
);
|
|
121
|
+
});
|
|
@@ -167,7 +167,13 @@ export function FileChangeDiff({
|
|
|
167
167
|
if (change.captureLevel === FileChangeCaptureLevel.HUNK_ONLY) {
|
|
168
168
|
return { additions: change.linesAdded, deletions: change.linesRemoved };
|
|
169
169
|
}
|
|
170
|
-
|
|
170
|
+
// Whole-file: count the rendered hunks (what the user actually sees). When
|
|
171
|
+
// there are none to count — the body is offloaded/loading/truncated — fall
|
|
172
|
+
// back to the capture-time counts, which are computed with the same diff
|
|
173
|
+
// algorithm and so agree with the hunks whenever both exist.
|
|
174
|
+
const computed = countHunks(hunks);
|
|
175
|
+
if (computed.additions > 0 || computed.deletions > 0) return computed;
|
|
176
|
+
return { additions: change.linesAdded, deletions: change.linesRemoved };
|
|
171
177
|
}, [change.captureLevel, change.linesAdded, change.linesRemoved, hunks]);
|
|
172
178
|
|
|
173
179
|
const showStatsRow = showStats && (stats.additions > 0 || stats.deletions > 0);
|
|
@@ -343,8 +349,11 @@ function countHunks(hunks: readonly DiffHunk[]): {
|
|
|
343
349
|
* Projects a {@link FileChange} into a {@link FileDiffEntry} for the file list.
|
|
344
350
|
*
|
|
345
351
|
* Counts: hunk-only uses the runner's authoritative numbers; whole-file inline
|
|
346
|
-
* is derived from the content
|
|
347
|
-
*
|
|
352
|
+
* is derived from the content (identical to the runner's capture-time counts by
|
|
353
|
+
* construction — same diff algorithm). A whole-file side with no synchronous
|
|
354
|
+
* content (offloaded / binary) falls back to the runner's capture-time
|
|
355
|
+
* `linesAdded`/`linesRemoved` — zero when no count exists, which the list
|
|
356
|
+
* renders as no stat.
|
|
348
357
|
*/
|
|
349
358
|
function toFileDiffEntry(change: FileChange): FileDiffEntry {
|
|
350
359
|
const changeType =
|
|
@@ -370,7 +379,12 @@ function toFileDiffEntry(change: FileChange): FileDiffEntry {
|
|
|
370
379
|
return { path: change.path, changeType, additions, deletions };
|
|
371
380
|
}
|
|
372
381
|
|
|
373
|
-
return {
|
|
382
|
+
return {
|
|
383
|
+
path: change.path,
|
|
384
|
+
changeType,
|
|
385
|
+
additions: change.linesAdded,
|
|
386
|
+
deletions: change.linesRemoved,
|
|
387
|
+
};
|
|
374
388
|
}
|
|
375
389
|
|
|
376
390
|
/** Inline text of a side, or null when absent/offloaded/binary. */
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { FileChangeKind } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
4
|
+
import { cn } from "@stigmer/theme";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Shared presentational atoms for the file-review surfaces — the single source
|
|
8
|
+
* for the `+N −M` stat and the change-kind marker, so the review card, the
|
|
9
|
+
* compact list, and the mid-run progress bar can never drift in how they render
|
|
10
|
+
* a file's magnitude or kind.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The `+N −M` stat for one file (or a whole set), in the same visual vocabulary
|
|
15
|
+
* as the tool-row diff stats. Renders nothing when both counts are zero — the
|
|
16
|
+
* honest signal that no count exists (binary or secret-withheld changes, records
|
|
17
|
+
* captured before counts were stamped) — rather than a misleading `+0 −0`.
|
|
18
|
+
*/
|
|
19
|
+
export function FileLineStats({
|
|
20
|
+
linesAdded,
|
|
21
|
+
linesRemoved,
|
|
22
|
+
}: {
|
|
23
|
+
readonly linesAdded: number;
|
|
24
|
+
readonly linesRemoved: number;
|
|
25
|
+
}) {
|
|
26
|
+
if (linesAdded === 0 && linesRemoved === 0) return null;
|
|
27
|
+
return (
|
|
28
|
+
<span
|
|
29
|
+
className="shrink-0 text-xs tabular-nums"
|
|
30
|
+
aria-label={`${linesAdded} added, ${linesRemoved} removed`}
|
|
31
|
+
data-cursor-target="file-review-line-stats"
|
|
32
|
+
>
|
|
33
|
+
<span className="text-diff-added-fg">+{linesAdded}</span>{" "}
|
|
34
|
+
<span className="text-diff-removed-fg">-{linesRemoved}</span>
|
|
35
|
+
</span>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** The kind letter, tone, and a11y name for each wire {@link FileChangeKind}. */
|
|
40
|
+
const KIND_BADGE: Partial<
|
|
41
|
+
Record<FileChangeKind, { letter: string; colorClass: string; label: string }>
|
|
42
|
+
> = {
|
|
43
|
+
[FileChangeKind.ADD]: {
|
|
44
|
+
letter: "A",
|
|
45
|
+
colorClass: "text-diff-added-fg",
|
|
46
|
+
label: "added",
|
|
47
|
+
},
|
|
48
|
+
[FileChangeKind.MODIFY]: {
|
|
49
|
+
letter: "M",
|
|
50
|
+
colorClass: "text-diff-hunk-header-fg",
|
|
51
|
+
label: "modified",
|
|
52
|
+
},
|
|
53
|
+
[FileChangeKind.DELETE]: {
|
|
54
|
+
letter: "D",
|
|
55
|
+
colorClass: "text-diff-removed-fg",
|
|
56
|
+
label: "deleted",
|
|
57
|
+
},
|
|
58
|
+
[FileChangeKind.RENAME]: {
|
|
59
|
+
letter: "R",
|
|
60
|
+
colorClass: "text-diff-hunk-header-fg",
|
|
61
|
+
label: "renamed",
|
|
62
|
+
},
|
|
63
|
+
// A binary change is a modification whose diff is not text; the letter stays
|
|
64
|
+
// M and the binary-ness is told by the row's "Keep anyway" + reason note.
|
|
65
|
+
[FileChangeKind.BINARY_CHANGE]: {
|
|
66
|
+
letter: "M",
|
|
67
|
+
colorClass: "text-diff-hunk-header-fg",
|
|
68
|
+
label: "modified (binary)",
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The single-letter change-kind marker — the same M/A/D visual vocabulary as
|
|
74
|
+
* the version-history `DiffFileList`, extended with R for captured renames.
|
|
75
|
+
* The letter itself is the non-color channel; the full word is exposed to
|
|
76
|
+
* assistive tech. An UNSPECIFIED kind renders nothing rather than guessing.
|
|
77
|
+
*/
|
|
78
|
+
export function FileKindBadge({ kind }: { kind: FileChangeKind }) {
|
|
79
|
+
const badge = KIND_BADGE[kind];
|
|
80
|
+
if (!badge) return null;
|
|
81
|
+
return (
|
|
82
|
+
<span
|
|
83
|
+
className={cn("shrink-0 font-mono text-[10px] font-bold", badge.colorClass)}
|
|
84
|
+
aria-label={badge.label}
|
|
85
|
+
>
|
|
86
|
+
{badge.letter}
|
|
87
|
+
</span>
|
|
88
|
+
);
|
|
89
|
+
}
|
|
@@ -16,10 +16,11 @@ import {
|
|
|
16
16
|
import { toDisplayFileChange } from "@stigmer/sdk";
|
|
17
17
|
import { cn } from "@stigmer/theme";
|
|
18
18
|
import { FileChangeDiff } from "./FileChangesView.js";
|
|
19
|
+
import { FileKindBadge, FileLineStats } from "./FileReviewAtoms.js";
|
|
20
|
+
import { FilePathLink } from "./FilePathLink.js";
|
|
19
21
|
import { DiffSummary } from "../version-history/DiffSummary.js";
|
|
20
22
|
import { DecisionButton } from "../internal/DecisionButton.js";
|
|
21
23
|
import { InCardDecisionError } from "../internal/InCardDecisionError.js";
|
|
22
|
-
import { splitDisplayPath } from "./file-path-resolver.js";
|
|
23
24
|
import { fileDecisionKey, type FileDecisionOptions } from "./useFileReview.js";
|
|
24
25
|
import {
|
|
25
26
|
changeSetReviewability,
|
|
@@ -62,8 +63,8 @@ export interface FileReviewCardProps {
|
|
|
62
63
|
*
|
|
63
64
|
* `MessageThread` passes `false`: the transcript's stamped edit rows already
|
|
64
65
|
* show every diff in place, so the expanded body collapses to a compact file
|
|
65
|
-
* list (kind letter + path + per-file controls) and the card
|
|
66
|
-
* the decision surface. Decision semantics — digests, scopes,
|
|
66
|
+
* list (kind letter + linked path + `+N −M` + per-file controls) and the card
|
|
67
|
+
* stays purely the decision surface. Decision semantics — digests, scopes,
|
|
67
68
|
* acknowledgments — are identical in both modes; this is presentation only
|
|
68
69
|
* (opt-in with a backward-compatible default, DD-011).
|
|
69
70
|
*/
|
|
@@ -194,11 +195,18 @@ export const FileReviewCard = memo(function FileReviewCard({
|
|
|
194
195
|
|
|
195
196
|
// The bar starts expanded exactly when the collapsed bar cannot honestly carry
|
|
196
197
|
// the decision: an incomplete set (binary acknowledgment / blocked files need
|
|
197
|
-
// their per-file context)
|
|
198
|
-
//
|
|
199
|
-
//
|
|
198
|
+
// their per-file context), a review already in progress, or a multi-file set
|
|
199
|
+
// in compact-list mode — its honest decision surface includes the per-file
|
|
200
|
+
// Keep/Discard controls, which must be visible without hunting behind the
|
|
201
|
+
// expander (the docked strip bounds the height, so expanding is cheap there).
|
|
202
|
+
// Diff-rich mode (`showDiffs`) deliberately stays collapsed for a complete
|
|
203
|
+
// multi-file set: its expanded body is every full diff with no height cap
|
|
204
|
+
// (the workflow file-review list), where "Review" is the act of opening it.
|
|
205
|
+
// A settled record always starts collapsed — the transcript's stamped rows
|
|
206
|
+
// already show what changed, and the expander reveals detail on demand.
|
|
200
207
|
const [expanded, setExpanded] = useState(
|
|
201
|
-
() =>
|
|
208
|
+
() =>
|
|
209
|
+
interactive && (incomplete || decidedCount > 0 || (total > 1 && !showDiffs)),
|
|
202
210
|
);
|
|
203
211
|
const bodyId = useId();
|
|
204
212
|
|
|
@@ -251,12 +259,18 @@ export const FileReviewCard = memo(function FileReviewCard({
|
|
|
251
259
|
[onSubmit],
|
|
252
260
|
);
|
|
253
261
|
|
|
262
|
+
// The set's aggregate `+N −M`, summed from the capture-time per-file counts
|
|
263
|
+
// (linesAdded/linesRemoved are stamped by the runner with the same diff
|
|
264
|
+
// algorithm the renderers use — see CapturedFileChange). A file with no
|
|
265
|
+
// counts (binary, secret-withheld, or a record predating the fields)
|
|
266
|
+
// contributes zero; when NO file has counts the aggregate is hidden rather
|
|
267
|
+
// than shown as a dishonest "+0 −0".
|
|
254
268
|
const totals = useMemo(() => {
|
|
255
269
|
let additions = 0;
|
|
256
270
|
let deletions = 0;
|
|
257
271
|
for (const c of changes) {
|
|
258
|
-
|
|
259
|
-
|
|
272
|
+
additions += c.linesAdded;
|
|
273
|
+
deletions += c.linesRemoved;
|
|
260
274
|
}
|
|
261
275
|
return { additions, deletions };
|
|
262
276
|
}, [changes]);
|
|
@@ -311,8 +325,16 @@ export const FileReviewCard = memo(function FileReviewCard({
|
|
|
311
325
|
<span className="shrink-0 font-medium text-foreground">
|
|
312
326
|
{interactive ? "Review file changes" : "File changes"}
|
|
313
327
|
</span>
|
|
314
|
-
|
|
315
|
-
|
|
328
|
+
{/* The flexible middle: the summary (truncating) plus the set's
|
|
329
|
+
aggregate +N −M, visible even while collapsed so the bar carries
|
|
330
|
+
the magnitude of what is being decided, not just the file count.
|
|
331
|
+
Hidden when no file has counts (FileLineStats). */}
|
|
332
|
+
<span className="flex min-w-0 flex-1 items-center gap-2">
|
|
333
|
+
<span className="min-w-0 truncate text-muted-foreground">{summary}</span>
|
|
334
|
+
<FileLineStats
|
|
335
|
+
linesAdded={totals.additions}
|
|
336
|
+
linesRemoved={totals.deletions}
|
|
337
|
+
/>
|
|
316
338
|
</span>
|
|
317
339
|
|
|
318
340
|
{interactive && showBulkControls && (
|
|
@@ -390,9 +412,11 @@ export const FileReviewCard = memo(function FileReviewCard({
|
|
|
390
412
|
id={bodyId}
|
|
391
413
|
className="space-y-2 border-t border-border-muted px-3 py-2.5"
|
|
392
414
|
>
|
|
393
|
-
{/* The list body carries no summary header: the
|
|
394
|
-
file count
|
|
395
|
-
|
|
415
|
+
{/* The list body carries no summary header: the bar already shows
|
|
416
|
+
the file count and the aggregate +N −M (per-file counts are
|
|
417
|
+
capture-time facts on the wire — linesAdded/linesRemoved — so no
|
|
418
|
+
body fetch is ever needed to decorate the list). Diff mode keeps
|
|
419
|
+
its fuller DiffSummary line above the rendered diffs. */}
|
|
396
420
|
{showDiffs && (
|
|
397
421
|
<DiffSummary
|
|
398
422
|
fileCount={total}
|
|
@@ -640,15 +664,17 @@ function CapturedChangeDiff({ change }: { change: CapturedFileChange }) {
|
|
|
640
664
|
// ---------------------------------------------------------------------------
|
|
641
665
|
|
|
642
666
|
/**
|
|
643
|
-
* One file of the change set as a compact
|
|
644
|
-
*
|
|
667
|
+
* One file of the change set as a compact list line: kind letter, linked path,
|
|
668
|
+
* `+N −M` stats, provenance badge, and an optional trailing slot (the verdict
|
|
645
669
|
* control while reviewing; the committed verdict once settled).
|
|
646
670
|
*
|
|
647
|
-
* The path
|
|
648
|
-
*
|
|
649
|
-
*
|
|
650
|
-
*
|
|
651
|
-
*
|
|
671
|
+
* The path renders through `FilePathLink` — the platform-wide path idiom — so
|
|
672
|
+
* a reviewer can jump from the list to the file itself (the session viewer
|
|
673
|
+
* routes the click into the panel's diff-first viewer; GitHub/copy is the
|
|
674
|
+
* fallback) without leaving the decision surface. Deciding and navigating
|
|
675
|
+
* coexist: the link stops click propagation, so opening a file never fights
|
|
676
|
+
* the row's Keep/Discard controls. A rename shows its source path so the move
|
|
677
|
+
* reads in one line.
|
|
652
678
|
*/
|
|
653
679
|
function FileListRow({
|
|
654
680
|
change,
|
|
@@ -658,7 +684,6 @@ function FileListRow({
|
|
|
658
684
|
readonly trailing?: React.ReactNode;
|
|
659
685
|
}) {
|
|
660
686
|
const path = change.pathAfter || change.pathBefore;
|
|
661
|
-
const { dir, base } = splitDisplayPath(path);
|
|
662
687
|
const renamedFrom =
|
|
663
688
|
change.kind === FileChangeKind.RENAME && change.pathBefore !== change.pathAfter
|
|
664
689
|
? change.pathBefore
|
|
@@ -669,80 +694,22 @@ function FileListRow({
|
|
|
669
694
|
data-cursor-target="file-review-list-row"
|
|
670
695
|
>
|
|
671
696
|
<FileKindBadge kind={change.kind} />
|
|
672
|
-
{
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
)}
|
|
683
|
-
{dir && (
|
|
684
|
-
<span className="min-w-0 truncate text-muted-foreground-faint">{dir}</span>
|
|
685
|
-
)}
|
|
686
|
-
<span className="shrink-0">{base}</span>
|
|
687
|
-
</span>
|
|
697
|
+
{renamedFrom && (
|
|
698
|
+
<span className="min-w-0 truncate font-mono text-xs text-muted-foreground-faint">
|
|
699
|
+
{renamedFrom} →
|
|
700
|
+
</span>
|
|
701
|
+
)}
|
|
702
|
+
<FilePathLink path={path} dirDisplay="dim" className="min-w-0 flex-1 text-xs" />
|
|
703
|
+
<FileLineStats
|
|
704
|
+
linesAdded={change.linesAdded}
|
|
705
|
+
linesRemoved={change.linesRemoved}
|
|
706
|
+
/>
|
|
688
707
|
<CaptureBadge change={change} />
|
|
689
708
|
{trailing}
|
|
690
709
|
</div>
|
|
691
710
|
);
|
|
692
711
|
}
|
|
693
712
|
|
|
694
|
-
/** The kind letter, tone, and a11y name for each wire {@link FileChangeKind}. */
|
|
695
|
-
const KIND_BADGE: Partial<
|
|
696
|
-
Record<FileChangeKind, { letter: string; colorClass: string; label: string }>
|
|
697
|
-
> = {
|
|
698
|
-
[FileChangeKind.ADD]: {
|
|
699
|
-
letter: "A",
|
|
700
|
-
colorClass: "text-diff-added-fg",
|
|
701
|
-
label: "added",
|
|
702
|
-
},
|
|
703
|
-
[FileChangeKind.MODIFY]: {
|
|
704
|
-
letter: "M",
|
|
705
|
-
colorClass: "text-diff-hunk-header-fg",
|
|
706
|
-
label: "modified",
|
|
707
|
-
},
|
|
708
|
-
[FileChangeKind.DELETE]: {
|
|
709
|
-
letter: "D",
|
|
710
|
-
colorClass: "text-diff-removed-fg",
|
|
711
|
-
label: "deleted",
|
|
712
|
-
},
|
|
713
|
-
[FileChangeKind.RENAME]: {
|
|
714
|
-
letter: "R",
|
|
715
|
-
colorClass: "text-diff-hunk-header-fg",
|
|
716
|
-
label: "renamed",
|
|
717
|
-
},
|
|
718
|
-
// A binary change is a modification whose diff is not text; the letter stays
|
|
719
|
-
// M and the binary-ness is told by the row's "Keep anyway" + reason note.
|
|
720
|
-
[FileChangeKind.BINARY_CHANGE]: {
|
|
721
|
-
letter: "M",
|
|
722
|
-
colorClass: "text-diff-hunk-header-fg",
|
|
723
|
-
label: "modified (binary)",
|
|
724
|
-
},
|
|
725
|
-
};
|
|
726
|
-
|
|
727
|
-
/**
|
|
728
|
-
* The single-letter change-kind marker — the same M/A/D visual vocabulary as
|
|
729
|
-
* the version-history `DiffFileList`, extended with R for captured renames.
|
|
730
|
-
* The letter itself is the non-color channel; the full word is exposed to
|
|
731
|
-
* assistive tech. An UNSPECIFIED kind renders nothing rather than guessing.
|
|
732
|
-
*/
|
|
733
|
-
function FileKindBadge({ kind }: { kind: FileChangeKind }) {
|
|
734
|
-
const badge = KIND_BADGE[kind];
|
|
735
|
-
if (!badge) return null;
|
|
736
|
-
return (
|
|
737
|
-
<span
|
|
738
|
-
className={cn("shrink-0 font-mono text-[10px] font-bold", badge.colorClass)}
|
|
739
|
-
aria-label={badge.label}
|
|
740
|
-
>
|
|
741
|
-
{badge.letter}
|
|
742
|
-
</span>
|
|
743
|
-
);
|
|
744
|
-
}
|
|
745
|
-
|
|
746
713
|
/**
|
|
747
714
|
* A change's committed verdict as a static badge: APPROVE reads "Kept" (the
|
|
748
715
|
* bytes were reconciled into the workspace), REJECT reads "Discarded" (reverted
|