@sapiom/harness 0.1.6 → 0.2.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/CHANGELOG.md +90 -0
- package/dist/cli/args.d.ts +16 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +80 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/bin.js +12 -65
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/settings.d.ts.map +1 -1
- package/dist/cli/settings.js +33 -1
- package/dist/cli/settings.js.map +1 -1
- package/dist/core/adapters/claude-code.d.ts +60 -2
- package/dist/core/adapters/claude-code.d.ts.map +1 -1
- package/dist/core/adapters/claude-code.js +119 -32
- package/dist/core/adapters/claude-code.js.map +1 -1
- package/dist/core/adapters/codex.d.ts +21 -2
- package/dist/core/adapters/codex.d.ts.map +1 -1
- package/dist/core/adapters/codex.js +53 -2
- package/dist/core/adapters/codex.js.map +1 -1
- package/dist/core/adapters/detect.d.ts +9 -0
- package/dist/core/adapters/detect.d.ts.map +1 -1
- package/dist/core/adapters/detect.js +9 -0
- package/dist/core/adapters/detect.js.map +1 -1
- package/dist/core/canvas-body.d.ts +28 -28
- package/dist/core/canvas-body.d.ts.map +1 -1
- package/dist/core/canvas-body.js +117 -55
- package/dist/core/canvas-body.js.map +1 -1
- package/dist/core/canvas-derive.d.ts +43 -0
- package/dist/core/canvas-derive.d.ts.map +1 -0
- package/dist/core/canvas-derive.js +95 -0
- package/dist/core/canvas-derive.js.map +1 -0
- package/dist/core/canvas-enrichment.d.ts +52 -127
- package/dist/core/canvas-enrichment.d.ts.map +1 -1
- package/dist/core/canvas-enrichment.js +17 -178
- package/dist/core/canvas-enrichment.js.map +1 -1
- package/dist/core/canvas-graph.d.ts +40 -1
- package/dist/core/canvas-graph.d.ts.map +1 -1
- package/dist/core/canvas-graph.js +71 -9
- package/dist/core/canvas-graph.js.map +1 -1
- package/dist/core/canvas-interconnections.d.ts +26 -8
- package/dist/core/canvas-interconnections.d.ts.map +1 -1
- package/dist/core/canvas-interconnections.js +132 -24
- package/dist/core/canvas-interconnections.js.map +1 -1
- package/dist/core/canvas-manifest-check.d.ts.map +1 -1
- package/dist/core/canvas-manifest-check.js +15 -2
- package/dist/core/canvas-manifest-check.js.map +1 -1
- package/dist/core/canvas-render.d.ts +8 -15
- package/dist/core/canvas-render.d.ts.map +1 -1
- package/dist/core/canvas-render.js +29 -41
- package/dist/core/canvas-render.js.map +1 -1
- package/dist/core/canvas-run-state.d.ts +41 -0
- package/dist/core/canvas-run-state.d.ts.map +1 -1
- package/dist/core/canvas-run-state.js +136 -0
- package/dist/core/canvas-run-state.js.map +1 -1
- package/dist/core/canvas-svg.d.ts +9 -4
- package/dist/core/canvas-svg.d.ts.map +1 -1
- package/dist/core/canvas-svg.js +84 -13
- package/dist/core/canvas-svg.js.map +1 -1
- package/dist/core/canvas-template.d.ts +9 -10
- package/dist/core/canvas-template.d.ts.map +1 -1
- package/dist/core/canvas-template.js +57 -20
- package/dist/core/canvas-template.js.map +1 -1
- package/dist/core/canvas-watcher.d.ts +22 -1
- package/dist/core/canvas-watcher.d.ts.map +1 -1
- package/dist/core/canvas-watcher.js +111 -30
- package/dist/core/canvas-watcher.js.map +1 -1
- package/dist/core/collector/normalizer.d.ts +8 -0
- package/dist/core/collector/normalizer.d.ts.map +1 -1
- package/dist/core/collector/normalizer.js +8 -0
- package/dist/core/collector/normalizer.js.map +1 -1
- package/dist/core/collector/store.d.ts +75 -1
- package/dist/core/collector/store.d.ts.map +1 -1
- package/dist/core/collector/store.js +334 -2
- package/dist/core/collector/store.js.map +1 -1
- package/dist/core/errors.d.ts +10 -4
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +11 -5
- package/dist/core/errors.js.map +1 -1
- package/dist/core/example-seed.d.ts +8 -0
- package/dist/core/example-seed.d.ts.map +1 -1
- package/dist/core/example-seed.js +47 -10
- package/dist/core/example-seed.js.map +1 -1
- package/dist/core/inject/system-prompt.d.ts +8 -0
- package/dist/core/inject/system-prompt.d.ts.map +1 -1
- package/dist/core/inject/system-prompt.js +3 -1
- package/dist/core/inject/system-prompt.js.map +1 -1
- package/dist/core/macros.d.ts.map +1 -1
- package/dist/core/macros.js +5 -6
- package/dist/core/macros.js.map +1 -1
- package/dist/core/paths.d.ts +1 -0
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +1 -0
- package/dist/core/paths.js.map +1 -1
- package/dist/core/record-archive.d.ts +187 -0
- package/dist/core/record-archive.d.ts.map +1 -0
- package/dist/core/record-archive.js +465 -0
- package/dist/core/record-archive.js.map +1 -0
- package/dist/core/rehydration.d.ts +72 -0
- package/dist/core/rehydration.d.ts.map +1 -0
- package/dist/core/rehydration.js +72 -0
- package/dist/core/rehydration.js.map +1 -0
- package/dist/core/resume-brief.d.ts +130 -0
- package/dist/core/resume-brief.d.ts.map +1 -0
- package/dist/core/resume-brief.js +404 -0
- package/dist/core/resume-brief.js.map +1 -0
- package/dist/core/rolling-summary.d.ts +130 -0
- package/dist/core/rolling-summary.d.ts.map +1 -0
- package/dist/core/rolling-summary.js +227 -0
- package/dist/core/rolling-summary.js.map +1 -0
- package/dist/core/session-manager.d.ts +11 -3
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +56 -7
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-record.d.ts +165 -0
- package/dist/core/session-record.d.ts.map +1 -0
- package/dist/core/session-record.js +470 -0
- package/dist/core/session-record.js.map +1 -0
- package/dist/core/spawn-target.d.ts +12 -0
- package/dist/core/spawn-target.d.ts.map +1 -0
- package/dist/core/spawn-target.js +187 -0
- package/dist/core/spawn-target.js.map +1 -0
- package/dist/core/task-manager.d.ts.map +1 -1
- package/dist/core/task-manager.js +9 -1
- package/dist/core/task-manager.js.map +1 -1
- package/dist/core/template-catalog.d.ts +48 -0
- package/dist/core/template-catalog.d.ts.map +1 -0
- package/dist/core/template-catalog.js +338 -0
- package/dist/core/template-catalog.js.map +1 -0
- package/dist/core/workflow-registry.d.ts.map +1 -1
- package/dist/core/workflow-registry.js +2 -2
- package/dist/core/workflow-registry.js.map +1 -1
- package/dist/core/workspace-watcher.d.ts.map +1 -1
- package/dist/core/workspace-watcher.js +4 -3
- package/dist/core/workspace-watcher.js.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -1
- package/dist/profiles/default.d.ts.map +1 -1
- package/dist/profiles/default.js +9 -14
- package/dist/profiles/default.js.map +1 -1
- package/dist/server/canvas.d.ts.map +1 -1
- package/dist/server/canvas.js +7 -7
- package/dist/server/canvas.js.map +1 -1
- package/dist/server/fs.d.ts.map +1 -1
- package/dist/server/fs.js +17 -1
- package/dist/server/fs.js.map +1 -1
- package/dist/server/index.d.ts +12 -3
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +321 -50
- package/dist/server/index.js.map +1 -1
- package/dist/server/ingest.d.ts +11 -0
- package/dist/server/ingest.d.ts.map +1 -1
- package/dist/server/ingest.js +1 -0
- package/dist/server/ingest.js.map +1 -1
- package/dist/server/macros.d.ts +4 -6
- package/dist/server/macros.d.ts.map +1 -1
- package/dist/server/macros.js.map +1 -1
- package/dist/server/rest.d.ts +18 -6
- package/dist/server/rest.d.ts.map +1 -1
- package/dist/server/rest.js +185 -48
- package/dist/server/rest.js.map +1 -1
- package/dist/server/templates.d.ts +24 -0
- package/dist/server/templates.d.ts.map +1 -0
- package/dist/server/templates.js +54 -0
- package/dist/server/templates.js.map +1 -0
- package/dist/shared/types.d.ts +477 -29
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +19 -11
- package/dist/shared/types.js.map +1 -1
- package/dist/web/assets/index-DC65cskq.js +446 -0
- package/dist/web/assets/index-xtD-3FFa.css +32 -0
- package/dist/web/index.html +2 -2
- package/package.json +5 -4
- package/dist/core/canvas-enrich.d.ts +0 -115
- package/dist/core/canvas-enrich.d.ts.map +0 -1
- package/dist/core/canvas-enrich.js +0 -186
- package/dist/core/canvas-enrich.js.map +0 -1
- package/dist/profiles/canvas-guidelines.d.ts +0 -20
- package/dist/profiles/canvas-guidelines.d.ts.map +0 -1
- package/dist/profiles/canvas-guidelines.js +0 -48
- package/dist/profiles/canvas-guidelines.js.map +0 -1
- package/dist/web/assets/index-DCtyI4VW.css +0 -32
- package/dist/web/assets/index-WSw5RvYR.js +0 -445
- package/dist/web/welcome-hero-dark.png +0 -0
- package/dist/web/welcome-hero-light.png +0 -0
|
@@ -188,4 +188,140 @@ export function bootCanvasNodeClicks() {
|
|
|
188
188
|
}
|
|
189
189
|
});
|
|
190
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Wires the view (pan/zoom) channel and announces the graph's natural size.
|
|
193
|
+
*
|
|
194
|
+
* The sandboxed iframe element itself NEVER transforms — that keeps the gesture
|
|
195
|
+
* layer's forwarded click/hover points in this frame's coordinate space (see
|
|
196
|
+
* bootCanvasNodeClicks). Instead the harness gesture layer captures wheel/drag,
|
|
197
|
+
* tracks a `{ zoom, x, y }` view, and posts `{ type: "sapiom-canvas:view" }`;
|
|
198
|
+
* this applies it as a CSS transform on `#canvas-root`. Without this handler the
|
|
199
|
+
* view messages are dropped and the canvas can neither zoom nor pan.
|
|
200
|
+
*
|
|
201
|
+
* On load it posts `{ type: "sapiom-canvas:size", width, height, ... }` — the
|
|
202
|
+
* graph's natural px (canvas-svg.ts pins the `<svg>` to explicit width/height) —
|
|
203
|
+
* which is the parent's fit-to-view input. `#canvas-root` and the `<svg>` are
|
|
204
|
+
* looked up lazily because this runs from `<head>`, before `<body>` is parsed.
|
|
205
|
+
*
|
|
206
|
+
* Stringified into the iframe template by `canvas-template.ts`.
|
|
207
|
+
*/
|
|
208
|
+
export function bootCanvasView() {
|
|
209
|
+
function applyView(zoom, x, y) {
|
|
210
|
+
const root = document.getElementById("canvas-root");
|
|
211
|
+
if (!root)
|
|
212
|
+
return;
|
|
213
|
+
// Scale from the center so a flex-centered card (see canvas-template.ts's
|
|
214
|
+
// body rule) stays centered at rest and grows from the middle when zoomed;
|
|
215
|
+
// `translate` is in absolute px regardless of origin, so drag-pan is
|
|
216
|
+
// unaffected.
|
|
217
|
+
root.style.transformOrigin = "50% 50%";
|
|
218
|
+
root.style.transform = "translate(" + x + "px," + y + "px) scale(" + zoom + ")";
|
|
219
|
+
}
|
|
220
|
+
function postSize() {
|
|
221
|
+
const root = document.getElementById("canvas-root");
|
|
222
|
+
if (!root)
|
|
223
|
+
return;
|
|
224
|
+
// Report the WHOLE card (header + diagram + legend), not just the SVG: the
|
|
225
|
+
// view transform scales #canvas-root, so fit-to-view must size to the full
|
|
226
|
+
// card or the header/legend push the graph past the pane and it clips
|
|
227
|
+
// vertically. offsetWidth/Height are the layout border-box, unaffected by
|
|
228
|
+
// any transform, so this is correct even if a view was already applied.
|
|
229
|
+
const width = root.offsetWidth;
|
|
230
|
+
const height = root.offsetHeight;
|
|
231
|
+
if (!width || !height)
|
|
232
|
+
return;
|
|
233
|
+
window.parent.postMessage({ type: "sapiom-canvas:size", width: width, height: height, insetTop: 0, insetBottom: 0, insetX: 0 }, "*");
|
|
234
|
+
}
|
|
235
|
+
window.addEventListener("message", function (e) {
|
|
236
|
+
const d = e && e.data;
|
|
237
|
+
if (!d || d.type !== "sapiom-canvas:view")
|
|
238
|
+
return;
|
|
239
|
+
applyView(d.zoom, d.x, d.y);
|
|
240
|
+
});
|
|
241
|
+
// Report size once the card has actually laid out, AND on any later
|
|
242
|
+
// layout/font shift. A ResizeObserver fires reliably POST-layout, so the
|
|
243
|
+
// parent always receives a real (non-zero) size to fit to — measuring at
|
|
244
|
+
// DOMContentLoaded alone can run before layout and post nothing, which left
|
|
245
|
+
// the parent stuck at 100%. (Transforms don't change layout size, so the
|
|
246
|
+
// parent applying the fitted view never re-triggers this — no loop.)
|
|
247
|
+
function armSize() {
|
|
248
|
+
postSize();
|
|
249
|
+
if (typeof ResizeObserver !== "undefined") {
|
|
250
|
+
const root = document.getElementById("canvas-root");
|
|
251
|
+
if (root)
|
|
252
|
+
new ResizeObserver(postSize).observe(root);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
if (document.readyState === "loading") {
|
|
256
|
+
window.addEventListener("DOMContentLoaded", armSize);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
armSize();
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Posts the workflow's step graph to the parent so the Steps tab / inspector
|
|
264
|
+
* can project it (`{ type: "sapiom-canvas:graph", graph }`).
|
|
265
|
+
*
|
|
266
|
+
* The graph is embedded by `canvas-body.ts` as a `<script type="application/json"
|
|
267
|
+
* id="sapiom-graph">` data block (NOT executed — it's read as text here). Without
|
|
268
|
+
* this the board (SVG) still shows, but the Steps tab has no graph and reads
|
|
269
|
+
* "No steps yet" even though the diagram is visible. Deferred to DOM-ready
|
|
270
|
+
* because this boots from `<head>`, before `<body>` (and the data block) parses.
|
|
271
|
+
*
|
|
272
|
+
* Stringified into the iframe template by `canvas-template.ts`.
|
|
273
|
+
*/
|
|
274
|
+
export function bootCanvasGraph() {
|
|
275
|
+
function post() {
|
|
276
|
+
const el = document.getElementById("sapiom-graph");
|
|
277
|
+
if (!el)
|
|
278
|
+
return;
|
|
279
|
+
try {
|
|
280
|
+
window.parent.postMessage({ type: "sapiom-canvas:graph", graph: JSON.parse(el.textContent || "{}") }, "*");
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
283
|
+
/* malformed payload — leave the drill-down empty rather than throw */
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
if (document.readyState === "loading") {
|
|
287
|
+
window.addEventListener("DOMContentLoaded", post);
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
post();
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Posts the workflow-level overview (`{ description, stats, notes }`) so the
|
|
295
|
+
* Canvas tab's bottom panel can show it — the deterministic equivalent of the
|
|
296
|
+
* demo doc's overview. Embedded by `canvas-body.ts` as a `<script
|
|
297
|
+
* type="application/json" id="sapiom-overview">` data block (read as text, same
|
|
298
|
+
* pattern as the graph). A missing block posts nothing and the parent keeps its
|
|
299
|
+
* empty state; a malformed one is swallowed rather than thrown. Stringified into
|
|
300
|
+
* the template by `canvas-template.ts`.
|
|
301
|
+
*/
|
|
302
|
+
export function bootCanvasOverview() {
|
|
303
|
+
function post() {
|
|
304
|
+
const el = document.getElementById("sapiom-overview");
|
|
305
|
+
if (!el)
|
|
306
|
+
return;
|
|
307
|
+
try {
|
|
308
|
+
const data = JSON.parse(el.textContent || "{}");
|
|
309
|
+
window.parent.postMessage({
|
|
310
|
+
type: "sapiom-canvas:overview",
|
|
311
|
+
description: typeof data.description === "string" ? data.description : "",
|
|
312
|
+
stats: typeof data.stats === "string" ? data.stats : "",
|
|
313
|
+
notes: Array.isArray(data.notes) ? data.notes : [],
|
|
314
|
+
}, "*");
|
|
315
|
+
}
|
|
316
|
+
catch {
|
|
317
|
+
/* malformed payload — leave the overview empty rather than throw */
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
if (document.readyState === "loading") {
|
|
321
|
+
window.addEventListener("DOMContentLoaded", post);
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
post();
|
|
325
|
+
}
|
|
326
|
+
}
|
|
191
327
|
//# sourceMappingURL=canvas-run-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-run-state.js","sourceRoot":"","sources":["../../src/core/canvas-run-state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canvas-run-state.js","sourceRoot":"","sources":["../../src/core/canvas-run-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,10 +30,15 @@ export interface GraphLayout {
|
|
|
30
30
|
* disconnected/cyclic fragment) fall to the layer just past the deepest
|
|
31
31
|
* known one, so they still render instead of vanishing. */
|
|
32
32
|
export declare function computeLayers(nodes: readonly CanvasNode[], edges: readonly CanvasEdge[]): Map<string, number>;
|
|
33
|
-
/** Computes (x, y) for every node and the overall canvas size.
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
33
|
+
/** Computes (x, y) for every node and the overall canvas size. Each node is
|
|
34
|
+
* placed at the BARYCENTRE of its already-placed parents (so a single-child
|
|
35
|
+
* step sits directly under its parent's lane, and a merge node centres between
|
|
36
|
+
* the branches that feed it — the two paths converge symmetrically instead of
|
|
37
|
+
* a straight chain being forced dead-centre while a side branch has to detour
|
|
38
|
+
* around it). Within a layer, order follows the (laneOrder-applied) sequence
|
|
39
|
+
* and nodes are spread to a minimum spacing, then re-balanced onto the parent
|
|
40
|
+
* barycentre. Layers stack top to bottom; layer assignment stays purely
|
|
41
|
+
* structural (computeLayers). */
|
|
37
42
|
export declare function layoutGraph(graph: CanvasGraph, laneOrder?: CanvasLayoutHints["laneOrder"]): GraphLayout;
|
|
38
43
|
/** Renders one graph's `<svg>` diagram, merging in any enrichment content
|
|
39
44
|
* (node sublabels/descriptions, edge labels, group bands, lane order) — all
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-svg.d.ts","sourceRoot":"","sources":["../../src/core/canvas-svg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,MAAM,MAAM,CAAC;AAC1B,eAAO,MAAM,MAAM,KAAK,CAAC;AAOzB,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;4DAG4D;AAC5D,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,KAAK,EAAE,SAAS,UAAU,EAAE,GAC3B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAsCrB;AAED
|
|
1
|
+
{"version":3,"file":"canvas-svg.d.ts","sourceRoot":"","sources":["../../src/core/canvas-svg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,MAAM,MAAM,CAAC;AAC1B,eAAO,MAAM,MAAM,KAAK,CAAC;AAOzB,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;4DAG4D;AAC5D,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,KAAK,EAAE,SAAS,UAAU,EAAE,GAC3B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAsCrB;AAED;;;;;;;;kCAQkC;AAClC,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,GACzC,WAAW,CA6Db;AAiGD;;;;;yEAKyE;AACzE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,gBAAgB,GAAG,IAAI,GACnC,MAAM,CAgIR;AAED,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG;IAC7C,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC/B,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAChC,CAKA"}
|
package/dist/core/canvas-svg.js
CHANGED
|
@@ -51,10 +51,15 @@ export function computeLayers(nodes, edges) {
|
|
|
51
51
|
layer.set(id, maxLayer + 1);
|
|
52
52
|
return layer;
|
|
53
53
|
}
|
|
54
|
-
/** Computes (x, y) for every node and the overall canvas size.
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
54
|
+
/** Computes (x, y) for every node and the overall canvas size. Each node is
|
|
55
|
+
* placed at the BARYCENTRE of its already-placed parents (so a single-child
|
|
56
|
+
* step sits directly under its parent's lane, and a merge node centres between
|
|
57
|
+
* the branches that feed it — the two paths converge symmetrically instead of
|
|
58
|
+
* a straight chain being forced dead-centre while a side branch has to detour
|
|
59
|
+
* around it). Within a layer, order follows the (laneOrder-applied) sequence
|
|
60
|
+
* and nodes are spread to a minimum spacing, then re-balanced onto the parent
|
|
61
|
+
* barycentre. Layers stack top to bottom; layer assignment stays purely
|
|
62
|
+
* structural (computeLayers). */
|
|
58
63
|
export function layoutGraph(graph, laneOrder) {
|
|
59
64
|
const layer = computeLayers(graph.nodes, graph.edges);
|
|
60
65
|
const byLayer = new Map();
|
|
@@ -66,20 +71,53 @@ export function layoutGraph(graph, laneOrder) {
|
|
|
66
71
|
}
|
|
67
72
|
applyLaneOrder(byLayer, graph, laneOrder);
|
|
68
73
|
const layers = [...byLayer.keys()].sort((a, b) => a - b);
|
|
69
|
-
const
|
|
70
|
-
const
|
|
74
|
+
const idSet = new Set(graph.nodes.map((n) => n.id));
|
|
75
|
+
const parentsOf = new Map(graph.nodes.map((n) => [n.id, []]));
|
|
76
|
+
for (const e of graph.edges) {
|
|
77
|
+
if (idSet.has(e.from) && idSet.has(e.to))
|
|
78
|
+
parentsOf.get(e.to).push(e.from);
|
|
79
|
+
}
|
|
80
|
+
const SLOT = NODE_W + COL_GAP;
|
|
81
|
+
// Provisional node-CENTRE x, filled top-down so a node's parents are placed
|
|
82
|
+
// before it. Normalised to the left margin afterwards.
|
|
83
|
+
const cx = new Map();
|
|
84
|
+
for (const l of layers) {
|
|
85
|
+
const ids = byLayer.get(l);
|
|
86
|
+
const desired = ids.map((id) => {
|
|
87
|
+
const placed = parentsOf.get(id).filter((p) => cx.has(p));
|
|
88
|
+
return placed.length ? placed.reduce((s, p) => s + cx.get(p), 0) / placed.length : null;
|
|
89
|
+
});
|
|
90
|
+
const known = desired.filter((v) => v != null);
|
|
91
|
+
const fallback = known.length ? known.reduce((a, b) => a + b, 0) / known.length : 0;
|
|
92
|
+
const centers = desired.map((d) => (d == null ? fallback : d));
|
|
93
|
+
// Enforce the row's left-to-right order and a minimum gap between boxes.
|
|
94
|
+
for (let i = 1; i < centers.length; i++) {
|
|
95
|
+
if (centers[i] < centers[i - 1] + SLOT)
|
|
96
|
+
centers[i] = centers[i - 1] + SLOT;
|
|
97
|
+
}
|
|
98
|
+
// Spreading may have pushed the row off its parents' centre — slide it back
|
|
99
|
+
// so the group stays balanced under what feeds it.
|
|
100
|
+
if (known.length) {
|
|
101
|
+
const assigned = centers.reduce((a, b) => a + b, 0) / centers.length;
|
|
102
|
+
const shift = known.reduce((a, b) => a + b, 0) / known.length - assigned;
|
|
103
|
+
for (let i = 0; i < centers.length; i++)
|
|
104
|
+
centers[i] += shift;
|
|
105
|
+
}
|
|
106
|
+
ids.forEach((id, i) => cx.set(id, centers[i]));
|
|
107
|
+
}
|
|
108
|
+
const centersAll = [...cx.values()];
|
|
109
|
+
const minLeft = Math.min(...centersAll) - NODE_W / 2;
|
|
110
|
+
const shiftX = MARGIN - minLeft;
|
|
71
111
|
const pos = {};
|
|
72
112
|
for (const l of layers) {
|
|
73
|
-
const
|
|
74
|
-
const rowWidth = idsInLayer.length * NODE_W + (idsInLayer.length - 1) * COL_GAP;
|
|
75
|
-
const startX = (width - rowWidth) / 2;
|
|
76
|
-
idsInLayer.forEach((id, i) => {
|
|
113
|
+
for (const id of byLayer.get(l)) {
|
|
77
114
|
pos[id] = {
|
|
78
|
-
x:
|
|
115
|
+
x: cx.get(id) + shiftX - NODE_W / 2,
|
|
79
116
|
y: MARGIN + l * (NODE_H + LAYER_GAP),
|
|
80
117
|
};
|
|
81
|
-
}
|
|
118
|
+
}
|
|
82
119
|
}
|
|
120
|
+
const width = Math.max(...centersAll) + shiftX + NODE_W / 2 + MARGIN;
|
|
83
121
|
const height = MARGIN * 2 + (layers.length - 1) * (NODE_H + LAYER_GAP) + NODE_H;
|
|
84
122
|
return { pos, width, height: Math.max(height, MARGIN * 2 + NODE_H) };
|
|
85
123
|
}
|
|
@@ -196,7 +234,40 @@ export function renderGraphSvg(graph, enrichment) {
|
|
|
196
234
|
]
|
|
197
235
|
.filter(Boolean)
|
|
198
236
|
.join(" ");
|
|
199
|
-
const
|
|
237
|
+
const fromLayer = Math.round((from.y - MARGIN) / (NODE_H + LAYER_GAP));
|
|
238
|
+
const toLayer = Math.round((to.y - MARGIN) / (NODE_H + LAYER_GAP));
|
|
239
|
+
// In-between nodes a long edge might cross (empty for adjacent edges).
|
|
240
|
+
const between = toLayer - fromLayer > 1
|
|
241
|
+
? graph.nodes.filter((n) => {
|
|
242
|
+
const l = Math.round((layout.pos[n.id].y - MARGIN) / (NODE_H + LAYER_GAP));
|
|
243
|
+
return l > fromLayer && l < toLayer;
|
|
244
|
+
})
|
|
245
|
+
: [];
|
|
246
|
+
// Only re-route when the straight line would actually run UNDER one of
|
|
247
|
+
// them — with the barycentre layout most long edges pass through clear
|
|
248
|
+
// space and stay a plain line/curve.
|
|
249
|
+
const collides = between.some((n) => {
|
|
250
|
+
const np = layout.pos[n.id];
|
|
251
|
+
const t = (np.y + NODE_H / 2 - y1) / (y2 - y1);
|
|
252
|
+
const lineX = x1 + (x2 - x1) * t;
|
|
253
|
+
return lineX > np.x - COL_GAP / 2 && lineX < np.x + NODE_W + COL_GAP / 2;
|
|
254
|
+
});
|
|
255
|
+
let d;
|
|
256
|
+
if (collides) {
|
|
257
|
+
// Route down a clear SIDE LANE past the blocking node(s) — the lane
|
|
258
|
+
// clears the widest one on the bow side — then curve into the target,
|
|
259
|
+
// nudging the entry x so a stacked arrowhead doesn't overlap another.
|
|
260
|
+
const bowRight = x1 >= x2;
|
|
261
|
+
const laneX = bowRight
|
|
262
|
+
? Math.min(layout.width - MARGIN / 2, Math.max(x1, x2, ...between.map((n) => layout.pos[n.id].x + NODE_W)) + COL_GAP)
|
|
263
|
+
: Math.max(MARGIN / 2, Math.min(x1, x2, ...between.map((n) => layout.pos[n.id].x)) - COL_GAP);
|
|
264
|
+
const enterX = x2 + (bowRight ? NODE_W * 0.18 : -NODE_W * 0.18);
|
|
265
|
+
const dy = y2 - y1;
|
|
266
|
+
d = `M${x1},${y1} C ${laneX},${y1 + dy * 0.25} ${laneX},${y2 - dy * 0.25} ${enterX},${y2}`;
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
d = edgePath(edge.kind, x1, y1, x2, y2);
|
|
270
|
+
}
|
|
200
271
|
const marker = dashedClass
|
|
201
272
|
? "url(#canvas-arrow)"
|
|
202
273
|
: arrowMarker(colorSuffix);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-svg.js","sourceRoot":"","sources":["../../src/core/canvas-svg.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canvas-svg.js","sourceRoot":"","sources":["../../src/core/canvas-svg.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC;AACzB,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,iEAAiE;AACjE,MAAM,SAAS,GAAG,EAAE,CAAC;AAQrB;;;4DAG4D;AAC5D,MAAM,UAAU,aAAa,CAC3B,KAA4B,EAC5B,KAA4B;IAE5B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAiB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAmB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS;QACrD,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B,KAAK,MAAM,EAAE,IAAI,KAAK;QAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAEzC,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;QACxD,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAE;oBACpD,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,GAAG,QAAQ;YAAE,QAAQ,GAAG,CAAC,CAAC;IAC/D,KAAK,MAAM,EAAE,IAAI,GAAG;QAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;kCAQkC;AAClC,MAAM,UAAU,WAAW,CACzB,KAAkB,EAClB,SAA0C;IAE1C,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAmB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAChF,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9B,4EAA4E;IAC5E,uDAAuD;IACvD,MAAM,EAAE,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3F,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,yEAAyE;QACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,CAAC,CAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,IAAI;gBAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,IAAI,CAAC;QAChF,CAAC;QACD,4EAA4E;QAC5E,mDAAmD;QACnD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YACrE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;YACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAE,IAAI,KAAK,CAAC;QAChE,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAChC,MAAM,GAAG,GAA6C,EAAE,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,CAAC;YACjC,GAAG,CAAC,EAAE,CAAC,GAAG;gBACR,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAE,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC;gBACpC,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;aACrC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;IACrE,MAAM,MAAM,GACV,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;IACnE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CACrB,OAA8B,EAC9B,KAAkB,EAClB,SAAyC;IAEzC,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAAE,SAAS;QAC5D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CAAC,CAAS;IACpB,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,cAAc,CACrB,SAAkC,EAClC,IAAgB;IAEhB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,IAAI,KAAK,kBAAkB;QAAE,OAAO,WAAW,CAAC;IAC5D,IAAI,MAAM,EAAE,IAAI,KAAK,eAAe;QAAE,OAAO,QAAQ,CAAC;IACtD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,WAAwC;IAC3D,IAAI,WAAW,KAAK,WAAW;QAAE,OAAO,4BAA4B,CAAC;IACrE,IAAI,WAAW,KAAK,QAAQ;QAAE,OAAO,yBAAyB,CAAC;IAC/D,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,SAAS,QAAQ,CACf,IAAoB,EACpB,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU;IAEV,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CACtB,MAAmC,EACnC,KAAkB,EAClB,MAAmB;IAEnB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO;aAC5B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAC3B,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;QACzE,OAAO,CACL,sCAAsC,IAAI,QAAQ,IAAI,YAAY,IAAI,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,cAAc;YACnH,uCAAuC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAC9F,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;;yEAKyE;AACzE,MAAM,UAAU,cAAc,CAC5B,KAAkB,EAClB,UAAoC;IAEpC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,eAAe,CAChC,UAAU,EAAE,WAAW,EAAE,MAAM,EAC/B,KAAK,EACL,MAAM,CACP,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK;SAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;QAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAChB,qEAAqE;QACrE,sCAAsC;QACtC,MAAM,WAAW,GACf,IAAI,CAAC,IAAI,KAAK,OAAO;YACnB,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;gBACtB,CAAC,CAAC,qBAAqB;gBACvB,CAAC,CAAC,IAAI,CAAC;QACb,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG;YACd,aAAa;YACb,WAAW,IAAI,CAAC,WAAW,IAAI,cAAc,WAAW,EAAE,CAAC;SAC5D;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;QACnE,uEAAuE;QACvE,MAAM,OAAO,GACX,OAAO,GAAG,SAAS,GAAG,CAAC;YACrB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;gBAC3E,OAAO,CAAC,GAAG,SAAS,IAAI,CAAC,GAAG,OAAO,CAAC;YACtC,CAAC,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QACT,uEAAuE;QACvE,uEAAuE;QACvE,qCAAqC;QACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,IAAI,CAAS,CAAC;QACd,IAAI,QAAQ,EAAE,CAAC;YACb,oEAAoE;YACpE,sEAAsE;YACtE,sEAAsE;YACtE,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,QAAQ;gBACpB,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,EACzB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,CAC/E;gBACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;YAChG,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;YAChE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YACnB,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,MAAM,GAAG,WAAW;YACxB,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,gBAAgB,OAAO,QAAQ,CAAC,iBAAiB,MAAM,MAAM,CAAC;QAC3E,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,SAAS,GACb,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC;QACrE,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC7D,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,sCAAsC,MAAM,QAAQ,EAAE,GAAG,EAAE,kBAAkB,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;QAC9H,OAAO,IAAI,GAAG,KAAK,CAAC;IACtB,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK;SAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,UAAU,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;QACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,QAAQ;YAClB,CAAC,CAAC,oCAAoC,MAAM,GAAG,CAAC,YAAY,GAAG,CAAC,QAAQ,CAAC,SAAS;YAClF,CAAC,CAAC,EAAE,CAAC;QACP,oEAAoE;QACpE,4BAA4B;QAC5B,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW;YACtC,CAAC,CAAC,UAAU,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU;YAC9C,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CACL,+BAA+B,IAAI,CAAC,IAAI,qDAAqD,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;YAC/K,WAAW;YACX,yCAAyC,MAAM,aAAa,MAAM,cAAc;YAChF,sCAAsC,MAAM,GAAG,CAAC,QAAQ,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;YAC3F,GAAG;YACH,MAAM,CACP,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,0EAA0E;IAC1E,wEAAwE;IACxE,2EAA2E;IAC3E,0EAA0E;IAC1E,kEAAkE;IAClE,0DAA0D;IAC1D,OAAO,CACL,qBAAqB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,KAAK,aAAa,MAAM,CAAC,MAAM,+BAA+B;QACnI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,UAAU;QACV,IAAI;QACJ,UAAU;QACV,UAAU,CACX,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,SAAS,CAAC,KAAkB;IAI1C,OAAO;QACL,SAAS,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClD,SAAS,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KACnD,CAAC;AACJ,CAAC"}
|
|
@@ -29,16 +29,15 @@ export declare function renderCanvasDocument(bodyHtml: string): string;
|
|
|
29
29
|
* `index.html` — a friendly empty state plus the patterns reference. */
|
|
30
30
|
export declare const TEMPLATE_HTML: string;
|
|
31
31
|
/**
|
|
32
|
-
* Backfill-only:
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* (see its `ensureCanvasTemplate` option)
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* that must never fail session creation itself.
|
|
32
|
+
* Backfill-only: seeds `<cwd>/.sapiom/canvas/index.html` (and a pristine
|
|
33
|
+
* `_template.html` beside it) with the empty-state document, and clears any
|
|
34
|
+
* legacy overview a pre-split server left behind. A bound session always
|
|
35
|
+
* renders its workflow deterministically to `renders/<slug>.html`, so this
|
|
36
|
+
* seed is only the unbound placeholder — the canvas pane never opens to a
|
|
37
|
+
* completely empty iframe. Never clobbers an existing file. Called from
|
|
38
|
+
* SessionManager's create()/resume() (see its `ensureCanvasTemplate` option).
|
|
39
|
+
* Best-effort, like the sibling `workspace-context.ts` writer: a session's cwd
|
|
40
|
+
* could be unwritable, and that must never fail session creation itself.
|
|
42
41
|
*/
|
|
43
42
|
export declare function ensureCanvasTemplate(cwd: string): Promise<void>;
|
|
44
43
|
//# sourceMappingURL=canvas-template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-template.d.ts","sourceRoot":"","sources":["../../src/core/canvas-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"canvas-template.d.ts","sourceRoot":"","sources":["../../src/core/canvas-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAgBH;;uEAEuE;AACvE,eAAO,MAAM,oBAAoB,kCAAiC,CAAC;AA4UnE;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyB7D;AAgCD;yEACyE;AACzE,eAAO,MAAM,aAAa,QAAsC,CAAC;AAoBjE;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIrE"}
|
|
@@ -17,7 +17,7 @@ import * as fs from "node:fs/promises";
|
|
|
17
17
|
import * as path from "node:path";
|
|
18
18
|
import { CANVAS_DIR, CANVAS_INDEX } from "../shared/types.js";
|
|
19
19
|
import { isLegacyDeterministicCanvas } from "./canvas-index-classify.js";
|
|
20
|
-
import { applyRunStateToCanvas, bootCanvasNodeClicks, bootCanvasRunState, runStateNodeClass, } from "./canvas-run-state.js";
|
|
20
|
+
import { applyRunStateToCanvas, bootCanvasGraph, bootCanvasOverview, bootCanvasNodeClicks, bootCanvasRunState, bootCanvasView, runStateNodeClass, } from "./canvas-run-state.js";
|
|
21
21
|
/** Lives alongside index.html, in the same CANVAS_DIR — a pristine copy of
|
|
22
22
|
* the template, written once and never touched again, so "clone the
|
|
23
23
|
* template" always has a clean, un-filled-in source to clone from. */
|
|
@@ -76,10 +76,24 @@ html, body {
|
|
|
76
76
|
margin: 0; min-height: 100%; background: var(--canvas-bg); color: var(--canvas-text);
|
|
77
77
|
font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
|
|
78
78
|
}
|
|
79
|
-
|
|
79
|
+
/* Center the rendered card in the pane. The harness posts pan/zoom as a
|
|
80
|
+
transform on #canvas-root (transform-origin: center — see canvas-run-state.ts),
|
|
81
|
+
so a flex-centered body keeps it centered at rest and while scaling: fit-to-view
|
|
82
|
+
(pan 0,0) lands it dead center, and zooming grows from the middle. The body is
|
|
83
|
+
pinned to the viewport (height:100vh, NOT min-height) so a card taller than the
|
|
84
|
+
pane centers within the VISIBLE area — with min-height the body would grow and
|
|
85
|
+
push the card off-screen — and overflow is clipped (pan/zoom navigates instead
|
|
86
|
+
of scrollbars). */
|
|
87
|
+
body {
|
|
88
|
+
display: flex; align-items: center; justify-content: center; height: 100vh; overflow: hidden;
|
|
89
|
+
/* Dotted grid behind the board — matches the studio's demo canvas. */
|
|
90
|
+
background-image: radial-gradient(var(--canvas-border-strong) 1px, transparent 1px);
|
|
91
|
+
background-size: 16px 16px;
|
|
92
|
+
}
|
|
93
|
+
#canvas-root { max-width: 1100px; padding: 24px 20px; display: flex; flex-direction: column; gap: 18px; }
|
|
80
94
|
|
|
81
95
|
/* --- structural classes: keep these, and their names, untouched --- */
|
|
82
|
-
.canvas-panel { background:
|
|
96
|
+
.canvas-panel { background: transparent; border: 0; padding: 20px; }
|
|
83
97
|
.canvas-header { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
|
|
84
98
|
.canvas-title-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
|
|
85
99
|
.canvas-title { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: -0.01em; }
|
|
@@ -87,7 +101,6 @@ html, body {
|
|
|
87
101
|
font-size: 11px; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--canvas-border-strong);
|
|
88
102
|
color: var(--canvas-text-dim);
|
|
89
103
|
}
|
|
90
|
-
.canvas-badge--stale { color: var(--canvas-escalation); border-color: var(--canvas-escalation); }
|
|
91
104
|
.canvas-subtitle { margin: 0; color: var(--canvas-text-dim); font-size: 12.5px; }
|
|
92
105
|
.canvas-stats { display: flex; gap: 22px; margin-top: 2px; }
|
|
93
106
|
.canvas-stat { display: flex; flex-direction: column; }
|
|
@@ -133,6 +146,10 @@ html, body {
|
|
|
133
146
|
|
|
134
147
|
/* --- legend + interconnections --- */
|
|
135
148
|
.canvas-legend { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; font-size: 11px; color: var(--canvas-text-dim); }
|
|
149
|
+
/* In a diagram panel the legend is a footer under the SVG — separate it with a
|
|
150
|
+
hairline so it reads as a key, not part of the graph. Scoped to .canvas-panel
|
|
151
|
+
so the overview/seed legends keep their own layout. */
|
|
152
|
+
.canvas-panel .canvas-legend { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--canvas-border); }
|
|
136
153
|
.canvas-legend-item { display: flex; align-items: center; gap: 6px; }
|
|
137
154
|
.canvas-legend-marker { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: 0 0 auto; }
|
|
138
155
|
.canvas-legend-marker--entry { background: var(--canvas-accent); }
|
|
@@ -302,12 +319,33 @@ const SVG_DEFS = `
|
|
|
302
319
|
</defs>
|
|
303
320
|
</svg>
|
|
304
321
|
`.trim();
|
|
305
|
-
/**
|
|
306
|
-
*
|
|
307
|
-
*
|
|
308
|
-
*
|
|
309
|
-
*
|
|
310
|
-
|
|
322
|
+
/**
|
|
323
|
+
* A no-op `__name` shim, prepended to the injected script.
|
|
324
|
+
*
|
|
325
|
+
* esbuild's `keepNames` — which `tsx` enables in `dev`, and any `--keep-names`
|
|
326
|
+
* build — rewrites NESTED function declarations inside the boot functions below
|
|
327
|
+
* to `__name(fn, "fn")` calls, and defines the `__name` helper at MODULE scope:
|
|
328
|
+
* scope that `Function.prototype.toString()` does NOT capture. Injected raw into
|
|
329
|
+
* the sandboxed iframe, those calls throw `ReferenceError: __name is not
|
|
330
|
+
* defined`, which aborts the whole <script> and kills the node-click AND
|
|
331
|
+
* pan/zoom channels (run-state only survives because it has no nested
|
|
332
|
+
* functions). A trivial in-scope shim makes the stringified output run verbatim
|
|
333
|
+
* regardless of how it was compiled — `tsc` emits no such calls, so the shim is
|
|
334
|
+
* simply unused there. Without this, canvas gestures work in a `tsc`/dist build
|
|
335
|
+
* but silently break under `tsx`/esbuild.
|
|
336
|
+
*/
|
|
337
|
+
const NAME_SHIM = "function __name(fn){return fn;}";
|
|
338
|
+
/** Stringified run-state listener, node-click channel, and pan/zoom view
|
|
339
|
+
* channel injected into every canvas document. The run-state functions must
|
|
340
|
+
* all be in scope together because `bootCanvasRunState` calls
|
|
341
|
+
* `applyRunStateToCanvas`, which calls `runStateNodeClass`.
|
|
342
|
+
* `bootCanvasNodeClicks` adds the reverse click channel (iframe → parent), and
|
|
343
|
+
* `bootCanvasView` applies the parent's pan/zoom (transforming `#canvas-root`)
|
|
344
|
+
* and reports the graph size for fit-to-view; `bootCanvasGraph` posts the
|
|
345
|
+
* embedded step graph so the Steps tab can project it — all via the same
|
|
346
|
+
* stringify pattern. `NAME_SHIM` MUST come first (see its doc — without it,
|
|
347
|
+
* esbuild/tsx output throws in the iframe). */
|
|
348
|
+
const RUN_STATE_SCRIPT = `${NAME_SHIM}\n${runStateNodeClass.toString()}\n${applyRunStateToCanvas.toString()}\n${bootCanvasRunState.toString()}\nbootCanvasRunState();\n${bootCanvasNodeClicks.toString()}\nbootCanvasNodeClicks();\n${bootCanvasView.toString()}\nbootCanvasView();\n${bootCanvasGraph.toString()}\nbootCanvasGraph();\n${bootCanvasOverview.toString()}\nbootCanvasOverview();`;
|
|
311
349
|
/**
|
|
312
350
|
* Wraps `bodyHtml` in the shared canvas document shell: doctype, the theme
|
|
313
351
|
* switch script, the run-state listener, and every CSS class an agent's markup
|
|
@@ -390,16 +428,15 @@ async function writeIfMissing(filePath, content) {
|
|
|
390
428
|
}
|
|
391
429
|
}
|
|
392
430
|
/**
|
|
393
|
-
* Backfill-only:
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
397
|
-
*
|
|
398
|
-
*
|
|
399
|
-
* (see its `ensureCanvasTemplate` option)
|
|
400
|
-
*
|
|
401
|
-
*
|
|
402
|
-
* that must never fail session creation itself.
|
|
431
|
+
* Backfill-only: seeds `<cwd>/.sapiom/canvas/index.html` (and a pristine
|
|
432
|
+
* `_template.html` beside it) with the empty-state document, and clears any
|
|
433
|
+
* legacy overview a pre-split server left behind. A bound session always
|
|
434
|
+
* renders its workflow deterministically to `renders/<slug>.html`, so this
|
|
435
|
+
* seed is only the unbound placeholder — the canvas pane never opens to a
|
|
436
|
+
* completely empty iframe. Never clobbers an existing file. Called from
|
|
437
|
+
* SessionManager's create()/resume() (see its `ensureCanvasTemplate` option).
|
|
438
|
+
* Best-effort, like the sibling `workspace-context.ts` writer: a session's cwd
|
|
439
|
+
* could be unwritable, and that must never fail session creation itself.
|
|
403
440
|
*/
|
|
404
441
|
export async function ensureCanvasTemplate(cwd) {
|
|
405
442
|
await removeLegacyOverviewIndex(path.join(cwd, CANVAS_INDEX));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-template.js","sourceRoot":"","sources":["../../src/core/canvas-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B;;uEAEuE;AACvE,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,UAAU,iBAAiB,CAAC;AAEnE,SAAS,eAAe;IACtB,yEAAyE;IACzE,0EAA0E;IAC1E,mEAAmE;IACnE,yEAAyE;IACzE,wEAAwE;IACxE,OAAO
|
|
1
|
+
{"version":3,"file":"canvas-template.js","sourceRoot":"","sources":["../../src/core/canvas-template.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,31 @@
|
|
|
4
4
|
* — not a content hash, just enough to notice something moved.
|
|
5
5
|
*/
|
|
6
6
|
export declare function snapshotCanvasDir(canvasDir: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Cheap change fingerprint over a project's own `.ts`/`.tsx` sources (skipping
|
|
9
|
+
* node_modules/dist/.git/.sapiom), the polling fallback's equivalent of
|
|
10
|
+
* `snapshotCanvasDir` for the workflow SOURCE — so an editor save on a step
|
|
11
|
+
* file is noticed on platforms without recursive `fs.watch` too. Bounded and
|
|
12
|
+
* total: an unreadable dir simply contributes nothing.
|
|
13
|
+
*/
|
|
14
|
+
export declare function snapshotWorkflowSources(root: string): string;
|
|
15
|
+
/** The two things a session watcher reports, kept separate so the integrator
|
|
16
|
+
* can react differently: a rendered-output change reloads the iframe, a
|
|
17
|
+
* source change re-renders the bound workflow (which then flows back as an
|
|
18
|
+
* output change → reload). */
|
|
19
|
+
export interface SessionWatcherCallbacks {
|
|
20
|
+
onCanvasChange: (harnessSessionId: string) => void;
|
|
21
|
+
onSourceChange: (harnessSessionId: string) => void;
|
|
22
|
+
}
|
|
7
23
|
export interface CanvasWatcherManagerDeps {
|
|
8
|
-
/** Debounced per-session
|
|
24
|
+
/** Debounced per-session notification that the RENDERED canvas output under
|
|
25
|
+
* `.sapiom/canvas/` changed — the integrator broadcasts
|
|
9
26
|
* `{type: "canvas.reload", harnessSessionId}` on /ws/events from this. */
|
|
10
27
|
onChange(harnessSessionId: string): void;
|
|
28
|
+
/** Debounced per-session notification that a workflow SOURCE file changed —
|
|
29
|
+
* the integrator re-renders the session's bound workflow from this (the
|
|
30
|
+
* render write then flows back through onChange as an iframe reload). */
|
|
31
|
+
onSourceChange(harnessSessionId: string): void;
|
|
11
32
|
}
|
|
12
33
|
/** Registry of one SessionCanvasWatcher per active harness session. */
|
|
13
34
|
export declare class CanvasWatcherManager {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-watcher.d.ts","sourceRoot":"","sources":["../../src/core/canvas-watcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canvas-watcher.d.ts","sourceRoot":"","sources":["../../src/core/canvas-watcher.ts"],"names":[],"mappings":"AAeA;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAiB3D;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA4B5D;AAED;;;+BAG+B;AAC/B,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,cAAc,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AA+HD,MAAM,WAAW,wBAAwB;IACvC;;+EAE2E;IAC3E,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC;;8EAE0E;IAC1E,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD;AAED,uEAAuE;AACvE,qBAAa,oBAAoB;IAGnB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;gBAEvC,IAAI,EAAE,wBAAwB;IAE3D;iCAC6B;IAC7B,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAWlD,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAKpC,OAAO,IAAI,IAAI;IAIf,8EAA8E;IAC9E,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
|