@principal-ai/subsystems-react 0.28.3 → 0.28.5
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/dist/pierre/PierreFileView.d.ts.map +1 -1
- package/dist/pierre/PierreFileView.js +11 -1
- package/dist/pierre/PierreFileView.js.map +1 -1
- package/dist/pierre/PierreWalkthroughCodeView.d.ts +6 -1
- package/dist/pierre/PierreWalkthroughCodeView.d.ts.map +1 -1
- package/dist/pierre/PierreWalkthroughCodeView.js +83 -30
- package/dist/pierre/PierreWalkthroughCodeView.js.map +1 -1
- package/dist/pierre/fileAvailability.d.ts +17 -0
- package/dist/pierre/fileAvailability.d.ts.map +1 -0
- package/dist/pierre/fileAvailability.js +31 -0
- package/dist/pierre/fileAvailability.js.map +1 -0
- package/dist/subsystem/SubsystemComponentGraph.d.ts +12 -0
- package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -1
- package/dist/subsystem/SubsystemComponentGraph.js +70 -11
- package/dist/subsystem/SubsystemComponentGraph.js.map +1 -1
- package/package.json +1 -1
- package/src/pierre/PierreFileView.tsx +22 -0
- package/src/pierre/PierreWalkthroughCodeView.tsx +125 -39
- package/src/pierre/fileAvailability.test.ts +40 -0
- package/src/pierre/fileAvailability.ts +37 -0
- package/src/stories/Subsystem/ComponentGraph/Flows.stories.tsx +131 -16
- package/src/subsystem/SubsystemComponentGraph.tsx +100 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PierreFileView.d.ts","sourceRoot":"","sources":["../../src/pierre/PierreFileView.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"PierreFileView.d.ts","sourceRoot":"","sources":["../../src/pierre/PierreFileView.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAeH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,SAAS,GACV,EAAE,mBAAmB,+BAkHrB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
3
|
* PierreFileView — host-injected full-file code view via `@pierre/diffs`.
|
|
4
4
|
*
|
|
@@ -11,6 +11,7 @@ import { getFiletypeFromFileName, getHighlighterOptions, preloadHighlighter, } f
|
|
|
11
11
|
import { useTheme } from '@principal-ade/industry-theme';
|
|
12
12
|
import { buildPierreOptions, PIERRE_FILE_STYLE } from './pierreBackground';
|
|
13
13
|
import { pierreLangForPath } from './pierreFileLang';
|
|
14
|
+
import { isFileUnavailableError } from './fileAvailability';
|
|
14
15
|
import { scrollFocusLineIntoView } from './scrollAnchor';
|
|
15
16
|
export function PierreFileView({ filePath, fileName, readFile, background, focusLine, }) {
|
|
16
17
|
const { theme } = useTheme();
|
|
@@ -68,6 +69,15 @@ export function PierreFileView({ filePath, fileName, readFile, background, focus
|
|
|
68
69
|
...(focusLine != null ? { onPostRender } : {}),
|
|
69
70
|
}), [background, focusLine, onPostRender]);
|
|
70
71
|
if (error) {
|
|
72
|
+
// A file with no local checkout is usually a proposed seam that isn't
|
|
73
|
+
// implemented yet — explain that instead of echoing the host error.
|
|
74
|
+
if (isFileUnavailableError(error)) {
|
|
75
|
+
return (_jsxs("div", { style: { padding: 16, display: 'flex', flexDirection: 'column', gap: 4 }, children: [_jsx("span", { style: { color: theme.colors.text }, children: "This file isn't in the local checkout for this repo \u2014 it may be proposed or not yet implemented." }), _jsx("span", { style: {
|
|
76
|
+
color: theme.colors.textSecondary,
|
|
77
|
+
fontFamily: theme.fonts.monospace,
|
|
78
|
+
fontSize: theme.fontSizes[0],
|
|
79
|
+
}, children: filePath })] }));
|
|
80
|
+
}
|
|
71
81
|
return (_jsx("div", { style: { padding: 16, color: theme.colors.error ?? '#e5534b' }, children: error }));
|
|
72
82
|
}
|
|
73
83
|
if (fileObject === null || !highlighterReady) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PierreFileView.js","sourceRoot":"","sources":["../../src/pierre/PierreFileView.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PierreFileView.js","sourceRoot":"","sources":["../../src/pierre/PierreFileView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,11 @@ export interface PierreWalkthroughCodeViewProps {
|
|
|
21
21
|
background?: string;
|
|
22
22
|
/** Open the step's full source file (header button or double-click snippet body). */
|
|
23
23
|
onOpenFile?: (path: string, opts?: SubsystemOpenFileOptions) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Aliases of components marked `proposed`. A step whose file can't be read
|
|
26
|
+
* but whose endpoint is proposed reads as "planned" rather than "missing".
|
|
27
|
+
*/
|
|
28
|
+
proposedAliases?: ReadonlySet<string>;
|
|
24
29
|
}
|
|
25
|
-
export declare function PierreWalkthroughCodeView({ walkthrough, stepIndex, readFile, contextLines, background, onOpenFile, }: PierreWalkthroughCodeViewProps): import("react").JSX.Element;
|
|
30
|
+
export declare function PierreWalkthroughCodeView({ walkthrough, stepIndex, readFile, contextLines, background, onOpenFile, proposedAliases, }: PierreWalkthroughCodeViewProps): import("react").JSX.Element;
|
|
26
31
|
//# sourceMappingURL=PierreWalkthroughCodeView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PierreWalkthroughCodeView.d.ts","sourceRoot":"","sources":["../../src/pierre/PierreWalkthroughCodeView.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;AA4BH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"PierreWalkthroughCodeView.d.ts","sourceRoot":"","sources":["../../src/pierre/PierreWalkthroughCodeView.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;AA4BH,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAW5E,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,oBAAoB,CAAC;IAClC,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mFAAmF;IACnF,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACrE;;;OAGG;IACH,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACvC;AAoFD,wBAAgB,yBAAyB,CAAC,EACxC,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAgB,EAChB,UAAU,EACV,UAAU,EACV,eAAe,GAChB,EAAE,8BAA8B,+BAuUhC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
3
|
* PierreWalkthroughCodeView — multi-file step snippets via `@pierre/diffs` CodeView.
|
|
4
4
|
*
|
|
@@ -14,10 +14,30 @@ import { useTheme } from '@principal-ade/industry-theme';
|
|
|
14
14
|
import { buildPierreOptions, PIERRE_FILE_STYLE } from './pierreBackground';
|
|
15
15
|
import { pierreLangForPath } from './pierreFileLang';
|
|
16
16
|
import { resolvePierreSyntaxThemeName } from './pierreSyntaxTheme';
|
|
17
|
+
import { fileUnavailableNotice, isFileUnavailableError } from './fileAvailability';
|
|
17
18
|
import { remapSnippetLineNumbers, sliceSnippetWindow, } from './sliceSnippet';
|
|
18
19
|
function stepItemId(walkthroughId, index) {
|
|
19
20
|
return `${walkthroughId}:${index}`;
|
|
20
21
|
}
|
|
22
|
+
/** Stable key for a step's file within a repo (mirrors `pathsKey`). */
|
|
23
|
+
function siteKey(step) {
|
|
24
|
+
return `${step.purl}\0${step.file}`;
|
|
25
|
+
}
|
|
26
|
+
/** Notice shown in place of a snippet whose file the host couldn't read. */
|
|
27
|
+
function unavailableNotice(step, error, proposed) {
|
|
28
|
+
return isFileUnavailableError(error)
|
|
29
|
+
? fileUnavailableNotice(step.file, proposed)
|
|
30
|
+
: `Couldn't load ${step.file}: ${error}`;
|
|
31
|
+
}
|
|
32
|
+
/** A single-line placeholder snippet standing in for an unreadable file. */
|
|
33
|
+
function unavailableSlice(notice) {
|
|
34
|
+
return {
|
|
35
|
+
contents: `// ${notice}`,
|
|
36
|
+
sliceStart: 1,
|
|
37
|
+
sliceEnd: 1,
|
|
38
|
+
focusOffset: 1,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
21
41
|
function OpenFileHeaderButton({ file, line, onOpenFile, }) {
|
|
22
42
|
const { theme } = useTheme();
|
|
23
43
|
const [hover, setHover] = useState(false);
|
|
@@ -39,35 +59,51 @@ function OpenFileHeaderButton({ file, line, onOpenFile, }) {
|
|
|
39
59
|
transition: 'background 120ms ease, color 120ms ease',
|
|
40
60
|
}, children: [_jsx(Maximize2, { size: 11 }), "Open file"] }));
|
|
41
61
|
}
|
|
42
|
-
export function PierreWalkthroughCodeView({ walkthrough, stepIndex, readFile, contextLines = 8, background, onOpenFile, }) {
|
|
62
|
+
export function PierreWalkthroughCodeView({ walkthrough, stepIndex, readFile, contextLines = 8, background, onOpenFile, proposedAliases, }) {
|
|
43
63
|
const { theme, mode } = useTheme();
|
|
44
64
|
const viewRef = useRef(null);
|
|
45
65
|
const [load, setLoad] = useState({ status: 'loading' });
|
|
66
|
+
// A hop onto a proposed component is planned work; label its missing file
|
|
67
|
+
// accordingly instead of showing a bare "not found".
|
|
68
|
+
const isProposedStep = useCallback((step) => proposedAliases != null &&
|
|
69
|
+
(proposedAliases.has(step.from) || proposedAliases.has(step.to)), [proposedAliases]);
|
|
46
70
|
const pathsKey = useMemo(() => {
|
|
47
|
-
const keys = [...new Set(walkthrough.steps.map((s) =>
|
|
71
|
+
const keys = [...new Set(walkthrough.steps.map((s) => siteKey(s)))];
|
|
48
72
|
keys.sort();
|
|
49
73
|
return keys.join('\0');
|
|
50
74
|
}, [walkthrough.steps]);
|
|
75
|
+
// Load each site independently: one unreadable step (a proposed seam whose
|
|
76
|
+
// file isn't implemented yet) must not blank the whole walkthrough. Failures
|
|
77
|
+
// are kept per-path and rendered as inline placeholders below.
|
|
51
78
|
useEffect(() => {
|
|
52
79
|
let cancelled = false;
|
|
53
80
|
setLoad({ status: 'loading' });
|
|
54
|
-
const sites = [...new Map(walkthrough.steps.map((s) => [
|
|
81
|
+
const sites = [...new Map(walkthrough.steps.map((s) => [siteKey(s), s])).values()];
|
|
55
82
|
void Promise.all(sites.map(async (step) => {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
83
|
+
const key = siteKey(step);
|
|
84
|
+
try {
|
|
85
|
+
const contents = await readFile(step.file, step.purl);
|
|
86
|
+
return { key, contents, error: null };
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
return {
|
|
90
|
+
key,
|
|
91
|
+
contents: null,
|
|
92
|
+
error: err instanceof Error ? err.message : 'Failed to read file',
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
})).then((results) => {
|
|
60
96
|
if (cancelled)
|
|
61
97
|
return;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
});
|
|
98
|
+
const byPath = new Map();
|
|
99
|
+
const unavailable = new Map();
|
|
100
|
+
for (const row of results) {
|
|
101
|
+
if (row.contents != null)
|
|
102
|
+
byPath.set(row.key, row.contents);
|
|
103
|
+
else
|
|
104
|
+
unavailable.set(row.key, row.error ?? 'Failed to read file');
|
|
105
|
+
}
|
|
106
|
+
setLoad({ status: 'ready', byPath, unavailable });
|
|
71
107
|
});
|
|
72
108
|
return () => {
|
|
73
109
|
cancelled = true;
|
|
@@ -77,17 +113,29 @@ export function PierreWalkthroughCodeView({ walkthrough, stepIndex, readFile, co
|
|
|
77
113
|
if (load.status !== 'ready')
|
|
78
114
|
return [];
|
|
79
115
|
return walkthrough.steps.map((step) => {
|
|
80
|
-
const
|
|
116
|
+
const key = siteKey(step);
|
|
117
|
+
const failure = load.unavailable.get(key);
|
|
118
|
+
if (failure != null) {
|
|
119
|
+
return unavailableSlice(unavailableNotice(step, failure, isProposedStep(step)));
|
|
120
|
+
}
|
|
121
|
+
const contents = load.byPath.get(key) ?? '';
|
|
81
122
|
return sliceSnippetWindow(contents, step.line, step.line, contextLines, step.line);
|
|
82
123
|
});
|
|
83
|
-
}, [load, walkthrough.steps, contextLines]);
|
|
124
|
+
}, [load, walkthrough.steps, contextLines, isProposedStep]);
|
|
84
125
|
const items = useMemo(() => {
|
|
85
126
|
if (load.status !== 'ready' || slices.length === 0)
|
|
86
127
|
return [];
|
|
87
128
|
return walkthrough.steps.map((step, index) => {
|
|
88
129
|
const slice = slices[index];
|
|
89
130
|
const focus = slice.focusOffset;
|
|
90
|
-
const
|
|
131
|
+
const key = siteKey(step);
|
|
132
|
+
const failure = load.unavailable.get(key);
|
|
133
|
+
// The placeholder line already carries the reason, so it replaces any
|
|
134
|
+
// authored annotation rather than stacking with it.
|
|
135
|
+
const annotations = failure == null &&
|
|
136
|
+
step.annotation != null &&
|
|
137
|
+
step.annotation.length > 0 &&
|
|
138
|
+
focus != null
|
|
91
139
|
? [
|
|
92
140
|
{
|
|
93
141
|
lineNumber: focus,
|
|
@@ -104,11 +152,11 @@ export function PierreWalkthroughCodeView({ walkthrough, stepIndex, readFile, co
|
|
|
104
152
|
name: step.file,
|
|
105
153
|
contents: slice.contents,
|
|
106
154
|
lang: pierreLangForPath(step.file),
|
|
107
|
-
cacheKey: `${walkthrough.id}:${index}:${step.file}:${step.line}:${slice.sliceStart}-${slice.sliceEnd}`,
|
|
155
|
+
cacheKey: `${walkthrough.id}:${index}:${step.file}:${step.line}:${slice.sliceStart}-${slice.sliceEnd}${failure != null ? ':unavailable' : ''}`,
|
|
108
156
|
},
|
|
109
157
|
};
|
|
110
158
|
});
|
|
111
|
-
}, [load, slices, walkthrough.id, walkthrough.steps]);
|
|
159
|
+
}, [load, slices, walkthrough.id, walkthrough.steps, isProposedStep]);
|
|
112
160
|
const selectedLines = useMemo(() => {
|
|
113
161
|
if (stepIndex == null || stepIndex < 0 || stepIndex >= slices.length) {
|
|
114
162
|
return null;
|
|
@@ -156,7 +204,10 @@ export function PierreWalkthroughCodeView({ walkthrough, stepIndex, readFile, co
|
|
|
156
204
|
const step = walkthrough.steps[index];
|
|
157
205
|
if (!step)
|
|
158
206
|
return null;
|
|
159
|
-
|
|
207
|
+
// Unreadable sites have nothing to open — say so instead of offering a
|
|
208
|
+
// button that would only fail again in the full-file overlay.
|
|
209
|
+
const unavailable = load.status === 'ready' && load.unavailable.has(siteKey(step));
|
|
210
|
+
return (_jsx("span", { style: {
|
|
160
211
|
display: 'inline-flex',
|
|
161
212
|
alignItems: 'center',
|
|
162
213
|
gap: 6,
|
|
@@ -164,9 +215,9 @@ export function PierreWalkthroughCodeView({ walkthrough, stepIndex, readFile, co
|
|
|
164
215
|
fontFamily: theme.fonts.monospace,
|
|
165
216
|
fontSize: theme.fontSizes[0],
|
|
166
217
|
color: theme.colors.textSecondary,
|
|
167
|
-
}, children: ["L", step.line, onOpenFile && (_jsx(OpenFileHeaderButton, { file: step.file, line: step.line, onOpenFile: onOpenFile }))] }));
|
|
218
|
+
}, children: unavailable ? (_jsx("span", { title: "This file isn't in the local checkout", children: "not in checkout" })) : (_jsxs(_Fragment, { children: ["L", step.line, onOpenFile && (_jsx(OpenFileHeaderButton, { file: step.file, line: step.line, onOpenFile: onOpenFile }))] })) }));
|
|
168
219
|
};
|
|
169
|
-
}, [walkthrough.steps, theme, onOpenFile]);
|
|
220
|
+
}, [walkthrough.steps, theme, onOpenFile, load]);
|
|
170
221
|
const renderAnnotation = useMemo(() => {
|
|
171
222
|
return (annotation, item) => {
|
|
172
223
|
const index = Number.parseInt(item.id.split(':').pop() ?? '', 10);
|
|
@@ -196,8 +247,10 @@ export function PierreWalkthroughCodeView({ walkthrough, stepIndex, readFile, co
|
|
|
196
247
|
const step = walkthrough.steps[index];
|
|
197
248
|
if (!step)
|
|
198
249
|
return;
|
|
250
|
+
if (load.status === 'ready' && load.unavailable.has(siteKey(step)))
|
|
251
|
+
return;
|
|
199
252
|
onOpenFile(step.file, { startLine: step.line, fullFile: true });
|
|
200
|
-
}, [onOpenFile, walkthrough.steps]);
|
|
253
|
+
}, [onOpenFile, walkthrough.steps, load]);
|
|
201
254
|
const options = useMemo(() => {
|
|
202
255
|
return {
|
|
203
256
|
theme: {
|
|
@@ -239,12 +292,12 @@ export function PierreWalkthroughCodeView({ walkthrough, stepIndex, readFile, co
|
|
|
239
292
|
slices,
|
|
240
293
|
items.length,
|
|
241
294
|
]);
|
|
242
|
-
if (load.status === '
|
|
243
|
-
return (_jsx("div", { style: { padding: 16, color: theme.colors.error ?? '#e5534b' }, children: load.message }));
|
|
244
|
-
}
|
|
245
|
-
if (load.status === 'loading' || items.length === 0) {
|
|
295
|
+
if (load.status === 'loading') {
|
|
246
296
|
return (_jsx("div", { style: { padding: 16, color: theme.colors.textSecondary }, children: "Loading\u2026" }));
|
|
247
297
|
}
|
|
298
|
+
if (items.length === 0) {
|
|
299
|
+
return (_jsx("div", { style: { padding: 16, color: theme.colors.textSecondary }, children: "No steps in this walkthrough." }));
|
|
300
|
+
}
|
|
248
301
|
const CodeViewLoose = CodeView;
|
|
249
302
|
return (_jsx(CodeViewLoose, { ref: viewRef, items: items, options: options, selectedLines: selectedLines, renderHeaderPrefix: renderHeaderPrefix, renderHeaderMetadata: renderHeaderMetadata, renderAnnotation: renderAnnotation, style: { ...PIERRE_FILE_STYLE, height: '100%', overflow: 'auto' } }));
|
|
250
303
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PierreWalkthroughCodeView.js","sourceRoot":"","sources":["../../src/pierre/PierreWalkthroughCodeView.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PierreWalkthroughCodeView.js","sourceRoot":"","sources":["../../src/pierre/PierreWalkthroughCodeView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host file reads fail with a small, stable set of messages when a path can't
|
|
3
|
+
* be served from any local checkout — most often a *proposed* seam whose file
|
|
4
|
+
* isn't implemented yet. These helpers detect that class of failure so the
|
|
5
|
+
* Pierre views can show a proposed / not-yet-available notice instead of a raw
|
|
6
|
+
* host error.
|
|
7
|
+
*/
|
|
8
|
+
/** True when a read failed because the file has no local checkout, not because
|
|
9
|
+
* of an I/O or permission error. */
|
|
10
|
+
export declare function isFileUnavailableError(message: string | null | undefined): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* One-line notice shown in place of a snippet whose file can't be read. When
|
|
13
|
+
* the step touches a proposed component the wording names that, so a proposed
|
|
14
|
+
* seam reads as "planned" rather than "missing".
|
|
15
|
+
*/
|
|
16
|
+
export declare function fileUnavailableNotice(path: string, proposed?: boolean): string;
|
|
17
|
+
//# sourceMappingURL=fileAvailability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileAvailability.d.ts","sourceRoot":"","sources":["../../src/pierre/fileAvailability.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH;qCACqC;AACrC,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,OAAO,CAGT;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,OAAO,GACjB,MAAM,CAIR"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host file reads fail with a small, stable set of messages when a path can't
|
|
3
|
+
* be served from any local checkout — most often a *proposed* seam whose file
|
|
4
|
+
* isn't implemented yet. These helpers detect that class of failure so the
|
|
5
|
+
* Pierre views can show a proposed / not-yet-available notice instead of a raw
|
|
6
|
+
* host error.
|
|
7
|
+
*/
|
|
8
|
+
/** Substrings the host uses when a read can't resolve to a local file. */
|
|
9
|
+
const UNAVAILABLE_FRAGMENTS = [
|
|
10
|
+
'not found in graph repos',
|
|
11
|
+
'graph has no local root',
|
|
12
|
+
'no local checkout',
|
|
13
|
+
];
|
|
14
|
+
/** True when a read failed because the file has no local checkout, not because
|
|
15
|
+
* of an I/O or permission error. */
|
|
16
|
+
export function isFileUnavailableError(message) {
|
|
17
|
+
if (!message)
|
|
18
|
+
return false;
|
|
19
|
+
return UNAVAILABLE_FRAGMENTS.some((fragment) => message.includes(fragment));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* One-line notice shown in place of a snippet whose file can't be read. When
|
|
23
|
+
* the step touches a proposed component the wording names that, so a proposed
|
|
24
|
+
* seam reads as "planned" rather than "missing".
|
|
25
|
+
*/
|
|
26
|
+
export function fileUnavailableNotice(path, proposed) {
|
|
27
|
+
return proposed
|
|
28
|
+
? `Proposed — ${path} isn't in the local checkout yet.`
|
|
29
|
+
: `Not in the local checkout: ${path}`;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=fileAvailability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileAvailability.js","sourceRoot":"","sources":["../../src/pierre/fileAvailability.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,0EAA0E;AAC1E,MAAM,qBAAqB,GAAG;IAC5B,0BAA0B;IAC1B,yBAAyB;IACzB,mBAAmB;CACX,CAAC;AAEX;qCACqC;AACrC,MAAM,UAAU,sBAAsB,CACpC,OAAkC;IAElC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,QAAkB;IAElB,OAAO,QAAQ;QACb,CAAC,CAAC,cAAc,IAAI,mCAAmC;QACvD,CAAC,CAAC,8BAA8B,IAAI,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -27,6 +27,11 @@ export interface WalkthroughViewerContext {
|
|
|
27
27
|
stepIndex: number | null;
|
|
28
28
|
/** Open a step's full source file over the walkthrough drawer (keeps snippets mounted). */
|
|
29
29
|
onOpenFile: (path: string, opts?: SubsystemOpenFileOptions) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Aliases of components marked `proposed`. A step whose file can't be read
|
|
32
|
+
* but whose endpoint is proposed can be labelled as planned, not missing.
|
|
33
|
+
*/
|
|
34
|
+
proposedAliases: ReadonlySet<string>;
|
|
30
35
|
}
|
|
31
36
|
export interface SubsystemComponentGraphProps {
|
|
32
37
|
components: SubsystemComponent[];
|
|
@@ -176,6 +181,13 @@ export interface SubsystemComponentGraphProps {
|
|
|
176
181
|
onVerifyComponent?: (componentAlias: string) => void;
|
|
177
182
|
/** Live verification status for the selected component. */
|
|
178
183
|
componentVerification?: ComponentVerificationState | null;
|
|
184
|
+
/**
|
|
185
|
+
* When set, the graph's walkthrough working set — expanded flows and the
|
|
186
|
+
* selected flow/step — is persisted to `localStorage` under this key and
|
|
187
|
+
* restored on mount. Hosts key it by the model id so each model remembers
|
|
188
|
+
* where the user left off. Omit to keep the state purely in-memory.
|
|
189
|
+
*/
|
|
190
|
+
persistKey?: string;
|
|
179
191
|
}
|
|
180
192
|
export declare function SubsystemComponentGraph(props: SubsystemComponentGraphProps): import("react").JSX.Element;
|
|
181
193
|
//# sourceMappingURL=SubsystemComponentGraph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubsystemComponentGraph.d.ts","sourceRoot":"","sources":["../../src/subsystem/SubsystemComponentGraph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAiC,SAAS,EAAE,MAAM,OAAO,CAAC;AAkBtE,OAAO,EAUL,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEtB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAKtE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAWzE,+EAA+E;AAC/E,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,oBAAoB,CAAC;IAClC,0EAA0E;IAC1E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2FAA2F;IAC3F,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,wBAAwB,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"SubsystemComponentGraph.d.ts","sourceRoot":"","sources":["../../src/subsystem/SubsystemComponentGraph.tsx"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,34 @@ const EDGE_LABEL_MAX_EDGE_FRACTION = 0.55;
|
|
|
37
37
|
/** Rough monospace width at fontSize 10 + horizontal padding/border. */
|
|
38
38
|
const EDGE_LABEL_CHAR_PX = 6.2;
|
|
39
39
|
const EDGE_LABEL_PAD_PX = 18;
|
|
40
|
+
const VIEW_STATE_PREFIX = 'principal.subsystems.viewState.';
|
|
41
|
+
function readViewState(key) {
|
|
42
|
+
if (!key || typeof window === 'undefined')
|
|
43
|
+
return {};
|
|
44
|
+
try {
|
|
45
|
+
const raw = window.localStorage.getItem(VIEW_STATE_PREFIX + key);
|
|
46
|
+
if (!raw)
|
|
47
|
+
return {};
|
|
48
|
+
const parsed = JSON.parse(raw);
|
|
49
|
+
return parsed && typeof parsed === 'object'
|
|
50
|
+
? parsed
|
|
51
|
+
: {};
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return {};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function writeViewState(key, patch) {
|
|
58
|
+
if (!key || typeof window === 'undefined')
|
|
59
|
+
return;
|
|
60
|
+
try {
|
|
61
|
+
const merged = { ...readViewState(key), ...patch };
|
|
62
|
+
window.localStorage.setItem(VIEW_STATE_PREFIX + key, JSON.stringify(merged));
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Best-effort: private mode / quota — view state is non-critical.
|
|
66
|
+
}
|
|
67
|
+
}
|
|
40
68
|
const nodeTypes = {
|
|
41
69
|
'subsystem-component': SubsystemComponentNode,
|
|
42
70
|
'subsystem-group': SubsystemGroupNode,
|
|
@@ -72,13 +100,16 @@ function FileOverlayCloseButton({ onClose }) {
|
|
|
72
100
|
transition: 'background 120ms ease, color 120ms ease',
|
|
73
101
|
}, children: _jsx(X, { size: 14 }) }));
|
|
74
102
|
}
|
|
75
|
-
const WalkthroughDrawerContent = memo(function WalkthroughDrawerContent({ render, walkthrough, stepIndex, onOpenFile, }) {
|
|
76
|
-
return _jsx(_Fragment, { children: render({ walkthrough, stepIndex, onOpenFile }) });
|
|
103
|
+
const WalkthroughDrawerContent = memo(function WalkthroughDrawerContent({ render, walkthrough, stepIndex, onOpenFile, proposedAliases, }) {
|
|
104
|
+
return _jsx(_Fragment, { children: render({ walkthrough, stepIndex, onOpenFile, proposedAliases }) });
|
|
77
105
|
});
|
|
78
|
-
function Inner({ components, relations, walkthroughs, initialWalkthroughId, onReorderWalkthroughs, onSelect, onEdgeSelect, measured: _measured, maxNodeWidth, showEdgeLabels, edgeView, title, hideSidebar, walkthroughStepMode = 'focus', autoPlayWalkthroughs = false, walkthroughAutoPlayIntervalMs = WALKTHROUGH_PLAY_PAUSE_MS, zoomOnWalkthroughFocus = true, graphTitle, showWalkthroughTitle = false, description, canvasOverlay, sidebarExtra, sidebarAfterDescription, diagnostic, issues, showIssues, onSelectIssue, onApplyIssueFix, onHoverIssue, renderFileView, renderFileViewer, renderWalkthroughViewer, onFileSelect, onVerifyComponent, componentVerification }) {
|
|
106
|
+
function Inner({ components, relations, walkthroughs, initialWalkthroughId, onReorderWalkthroughs, onSelect, onEdgeSelect, measured: _measured, maxNodeWidth, showEdgeLabels, edgeView, title, hideSidebar, walkthroughStepMode = 'focus', autoPlayWalkthroughs = false, walkthroughAutoPlayIntervalMs = WALKTHROUGH_PLAY_PAUSE_MS, zoomOnWalkthroughFocus = true, graphTitle, showWalkthroughTitle = false, description, canvasOverlay, sidebarExtra, sidebarAfterDescription, diagnostic, issues, showIssues, onSelectIssue, onApplyIssueFix, onHoverIssue, renderFileView, renderFileViewer, renderWalkthroughViewer, onFileSelect, onVerifyComponent, componentVerification, persistKey }) {
|
|
79
107
|
const { theme } = useTheme();
|
|
80
108
|
const { fitView } = useReactFlow();
|
|
81
109
|
const viewport = useViewport();
|
|
110
|
+
// Restored once per mount from `localStorage` (see `readViewState`). Each
|
|
111
|
+
// graph is its own tab/mount, so `persistKey` is stable for a mount.
|
|
112
|
+
const persisted = useMemo(() => readViewState(persistKey), [persistKey]);
|
|
82
113
|
const graphEdges = useMemo(() => deriveGraphEdges({ relations, walkthroughs }), [relations, walkthroughs]);
|
|
83
114
|
const [built, setBuilt] = useState({
|
|
84
115
|
nodes: [],
|
|
@@ -100,9 +131,10 @@ function Inner({ components, relations, walkthroughs, initialWalkthroughId, onRe
|
|
|
100
131
|
const [hoveredComponentAlias, setHoveredComponentId] = useState(null);
|
|
101
132
|
// Walkthrough focus — selected flow (or step) is full strength; other
|
|
102
133
|
// opened-flow members stay visible but dimmed; everything else is hidden.
|
|
103
|
-
|
|
134
|
+
// Restored from the persisted view state when a `persistKey` is set.
|
|
135
|
+
const [focusedWalkthroughId, setFocusedWalkthroughId] = useState(persisted.focusedWalkthroughId ?? null);
|
|
104
136
|
// `null` = whole flow focused; a number = that single step's edge focused.
|
|
105
|
-
const [focusedStepIndex, setFocusedStepIndex] = useState(null);
|
|
137
|
+
const [focusedStepIndex, setFocusedStepIndex] = useState(persisted.focusedStepIndex ?? null);
|
|
106
138
|
// Hovered walkthrough in the flows panel: dims every canvas node/edge not
|
|
107
139
|
// involved in the hover preview (or selected ∪ hovered when a step is
|
|
108
140
|
// focused). `stepIndex: null` = whole flow (collapsed title hover);
|
|
@@ -125,7 +157,8 @@ function Inner({ components, relations, walkthroughs, initialWalkthroughId, onRe
|
|
|
125
157
|
: 'relations');
|
|
126
158
|
// Walkthrough flows the user has expanded (via the title row). Closed by
|
|
127
159
|
// default so a graph with several flows doesn't dump every step list at once.
|
|
128
|
-
|
|
160
|
+
// Restored from the persisted view state when a `persistKey` is set.
|
|
161
|
+
const [expandedWalkthroughs, setExpandedWalkthroughs] = useState(() => new Set(persisted.expandedWalkthroughs ?? []));
|
|
129
162
|
// Sidebar description visibility. Hidden by default so the files/flows
|
|
130
163
|
// panel gets the vertical room; the title-row toggle reveals it.
|
|
131
164
|
const [descriptionVisible, setDescriptionVisible] = useState(false);
|
|
@@ -133,11 +166,16 @@ function Inner({ components, relations, walkthroughs, initialWalkthroughId, onRe
|
|
|
133
166
|
// `true` only when a description exists AND the user opened it.
|
|
134
167
|
const showDesc = !!description && descriptionVisible;
|
|
135
168
|
// Sidebar width (px). Draggable via the resize handle between the sidebar
|
|
136
|
-
// and the graph canvas; clamps to sensible bounds while dragging.
|
|
137
|
-
|
|
169
|
+
// and the graph canvas; clamps to sensible bounds while dragging. Restored
|
|
170
|
+
// from the persisted view state when a `persistKey` is set.
|
|
171
|
+
const [sidebarWidth, setSidebarWidth] = useState(persisted.sidebarWidth ?? 450);
|
|
138
172
|
const [sidebarDrag, setSidebarDrag] = useState(false);
|
|
139
173
|
const sidebarDragStartX = useRef(0);
|
|
140
|
-
const sidebarDragStartWidth = useRef(
|
|
174
|
+
const sidebarDragStartWidth = useRef(450);
|
|
175
|
+
// Mirror of `sidebarWidth` for the drag-end persist (the mouseup listener
|
|
176
|
+
// closes over the drag-start render).
|
|
177
|
+
const sidebarWidthRef = useRef(sidebarWidth);
|
|
178
|
+
sidebarWidthRef.current = sidebarWidth;
|
|
141
179
|
const sidebarMinWidth = 240;
|
|
142
180
|
const sidebarMaxWidth = useMemo(() => Math.max(Math.min((_measured?.w ?? 680) * 0.5, 600), sidebarMinWidth), [_measured?.w]);
|
|
143
181
|
// Resize drag: capture the drag state so document-level move/up listeners
|
|
@@ -158,6 +196,8 @@ function Inner({ components, relations, walkthroughs, initialWalkthroughId, onRe
|
|
|
158
196
|
};
|
|
159
197
|
const onUp = () => {
|
|
160
198
|
setSidebarDrag(false);
|
|
199
|
+
// Persist only on drag end — not on every mousemove.
|
|
200
|
+
writeViewState(persistKey, { sidebarWidth: sidebarWidthRef.current });
|
|
161
201
|
// Re-fit the canvas so the graph re-centers in the new available space.
|
|
162
202
|
requestAnimationFrame(() => fitView());
|
|
163
203
|
};
|
|
@@ -167,7 +207,26 @@ function Inner({ components, relations, walkthroughs, initialWalkthroughId, onRe
|
|
|
167
207
|
document.removeEventListener('mousemove', onMove);
|
|
168
208
|
document.removeEventListener('mouseup', onUp);
|
|
169
209
|
};
|
|
170
|
-
}, [sidebarDrag, sidebarMaxWidth, fitView]);
|
|
210
|
+
}, [sidebarDrag, sidebarMaxWidth, fitView, persistKey]);
|
|
211
|
+
// Persist the walkthrough working set per model. Each write merges into the
|
|
212
|
+
// stored blob, so the three fields never clobber one another.
|
|
213
|
+
useEffect(() => {
|
|
214
|
+
if (!persistKey)
|
|
215
|
+
return;
|
|
216
|
+
writeViewState(persistKey, {
|
|
217
|
+
expandedWalkthroughs: Array.from(expandedWalkthroughs),
|
|
218
|
+
});
|
|
219
|
+
}, [persistKey, expandedWalkthroughs]);
|
|
220
|
+
useEffect(() => {
|
|
221
|
+
if (!persistKey)
|
|
222
|
+
return;
|
|
223
|
+
writeViewState(persistKey, { focusedWalkthroughId });
|
|
224
|
+
}, [persistKey, focusedWalkthroughId]);
|
|
225
|
+
useEffect(() => {
|
|
226
|
+
if (!persistKey)
|
|
227
|
+
return;
|
|
228
|
+
writeViewState(persistKey, { focusedStepIndex });
|
|
229
|
+
}, [persistKey, focusedStepIndex]);
|
|
171
230
|
// Ref mirror of `selected` so the SUBSYSTEM_CALLBACKS click handler (a
|
|
172
231
|
// closure over the effect deps) can toggle without a stale value.
|
|
173
232
|
const selectedRef = useRef(null);
|
|
@@ -1425,7 +1484,7 @@ function Inner({ components, relations, walkthroughs, initialWalkthroughId, onRe
|
|
|
1425
1484
|
selected.file === drawerTarget.file &&
|
|
1426
1485
|
selected.declarationRef?.startLine === drawerTarget.startLine }) }))] }), _jsx(FileDrawer, { title: drawerTitle, onClose: closeDrawer, fillHeight: drawerFillHeight, suppressEscape: fileOverlayOpen, children: drawerTarget?.kind === 'walkthrough' &&
|
|
1427
1486
|
focusedWalkthrough &&
|
|
1428
|
-
renderWalkthroughViewer ? (_jsx(WalkthroughDrawerContent, { render: renderWalkthroughDrawerContent, walkthrough: focusedWalkthrough, stepIndex: drawerTarget.stepIndex, onOpenFile: onOpenFileFromWalkthrough })) : drawerTarget?.kind === 'file' ? (_jsx(FileDrawerContent, { render: renderDrawerContent, file: drawerTarget.file, startLine: drawerTarget.startLine })) : null }), fileOverlay && (_jsxs("div", { style: {
|
|
1487
|
+
renderWalkthroughViewer ? (_jsx(WalkthroughDrawerContent, { render: renderWalkthroughDrawerContent, walkthrough: focusedWalkthrough, stepIndex: drawerTarget.stepIndex, onOpenFile: onOpenFileFromWalkthrough, proposedAliases: proposedAliases })) : drawerTarget?.kind === 'file' ? (_jsx(FileDrawerContent, { render: renderDrawerContent, file: drawerTarget.file, startLine: drawerTarget.startLine })) : null }), fileOverlay && (_jsxs("div", { style: {
|
|
1429
1488
|
position: 'absolute',
|
|
1430
1489
|
inset: 0,
|
|
1431
1490
|
zIndex: 8,
|